diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fdaa0c8628f766e241ba9043698b611a0bd78811..4fc5b97caae0735058337c8b23e4ca7471761d24 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,7 +13,7 @@ # - Multiple owners are supported. # - Either handle (e.g, @github_user or @github/team) or email can be used. Keep in mind, # that handles might work better because they are more recognizable on GitHub, -# eyou can use them for mentioning unlike an email. +# you can use them for mentioning unlike an email. # - The latest matching rule, if multiple, takes precedence. # CI diff --git a/.github/scripts/common/lib.sh b/.github/scripts/common/lib.sh index 29dc269ffd23b1f51e1eb2b87a61544de0cbb57f..932a6d546c3706f50c74873c32cb8e61e3d33461 100755 --- a/.github/scripts/common/lib.sh +++ b/.github/scripts/common/lib.sh @@ -237,7 +237,7 @@ fetch_release_artifacts() { popd > /dev/null } -# Fetch the release artifacts like binary and sigantures from S3. Assumes the ENV are set: +# Fetch the release artifacts like binary and signatures from S3. Assumes the ENV are set: # - RELEASE_ID # - GITHUB_TOKEN # - REPO in the form paritytech/polkadot diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml index 903d7a3fcb3d94bb6913d94627418d9212397bf3..58065f369c9cf160b0b94c233df9df1016426d07 100644 --- a/.github/workflows/check-links.yml +++ b/.github/workflows/check-links.yml @@ -3,8 +3,8 @@ name: Check links on: pull_request: paths: - - "*.rs" - - "*.prdoc" + - "**.rs" + - "**.prdoc" - ".github/workflows/check-links.yml" - ".config/lychee.toml" types: [opened, synchronize, reopened, ready_for_review] diff --git a/.github/workflows/subsystem-benchmarks.yml b/.github/workflows/subsystem-benchmarks.yml new file mode 100644 index 0000000000000000000000000000000000000000..f0d56bf6e9d3937d2f7c16873ea34bf1377e2aa2 --- /dev/null +++ b/.github/workflows/subsystem-benchmarks.yml @@ -0,0 +1,54 @@ +# The actions takes json file as input and runs github-action-benchmark for it. + +on: + workflow_dispatch: + inputs: + benchmark-data-dir-path: + description: "Path to the benchmark data directory" + required: true + type: string + output-file-path: + description: "Path to the benchmark data file" + required: true + type: string + +jobs: + subsystem-benchmarks: + runs-on: ubuntu-latest + environment: subsystem-benchmarks + steps: + - name: Validate inputs + run: | + echo "${{ github.event.inputs.benchmark-data-dir-path }}" | grep -P '^[a-z\-]' + echo "${{ github.event.inputs.output-file-path }}" | grep -P '^[a-z\-]+\.json' + + - name: Checkout Sources + uses: actions/checkout@v4.1.2 + with: + fetch-depth: 0 + ref: "gh-pages" + + - name: Copy bench results + id: step_one + run: | + cp bench/gitlab/${{ github.event.inputs.output-file-path }} ${{ github.event.inputs.output-file-path }} + + - name: Switch branch + id: step_two + run: | + git checkout master -- + + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }} + private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }} + + - name: Store benchmark result + uses: benchmark-action/github-action-benchmark@v1 + with: + tool: "customSmallerIsBetter" + output-file-path: ${{ github.event.inputs.output-file-path }} + benchmark-data-dir-path: "bench/${{ github.event.inputs.benchmark-data-dir-path }}" + github-token: ${{ steps.app-token.outputs.token }} + auto-push: true diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7f8796ca51248acb8be92fcb9f76e280b18e605e..fbcd94b525681c00937a35305cf2e4d25344d65e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -125,10 +125,10 @@ default: - cp $FL_FORKLIFT_CONFIG ~/.forklift/config.toml - shopt -s expand_aliases - export PATH=$PATH:$(pwd) - - | + - > if [ "$FORKLIFT_BYPASS" != "true" ]; then - echo "FORKLIFT_BYPASS not set, creating alias cargo='forklift cargo'" - alias cargo="forklift cargo" + echo "FORKLIFT_BYPASS not set, creating alias cargo='forklift cargo'"; + alias cargo="forklift cargo"; fi # - echo "FL_FORKLIFT_VERSION ${FL_FORKLIFT_VERSION}" @@ -147,6 +147,13 @@ default: - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs - if: $CI_COMMIT_REF_NAME =~ /^gh-readonly-queue.*$/ # merge queues +.publish-gh-pages-refs: + rules: + - if: $CI_PIPELINE_SOURCE == "pipeline" + when: never + - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master" + - if: $CI_COMMIT_REF_NAME == "master" + # handle the specific case where benches could store incorrect bench data because of the downstream staging runs # exclude cargo-check-benches from such runs .test-refs-check-benches: diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml index f8de6135572565d9d16465e68aa3f0bace915cc5..8658e92efc8f9f7ae463a67a52eaf3d3d37df2f7 100644 --- a/.gitlab/pipeline/build.yml +++ b/.gitlab/pipeline/build.yml @@ -91,7 +91,7 @@ build-rustdoc: - .run-immediately variables: SKIP_WASM_BUILD: 1 - RUSTDOCFLAGS: "--default-theme=ayu --html-in-header ./docs/sdk/headers/header.html --extend-css ./docs/sdk/headers/theme.css" + RUSTDOCFLAGS: "-Dwarnings --default-theme=ayu --html-in-header ./docs/sdk/assets/header.html --extend-css ./docs/sdk/assets/theme.css --html-after-content ./docs/sdk/assets/after-content.html" artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc" when: on_success @@ -99,32 +99,31 @@ build-rustdoc: paths: - ./crate-docs/ script: - # FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"` and `--all-features` - - time cargo doc --features try-runtime,experimental --workspace --no-deps + - time cargo doc --all-features --workspace --no-deps - rm -f ./target/doc/.lock - mv ./target/doc ./crate-docs # Inject Simple Analytics (https://www.simpleanalytics.com/) privacy preserving tracker into # all .html files - - | + - > inject_simple_analytics() { - local path="$1" - local script_content="" + local path="$1"; + local script_content=""; # Function that inject script into the head of an html file using sed. process_file() { - local file="$1" - echo "Adding Simple Analytics script to $file" - sed -i "s||$script_content|" "$file" - } - export -f process_file - # xargs runs process_file in seperate shells without access to outer variables. - # to make script_content available inside process_file, export it as an env var here. - export script_content + local file="$1"; + echo "Adding Simple Analytics script to $file"; + sed -i "s||$script_content|" "$file"; + }; + export -f process_file; + # xargs runs process_file in separate shells without access to outer variables. + # make script_content available inside process_file, export it as an env var here. + export script_content; # Modify .html files in parallel using xargs, otherwise it can take a long time. - find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {} - } - inject_simple_analytics "./crate-docs" + find "$path" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'process_file "$@"' _ {}; + }; + inject_simple_analytics "./crate-docs"; - echo "" > ./crate-docs/index.html build-implementers-guide: @@ -350,7 +349,7 @@ build-runtimes-polkavm: - .run-immediately # - .collect-artifact variables: - # this variable gets overriden by "rusty-cachier environment inject", use the value as default + # this variable gets overridden by "rusty-cachier environment inject", use the value as default CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target" before_script: - mkdir -p ./artifacts/subkey diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml index 1b8542e6de2901f15796cd83b58bca7c657d4248..89b2c00db9b2b13187a562987e00abcb232e0e32 100644 --- a/.gitlab/pipeline/check.yml +++ b/.gitlab/pipeline/check.yml @@ -104,23 +104,20 @@ check-toml-format: - .docker-env - .test-pr-refs script: - - | - export RUST_LOG=remote-ext=debug,runtime=debug - - echo "---------- Downloading try-runtime CLI ----------" - curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.4/try-runtime-x86_64-unknown-linux-musl -o try-runtime - chmod +x ./try-runtime - echo "Using try-runtime-cli version:" - ./try-runtime --version - - echo "---------- Building ${PACKAGE} runtime ----------" - time cargo build --release --locked -p "$PACKAGE" --features try-runtime - - echo "---------- Executing on-runtime-upgrade for ${NETWORK} ----------" + - export RUST_LOG=remote-ext=debug,runtime=debug + - echo "---------- Downloading try-runtime CLI ----------" + - curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.4/try-runtime-x86_64-unknown-linux-musl -o try-runtime + - chmod +x ./try-runtime + - echo "Using try-runtime-cli version:" + - ./try-runtime --version + - echo "---------- Building ${PACKAGE} runtime ----------" + - time cargo build --release --locked -p "$PACKAGE" --features try-runtime + - echo "---------- Executing on-runtime-upgrade for ${NETWORK} ----------" + - > time ./try-runtime ${COMMAND_EXTRA_ARGS} \ - --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \ - on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI} - sleep 5 + --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \ + on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI} + - sleep 5 # Check runtime migrations for Parity managed relay chains check-runtime-migration-westend: diff --git a/.gitlab/pipeline/publish.yml b/.gitlab/pipeline/publish.yml index b73acb560f67f93e540826b95fcf075374189846..954df10bef018e1006f4e698a255b50406191eaf 100644 --- a/.gitlab/pipeline/publish.yml +++ b/.gitlab/pipeline/publish.yml @@ -3,16 +3,13 @@ publish-rustdoc: stage: publish - extends: .kubernetes-env + extends: + - .kubernetes-env + - .publish-gh-pages-refs variables: CI_IMAGE: node:18 GIT_DEPTH: 100 RUSTDOCS_DEPLOY_REFS: "master" - rules: - - if: $CI_PIPELINE_SOURCE == "pipeline" - when: never - - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master" - - if: $CI_COMMIT_REF_NAME == "master" needs: - job: build-rustdoc artifacts: true @@ -60,9 +57,76 @@ publish-rustdoc: - git commit -m "___Updated docs for ${CI_COMMIT_REF_NAME}___" || echo "___Nothing to commit___" - git push origin gh-pages --force + # artificial sleep to publish gh-pages + - sleep 300 + after_script: + - rm -rf .git/ ./* + +publish-subsystem-benchmarks: + stage: publish + variables: + CI_IMAGE: "paritytech/tools:latest" + extends: + - .kubernetes-env + - .publish-gh-pages-refs + needs: + - job: subsystem-regression-tests + artifacts: true + - job: publish-rustdoc + artifacts: false + script: + # setup ssh + - eval $(ssh-agent) + - ssh-add - <<< ${GITHUB_SSH_PRIV_KEY} + - mkdir ~/.ssh && touch ~/.ssh/known_hosts + - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts + # Set git config + - rm -rf .git/config + - git config user.email "devops-team@parity.io" + - git config user.name "${GITHUB_USER}" + - git config remote.origin.url "git@github.com:/paritytech/${CI_PROJECT_NAME}.git" + - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" + - git fetch origin gh-pages + # Push result to github + - git checkout gh-pages --force + - mkdir -p bench/gitlab/ || echo "Directory exists" + - rm -rf bench/gitlab/*.json || echo "No json files" + - cp -r charts/*.json bench/gitlab/ + - git add bench/gitlab/ + - git commit -m "Add json files with benchmark results for ${CI_COMMIT_REF_NAME}" + - git push origin gh-pages + # artificial sleep to publish gh-pages + - sleep 300 + allow_failure: true after_script: - rm -rf .git/ ./* +trigger_workflow: + stage: deploy + extends: + - .kubernetes-env + - .publish-gh-pages-refs + needs: + - job: publish-subsystem-benchmarks + artifacts: false + - job: subsystem-regression-tests + artifacts: true + script: + - echo "Triggering workflow" + - > + for benchmark in $(ls charts/*.json); do + export benchmark_name=$(basename $benchmark); + echo "Benchmark: $benchmark_name"; + export benchmark_dir=$(echo $benchmark_name | sed 's/\.json//'); + curl -q -X POST \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Authorization: token $GITHUB_TOKEN" \ + https://api.github.com/repos/paritytech/${CI_PROJECT_NAME}/actions/workflows/subsystem-benchmarks.yml/dispatches \ + -d "{\"ref\":\"refs/heads/master\",\"inputs\":{\"benchmark-data-dir-path\":\"$benchmark_dir\",\"output-file-path\":\"$benchmark_name\"}}"; + sleep 300; + done + allow_failure: true + # note: images are used not only in zombienet but also in rococo, wococo and versi .build-push-image: image: $BUILDAH_IMAGE diff --git a/.gitlab/pipeline/test.yml b/.gitlab/pipeline/test.yml index 8a3907683c54f90de4a6d5d0036c925fbe2e318e..f556289b59a5868c94618435e87ae88f467f362c 100644 --- a/.gitlab/pipeline/test.yml +++ b/.gitlab/pipeline/test.yml @@ -23,9 +23,8 @@ test-linux-stable: - echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}" # add experimental to features after https://github.com/paritytech/substrate/pull/14502 is merged # "upgrade_version_checks_should_work" is currently failing - - | + - > time cargo nextest run \ - --filter-expr 'not deps(/polkadot-subsystem-bench/)' \ --workspace \ --locked \ --release \ @@ -35,7 +34,7 @@ test-linux-stable: # Upload tests results to Elasticsearch - echo "Upload test results to Elasticsearch" - cat target/nextest/default/junit.xml | xq . > target/nextest/default/junit.json - - | + - > curl -v -XPOST --http1.1 \ -u ${ELASTIC_USERNAME}:${ELASTIC_PASSWORD} \ https://elasticsearch.parity-build.parity.io/unit-tests/_doc/${CI_JOB_ID} \ @@ -70,7 +69,7 @@ test-linux-stable-runtime-benchmarks: # but still want to have debug assertions. RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings" script: - - time cargo nextest run --filter-expr 'not deps(/polkadot-subsystem-bench/)' --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet + - time cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet # can be used to run all tests # test-linux-stable-all: @@ -88,7 +87,7 @@ test-linux-stable-runtime-benchmarks: # script: # # Build all but only execute 'runtime' tests. # - echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}" -# - | +# - > # time cargo nextest run \ # --workspace \ # --locked \ @@ -514,12 +513,19 @@ test-syscalls: subsystem-regression-tests: stage: test + artifacts: + name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" + when: always + expire_in: 1 days + paths: + - charts/ extends: - .docker-env - .common-refs - .run-immediately script: - cargo bench --profile=testnet -p polkadot-availability-recovery --bench availability-recovery-regression-bench --features subsystem-benchmarks + - cargo bench --profile=testnet -p polkadot-availability-distribution --bench availability-distribution-regression-bench --features subsystem-benchmarks tags: - benchmark allow_failure: true diff --git a/.gitlab/pipeline/zombienet.yml b/.gitlab/pipeline/zombienet.yml index 8d308714fab3cb44827bb202fce0939f52f730ad..52948e1eb719d9f8669523d9762f5662fd1b6e96 100644 --- a/.gitlab/pipeline/zombienet.yml +++ b/.gitlab/pipeline/zombienet.yml @@ -1,7 +1,8 @@ .zombienet-refs: extends: .build-refs variables: - ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.95" + ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.99" + PUSHGATEWAY_URL: "http://zombienet-prometheus-pushgateway.managed-monitoring:9091/metrics/job/zombie-metrics" include: # substrate tests diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml index 97572f029d0020f090a8fd16839028ac9f088cf9..ba05c709a27b163386e36f680812e0cf24f10277 100644 --- a/.gitlab/pipeline/zombienet/polkadot.yml +++ b/.gitlab/pipeline/zombienet/polkadot.yml @@ -158,13 +158,21 @@ zombienet-polkadot-functional-0011-async-backing-6-seconds-rate: --local-dir="${LOCAL_DIR}/functional" --test="0011-async-backing-6-seconds-rate.zndsl" -zombienet-polkadot-functional-0012-elastic-scaling-mvp: +zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks: extends: - .zombienet-polkadot-common script: - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh - --local-dir="${LOCAL_DIR}/functional" - --test="0012-elastic-scaling-mvp.zndsl" + --local-dir="${LOCAL_DIR}/elastic_scaling" + --test="0001-basic-3cores-6s-blocks.zndsl" + +zombienet-polkadot-elastic-scaling-0002-elastic-scaling-doesnt-break-parachains: + extends: + - .zombienet-polkadot-common + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh + --local-dir="${LOCAL_DIR}/elastic_scaling" + --test="0002-elastic-scaling-doesnt-break-parachains.zndsl" zombienet-polkadot-smoke-0001-parachains-smoke-test: extends: diff --git a/.gitlab/rust-features.sh b/.gitlab/rust-features.sh index c0ac192a6ec69ba16abb3bad2ec49de7e9cebb61..c3ec61ab8714768c9a49f2eb2e1e544706a1d875 100755 --- a/.gitlab/rust-features.sh +++ b/.gitlab/rust-features.sh @@ -15,7 +15,7 @@ # # The steps of this script: # 1. Check that all required dependencies are installed. -# 2. Check that all rules are fullfilled for the whole workspace. If not: +# 2. Check that all rules are fulfilled for the whole workspace. If not: # 4. Check all crates to find the offending ones. # 5. Print all offending crates and exit with code 1. # diff --git a/Cargo.lock b/Cargo.lock index 25eb9374324a62a72bbcafb004adb81104d7796d..e05fa56bef78daa051fb77b63962e8bc87f15856 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -867,6 +867,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -990,6 +991,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -1239,9 +1241,9 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", @@ -1393,7 +1395,7 @@ name = "binary-merkle-tree" version = "13.0.0" dependencies = [ "array-bytes 6.1.0", - "env_logger 0.9.3", + "env_logger 0.11.3", "hash-db", "log", "sp-core", @@ -1920,7 +1922,7 @@ dependencies = [ [[package]] name = "bridge-hub-common" -version = "0.0.0" +version = "0.1.0" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2010,6 +2012,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -2148,6 +2151,7 @@ dependencies = [ "pallet-message-queue", "pallet-xcm", "parachains-common", + "parity-scale-codec", "rococo-westend-system-emulated-network", "sp-runtime", "staging-xcm", @@ -2180,6 +2184,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -2623,9 +2628,9 @@ dependencies = [ [[package]] name = "clap-num" -version = "1.1.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e063d263364859dc54fb064cedb7c122740cd4733644b14b176c097f51e8ab7" +checksum = "488557e97528174edaa2ee268b23a809e0c598213a4bbcb4f34575a46fda147e" dependencies = [ "num-traits", ] @@ -2738,6 +2743,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -2843,10 +2849,11 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.1.0" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" dependencies = [ + "is-terminal", "lazy_static", "windows-sys 0.48.0", ] @@ -2992,6 +2999,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -3086,6 +3094,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -3150,6 +3159,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -3802,6 +3812,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", + "sp-io", "sp-runtime", "sp-transaction-pool", ] @@ -4047,7 +4058,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", "cumulus-test-runtime", - "docify 0.2.7", + "docify", "frame-support", "frame-system", "log", @@ -4320,7 +4331,6 @@ dependencies = [ "frame-system-rpc-runtime-api", "futures", "jsonrpsee", - "pallet-im-online", "pallet-timestamp", "pallet-transaction-payment", "parachains-common", @@ -4570,6 +4580,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -4717,47 +4738,21 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" [[package]] name = "docify" -version = "0.1.16" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1b04e6ef3d21119d3eb7b032bca17f99fe041e9c072f30f32cc0e1a2b1f3c4" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ - "docify_macros 0.1.16", -] - -[[package]] -name = "docify" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2" -dependencies = [ - "docify_macros 0.2.7", + "docify_macros", ] [[package]] name = "docify_macros" -version = "0.1.16" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5610df7f2acf89a1bb5d1a66ae56b1c7fcdcfe3948856fb3ace3f644d70eb7" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse", - "lazy_static", - "proc-macro2", - "quote", - "regex", - "syn 2.0.53", - "termcolor", - "walkdir", -] - -[[package]] -name = "docify_macros" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63fa215f3a0d40fb2a221b3aa90d8e1fbb8379785a990cb60d62ac71ebdc6460" -dependencies = [ - "common-path", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "once_cell", "proc-macro2", "quote", @@ -5018,7 +5013,7 @@ dependencies = [ name = "env_logger" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" dependencies = [ "log", "regex", @@ -5026,15 +5021,12 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" dependencies = [ - "atty", - "humantime", "log", "regex", - "termcolor", ] [[package]] @@ -5472,35 +5464,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" -[[package]] -name = "frame" -version = "0.0.1-dev" -dependencies = [ - "docify 0.2.7", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "log", - "pallet-examples", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-arithmetic", - "sp-block-builder", - "sp-consensus-aura", - "sp-consensus-grandpa", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std 14.0.0", - "sp-transaction-pool", - "sp-version", -] - [[package]] name = "frame-benchmarking" version = "28.0.0" @@ -5719,7 +5682,7 @@ dependencies = [ "array-bytes 6.1.0", "assert_matches", "bitflags 1.3.2", - "docify 0.2.7", + "docify", "environmental", "frame-metadata", "frame-support-procedural", @@ -5762,7 +5725,7 @@ version = "23.0.0" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "expander 2.0.0", "frame-support-procedural-tools", "itertools 0.10.5", @@ -5852,8 +5815,8 @@ dependencies = [ name = "frame-support-test-stg-frame-crate" version = "0.1.0" dependencies = [ - "frame", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", ] @@ -5863,7 +5826,7 @@ version = "28.0.0" dependencies = [ "cfg-if", "criterion 0.4.0", - "docify 0.2.7", + "docify", "frame-support", "log", "parity-scale-codec", @@ -6809,7 +6772,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.3", + "socket2 0.5.6", "widestring", "windows-sys 0.48.0", "winreg", @@ -6891,9 +6854,9 @@ checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" [[package]] name = "jsonrpsee" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a95f7cc23d5fab0cdeeaf6bad8c8f5e7a3aa7f0d211957ea78232b327ab27b0" +checksum = "87f3ae45a64cfc0882934f963be9431b2a165d667f53140358181f262aca0702" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-client", @@ -6907,9 +6870,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1736cfa3845fd9f8f43751f2b8e0e83f7b6081e754502f7d63b6587692cc83" +checksum = "455fc882e56f58228df2aee36b88a1340eafd707c76af2fa68cf94b37d461131" dependencies = [ "futures-util", "http", @@ -6928,9 +6891,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82030d038658974732103e623ba2e0abec03bbbe175b39c0a2fafbada60c5868" +checksum = "b75568f4f9696e3a47426e1985b548e1a9fcb13372a5e320372acaf04aca30d1" dependencies = [ "anyhow", "async-lock 3.3.0", @@ -6954,9 +6917,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a06ef0de060005fddf772d54597bb6a8b0413da47dcffd304b0306147b9678" +checksum = "9e7a95e346f55df84fb167b7e06470e196e7d5b9488a21d69c5d9732043ba7ba" dependencies = [ "async-trait", "hyper", @@ -6974,22 +6937,22 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fc56131589f82e57805f7338b87023db4aafef813555708b159787e34ad6bc" +checksum = "30ca066e73dd70294aebc5c2675d8ffae43be944af027c857ce0d4c51785f014" dependencies = [ "heck 0.4.1", "proc-macro-crate 3.0.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.53", ] [[package]] name = "jsonrpsee-server" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85be77fe5b2a94589e3164fb780017f7aff7d646b49278c0d0346af16975c8e" +checksum = "0e29c1bd1f9bba83c864977c73404e505f74f730fa0db89dd490ec174e36d7f0" dependencies = [ "futures-util", "http", @@ -7011,9 +6974,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a48fdc1202eafc51c63e00406575e59493284ace8b8b61aa16f3a6db5d64f1a" +checksum = "3467fd35feeee179f71ab294516bdf3a81139e7aeebdd860e46897c12e1a3368" dependencies = [ "anyhow", "beef", @@ -7024,9 +6987,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5ce25d70a8e4d3cc574bbc3cad0137c326ad64b194793d5e7bbdd3fa4504181" +checksum = "68ca71e74983f624c0cb67828e480a981586074da8ad3a2f214c6a3f884edab9" dependencies = [ "http", "jsonrpsee-client-transport", @@ -7114,6 +7077,7 @@ dependencies = [ "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", + "pallet-example-mbm", "pallet-example-tasks", "pallet-fast-unstake", "pallet-glutton", @@ -7980,7 +7944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "macro_magic_core_macros", "proc-macro2", "quote", @@ -8164,11 +8128,11 @@ name = "minimal-template-node" version = "0.0.0" dependencies = [ "clap 4.5.3", - "frame", "futures", "futures-timer", "jsonrpsee", "minimal-template-runtime", + "polkadot-sdk-frame", "sc-basic-authorship", "sc-cli", "sc-client-api", @@ -8198,7 +8162,6 @@ dependencies = [ name = "minimal-template-runtime" version = "0.0.0" dependencies = [ - "frame", "pallet-balances", "pallet-minimal-template", "pallet-sudo", @@ -8206,8 +8169,10 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", "sp-genesis-builder", + "sp-runtime", "substrate-wasm-builder", ] @@ -9252,7 +9217,7 @@ name = "pallet-bags-list" version = "27.0.0" dependencies = [ "aquamarine 0.5.0", - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -9300,7 +9265,7 @@ dependencies = [ name = "pallet-balances" version = "28.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -9571,7 +9536,7 @@ dependencies = [ "array-bytes 6.1.0", "assert_matches", "bitflags 1.3.2", - "env_logger 0.9.3", + "env_logger 0.11.3", "environmental", "frame-benchmarking", "frame-support", @@ -9589,6 +9554,7 @@ dependencies = [ "pallet-timestamp", "pallet-utility", "parity-scale-codec", + "paste", "pretty_assertions", "rand", "rand_pcg", @@ -9817,7 +9783,7 @@ dependencies = [ "sp-runtime", "sp-std 14.0.0", "sp-tracing 16.0.0", - "strum 0.24.1", + "strum 0.26.2", ] [[package]] @@ -9875,8 +9841,8 @@ dependencies = [ name = "pallet-example-frame-crate" version = "0.0.1" dependencies = [ - "frame", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", ] @@ -9897,6 +9863,20 @@ dependencies = [ "sp-std 14.0.0", ] +[[package]] +name = "pallet-example-mbm" +version = "0.1.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-migrations", + "parity-scale-codec", + "scale-info", + "sp-io", +] + [[package]] name = "pallet-example-offchain-worker" version = "28.0.0" @@ -9918,7 +9898,7 @@ dependencies = [ name = "pallet-example-single-block-migrations" version = "0.0.1" dependencies = [ - "docify 0.2.7", + "docify", "frame-executive", "frame-support", "frame-system", @@ -9984,7 +9964,7 @@ dependencies = [ name = "pallet-fast-unstake" version = "27.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -10185,7 +10165,7 @@ dependencies = [ name = "pallet-migrations" version = "1.0.0" dependencies = [ - "docify 0.1.16", + "docify", "frame-benchmarking", "frame-executive", "frame-support", @@ -10209,8 +10189,8 @@ dependencies = [ name = "pallet-minimal-template" version = "0.0.0" dependencies = [ - "frame", "parity-scale-codec", + "polkadot-sdk-frame", "scale-info", ] @@ -10238,7 +10218,7 @@ name = "pallet-mmr" version = "27.0.0" dependencies = [ "array-bytes 6.1.0", - "env_logger 0.9.3", + "env_logger 0.11.3", "frame-benchmarking", "frame-support", "frame-system", @@ -10489,7 +10469,7 @@ dependencies = [ name = "pallet-paged-list" version = "0.6.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -10529,9 +10509,9 @@ dependencies = [ [[package]] name = "pallet-parameters" -version = "0.0.1" +version = "0.1.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -10692,7 +10672,7 @@ dependencies = [ name = "pallet-safe-mode" version = "9.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -10749,7 +10729,7 @@ dependencies = [ name = "pallet-scheduler" version = "29.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -10962,7 +10942,7 @@ dependencies = [ name = "pallet-sudo" version = "28.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -10992,7 +10972,7 @@ dependencies = [ name = "pallet-timestamp" version = "27.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -11096,7 +11076,7 @@ dependencies = [ name = "pallet-treasury" version = "27.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -11116,7 +11096,7 @@ dependencies = [ name = "pallet-tx-pause" version = "9.0.0" dependencies = [ - "docify 0.2.7", + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -11225,6 +11205,7 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", + "xcm-fee-payment-runtime-api", ] [[package]] @@ -11802,6 +11783,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "enumflags2", "frame-benchmarking", @@ -11901,6 +11883,7 @@ dependencies = [ "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "enumflags2", "frame-benchmarking", @@ -12129,7 +12112,7 @@ version = "7.0.0" dependencies = [ "assert_matches", "bitvec", - "env_logger 0.9.3", + "env_logger 0.11.3", "futures", "futures-timer", "itertools 0.10.5", @@ -12159,7 +12142,7 @@ dependencies = [ "always-assert", "assert_matches", "bitvec", - "env_logger 0.9.3", + "env_logger 0.11.3", "futures", "futures-timer", "log", @@ -12215,7 +12198,7 @@ version = "7.0.0" dependencies = [ "assert_matches", "async-trait", - "env_logger 0.9.3", + "env_logger 0.11.3", "fatality", "futures", "futures-timer", @@ -12277,7 +12260,7 @@ version = "7.0.0" dependencies = [ "assert_matches", "bitvec", - "env_logger 0.9.3", + "env_logger 0.11.3", "fatality", "futures", "futures-timer", @@ -12449,7 +12432,7 @@ dependencies = [ "async-trait", "bitvec", "derive_more", - "env_logger 0.9.3", + "env_logger 0.11.3", "futures", "futures-timer", "itertools 0.10.5", @@ -12491,7 +12474,7 @@ version = "7.0.0" dependencies = [ "assert_matches", "bitvec", - "env_logger 0.9.3", + "env_logger 0.11.3", "futures", "futures-timer", "kvdb", @@ -12933,7 +12916,7 @@ dependencies = [ "rand_chacha 0.3.1", "sc-authority-discovery", "sc-network", - "strum 0.24.1", + "strum 0.26.2", "thiserror", "tracing-gum", ] @@ -13025,7 +13008,7 @@ dependencies = [ "assert_matches", "async-trait", "derive_more", - "env_logger 0.9.3", + "env_logger 0.11.3", "fatality", "futures", "futures-channel", @@ -13404,8 +13387,7 @@ version = "0.0.1" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-parachain-system", - "docify 0.2.7", - "frame", + "docify", "frame-executive", "frame-support", "frame-system", @@ -13423,13 +13405,17 @@ dependencies = [ "pallet-example-single-block-migrations", "pallet-examples", "pallet-multisig", + "pallet-nfts", + "pallet-preimage", "pallet-proxy", "pallet-referenda", "pallet-scheduler", "pallet-timestamp", "pallet-transaction-payment", + "pallet-uniques", "pallet-utility", "parity-scale-codec", + "polkadot-sdk-frame", "sc-cli", "sc-client-db", "sc-consensus-aura", @@ -13459,6 +13445,35 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "polkadot-sdk-frame" +version = "0.1.0" +dependencies = [ + "docify", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log", + "pallet-examples", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-arithmetic", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-grandpa", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std 14.0.0", + "sp-transaction-pool", + "sp-version", +] + [[package]] name = "polkadot-service" version = "7.0.0" @@ -13466,7 +13481,7 @@ dependencies = [ "assert_matches", "async-trait", "bitvec", - "env_logger 0.9.3", + "env_logger 0.11.3", "frame-benchmarking", "frame-benchmarking-cli", "frame-support", @@ -13480,7 +13495,6 @@ dependencies = [ "log", "mmr-gadget", "pallet-babe", - "pallet-im-online", "pallet-staking", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", @@ -13577,12 +13591,14 @@ dependencies = [ "sp-transaction-pool", "sp-version", "sp-weights", + "staging-xcm", "substrate-prometheus-endpoint", "tempfile", "thiserror", "tracing-gum", "westend-runtime", "westend-runtime-constants", + "xcm-fee-payment-runtime-api", ] [[package]] @@ -13641,7 +13657,7 @@ dependencies = [ "clap-num", "color-eyre", "colored", - "env_logger 0.9.3", + "env_logger 0.11.3", "futures", "futures-timer", "hex", @@ -13681,6 +13697,7 @@ dependencies = [ "sc-service", "schnorrkel 0.11.4", "serde", + "serde_json", "serde_yaml", "sha1", "sp-application-crypto", @@ -15056,6 +15073,7 @@ name = "rococo-runtime" version = "7.0.0" dependencies = [ "binary-merkle-tree", + "bitvec", "frame-benchmarking", "frame-executive", "frame-remote-externalities", @@ -15081,7 +15099,6 @@ dependencies = [ "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue", @@ -15129,6 +15146,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-babe", "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", "sp-genesis-builder", "sp-inherents", @@ -15152,6 +15170,7 @@ dependencies = [ "substrate-wasm-builder", "tiny-keccak", "tokio", + "xcm-fee-payment-runtime-api", ] [[package]] @@ -15592,6 +15611,7 @@ dependencies = [ "futures-timer", "ip_network", "libp2p", + "linked_hash_set", "log", "multihash 0.18.1", "multihash-codetable", @@ -15657,10 +15677,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "27.0.0" +version = "28.0.0" dependencies = [ "array-bytes 6.1.0", - "docify 0.2.7", + "docify", "log", "memmap2 0.9.3", "parity-scale-codec", @@ -15681,6 +15701,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "sp-state-machine", + "sp-tracing 16.0.0", "substrate-test-runtime", ] @@ -16173,7 +16194,7 @@ dependencies = [ "array-bytes 6.1.0", "assert_matches", "criterion 0.4.0", - "env_logger 0.9.3", + "env_logger 0.11.3", "num_cpus", "parity-scale-codec", "parking_lot 0.12.1", @@ -16609,7 +16630,7 @@ name = "sc-rpc" version = "29.0.0" dependencies = [ "assert_matches", - "env_logger 0.9.3", + "env_logger 0.11.3", "futures", "jsonrpsee", "log", @@ -16851,7 +16872,7 @@ dependencies = [ name = "sc-statement-store" version = "10.0.0" dependencies = [ - "env_logger 0.9.3", + "env_logger 0.11.3", "log", "parity-db", "parking_lot 0.12.1", @@ -17043,9 +17064,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef2175c2907e7c8bc0a9c3f86aeb5ec1f3b275300ad58a44d0c3ae379a5e52e" +checksum = "788745a868b0e751750388f4e6546eb921ef714a4317fa6954f7cde114eb2eb7" dependencies = [ "bitvec", "cfg-if", @@ -17057,9 +17078,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b8eb8fd61c5cdd3390d9b2132300a7e7618955b98b8416f118c1b4e144f" +checksum = "7dc2f4e8bc344b9fc3d5f74f72c2e55bfc38d28dc2ebc69c194a3df424e4d9ac" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", @@ -17934,7 +17955,7 @@ name = "snowbridge-outbound-queue-merkle-tree" version = "0.3.0" dependencies = [ "array-bytes 4.2.0", - "env_logger 0.9.3", + "env_logger 0.11.3", "hex", "hex-literal", "parity-scale-codec", @@ -18244,12 +18265,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -18437,7 +18458,7 @@ name = "sp-arithmetic" version = "23.0.0" dependencies = [ "criterion 0.4.0", - "docify 0.2.7", + "docify", "integer-sqrt", "num-traits", "parity-scale-codec", @@ -18580,7 +18601,7 @@ dependencies = [ "sp-keystore", "sp-mmr-primitives", "sp-runtime", - "strum 0.24.1", + "strum 0.26.2", "w3f-bls", ] @@ -18750,7 +18771,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" -version = "0.0.0" +version = "0.1.0" dependencies = [ "blake2b_simd", "byteorder", @@ -18764,7 +18785,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" -version = "0.0.0" +version = "0.1.0" dependencies = [ "quote", "sp-crypto-hashing", @@ -18820,8 +18841,10 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.7.0" +version = "0.8.0" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", "sp-api", "sp-runtime", @@ -18871,7 +18894,7 @@ version = "31.0.0" dependencies = [ "sp-core", "sp-runtime", - "strum 0.24.1", + "strum 0.26.2", ] [[package]] @@ -18987,7 +19010,7 @@ dependencies = [ name = "sp-runtime" version = "31.0.1" dependencies = [ - "docify 0.2.7", + "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", @@ -19457,7 +19480,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-chain-spec-builder" -version = "2.0.0" +version = "3.0.0" dependencies = [ "clap 4.5.3", "log", @@ -19552,6 +19575,7 @@ dependencies = [ "sp-core", "sp-crypto-hashing", "sp-externalities 0.25.0", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-keyring", @@ -19757,6 +19781,15 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros 0.26.2", +] + [[package]] name = "strum_macros" version = "0.24.3" @@ -19783,6 +19816,19 @@ dependencies = [ "syn 2.0.53", ] +[[package]] +name = "strum_macros" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.53", +] + [[package]] name = "subkey" version = "9.0.0" @@ -19955,6 +20001,7 @@ dependencies = [ "frame-system", "frame-system-rpc-runtime-api", "futures", + "hex-literal", "log", "pallet-babe", "pallet-balances", @@ -20048,7 +20095,7 @@ dependencies = [ "parity-wasm", "polkavm-linker", "sp-maybe-compressed-blob", - "strum 0.24.1", + "strum 0.26.2", "tempfile", "toml 0.8.8", "walkdir", @@ -20596,9 +20643,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -20608,16 +20655,16 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite 0.2.12", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.6", "tokio-macros", "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", @@ -21930,7 +21977,6 @@ dependencies = [ "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue", @@ -22005,6 +22051,7 @@ dependencies = [ "tiny-keccak", "tokio", "westend-runtime-constants", + "xcm-fee-payment-runtime-api", ] [[package]] @@ -22478,6 +22525,20 @@ dependencies = [ "staging-xcm-executor", ] +[[package]] +name = "xcm-fee-payment-runtime-api" +version = "0.1.0" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std 14.0.0", + "sp-weights", + "staging-xcm", +] + [[package]] name = "xcm-procedural" version = "7.0.0" diff --git a/Cargo.toml b/Cargo.toml index 6c5fd9764eba712858d39f2b2d864046db17dfc3..7f143874f2c6fff6b2ed4e053defa90e7c5499b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,24 +10,24 @@ resolver = "2" members = [ "bridges/bin/runtime-common", + "bridges/chains/chain-asset-hub-rococo", + "bridges/chains/chain-asset-hub-westend", + "bridges/chains/chain-bridge-hub-cumulus", + "bridges/chains/chain-bridge-hub-kusama", + "bridges/chains/chain-bridge-hub-polkadot", + "bridges/chains/chain-bridge-hub-rococo", + "bridges/chains/chain-bridge-hub-westend", + "bridges/chains/chain-kusama", + "bridges/chains/chain-polkadot", + "bridges/chains/chain-polkadot-bulletin", + "bridges/chains/chain-rococo", + "bridges/chains/chain-westend", "bridges/modules/grandpa", "bridges/modules/messages", "bridges/modules/parachains", "bridges/modules/relayers", "bridges/modules/xcm-bridge-hub", "bridges/modules/xcm-bridge-hub-router", - "bridges/primitives/chain-asset-hub-rococo", - "bridges/primitives/chain-asset-hub-westend", - "bridges/primitives/chain-bridge-hub-cumulus", - "bridges/primitives/chain-bridge-hub-kusama", - "bridges/primitives/chain-bridge-hub-polkadot", - "bridges/primitives/chain-bridge-hub-rococo", - "bridges/primitives/chain-bridge-hub-westend", - "bridges/primitives/chain-kusama", - "bridges/primitives/chain-polkadot", - "bridges/primitives/chain-polkadot-bulletin", - "bridges/primitives/chain-rococo", - "bridges/primitives/chain-westend", "bridges/primitives/header-chain", "bridges/primitives/messages", "bridges/primitives/parachains", @@ -214,6 +214,7 @@ members = [ "polkadot/xcm/xcm-builder", "polkadot/xcm/xcm-executor", "polkadot/xcm/xcm-executor/integration-tests", + "polkadot/xcm/xcm-fee-payment-runtime-api", "polkadot/xcm/xcm-simulator", "polkadot/xcm/xcm-simulator/example", "polkadot/xcm/xcm-simulator/fuzzer", @@ -330,6 +331,7 @@ members = [ "substrate/frame/examples/dev-mode", "substrate/frame/examples/frame-crate", "substrate/frame/examples/kitchensink", + "substrate/frame/examples/multi-block-migrations", "substrate/frame/examples/offchain-worker", "substrate/frame/examples/single-block-migrations", "substrate/frame/examples/split", diff --git a/bridges/README.md b/bridges/README.md index a2ce213d2541c346361eb28125a06e3079e1c269..8bfa39841f51e7824d0f1169540342c2bd88b664 100644 --- a/bridges/README.md +++ b/bridges/README.md @@ -38,10 +38,10 @@ cargo test --all ``` Also you can build the repo with [Parity CI Docker -image](https://github.com/paritytech/scripts/tree/master/dockerfiles/bridges-ci): +image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-unified): ```bash -docker pull paritytech/bridges-ci:production +docker pull paritytech/ci-unified:latest mkdir ~/cache chown 1000:1000 ~/cache #processes in the container runs as "nonroot" user with UID 1000 docker run --rm -it -w /shellhere/parity-bridges-common \ @@ -49,7 +49,7 @@ docker run --rm -it -w /shellhere/parity-bridges-common \ -v "$(pwd)":/shellhere/parity-bridges-common \ -e CARGO_HOME=/cache/cargo/ \ -e SCCACHE_DIR=/cache/sccache/ \ - -e CARGO_TARGET_DIR=/cache/target/ paritytech/bridges-ci:production cargo build --all + -e CARGO_TARGET_DIR=/cache/target/ paritytech/ci-unified:latest cargo build --all #artifacts can be found in ~/cache/target ``` diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml index fac88b20ca57901d4116e147bd9363a41ff35e36..67b91a16a302d6214830241082b21c407b04c6d1 100644 --- a/bridges/bin/runtime-common/Cargo.toml +++ b/bridges/bin/runtime-common/Cargo.toml @@ -11,10 +11,10 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } hash-db = { version = "0.16.0", default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } static_assertions = { version = "1.1", optional = true } # Bridge dependencies diff --git a/bridges/bin/runtime-common/src/messages_api.rs b/bridges/bin/runtime-common/src/messages_api.rs index ccf1c754041ed84dc302f0660fdd5bde8dc8d533..7fbdeb366124778b36c77725be8ca8778020be1b 100644 --- a/bridges/bin/runtime-common/src/messages_api.rs +++ b/bridges/bin/runtime-common/src/messages_api.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Parity Bridges Common. If not, see . -//! Helpers for implementing various message-related runtime API mthods. +//! Helpers for implementing various message-related runtime API methods. use bp_messages::{ InboundMessageDetails, LaneId, MessageNonce, MessagePayload, OutboundMessageDetails, diff --git a/bridges/bin/runtime-common/src/messages_xcm_extension.rs b/bridges/bin/runtime-common/src/messages_xcm_extension.rs index e3da6155f08a198d5469adbfc64e40213eddf8eb..46ed4da0d85481fcc7223740084945924f9c710f 100644 --- a/bridges/bin/runtime-common/src/messages_xcm_extension.rs +++ b/bridges/bin/runtime-common/src/messages_xcm_extension.rs @@ -248,7 +248,7 @@ impl LocalXcmQueueManager { sender_and_lane: &SenderAndLane, enqueued_messages: MessageNonce, ) { - // skip if we dont want to handle congestion + // skip if we don't want to handle congestion if !H::supports_congestion_detection() { return } diff --git a/bridges/bin/runtime-common/src/mock.rs b/bridges/bin/runtime-common/src/mock.rs index deee4524e8586d45c01f08126e84b9c619cfeba2..ad71cd0d456d827d3757433d214f7ea794406fca 100644 --- a/bridges/bin/runtime-common/src/mock.rs +++ b/bridges/bin/runtime-common/src/mock.rs @@ -166,7 +166,7 @@ impl pallet_balances::Config for TestRuntime { #[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig)] impl pallet_transaction_payment::Config for TestRuntime { - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = IdentityFee; type LengthToFee = ConstantMultiplier; @@ -379,7 +379,7 @@ impl Chain for BridgedUnderlyingChain { impl ChainWithGrandpa for BridgedUnderlyingChain { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ""; const MAX_AUTHORITIES_COUNT: u32 = 16; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 8; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8; const MAX_MANDATORY_HEADER_SIZE: u32 = 256; const AVERAGE_HEADER_SIZE: u32 = 64; } diff --git a/bridges/bin/runtime-common/src/priority_calculator.rs b/bridges/bin/runtime-common/src/priority_calculator.rs index c2737128e3422dd72ca3b49d66151268d719e0bc..5035553f508dfea94a0cb5ddf9b916dd7d9b4ea5 100644 --- a/bridges/bin/runtime-common/src/priority_calculator.rs +++ b/bridges/bin/runtime-common/src/priority_calculator.rs @@ -163,7 +163,7 @@ mod integrity_tests { { // just an estimation of extra transaction bytes that are added to every transaction // (including signature, signed extensions extra and etc + in our case it includes - // all call arguments extept the proof itself) + // all call arguments except the proof itself) let base_tx_size = 512; // let's say we are relaying similar small messages and for every message we add more trie // nodes to the proof (x0.5 because we expect some nodes to be reused) diff --git a/bridges/bin/runtime-common/src/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/refund_relayer_extension.rs index 8e901d72821fe1dfb749f4227c2875f1d807fccc..455392a0a277f3520cd7f58150f12e7420d36014 100644 --- a/bridges/bin/runtime-common/src/refund_relayer_extension.rs +++ b/bridges/bin/runtime-common/src/refund_relayer_extension.rs @@ -1538,7 +1538,7 @@ mod tests { } #[test] - fn validate_boosts_priority_of_message_delivery_transactons() { + fn validate_boosts_priority_of_message_delivery_transactions() { run_test(|| { initialize_environment(100, 100, 100); @@ -1568,7 +1568,7 @@ mod tests { } #[test] - fn validate_does_not_boost_priority_of_message_delivery_transactons_with_too_many_messages() { + fn validate_does_not_boost_priority_of_message_delivery_transactions_with_too_many_messages() { run_test(|| { initialize_environment(100, 100, 100); diff --git a/bridges/primitives/chain-asset-hub-rococo/Cargo.toml b/bridges/chains/chain-asset-hub-rococo/Cargo.toml similarity index 69% rename from bridges/primitives/chain-asset-hub-rococo/Cargo.toml rename to bridges/chains/chain-asset-hub-rococo/Cargo.toml index 4dfa149e0ea9ab4e0ac1804844a0c128f15bd5bb..9a6419a5b4055be348f4f8813e3c1301f14f7142 100644 --- a/bridges/primitives/chain-asset-hub-rococo/Cargo.toml +++ b/bridges/chains/chain-asset-hub-rococo/Cargo.toml @@ -5,19 +5,20 @@ version = "0.4.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate Dependencies frame-support = { path = "../../../substrate/frame/support", default-features = false } # Bridge Dependencies -bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false } +bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/chain-asset-hub-rococo/src/lib.rs b/bridges/chains/chain-asset-hub-rococo/src/lib.rs similarity index 100% rename from bridges/primitives/chain-asset-hub-rococo/src/lib.rs rename to bridges/chains/chain-asset-hub-rococo/src/lib.rs diff --git a/bridges/primitives/chain-asset-hub-westend/Cargo.toml b/bridges/chains/chain-asset-hub-westend/Cargo.toml similarity index 69% rename from bridges/primitives/chain-asset-hub-westend/Cargo.toml rename to bridges/chains/chain-asset-hub-westend/Cargo.toml index c9bd437562b86a97cdf2807c18b4905e695d1a5e..1c08ee28e417cb50ce9ef9ded5f17163e1bb30d4 100644 --- a/bridges/primitives/chain-asset-hub-westend/Cargo.toml +++ b/bridges/chains/chain-asset-hub-westend/Cargo.toml @@ -5,19 +5,20 @@ version = "0.3.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate Dependencies frame-support = { path = "../../../substrate/frame/support", default-features = false } # Bridge Dependencies -bp-xcm-bridge-hub-router = { path = "../xcm-bridge-hub-router", default-features = false } +bp-xcm-bridge-hub-router = { path = "../../primitives/xcm-bridge-hub-router", default-features = false } [features] default = ["std"] diff --git a/bridges/primitives/chain-asset-hub-westend/src/lib.rs b/bridges/chains/chain-asset-hub-westend/src/lib.rs similarity index 100% rename from bridges/primitives/chain-asset-hub-westend/src/lib.rs rename to bridges/chains/chain-asset-hub-westend/src/lib.rs diff --git a/bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml similarity index 78% rename from bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml rename to bridges/chains/chain-bridge-hub-cumulus/Cargo.toml index d35eefa1c45c3f7cf479dcea2ee4da87dbc31627..4b900002a4d81abb9d7364f555a150a2af6c839c 100644 --- a/bridges/primitives/chain-bridge-hub-cumulus/Cargo.toml +++ b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml @@ -5,6 +5,7 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -12,9 +13,9 @@ workspace = true [dependencies] # Bridge Dependencies -bp-polkadot-core = { path = "../polkadot-core", default-features = false } -bp-messages = { path = "../messages", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } +bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } +bp-messages = { path = "../../primitives/messages", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs b/bridges/chains/chain-bridge-hub-cumulus/src/lib.rs similarity index 100% rename from bridges/primitives/chain-bridge-hub-cumulus/src/lib.rs rename to bridges/chains/chain-bridge-hub-cumulus/src/lib.rs diff --git a/bridges/primitives/chain-bridge-hub-kusama/Cargo.toml b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml similarity index 83% rename from bridges/primitives/chain-bridge-hub-kusama/Cargo.toml rename to bridges/chains/chain-bridge-hub-kusama/Cargo.toml index 8d71b3f5eb7646a81af55c0030814c604ead82ef..ff6dd8849abe3897f1c3eb3cb1de8b7d89af5ca7 100644 --- a/bridges/primitives/chain-bridge-hub-kusama/Cargo.toml +++ b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml @@ -5,6 +5,7 @@ version = "0.6.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -13,8 +14,8 @@ workspace = true # Bridge Dependencies bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } -bp-messages = { path = "../messages", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } +bp-messages = { path = "../../primitives/messages", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-bridge-hub-kusama/src/lib.rs b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs similarity index 100% rename from bridges/primitives/chain-bridge-hub-kusama/src/lib.rs rename to bridges/chains/chain-bridge-hub-kusama/src/lib.rs diff --git a/bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml similarity index 83% rename from bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml rename to bridges/chains/chain-bridge-hub-polkadot/Cargo.toml index 4e89e8a5c9a173bc9a084af9e7c609a6bae287a8..da8b8a82fa702eeab719335fa9968b78ee965163 100644 --- a/bridges/primitives/chain-bridge-hub-polkadot/Cargo.toml +++ b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml @@ -5,6 +5,7 @@ version = "0.6.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -14,8 +15,8 @@ workspace = true # Bridge Dependencies bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } -bp-messages = { path = "../messages", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } +bp-messages = { path = "../../primitives/messages", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-bridge-hub-polkadot/src/lib.rs b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs similarity index 100% rename from bridges/primitives/chain-bridge-hub-polkadot/src/lib.rs rename to bridges/chains/chain-bridge-hub-polkadot/src/lib.rs diff --git a/bridges/primitives/chain-bridge-hub-rococo/Cargo.toml b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml similarity index 83% rename from bridges/primitives/chain-bridge-hub-rococo/Cargo.toml rename to bridges/chains/chain-bridge-hub-rococo/Cargo.toml index 1643d934a982ec0795fc370b221dc35d36d3b492..f7672df012f2fc2a21cfc987468427a3222317ea 100644 --- a/bridges/primitives/chain-bridge-hub-rococo/Cargo.toml +++ b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml @@ -5,6 +5,7 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -13,8 +14,8 @@ workspace = true # Bridge Dependencies bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } -bp-messages = { path = "../messages", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } +bp-messages = { path = "../../primitives/messages", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-bridge-hub-rococo/src/lib.rs b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs similarity index 100% rename from bridges/primitives/chain-bridge-hub-rococo/src/lib.rs rename to bridges/chains/chain-bridge-hub-rococo/src/lib.rs diff --git a/bridges/primitives/chain-bridge-hub-westend/Cargo.toml b/bridges/chains/chain-bridge-hub-westend/Cargo.toml similarity index 83% rename from bridges/primitives/chain-bridge-hub-westend/Cargo.toml rename to bridges/chains/chain-bridge-hub-westend/Cargo.toml index 32a7850c5392fd892ec40e9968fa365ec59cbba3..ec74c4b947d693dba92d4da5051526e49349e0a5 100644 --- a/bridges/primitives/chain-bridge-hub-westend/Cargo.toml +++ b/bridges/chains/chain-bridge-hub-westend/Cargo.toml @@ -5,6 +5,7 @@ version = "0.3.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -14,8 +15,8 @@ workspace = true # Bridge Dependencies bp-bridge-hub-cumulus = { path = "../chain-bridge-hub-cumulus", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } -bp-messages = { path = "../messages", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } +bp-messages = { path = "../../primitives/messages", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-bridge-hub-westend/src/lib.rs b/bridges/chains/chain-bridge-hub-westend/src/lib.rs similarity index 100% rename from bridges/primitives/chain-bridge-hub-westend/src/lib.rs rename to bridges/chains/chain-bridge-hub-westend/src/lib.rs diff --git a/bridges/primitives/chain-kusama/Cargo.toml b/bridges/chains/chain-kusama/Cargo.toml similarity index 71% rename from bridges/primitives/chain-kusama/Cargo.toml rename to bridges/chains/chain-kusama/Cargo.toml index 0660f34602389d1cf9e1ec88b57d1a9aeb9a3830..66061ff2793cbdd3419fa8894ab78e37486102ea 100644 --- a/bridges/primitives/chain-kusama/Cargo.toml +++ b/bridges/chains/chain-kusama/Cargo.toml @@ -5,6 +5,7 @@ version = "0.5.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -13,9 +14,9 @@ workspace = true # Bridge Dependencies -bp-header-chain = { path = "../header-chain", default-features = false } -bp-polkadot-core = { path = "../polkadot-core", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } +bp-header-chain = { path = "../../primitives/header-chain", default-features = false } +bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-kusama/src/lib.rs b/bridges/chains/chain-kusama/src/lib.rs similarity index 95% rename from bridges/primitives/chain-kusama/src/lib.rs rename to bridges/chains/chain-kusama/src/lib.rs index e3b4d0520f61c858b54d78dfa4a45f57bac411fb..a81004afe8127b556211d0207d2bc1f9ecc02955 100644 --- a/bridges/primitives/chain-kusama/src/lib.rs +++ b/bridges/chains/chain-kusama/src/lib.rs @@ -53,8 +53,8 @@ impl Chain for Kusama { impl ChainWithGrandpa for Kusama { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_KUSAMA_GRANDPA_PALLET_NAME; const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = - REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = + REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY; const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE; const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE; } diff --git a/bridges/primitives/chain-polkadot-bulletin/Cargo.toml b/bridges/chains/chain-polkadot-bulletin/Cargo.toml similarity index 68% rename from bridges/primitives/chain-polkadot-bulletin/Cargo.toml rename to bridges/chains/chain-polkadot-bulletin/Cargo.toml index 15c824fcbdb31c2c84f63bd56d4d0b3f90efc5b1..2db16a00e92492e3a167458343a88a24c2186748 100644 --- a/bridges/primitives/chain-polkadot-bulletin/Cargo.toml +++ b/bridges/chains/chain-polkadot-bulletin/Cargo.toml @@ -5,20 +5,21 @@ version = "0.4.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge Dependencies -bp-header-chain = { path = "../header-chain", default-features = false } -bp-messages = { path = "../messages", default-features = false } -bp-polkadot-core = { path = "../polkadot-core", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } +bp-header-chain = { path = "../../primitives/header-chain", default-features = false } +bp-messages = { path = "../../primitives/messages", default-features = false } +bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs b/bridges/chains/chain-polkadot-bulletin/src/lib.rs similarity index 96% rename from bridges/primitives/chain-polkadot-bulletin/src/lib.rs rename to bridges/chains/chain-polkadot-bulletin/src/lib.rs index f2eebf9312470a42e1d3a1c7d67ab8b7a38af189..f3d300567f2b4f92cec272e0929a3c53d718c823 100644 --- a/bridges/primitives/chain-polkadot-bulletin/src/lib.rs +++ b/bridges/chains/chain-polkadot-bulletin/src/lib.rs @@ -43,7 +43,7 @@ use sp_runtime::{traits::DispatchInfoOf, transaction_validity::TransactionValidi pub use bp_polkadot_core::{ AccountAddress, AccountId, Balance, Block, BlockNumber, Hash, Hasher, Header, Nonce, Signature, SignedBlock, UncheckedExtrinsic, AVERAGE_HEADER_SIZE, EXTRA_STORAGE_PROOF_SIZE, - MAX_MANDATORY_HEADER_SIZE, REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY, + MAX_MANDATORY_HEADER_SIZE, REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY, }; /// Maximal number of GRANDPA authorities at Polkadot Bulletin chain. @@ -62,7 +62,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(90); // Re following constants - we are using the same values at Cumulus parachains. They are limited // by the maximal transaction weight/size. Since block limits at Bulletin Chain are larger than -// at the Cumulus Bridgeg Hubs, we could reuse the same values. +// at the Cumulus Bridge Hubs, we could reuse the same values. /// Maximal number of unrewarded relayer entries at inbound lane for Cumulus-based parachains. pub const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 1024; @@ -207,8 +207,8 @@ impl Chain for PolkadotBulletin { impl ChainWithGrandpa for PolkadotBulletin { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_POLKADOT_BULLETIN_GRANDPA_PALLET_NAME; const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = - REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = + REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY; const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE; const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE; } diff --git a/bridges/primitives/chain-polkadot/Cargo.toml b/bridges/chains/chain-polkadot/Cargo.toml similarity index 71% rename from bridges/primitives/chain-polkadot/Cargo.toml rename to bridges/chains/chain-polkadot/Cargo.toml index 6421b7f40106e404eeba04be72f5448fd5f65159..c700935f3083b5f287277c7d9975be53352b2506 100644 --- a/bridges/primitives/chain-polkadot/Cargo.toml +++ b/bridges/chains/chain-polkadot/Cargo.toml @@ -5,6 +5,7 @@ version = "0.5.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -13,9 +14,9 @@ workspace = true # Bridge Dependencies -bp-header-chain = { path = "../header-chain", default-features = false } -bp-polkadot-core = { path = "../polkadot-core", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } +bp-header-chain = { path = "../../primitives/header-chain", default-features = false } +bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-polkadot/src/lib.rs b/bridges/chains/chain-polkadot/src/lib.rs similarity index 95% rename from bridges/primitives/chain-polkadot/src/lib.rs rename to bridges/chains/chain-polkadot/src/lib.rs index fc5e10308a8e33463a74c041f157daaef09cc9c8..00d35783a9b61844bab7701fdb60711125447ca3 100644 --- a/bridges/primitives/chain-polkadot/src/lib.rs +++ b/bridges/chains/chain-polkadot/src/lib.rs @@ -55,8 +55,8 @@ impl Chain for Polkadot { impl ChainWithGrandpa for Polkadot { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_POLKADOT_GRANDPA_PALLET_NAME; const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = - REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = + REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY; const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE; const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE; } diff --git a/bridges/primitives/chain-rococo/Cargo.toml b/bridges/chains/chain-rococo/Cargo.toml similarity index 71% rename from bridges/primitives/chain-rococo/Cargo.toml rename to bridges/chains/chain-rococo/Cargo.toml index de373f0ae64b8d9a8124dbcdfcca3c2bf05e2787..5a5613bb376a5a4f75c773b3350993262149f973 100644 --- a/bridges/primitives/chain-rococo/Cargo.toml +++ b/bridges/chains/chain-rococo/Cargo.toml @@ -5,6 +5,7 @@ version = "0.6.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -13,9 +14,9 @@ workspace = true # Bridge Dependencies -bp-header-chain = { path = "../header-chain", default-features = false } -bp-polkadot-core = { path = "../polkadot-core", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } +bp-header-chain = { path = "../../primitives/header-chain", default-features = false } +bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-rococo/src/lib.rs b/bridges/chains/chain-rococo/src/lib.rs similarity index 95% rename from bridges/primitives/chain-rococo/src/lib.rs rename to bridges/chains/chain-rococo/src/lib.rs index f1b256f0f090f048cc8db3a16c112ed8b938f6ce..2385dd2cbb250181ce5f46aef9f1e76f8fd010d2 100644 --- a/bridges/primitives/chain-rococo/src/lib.rs +++ b/bridges/chains/chain-rococo/src/lib.rs @@ -53,8 +53,8 @@ impl Chain for Rococo { impl ChainWithGrandpa for Rococo { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_ROCOCO_GRANDPA_PALLET_NAME; const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = - REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = + REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY; const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE; const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE; } diff --git a/bridges/primitives/chain-westend/Cargo.toml b/bridges/chains/chain-westend/Cargo.toml similarity index 71% rename from bridges/primitives/chain-westend/Cargo.toml rename to bridges/chains/chain-westend/Cargo.toml index e55a8d649a88b88d84f4f3547c23709cef67d872..10b06d76507ef95bbff00f5560b705ecee1ec4ce 100644 --- a/bridges/primitives/chain-westend/Cargo.toml +++ b/bridges/chains/chain-westend/Cargo.toml @@ -5,6 +5,7 @@ version = "0.3.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -13,9 +14,9 @@ workspace = true # Bridge Dependencies -bp-header-chain = { path = "../header-chain", default-features = false } -bp-polkadot-core = { path = "../polkadot-core", default-features = false } -bp-runtime = { path = "../runtime", default-features = false } +bp-header-chain = { path = "../../primitives/header-chain", default-features = false } +bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } +bp-runtime = { path = "../../primitives/runtime", default-features = false } # Substrate Based Dependencies diff --git a/bridges/primitives/chain-westend/src/lib.rs b/bridges/chains/chain-westend/src/lib.rs similarity index 95% rename from bridges/primitives/chain-westend/src/lib.rs rename to bridges/chains/chain-westend/src/lib.rs index f03fd2160a700eb3817a6feb629e9d366cc366aa..b344b7f4bf93392c08502446513a9ae39296b512 100644 --- a/bridges/primitives/chain-westend/src/lib.rs +++ b/bridges/chains/chain-westend/src/lib.rs @@ -53,8 +53,8 @@ impl Chain for Westend { impl ChainWithGrandpa for Westend { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = WITH_WESTEND_GRANDPA_PALLET_NAME; const MAX_AUTHORITIES_COUNT: u32 = MAX_AUTHORITIES_COUNT; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = - REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = + REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY; const MAX_MANDATORY_HEADER_SIZE: u32 = MAX_MANDATORY_HEADER_SIZE; const AVERAGE_HEADER_SIZE: u32 = AVERAGE_HEADER_SIZE; } diff --git a/bridges/docs/bridge-relayers-claim-rewards.png b/bridges/docs/bridge-relayers-claim-rewards.png new file mode 100644 index 0000000000000000000000000000000000000000..d56b8dd871e8445e7cab49517123b0092ce09137 Binary files /dev/null and b/bridges/docs/bridge-relayers-claim-rewards.png differ diff --git a/bridges/docs/bridge-relayers-deregister.png b/bridges/docs/bridge-relayers-deregister.png new file mode 100644 index 0000000000000000000000000000000000000000..e7706cee78916d7e2bbcfd7ee4a1a046a0450f87 Binary files /dev/null and b/bridges/docs/bridge-relayers-deregister.png differ diff --git a/bridges/docs/bridge-relayers-register.png b/bridges/docs/bridge-relayers-register.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e3e1b5ac87c5c9d31477c696912fcbc93b0c78 Binary files /dev/null and b/bridges/docs/bridge-relayers-register.png differ diff --git a/bridges/docs/running-relayer.md b/bridges/docs/running-relayer.md new file mode 100644 index 0000000000000000000000000000000000000000..710810a476e4df5e4b80fde31f9576be5ad26391 --- /dev/null +++ b/bridges/docs/running-relayer.md @@ -0,0 +1,343 @@ +# Running your own bridge relayer + +:warning: :construction: Please read the [Disclaimer](#disclaimer) section first :construction: :warning: + +## Disclaimer + +There are several things you should know before running your own relayer: + +- initial bridge version (we call it bridges v1) supports any number of relayers, but **there's no guaranteed +compensation** for running a relayer and/or submitting valid bridge transactions. Most probably you'll end up +spending more funds than getting from rewards - please accept this fact; + +- even if your relayer has managed to submit a valid bridge transaction that has been included into the bridge +hub block, there's no guarantee that you will be able to claim your compensation for that transaction. That's +because compensations are paid from the account, controlled by relay chain governance and it could have no funds +to compensate your useful actions. We'll be working on a proper process to resupply it on-time, but we can't +provide any guarantee until that process is well established. + +## A Brief Introduction into Relayers and our Compensations Scheme + +Omitting details, relayer is an offchain process that is connected to both bridged chains. It looks at the +outbound bridge messages queue and submits message delivery transactions to the target chain. There's a lot +of details behind that simple phrase - you could find more info in the +[High-Level Bridge Overview](./high-level-overview.md) document. + +Reward that is paid to relayer has two parts. The first part static and is controlled by the governance. +It is rather small initially - e.g. you need to deliver `10_000` Kusama -> Polkadot messages to gain single +KSM token. + +The other reward part is dynamic. So to deliver an XCM message from one BridgeHub to another, we'll need to +submit two transactions on different chains. Every transaction has its cost, which is: + +- dynamic, because e.g. message size can change and/or fee factor of the target chain may change; + +- quite large, because those transactions are quite heavy (mostly in terms of size, not weight). + +We are compensating the cost of **valid**, **minimal** and **useful** bridge-related transactions to +relayer, that has submitted such transaction. Valid here means that the transaction doesn't fail. Minimal +means that all data within transaction call is actually required for the transaction to succeed. Useful +means that all supplied data in transaction is new and yet unknown to the target chain. + +We have implemented a relayer that is able to craft such transactions. The rest of document contains a detailed +information on how to deploy this software on your own node. + +## Relayers Concurrency + +As it has been said above, we are not compensating cost of transactions that are not **useful**. For +example, if message `100` has already been delivered from Kusama Bridge Hub to Polkadot Bridge Hub, then another +transaction that delivers the same message `100` won't be **useful**. Hence, no compensation to relayer that +has submitted that second transaction. + +But what if there are several relayers running? They are noticing the same queued message `100` and +simultaneously submit identical message delivery transactions. You may expect that there'll be one lucky +relayer, whose transaction would win the "race" and which will receive the compensation and reward. And +there'll be several other relayers, losing some funds on their unuseful transactions. + +But actually, we have a solution that invalidates transactions of "unlucky" relayers before they are +included into the block. So at least you may be sure that you won't waste your funds on duplicate transactions. + +
+Some details? + +All **unuseful** transactions are rejected by our +[transaction extension](https://github.com/paritytech/polkadot-sdk/blob/master/bridges/bin/runtime-common/src/refund_relayer_extension.rs), +which also handles transaction fee compensations. You may find more info on unuseful (aka obsolete) transactions +by lurking in the code. + +We also have the WiP prototype of relayers coordination protocol, where relayers will get some guarantee +that their transactions will be prioritized over other relayers transactions at their assigned slots. +That is planned for the future version of bridge and the progress is +[tracked here](https://github.com/paritytech/parity-bridges-common/issues/2486). + +
+ +## Prerequisites + +Let's focus on the bridge between Polkadot and Kusama Bridge Hubs. Let's also assume that we want to start +a relayer that "serves" an initial lane [`0x00000001`](https://github.com/polkadot-fellows/runtimes/blob/9ce1bbbbcd7843b3c76ba4d43c036bc311959e9f/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs#L54). + +
+Lane? + +Think of lane as a queue of messages that need to be delivered to the other/bridged chain. The lane is +bidirectional, meaning that there are four "endpoints". Two "outbound" endpoints (one at every chain), contain +messages that need to be delivered to the bridged chain. Two "inbound" are accepting messages from the bridged +chain and also remember the relayer, who has delivered message(s) to reward it later. + +
+ +The same steps may be performed for other lanes and bridges as well - you'll just need to change several parameters. + +So to start your relayer instance, you'll need to prepare: + +- an address of ws/wss RPC endpoint of the Kusama relay chain; + +- an address of ws/wss RPC endpoint of the Polkadot relay chain; + +- an address of ws/wss RPC endpoint of the Kusama Bridge Hub chain; + +- an address of ws/wss RPC endpoint of the Polkadot Bridge Hub chain; + +- an account on Kusama Bridge Hub; + +- an account on Polkadot Bridge Hub. + +For RPC endpoints, you could start your own nodes, or use some public community nodes. Nodes are not meant to be +archive or provide access to insecure RPC calls. + +To create an account on Bridge Hubs, you could use XCM teleport functionality. E.g. if you have an account on +the relay chain, you could use the `teleportAssets` call of `xcmPallet` and send asset +`V3 { id: Concrete(0, Here), Fungible: }` to beneficiary `V3(0, X1(AccountId32()))` +on destination `V3(0, X1(Parachain(1002)))`. To estimate amounts you need, please refer to the [Costs](#costs) +section of the document. + +## Registering your Relayer Account (Optional, But Please Read) + +Bridge transactions are quite heavy and expensive. We want to minimize block space that can be occupied by +invalid bridge transactions and prioritize valid transactions over invalid. That is achieved by **optional** +relayer registration. Transactions, signed by relayers with active registration, gain huge priority boost. +In exchange, such relayers may be slashed if they submit **invalid** or **non-minimal** transaction. + +Transactions, signed by relayers **without** active registration, on the other hand, receive no priority +boost. It means that if there is active registered relayer, most likely all transactions from unregistered +will be counted as **unuseful**, not included into the block and unregistered relayer won't get any reward +for his operations. + +Before registering, you should know several things about your funds: + +- to register, you need to hold significant amount of funds on your relayer account. As of now, it is + [100 KSM](https://github.com/polkadot-fellows/runtimes/blob/9ce1bbbbcd7843b3c76ba4d43c036bc311959e9f/system-parachains/bridge-hubs/bridge-hub-kusama/src/bridge_to_polkadot_config.rs#L71C14-L71C43) + for registration on Kusama Bridge Hub and + [500 DOT](https://github.com/polkadot-fellows/runtimes/blob/9ce1bbbbcd7843b3c76ba4d43c036bc311959e9f/system-parachains/bridge-hubs/bridge-hub-polkadot/src/bridge_to_kusama_config.rs#L71C14-L71C43) + for registration on Polkadot Bridge Hub; + +- when you are registered, those funds are reserved on relayer account and you can't transfer them. + +The registration itself, has three states: active, inactive or expired. Initially, it is active, meaning that all +your transactions that are **validated** on top of block, where it is active get priority boost. Registration +becomes expired when the block with the number you have specified during registration is "mined". It is the +`validTill` parameter of the `register` call (see below). After that `validTill` block, you may unregister and get +your reserved funds back. There's also an intermediate point between those blocks - it is the `validTill - LEASE`, +where `LEASE` is the the chain constant, controlled by the governance. Initially it is set to `300` blocks. +All your transactions, **validated** between the `validTill - LEASE` and `validTill` blocks do not get the +priority boost. Also, it is forbidden to specify `validTill` such that the `validTill - currentBlock` is less +than the `LEASE`. + +
+Example? + +| Bridge Hub Block | Registration State | Comment | +| ----------------- | ------------------ | ------------------------------------------------------ | +| 100 | Active | You have submitted a tx with the `register(1000)` call | +| 101 | Active | Your message delivery transactions are boosted | +| 102 | Active | Your message delivery transactions are boosted | +| ... | Active | Your message delivery transactions are boosted | +| 700 | Inactive | Your message delivery transactions are not boosted | +| 701 | Inactive | Your message delivery transactions are not boosted | +| ... | Inactive | Your message delivery transactions are not boosted | +| 1000 | Expired | Your may submit a tx with the `deregister` call | + +
+ +So once you have enough funds on your account and have selected the `validTill` parameter value, you +could use the Polkadot JS apps to submit an extrinsic. If you want priority boost for your transactions +on the Kusama Bridge Hub, open the +[Polkadot JS Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-bridge-hub-rpc.polkadot.io#/extrinsics) +and submit the `register` extrinsic from the `bridgeRelayers` pallet: + +![Register Extrinsic](./bridge-relayers-register.png) + +To deregister, submit the simple `deregister` extrinsic when registration is expired: + +![Deregister Extrinsic](./bridge-relayers-deregister.png) + +At any time, you can prolong your registration by calling the `register` with the larger `validTill`. + +## Costs + +Your relayer account (on both Bridge Hubs) must hold enough funds to be able to pay costs of bridge +transactions. If your relayer behaves correctly, those costs will be compensated and you will be +able to claim it later. + +**IMPORTANT**: you may add tip to your bridge transactions to boost their priority. But our +compensation mechanism never refunds transaction tip, so all tip tokens will be lost. + +
+Types of bridge transactions + +There are two types of bridge transactions: + +- message delivery transaction brings queued message(s) from one Bridge Hub to another. We record + the fact that this specific (your) relayer has delivered those messages; + +- message confirmation transaction confirms that some message have been delivered and also brings + back information on how many messages (your) relayer has delivered. We use this information later + to register delivery rewards on the source chain. + +Several messages/confirmations may be included in a single bridge transaction. Apart from this +data, bridge transaction may include finality and storage proofs, required to prove authenticity of +this data. + +
+ +To deliver and get reward for a single message, the relayer needs to submit two transactions. One +at the source Bridge Hub and one at the target Bridge Hub. Below are costs for Polkadot <> Kusama +messages (as of today): + +- to deliver a single Polkadot -> Kusama message, you would need to pay around `0.06 KSM` at Kusama + Bridge Hub and around `1.62 DOT` at Polkadot Bridge Hub; + +- to deliver a single Kusama -> Polkadot message, you would need to pay around `1.70 DOT` at Polkadot + Bridge Hub and around `0.05 KSM` at Kusama Bridge Hub. + +Those values are not constants - they depend on call weights (that may change from release to release), +on transaction sizes (that depends on message size and chain state) and congestion factor. In any +case - it is your duty to make sure that the relayer has enough funds to pay transaction fees. + +## Claiming your Compensations and Rewards + +Hopefully you have successfully delivered some messages and now can claim your compensation and reward. +This requires submitting several transactions. But first, let's check that you actually have something to +claim. For that, let's check the state of the pallet that tracks all rewards. + +To check your rewards at the Kusama Bridge Hub, go to the +[Polkadot JS Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-bridge-hub-rpc.polkadot.io#/chainstate) +targeting Kusama Bridge Hub, select the `bridgeRelayers` pallet, choose `relayerRewards` map and +your relayer account. Then: + +- set the `laneId` to `0x00000001` + +- set the `bridgedChainId` to `bhpd`; + +- check the both variants of the `owner` field: `ThisChain` is used to pay for message delivery transactions + and `BridgedChain` is used to pay for message confirmation transactions. + +If check shows that you have some rewards, you can craft the claim transaction, with similar parameters. +For that, go to `Extrinsics` tab of the +[Polkadot JS Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-bridge-hub-rpc.polkadot.io#/extrinsics) +and submit the following transaction (make sure to change `owner` before): + +![Claim Rewards Extrinsic](./bridge-relayers-claim-rewards.png) + +To claim rewards on Polkadot Bridge Hub you can follow the same process. The only difference is that you +need to set value of the `bridgedChainId` to `bhks`. + +## Starting your Relayer + +### Starting your Rococo <> Westend Relayer + +You may find the relayer image reference in the +[Releases](https://github.com/paritytech/parity-bridges-common/releases) +of this repository. Make sure to check supported (bundled) versions +of release there. For Rococo <> Westend bridge, normally you may use the +latest published release. The release notes always contain the docker +image reference and source files, required to build relayer manually. + +Once you have the docker image, update variables and run the following script: +```sh +export DOCKER_IMAGE= + +export ROCOCO_HOST= +export ROCOCO_PORT= +# or set it to '--rococo-secure' if wss is used above +export ROCOCO_IS_SECURE= +export BRIDGE_HUB_ROCOCO_HOST= +export BRIDGE_HUB_ROCOCO_PORT= +# or set it to '--bridge-hub-rococo-secure' if wss is used above +export BRIDGE_HUB_ROCOCO_IS_SECURE= +export BRIDGE_HUB_ROCOCO_KEY_FILE= + +export WESTEND_HOST= +export WESTEND_PORT= +# or set it to '--westend-secure' if wss is used above +export WESTEND_IS_SECURE= +export BRIDGE_HUB_WESTEND_HOST= +export BRIDGE_HUB_WESTEND_PORT= +# or set it to '--bridge-hub-westend-secure ' if wss is used above +export BRIDGE_HUB_WESTEND_IS_SECURE= +export BRIDGE_HUB_WESTEND_KEY_FILE= + +# you can get extended relay logs (e.g. for debugging issues) by passing `-e RUST_LOG=bridge=trace` +# argument to the `docker` binary +docker run \ + -v $BRIDGE_HUB_ROCOCO_KEY_FILE:/bhr.key \ + -v $BRIDGE_HUB_WESTEND_KEY_FILE:/bhw.key \ + $DOCKER_IMAGE \ + relay-headers-and-messages bridge-hub-rococo-bridge-hub-westend \ + --rococo-host $ROCOCO_HOST \ + --rococo-port $ROCOCO_PORT \ + $ROCOCO_IS_SECURE \ + --rococo-version-mode Auto \ + --bridge-hub-rococo-host $BRIDGE_HUB_ROCOCO_HOST \ + --bridge-hub-rococo-port $BRIDGE_HUB_ROCOCO_PORT \ + $BRIDGE_HUB_ROCOCO_IS_SECURE \ + --bridge-hub-rococo-version-mode Auto \ + --bridge-hub-rococo-signer-file /bhr.key \ + --bridge-hub-rococo-transactions-mortality 16 \ + --westend-host $WESTEND_HOST \ + --westend-port $WESTEND_PORT \ + $WESTEND_IS_SECURE \ + --westend-version-mode Auto \ + --bridge-hub-westend-host $BRIDGE_HUB_WESTEND_HOST \ + --bridge-hub-westend-port $BRIDGE_HUB_WESTEND_PORT \ + $BRIDGE_HUB_WESTEND_IS_SECURE \ + --bridge-hub-westend-version-mode Auto \ + --bridge-hub-westend-signer-file /bhw.key \ + --bridge-hub-westend-transactions-mortality 16 \ + --lane 00000002 +``` + +### Starting your Polkadot <> Kusama Relayer + +*Work in progress, coming soon* + +### Watching your relayer state + +Our relayer provides some Prometheus metrics that you may convert into some fancy Grafana dashboards +and alerts. By default, metrics are exposed at port `9616`. To expose endpoint to the localhost, change +the docker command by adding following two lines: + +```sh +docker run \ + .. + -p 127.0.0.1:9616:9616 \ # tell Docker to bind container port 9616 to host port 9616 + # and listen for connections on the host' localhost interface + .. + $DOCKER_IMAGE \ + relay-headers-and-messages bridge-hub-rococo-bridge-hub-westend \ + --prometheus-host 0.0.0.0 \ # tell `substrate-relay` binary to accept Prometheus endpoint + # connections from everywhere + .. +``` + +You can find more info on configuring Prometheus and Grafana in the +[Monitor your node](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node) +guide from Polkadot wiki. + +We have our own set of Grafana dashboards and alerts. You may use them for inspiration. +Please find them in this folder: + +- for Rococo <> Westend bridge: [rococo-westend](https://github.com/paritytech/parity-bridges-common/tree/master/deployments/bridges/rococo-westend). + +- for Polkadot <> Kusama bridge: *work in progress, coming soon* diff --git a/bridges/modules/grandpa/Cargo.toml b/bridges/modules/grandpa/Cargo.toml index dccd7b3bdca3533cda4fec82ed0266d0b221b7a7..0db1827211a05f715cd1aed0db93da0f52c9d67c 100644 --- a/bridges/modules/grandpa/Cargo.toml +++ b/bridges/modules/grandpa/Cargo.toml @@ -5,6 +5,7 @@ description = "Module implementing GRANDPA on-chain light client used for bridgi authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -12,10 +13,10 @@ workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } finality-grandpa = { version = "0.16.2", default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge Dependencies diff --git a/bridges/modules/grandpa/README.md b/bridges/modules/grandpa/README.md index 992bd2cc47228249310c56747416b07be6e1e287..4a3099b8afc654bfced296aaa0ead4a5d113eb7f 100644 --- a/bridges/modules/grandpa/README.md +++ b/bridges/modules/grandpa/README.md @@ -10,7 +10,7 @@ It is used by the parachains light client (bridge parachains pallet) and by mess ## A Brief Introduction into GRANDPA Finality You can find detailed information on GRANDPA, by exploring its [repository](https://github.com/paritytech/finality-grandpa). -Here is the minimal reqiuired GRANDPA information to understand how pallet works. +Here is the minimal required GRANDPA information to understand how pallet works. Any Substrate chain may use different block authorship algorithms (like BABE or Aura) to determine block producers and generate blocks. This has nothing common with finality, though - the task of block authorship is to coordinate diff --git a/bridges/modules/grandpa/src/call_ext.rs b/bridges/modules/grandpa/src/call_ext.rs index e3c778b480baa51a8b9e5d04564ac54bc7a68a21..4a7ebb3cc8d42d7cb9d97d5c6990bb33658416bd 100644 --- a/bridges/modules/grandpa/src/call_ext.rs +++ b/bridges/modules/grandpa/src/call_ext.rs @@ -205,7 +205,7 @@ pub(crate) fn submit_finality_proof_info_from_args, I: 'static>( // as an extra weight. let votes_ancestries_len = justification.votes_ancestries.len().saturated_into(); let extra_weight = - if votes_ancestries_len > T::BridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY { + if votes_ancestries_len > T::BridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY { T::WeightInfo::submit_finality_proof(precommits_len, votes_ancestries_len) } else { Weight::zero() @@ -396,11 +396,11 @@ mod tests { let finality_target = test_header(1); let mut justification_params = JustificationGeneratorParams { header: finality_target.clone(), - ancestors: TestBridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY, + ancestors: TestBridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY, ..Default::default() }; - // when there are `REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY` headers => no refund + // when there are `REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY` headers => no refund let justification = make_justification_for_header(justification_params.clone()); let call = RuntimeCall::Grandpa(crate::Call::submit_finality_proof_ex { finality_target: Box::new(finality_target.clone()), @@ -409,7 +409,7 @@ mod tests { }); assert_eq!(call.submit_finality_proof_info().unwrap().extra_weight, Weight::zero()); - // when there are `REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY + 1` headers => full refund + // when there are `REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY + 1` headers => full refund justification_params.ancestors += 1; let justification = make_justification_for_header(justification_params); let call_weight = ::WeightInfo::submit_finality_proof( diff --git a/bridges/modules/grandpa/src/lib.rs b/bridges/modules/grandpa/src/lib.rs index ce2c47da954fa46efc4c70e9608864735fa16277..9e095651ef81da1e5418d7532ae56ae0fb8ef564 100644 --- a/bridges/modules/grandpa/src/lib.rs +++ b/bridges/modules/grandpa/src/lib.rs @@ -935,7 +935,7 @@ mod tests { } #[test] - fn succesfully_imports_header_with_valid_finality() { + fn successfully_imports_header_with_valid_finality() { run_test(|| { initialize_substrate_bridge(); @@ -1192,7 +1192,7 @@ mod tests { header.digest = change_log(0); let justification = make_justification_for_header(JustificationGeneratorParams { header: header.clone(), - ancestors: TestBridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY + 1, + ancestors: TestBridgedChain::REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY + 1, ..Default::default() }); diff --git a/bridges/modules/grandpa/src/mock.rs b/bridges/modules/grandpa/src/mock.rs index 4318d663a2e17fe80199830d443f5b6a85fae441..e689e520c92ffcb230a83f7a728722a688729417 100644 --- a/bridges/modules/grandpa/src/mock.rs +++ b/bridges/modules/grandpa/src/mock.rs @@ -87,7 +87,7 @@ impl Chain for TestBridgedChain { impl ChainWithGrandpa for TestBridgedChain { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ""; const MAX_AUTHORITIES_COUNT: u32 = MAX_BRIDGED_AUTHORITIES; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 8; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8; const MAX_MANDATORY_HEADER_SIZE: u32 = 256; const AVERAGE_HEADER_SIZE: u32 = 64; } diff --git a/bridges/modules/messages/Cargo.toml b/bridges/modules/messages/Cargo.toml index 173d6f1c16448517b7051cfba2f96625ff3d525a..df5b92db7402bd048b1afca9c13cfb1dddc74863 100644 --- a/bridges/modules/messages/Cargo.toml +++ b/bridges/modules/messages/Cargo.toml @@ -5,15 +5,16 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } log = { workspace = true } num-traits = { version = "0.2", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge dependencies diff --git a/bridges/modules/messages/src/inbound_lane.rs b/bridges/modules/messages/src/inbound_lane.rs index 966ec939e70e22e830ee30157d2d7da74d59733c..da1698e6e0370f9f84ca8dd53bc1ebc99f696017 100644 --- a/bridges/modules/messages/src/inbound_lane.rs +++ b/bridges/modules/messages/src/inbound_lane.rs @@ -21,7 +21,7 @@ use crate::Config; use bp_messages::{ target_chain::{DispatchMessage, DispatchMessageData, MessageDispatch}, DeliveredMessages, InboundLaneData, LaneId, MessageKey, MessageNonce, OutboundLaneData, - ReceivalResult, UnrewardedRelayer, + ReceptionResult, UnrewardedRelayer, }; use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; use frame_support::traits::Get; @@ -170,21 +170,21 @@ impl InboundLane { relayer_at_bridged_chain: &S::Relayer, nonce: MessageNonce, message_data: DispatchMessageData, - ) -> ReceivalResult { + ) -> ReceptionResult { let mut data = self.storage.get_or_init_data(); if Some(nonce) != data.last_delivered_nonce().checked_add(1) { - return ReceivalResult::InvalidNonce + return ReceptionResult::InvalidNonce } // if there are more unrewarded relayer entries than we may accept, reject this message if data.relayers.len() as MessageNonce >= self.storage.max_unrewarded_relayer_entries() { - return ReceivalResult::TooManyUnrewardedRelayers + return ReceptionResult::TooManyUnrewardedRelayers } // if there are more unconfirmed messages than we may accept, reject this message let unconfirmed_messages_count = nonce.saturating_sub(data.last_confirmed_nonce); if unconfirmed_messages_count > self.storage.max_unconfirmed_messages() { - return ReceivalResult::TooManyUnconfirmedMessages + return ReceptionResult::TooManyUnconfirmedMessages } // then, dispatch message @@ -207,7 +207,7 @@ impl InboundLane { }; self.storage.set_data(data); - ReceivalResult::Dispatched(dispatch_result) + ReceptionResult::Dispatched(dispatch_result) } } @@ -235,7 +235,7 @@ mod tests { nonce, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); } @@ -362,7 +362,7 @@ mod tests { 10, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::InvalidNonce + ReceptionResult::InvalidNonce ); assert_eq!(lane.storage.get_or_init_data().last_delivered_nonce(), 0); }); @@ -381,7 +381,7 @@ mod tests { current_nonce, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); } // Fails to dispatch new message from different than latest relayer. @@ -391,7 +391,7 @@ mod tests { max_nonce + 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::TooManyUnrewardedRelayers, + ReceptionResult::TooManyUnrewardedRelayers, ); // Fails to dispatch new messages from latest relayer. Prevents griefing attacks. assert_eq!( @@ -400,7 +400,7 @@ mod tests { max_nonce + 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::TooManyUnrewardedRelayers, + ReceptionResult::TooManyUnrewardedRelayers, ); }); } @@ -417,7 +417,7 @@ mod tests { current_nonce, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); } // Fails to dispatch new message from different than latest relayer. @@ -427,7 +427,7 @@ mod tests { max_nonce + 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::TooManyUnconfirmedMessages, + ReceptionResult::TooManyUnconfirmedMessages, ); // Fails to dispatch new messages from latest relayer. assert_eq!( @@ -436,7 +436,7 @@ mod tests { max_nonce + 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::TooManyUnconfirmedMessages, + ReceptionResult::TooManyUnconfirmedMessages, ); }); } @@ -451,7 +451,7 @@ mod tests { 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); assert_eq!( lane.receive_message::( @@ -459,7 +459,7 @@ mod tests { 2, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); assert_eq!( lane.receive_message::( @@ -467,7 +467,7 @@ mod tests { 3, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); assert_eq!( lane.storage.get_or_init_data().relayers, @@ -490,7 +490,7 @@ mod tests { 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::Dispatched(dispatch_result(0)) + ReceptionResult::Dispatched(dispatch_result(0)) ); assert_eq!( lane.receive_message::( @@ -498,7 +498,7 @@ mod tests { 1, inbound_message_data(REGULAR_PAYLOAD) ), - ReceivalResult::InvalidNonce, + ReceptionResult::InvalidNonce, ); }); } @@ -524,7 +524,7 @@ mod tests { 1, inbound_message_data(payload) ), - ReceivalResult::Dispatched(dispatch_result(1)) + ReceptionResult::Dispatched(dispatch_result(1)) ); }); } diff --git a/bridges/modules/messages/src/lib.rs b/bridges/modules/messages/src/lib.rs index a86cb326cf0404512b7fe6ad0aa2a696ff7d0a47..bc00db9eba5ba12dbdaa0de7008f293a727a7ef5 100644 --- a/bridges/modules/messages/src/lib.rs +++ b/bridges/modules/messages/src/lib.rs @@ -47,7 +47,7 @@ pub use weights_ext::{ use crate::{ inbound_lane::{InboundLane, InboundLaneStorage}, - outbound_lane::{OutboundLane, OutboundLaneStorage, ReceivalConfirmationError}, + outbound_lane::{OutboundLane, OutboundLaneStorage, ReceptionConfirmationError}, }; use bp_messages::{ @@ -90,7 +90,7 @@ pub const LOG_TARGET: &str = "runtime::bridge-messages"; #[frame_support::pallet] pub mod pallet { use super::*; - use bp_messages::{ReceivalResult, ReceivedMessages}; + use bp_messages::{ReceivedMessages, ReceptionResult}; use bp_runtime::RangeInclusiveExt; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; @@ -376,13 +376,13 @@ pub mod pallet { // delivery transaction cost anyway. And base cost covers everything except // dispatch, so we have a balance here. let unspent_weight = match &receival_result { - ReceivalResult::Dispatched(dispatch_result) => { + ReceptionResult::Dispatched(dispatch_result) => { valid_messages += 1; dispatch_result.unspent_weight }, - ReceivalResult::InvalidNonce | - ReceivalResult::TooManyUnrewardedRelayers | - ReceivalResult::TooManyUnconfirmedMessages => message_dispatch_weight, + ReceptionResult::InvalidNonce | + ReceptionResult::TooManyUnrewardedRelayers | + ReceptionResult::TooManyUnconfirmedMessages => message_dispatch_weight, }; lane_messages_received_status.push(message.key.nonce, receival_result); @@ -455,7 +455,7 @@ pub mod pallet { last_delivered_nonce, &lane_data.relayers, ) - .map_err(Error::::ReceivalConfirmation)?; + .map_err(Error::::ReceptionConfirmation)?; if let Some(confirmed_messages) = confirmed_messages { // emit 'delivered' event @@ -563,7 +563,7 @@ pub mod pallet { /// The message someone is trying to work with (i.e. increase fee) is not yet sent. MessageIsNotYetSent, /// Error confirming messages receival. - ReceivalConfirmation(ReceivalConfirmationError), + ReceptionConfirmation(ReceptionConfirmationError), /// Error generated by the `OwnedBridgeModule` trait. BridgeModule(bp_runtime::OwnedBridgeModuleError), } @@ -923,7 +923,7 @@ mod tests { PAYLOAD_REJECTED_BY_TARGET_CHAIN, REGULAR_PAYLOAD, TEST_LANE_ID, TEST_LANE_ID_2, TEST_LANE_ID_3, TEST_RELAYER_A, TEST_RELAYER_B, }, - outbound_lane::ReceivalConfirmationError, + outbound_lane::ReceptionConfirmationError, }; use bp_messages::{ source_chain::MessagesBridge, BridgeMessagesCall, UnrewardedRelayer, @@ -950,11 +950,11 @@ mod tests { let outbound_lane = outbound_lane::(lane_id); let message_nonce = outbound_lane.data().latest_generated_nonce + 1; - let prev_enqueud_messages = outbound_lane.data().queued_messages().saturating_len(); + let prev_enqueued_messages = outbound_lane.data().queued_messages().saturating_len(); let valid_message = Pallet::::validate_message(lane_id, ®ULAR_PAYLOAD) .expect("validate_message has failed"); let artifacts = Pallet::::send_message(valid_message); - assert_eq!(artifacts.enqueued_messages, prev_enqueud_messages + 1); + assert_eq!(artifacts.enqueued_messages, prev_enqueued_messages + 1); // check event with assigned nonce assert_eq!( @@ -1541,7 +1541,7 @@ mod tests { } #[test] - fn actual_dispatch_weight_does_not_overlow() { + fn actual_dispatch_weight_does_not_overflow() { run_test(|| { let message1 = message(1, message_payload(0, u64::MAX / 2)); let message2 = message(2, message_payload(0, u64::MAX / 2)); @@ -1775,7 +1775,7 @@ mod tests { // returns `last_confirmed_nonce`; // 3) it means that we're going to confirm delivery of messages 1..=1; // 4) so the number of declared messages (see `UnrewardedRelayersState`) is `0` and - // numer of actually confirmed messages is `1`. + // number of actually confirmed messages is `1`. assert_noop!( Pallet::::receive_messages_delivery_proof( RuntimeOrigin::signed(1), @@ -1785,8 +1785,8 @@ mod tests { ))), UnrewardedRelayersState { last_delivered_nonce: 1, ..Default::default() }, ), - Error::::ReceivalConfirmation( - ReceivalConfirmationError::TryingToConfirmMoreMessagesThanExpected + Error::::ReceptionConfirmation( + ReceptionConfirmationError::TryingToConfirmMoreMessagesThanExpected ), ); }); diff --git a/bridges/modules/messages/src/outbound_lane.rs b/bridges/modules/messages/src/outbound_lane.rs index 431c2cfb7eef3e8dd48e49c6ac37153ae64d57b6..acef5546d2a64fa8a3fb38c6b41ae30819cdeaa2 100644 --- a/bridges/modules/messages/src/outbound_lane.rs +++ b/bridges/modules/messages/src/outbound_lane.rs @@ -53,7 +53,7 @@ pub type StoredMessagePayload = BoundedVec>::MaximalOu /// Result of messages receival confirmation. #[derive(Encode, Decode, RuntimeDebug, PartialEq, Eq, PalletError, TypeInfo)] -pub enum ReceivalConfirmationError { +pub enum ReceptionConfirmationError { /// Bridged chain is trying to confirm more messages than we have generated. May be a result /// of invalid bridged chain storage. FailedToConfirmFutureMessages, @@ -103,7 +103,7 @@ impl OutboundLane { max_allowed_messages: MessageNonce, latest_delivered_nonce: MessageNonce, relayers: &VecDeque>, - ) -> Result, ReceivalConfirmationError> { + ) -> Result, ReceptionConfirmationError> { let mut data = self.storage.data(); let confirmed_messages = DeliveredMessages { begin: data.latest_received_nonce.saturating_add(1), @@ -113,7 +113,7 @@ impl OutboundLane { return Ok(None) } if confirmed_messages.end > data.latest_generated_nonce { - return Err(ReceivalConfirmationError::FailedToConfirmFutureMessages) + return Err(ReceptionConfirmationError::FailedToConfirmFutureMessages) } if confirmed_messages.total_messages() > max_allowed_messages { // that the relayer has declared correct number of messages that the proof contains (it @@ -127,7 +127,7 @@ impl OutboundLane { confirmed_messages.total_messages(), max_allowed_messages, ); - return Err(ReceivalConfirmationError::TryingToConfirmMoreMessagesThanExpected) + return Err(ReceptionConfirmationError::TryingToConfirmMoreMessagesThanExpected) } ensure_unrewarded_relayers_are_correct(confirmed_messages.end, relayers)?; @@ -176,24 +176,24 @@ impl OutboundLane { fn ensure_unrewarded_relayers_are_correct( latest_received_nonce: MessageNonce, relayers: &VecDeque>, -) -> Result<(), ReceivalConfirmationError> { +) -> Result<(), ReceptionConfirmationError> { let mut expected_entry_begin = relayers.front().map(|entry| entry.messages.begin); for entry in relayers { // unrewarded relayer entry must have at least 1 unconfirmed message // (guaranteed by the `InboundLane::receive_message()`) if entry.messages.end < entry.messages.begin { - return Err(ReceivalConfirmationError::EmptyUnrewardedRelayerEntry) + return Err(ReceptionConfirmationError::EmptyUnrewardedRelayerEntry) } // every entry must confirm range of messages that follows previous entry range // (guaranteed by the `InboundLane::receive_message()`) if expected_entry_begin != Some(entry.messages.begin) { - return Err(ReceivalConfirmationError::NonConsecutiveUnrewardedRelayerEntries) + return Err(ReceptionConfirmationError::NonConsecutiveUnrewardedRelayerEntries) } expected_entry_begin = entry.messages.end.checked_add(1); // entry can't confirm messages larger than `inbound_lane_data.latest_received_nonce()` // (guaranteed by the `InboundLane::receive_message()`) if entry.messages.end > latest_received_nonce { - return Err(ReceivalConfirmationError::FailedToConfirmFutureMessages) + return Err(ReceptionConfirmationError::FailedToConfirmFutureMessages) } } @@ -228,7 +228,7 @@ mod tests { fn assert_3_messages_confirmation_fails( latest_received_nonce: MessageNonce, relayers: &VecDeque>, - ) -> Result, ReceivalConfirmationError> { + ) -> Result, ReceptionConfirmationError> { run_test(|| { let mut lane = outbound_lane::(TEST_LANE_ID); lane.send_message(outbound_message_data(REGULAR_PAYLOAD)); @@ -299,7 +299,7 @@ mod tests { fn confirm_delivery_rejects_nonce_larger_than_last_generated() { assert_eq!( assert_3_messages_confirmation_fails(10, &unrewarded_relayers(1..=10),), - Err(ReceivalConfirmationError::FailedToConfirmFutureMessages), + Err(ReceptionConfirmationError::FailedToConfirmFutureMessages), ); } @@ -314,7 +314,7 @@ mod tests { .chain(unrewarded_relayers(3..=3).into_iter()) .collect(), ), - Err(ReceivalConfirmationError::FailedToConfirmFutureMessages), + Err(ReceptionConfirmationError::FailedToConfirmFutureMessages), ); } @@ -330,7 +330,7 @@ mod tests { .chain(unrewarded_relayers(2..=3).into_iter()) .collect(), ), - Err(ReceivalConfirmationError::EmptyUnrewardedRelayerEntry), + Err(ReceptionConfirmationError::EmptyUnrewardedRelayerEntry), ); } @@ -345,7 +345,7 @@ mod tests { .chain(unrewarded_relayers(2..=2).into_iter()) .collect(), ), - Err(ReceivalConfirmationError::NonConsecutiveUnrewardedRelayerEntries), + Err(ReceptionConfirmationError::NonConsecutiveUnrewardedRelayerEntries), ); } @@ -409,11 +409,11 @@ mod tests { lane.send_message(outbound_message_data(REGULAR_PAYLOAD)); assert_eq!( lane.confirm_delivery(0, 3, &unrewarded_relayers(1..=3)), - Err(ReceivalConfirmationError::TryingToConfirmMoreMessagesThanExpected), + Err(ReceptionConfirmationError::TryingToConfirmMoreMessagesThanExpected), ); assert_eq!( lane.confirm_delivery(2, 3, &unrewarded_relayers(1..=3)), - Err(ReceivalConfirmationError::TryingToConfirmMoreMessagesThanExpected), + Err(ReceptionConfirmationError::TryingToConfirmMoreMessagesThanExpected), ); assert_eq!( lane.confirm_delivery(3, 3, &unrewarded_relayers(1..=3)), diff --git a/bridges/modules/parachains/Cargo.toml b/bridges/modules/parachains/Cargo.toml index e454a6f2888fa169a0b0795101172b2f260b4020..35213be0674a8c8d31de79afb720fbf457f3445a 100644 --- a/bridges/modules/parachains/Cargo.toml +++ b/bridges/modules/parachains/Cargo.toml @@ -5,14 +5,15 @@ description = "Module that allows bridged relay chains to exchange information o authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge Dependencies diff --git a/bridges/modules/parachains/src/mock.rs b/bridges/modules/parachains/src/mock.rs index 3af3fd3e76398eaefdb7a9380344371ec44d27d7..d9cbabf850ec99ee13baa0f8bfc013b1192bd000 100644 --- a/bridges/modules/parachains/src/mock.rs +++ b/bridges/modules/parachains/src/mock.rs @@ -261,7 +261,7 @@ impl Chain for TestBridgedChain { impl ChainWithGrandpa for TestBridgedChain { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ""; const MAX_AUTHORITIES_COUNT: u32 = 16; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 8; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8; const MAX_MANDATORY_HEADER_SIZE: u32 = 256; const AVERAGE_HEADER_SIZE: u32 = 64; } @@ -294,7 +294,7 @@ impl Chain for OtherBridgedChain { impl ChainWithGrandpa for OtherBridgedChain { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ""; const MAX_AUTHORITIES_COUNT: u32 = 16; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 8; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8; const MAX_MANDATORY_HEADER_SIZE: u32 = 256; const AVERAGE_HEADER_SIZE: u32 = 64; } diff --git a/bridges/modules/relayers/Cargo.toml b/bridges/modules/relayers/Cargo.toml index b78da5cbeeca65a4f448cbc38928894d51e8f7b4..e2b7aca92249c19096bf129be6fab1be08a5357a 100644 --- a/bridges/modules/relayers/Cargo.toml +++ b/bridges/modules/relayers/Cargo.toml @@ -5,14 +5,15 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge dependencies diff --git a/bridges/modules/xcm-bridge-hub-router/Cargo.toml b/bridges/modules/xcm-bridge-hub-router/Cargo.toml index 20f8ff4407b2ad9882c64b334fa557a6c7dc4ef2..06f2a339bed9d07b5615ca047177228d6585cfc2 100644 --- a/bridges/modules/xcm-bridge-hub-router/Cargo.toml +++ b/bridges/modules/xcm-bridge-hub-router/Cargo.toml @@ -5,14 +5,15 @@ version = "0.5.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["bit-vec", "derive", "serde"] } +scale-info = { version = "2.11.1", default-features = false, features = ["bit-vec", "derive", "serde"] } # Bridge dependencies diff --git a/bridges/modules/xcm-bridge-hub-router/src/lib.rs b/bridges/modules/xcm-bridge-hub-router/src/lib.rs index f219be78f9e1b5469fb752eed3f662c954d0ec42..5d0be41b1b5588e3ddc8c6306c9bf83ec29d6056 100644 --- a/bridges/modules/xcm-bridge-hub-router/src/lib.rs +++ b/bridges/modules/xcm-bridge-hub-router/src/lib.rs @@ -427,7 +427,7 @@ mod tests { run_test(|| { Bridge::::put(uncongested_bridge(FixedU128::from_rational(125, 100))); - // it shold eventually decreased to one + // it should eventually decreased to one while XcmBridgeHubRouter::bridge().delivery_fee_factor > MINIMAL_DELIVERY_FEE_FACTOR { XcmBridgeHubRouter::on_initialize(One::one()); } diff --git a/bridges/modules/xcm-bridge-hub/Cargo.toml b/bridges/modules/xcm-bridge-hub/Cargo.toml index e10119e864953f1777c43151092ae43a5e594b8c..4483a3790900f975030e8c820f9b42442a747262 100644 --- a/bridges/modules/xcm-bridge-hub/Cargo.toml +++ b/bridges/modules/xcm-bridge-hub/Cargo.toml @@ -1,18 +1,19 @@ [package] name = "pallet-xcm-bridge-hub" -description = "Module that adds dynamic bridges/lanes support to XCM infrastucture at the bridge hub." +description = "Module that adds dynamic bridges/lanes support to XCM infrastructure at the bridge hub." version = "0.2.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge Dependencies bp-messages = { path = "../../primitives/messages", default-features = false } diff --git a/bridges/primitives/header-chain/Cargo.toml b/bridges/primitives/header-chain/Cargo.toml index 205b593365ef8216a2e501e5751303185d4f7537..f7a61a9ff32bd42f4199859834b6296aeaa18f4a 100644 --- a/bridges/primitives/header-chain/Cargo.toml +++ b/bridges/primitives/header-chain/Cargo.toml @@ -5,14 +5,15 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } finality-grandpa = { version = "0.16.2", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } serde = { features = ["alloc", "derive"], workspace = true } # Bridge dependencies diff --git a/bridges/primitives/header-chain/src/justification/mod.rs b/bridges/primitives/header-chain/src/justification/mod.rs index b32d8bdb5f1d8ce05722c938a083d7f582139835..d7c2cbf429e2b01efe4a9ea2481e66e2857d0044 100644 --- a/bridges/primitives/header-chain/src/justification/mod.rs +++ b/bridges/primitives/header-chain/src/justification/mod.rs @@ -83,7 +83,7 @@ impl GrandpaJustification { .saturating_add(HashOf::::max_encoded_len().saturated_into()); let max_expected_votes_ancestries_size = - C::REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY.saturating_mul(C::AVERAGE_HEADER_SIZE); + C::REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY.saturating_mul(C::AVERAGE_HEADER_SIZE); // justification is round number (u64=8b), a signed GRANDPA commit and the // `votes_ancestries` vector diff --git a/bridges/primitives/header-chain/src/justification/verification/mod.rs b/bridges/primitives/header-chain/src/justification/verification/mod.rs index c71149bf9c28e350fb43429623ca47cd367b9091..9df3511e1035ef769e5ef6c373253161be041efb 100644 --- a/bridges/primitives/header-chain/src/justification/verification/mod.rs +++ b/bridges/primitives/header-chain/src/justification/verification/mod.rs @@ -318,7 +318,7 @@ trait JustificationVerifier { } // check that the cumulative weight of validators that voted for the justification target - // (or one of its descendents) is larger than the required threshold. + // (or one of its descendants) is larger than the required threshold. if cumulative_weight < threshold { return Err(Error::TooLowCumulativeWeight) } diff --git a/bridges/primitives/header-chain/src/lib.rs b/bridges/primitives/header-chain/src/lib.rs index 84a6a881a835b8afc3b5cde8992df1733859d29a..98fb9ff83d8335fc04fbce7f9e566c73d15752a8 100644 --- a/bridges/primitives/header-chain/src/lib.rs +++ b/bridges/primitives/header-chain/src/lib.rs @@ -283,7 +283,7 @@ pub trait ChainWithGrandpa: Chain { /// ancestry and the pallet will accept such justification. The limit is only used to compute /// maximal refund amount and submitting justifications which exceed the limit, may be costly /// to submitter. - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32; /// Maximal size of the mandatory chain header. Mandatory header is the header that enacts new /// GRANDPA authorities set (so it has large digest inside). @@ -317,8 +317,8 @@ where const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ::WITH_CHAIN_GRANDPA_PALLET_NAME; const MAX_AUTHORITIES_COUNT: u32 = ::MAX_AUTHORITIES_COUNT; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = - ::REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = + ::REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY; const MAX_MANDATORY_HEADER_SIZE: u32 = ::MAX_MANDATORY_HEADER_SIZE; const AVERAGE_HEADER_SIZE: u32 = ::AVERAGE_HEADER_SIZE; @@ -373,7 +373,7 @@ mod tests { impl ChainWithGrandpa for TestChain { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = "Test"; const MAX_AUTHORITIES_COUNT: u32 = 128; - const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 2; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 2; const MAX_MANDATORY_HEADER_SIZE: u32 = 100_000; const AVERAGE_HEADER_SIZE: u32 = 1_024; } diff --git a/bridges/primitives/messages/Cargo.toml b/bridges/primitives/messages/Cargo.toml index 8aa6b4b05e5efb2427a8548e91ec5f47ab494968..d41acfb9d32863d14e56e095755791a420fd3ce6 100644 --- a/bridges/primitives/messages/Cargo.toml +++ b/bridges/primitives/messages/Cargo.toml @@ -5,13 +5,14 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["bit-vec", "derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["bit-vec", "derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["bit-vec", "derive"] } serde = { features = ["alloc", "derive"], workspace = true } # Bridge dependencies diff --git a/bridges/primitives/messages/src/lib.rs b/bridges/primitives/messages/src/lib.rs index 51b3f25f7151867b52e8e5f49bc70b0a3632c05e..c3f79b3ee388c4584def56056f6cdf6328032e18 100644 --- a/bridges/primitives/messages/src/lib.rs +++ b/bridges/primitives/messages/src/lib.rs @@ -289,27 +289,27 @@ pub struct ReceivedMessages { /// Id of the lane which is receiving messages. pub lane: LaneId, /// Result of messages which we tried to dispatch - pub receive_results: Vec<(MessageNonce, ReceivalResult)>, + pub receive_results: Vec<(MessageNonce, ReceptionResult)>, } impl ReceivedMessages { /// Creates new `ReceivedMessages` structure from given results. pub fn new( lane: LaneId, - receive_results: Vec<(MessageNonce, ReceivalResult)>, + receive_results: Vec<(MessageNonce, ReceptionResult)>, ) -> Self { ReceivedMessages { lane, receive_results } } /// Push `result` of the `message` delivery onto `receive_results` vector. - pub fn push(&mut self, message: MessageNonce, result: ReceivalResult) { + pub fn push(&mut self, message: MessageNonce, result: ReceptionResult) { self.receive_results.push((message, result)); } } /// Result of single message receival. #[derive(RuntimeDebug, Encode, Decode, PartialEq, Eq, Clone, TypeInfo)] -pub enum ReceivalResult { +pub enum ReceptionResult { /// Message has been received and dispatched. Note that we don't care whether dispatch has /// been successful or not - in both case message falls into this category. /// diff --git a/bridges/primitives/parachains/Cargo.toml b/bridges/primitives/parachains/Cargo.toml index 575f26193eb68643c5c0a5fe6376d8b735ee2840..2e7000b86a5e4ba21ccadf74b1c2d5374db5c545 100644 --- a/bridges/primitives/parachains/Cargo.toml +++ b/bridges/primitives/parachains/Cargo.toml @@ -5,14 +5,15 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } impl-trait-for-tuples = "0.2" -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Bridge dependencies diff --git a/bridges/primitives/polkadot-core/Cargo.toml b/bridges/primitives/polkadot-core/Cargo.toml index c0dae684b5f2f3b7b9be096a808fc67d15dadfcf..53b1e574cb1997e556f17b7f21f6a28d9eb84400 100644 --- a/bridges/primitives/polkadot-core/Cargo.toml +++ b/bridges/primitives/polkadot-core/Cargo.toml @@ -5,14 +5,15 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] } parity-util-mem = { version = "0.12.0", optional = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } serde = { optional = true, features = ["derive"], workspace = true, default-features = true } # Bridge Dependencies diff --git a/bridges/primitives/polkadot-core/src/lib.rs b/bridges/primitives/polkadot-core/src/lib.rs index df2836495bbe131e9cf810c43eb4af5eefaf43b7..e83be59b23890036905ae1abb441c454c2ce29a5 100644 --- a/bridges/primitives/polkadot-core/src/lib.rs +++ b/bridges/primitives/polkadot-core/src/lib.rs @@ -71,7 +71,7 @@ pub const MAX_AUTHORITIES_COUNT: u32 = 1_256; /// justifications with any additional headers in votes ancestry, so reasonable headers may /// be set to zero. But we assume that there may be small GRANDPA lags, so we're leaving some /// reserve here. -pub const REASONABLE_HEADERS_IN_JUSTIFICATON_ANCESTRY: u32 = 2; +pub const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 2; /// Average header size in `votes_ancestries` field of justification on Polkadot-like /// chains. diff --git a/bridges/primitives/relayers/Cargo.toml b/bridges/primitives/relayers/Cargo.toml index 3bd6809d2789e0b3aced5b8d96448b63e1074ee4..1be7f1dc6ebd38061e98865b45d4f85d8f3f7448 100644 --- a/bridges/primitives/relayers/Cargo.toml +++ b/bridges/primitives/relayers/Cargo.toml @@ -5,13 +5,14 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["bit-vec", "derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["bit-vec", "derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["bit-vec", "derive"] } # Bridge Dependencies diff --git a/bridges/primitives/runtime/Cargo.toml b/bridges/primitives/runtime/Cargo.toml index 22206fb2c376ce53fee9dc8ff806baaef3ce7c28..cca9c21a608d7c8892a01864a7153af7e63ea520 100644 --- a/bridges/primitives/runtime/Cargo.toml +++ b/bridges/primitives/runtime/Cargo.toml @@ -5,17 +5,18 @@ version = "0.7.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } hash-db = { version = "0.16.0", default-features = false } impl-trait-for-tuples = "0.2.2" log = { workspace = true } num-traits = { version = "0.2", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } serde = { features = ["alloc", "derive"], workspace = true } # Substrate Dependencies diff --git a/bridges/primitives/runtime/src/chain.rs b/bridges/primitives/runtime/src/chain.rs index 9ba21a1cddf13896b21494045cea7fdd92259ce8..4ec5a001a99ecad21617ed0afc57d3edac383d0d 100644 --- a/bridges/primitives/runtime/src/chain.rs +++ b/bridges/primitives/runtime/src/chain.rs @@ -104,7 +104,7 @@ pub trait Chain: Send + Sync + 'static { const ID: ChainId; /// A type that fulfills the abstract idea of what a Substrate block number is. - // Constraits come from the associated Number type of `sp_runtime::traits::Header` + // Constraints come from the associated Number type of `sp_runtime::traits::Header` // See here for more info: // https://crates.parity.io/sp_runtime/traits/trait.Header.html#associatedtype.Number // @@ -125,7 +125,7 @@ pub trait Chain: Send + Sync + 'static { + MaxEncodedLen; /// A type that fulfills the abstract idea of what a Substrate hash is. - // Constraits come from the associated Hash type of `sp_runtime::traits::Header` + // Constraints come from the associated Hash type of `sp_runtime::traits::Header` // See here for more info: // https://crates.parity.io/sp_runtime/traits/trait.Header.html#associatedtype.Hash type Hash: Parameter @@ -143,7 +143,7 @@ pub trait Chain: Send + Sync + 'static { /// A type that fulfills the abstract idea of what a Substrate hasher (a type /// that produces hashes) is. - // Constraits come from the associated Hashing type of `sp_runtime::traits::Header` + // Constraints come from the associated Hashing type of `sp_runtime::traits::Header` // See here for more info: // https://crates.parity.io/sp_runtime/traits/trait.Header.html#associatedtype.Hashing type Hasher: HashT; diff --git a/bridges/primitives/runtime/src/lib.rs b/bridges/primitives/runtime/src/lib.rs index 850318923dc7671c26cc3edcf2f9d59bd7b987b9..c9c5c9412913b0470024e9e1473e5d69ff184f25 100644 --- a/bridges/primitives/runtime/src/lib.rs +++ b/bridges/primitives/runtime/src/lib.rs @@ -56,7 +56,7 @@ mod chain; mod storage_proof; mod storage_types; -// Re-export macro to aviod include paste dependency everywhere +// Re-export macro to avoid include paste dependency everywhere pub use sp_runtime::paste; /// Use this when something must be shared among all instances. @@ -461,7 +461,7 @@ macro_rules! generate_static_str_provider { }; } -/// Error message that is only dispayable in `std` environment. +/// Error message that is only displayable in `std` environment. #[derive(Encode, Decode, Clone, Eq, PartialEq, PalletError, TypeInfo)] #[scale_info(skip_type_params(T))] pub struct StrippableError { diff --git a/bridges/primitives/test-utils/Cargo.toml b/bridges/primitives/test-utils/Cargo.toml index d379e950b86ef6f98754c651c980291c9b9c4012..d314c38683cdbc8b40cfda3a14c64f91854e5d7f 100644 --- a/bridges/primitives/test-utils/Cargo.toml +++ b/bridges/primitives/test-utils/Cargo.toml @@ -5,6 +5,7 @@ description = "Utilities for testing substrate-based runtime bridge code" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true @@ -14,7 +15,7 @@ bp-header-chain = { path = "../header-chain", default-features = false } bp-parachains = { path = "../parachains", default-features = false } bp-polkadot-core = { path = "../polkadot-core", default-features = false } bp-runtime = { path = "../runtime", default-features = false } -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } ed25519-dalek = { version = "2.1", default-features = false } finality-grandpa = { version = "0.16.2", default-features = false } sp-application-crypto = { path = "../../../substrate/primitives/application-crypto", default-features = false } diff --git a/bridges/primitives/test-utils/src/lib.rs b/bridges/primitives/test-utils/src/lib.rs index 1d80890779bf8310b393d585749e96f9577196a1..f4fe4a242e79c0e1c8a499c4dd18ed4a2164c656 100644 --- a/bridges/primitives/test-utils/src/lib.rs +++ b/bridges/primitives/test-utils/src/lib.rs @@ -88,7 +88,7 @@ pub fn make_default_justification(header: &H) -> GrandpaJustificatio /// Generate justifications in a way where we are able to tune the number of pre-commits /// and vote ancestries which are included in the justification. /// -/// This is useful for benchmarkings where we want to generate valid justifications with +/// This is useful for benchmarks where we want to generate valid justifications with /// a specific number of pre-commits (tuned with the number of "authorities") and/or a specific /// number of vote ancestries (tuned with the "votes" parameter). /// diff --git a/bridges/primitives/xcm-bridge-hub-router/Cargo.toml b/bridges/primitives/xcm-bridge-hub-router/Cargo.toml index 9297a8603c0aa407e3dc5b860e21a0c227cf1bcc..94eece16d5797eb23dd12af5b8b5aeb7d283d862 100644 --- a/bridges/primitives/xcm-bridge-hub-router/Cargo.toml +++ b/bridges/primitives/xcm-bridge-hub-router/Cargo.toml @@ -5,13 +5,14 @@ version = "0.6.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true [dependencies] -codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = ["bit-vec", "derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["bit-vec", "derive"] } +codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["bit-vec", "derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["bit-vec", "derive"] } # Substrate Dependencies sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } diff --git a/bridges/primitives/xcm-bridge-hub/Cargo.toml b/bridges/primitives/xcm-bridge-hub/Cargo.toml index ad49ec1e83152f60b8386d97d522c798ee87e618..27881bc99d1f838bb5a72c02fe565ef5dc0307fd 100644 --- a/bridges/primitives/xcm-bridge-hub/Cargo.toml +++ b/bridges/primitives/xcm-bridge-hub/Cargo.toml @@ -5,6 +5,7 @@ version = "0.2.0" authors.workspace = true edition.workspace = true license = "GPL-3.0-or-later WITH Classpath-exception-2.0" +repository.workspace = true [lints] workspace = true diff --git a/bridges/scripts/verify-pallets-build.sh b/bridges/scripts/verify-pallets-build.sh index b96bbf1833b6b3ce2bb34d2dc34aa5b8f54eb528..9c57a2a3c476006a636b4944648dfdf196de3591 100755 --- a/bridges/scripts/verify-pallets-build.sh +++ b/bridges/scripts/verify-pallets-build.sh @@ -68,6 +68,7 @@ rm -rf $BRIDGES_FOLDER/modules/beefy rm -rf $BRIDGES_FOLDER/modules/shift-session-manager rm -rf $BRIDGES_FOLDER/primitives/beefy rm -rf $BRIDGES_FOLDER/relays +rm -rf $BRIDGES_FOLDER/relay-clients rm -rf $BRIDGES_FOLDER/scripts/add_license.sh rm -rf $BRIDGES_FOLDER/scripts/build-containers.sh rm -rf $BRIDGES_FOLDER/scripts/ci-cache.sh @@ -77,6 +78,7 @@ rm -rf $BRIDGES_FOLDER/scripts/regenerate_runtimes.sh rm -rf $BRIDGES_FOLDER/scripts/update-weights.sh rm -rf $BRIDGES_FOLDER/scripts/update-weights-setup.sh rm -rf $BRIDGES_FOLDER/scripts/update_substrate.sh +rm -rf $BRIDGES_FOLDER/substrate-relay rm -rf $BRIDGES_FOLDER/tools rm -f $BRIDGES_FOLDER/.dockerignore rm -f $BRIDGES_FOLDER/local.Dockerfile.dockerignore @@ -89,6 +91,7 @@ rm -f $BRIDGES_FOLDER/local.Dockerfile rm -f $BRIDGES_FOLDER/CODEOWNERS rm -f $BRIDGES_FOLDER/Dockerfile rm -f $BRIDGES_FOLDER/rustfmt.toml +rm -f $BRIDGES_FOLDER/RELEASE.md # let's fix Cargo.toml a bit (it'll be helpful if we are in the bridges repo) if [[ ! -f "Cargo.toml" ]]; then @@ -131,7 +134,7 @@ cargo check -p bridge-runtime-common cargo check -p bridge-runtime-common --features runtime-benchmarks cargo check -p bridge-runtime-common --features integrity-test -# we're removing lock file after all chechs are done. Otherwise we may use different +# we're removing lock file after all checks are done. Otherwise we may use different # Substrate/Polkadot/Cumulus commits and our checks will fail rm -f $BRIDGES_FOLDER/Cargo.lock diff --git a/bridges/snowbridge/pallets/ethereum-client/Cargo.toml b/bridges/snowbridge/pallets/ethereum-client/Cargo.toml index c8999633c97abb00174e38e16ed5618e7baf0b59..cadd542432e775e273f5024928d2162f645a77e2 100644 --- a/bridges/snowbridge/pallets/ethereum-client/Cargo.toml +++ b/bridges/snowbridge/pallets/ethereum-client/Cargo.toml @@ -36,7 +36,7 @@ sp-io = { path = "../../../../substrate/primitives/io", default-features = false snowbridge-core = { path = "../../primitives/core", default-features = false } snowbridge-ethereum = { path = "../../primitives/ethereum", default-features = false } -snowbridge-pallet-ethereum-client-fixtures = { path = "./fixtures", default-features = false, optional = true } +snowbridge-pallet-ethereum-client-fixtures = { path = "fixtures", default-features = false, optional = true } primitives = { package = "snowbridge-beacon-primitives", path = "../../primitives/beacon", default-features = false } static_assertions = { version = "1.1.0", default-features = false } bp-runtime = { path = "../../../primitives/runtime", default-features = false } @@ -48,7 +48,7 @@ sp-keyring = { path = "../../../../substrate/primitives/keyring" } serde_json = { workspace = true, default-features = true } hex-literal = "0.4.1" pallet-timestamp = { path = "../../../../substrate/frame/timestamp" } -snowbridge-pallet-ethereum-client-fixtures = { path = "./fixtures" } +snowbridge-pallet-ethereum-client-fixtures = { path = "fixtures" } sp-io = { path = "../../../../substrate/primitives/io" } serde = { workspace = true, default-features = true } diff --git a/bridges/snowbridge/pallets/ethereum-client/fixtures/src/lib.rs b/bridges/snowbridge/pallets/ethereum-client/fixtures/src/lib.rs index facaffb8149cd88b0f3f369ed79dd922e9b2c983..37fe45ba60b0be1311da2d6090283acb6710383e 100644 --- a/bridges/snowbridge/pallets/ethereum-client/fixtures/src/lib.rs +++ b/bridges/snowbridge/pallets/ethereum-client/fixtures/src/lib.rs @@ -6,9 +6,10 @@ use hex_literal::hex; use snowbridge_beacon_primitives::{ - types::deneb, updates::AncestryProof, BeaconHeader, ExecutionHeaderUpdate, - NextSyncCommitteeUpdate, SyncAggregate, SyncCommittee, VersionedExecutionPayloadHeader, + types::deneb, AncestryProof, BeaconHeader, ExecutionProof, NextSyncCommitteeUpdate, + SyncAggregate, SyncCommittee, VersionedExecutionPayloadHeader, }; +use snowbridge_core::inbound::{InboundQueueFixture, Log, Message, Proof}; use sp_core::U256; use sp_std::{boxed::Box, vec}; @@ -20,11 +21,11 @@ type Update = snowbridge_beacon_primitives::Update; pub fn make_checkpoint() -> Box { Box::new(CheckpointUpdate { header: BeaconHeader { - slot: 2496, - proposer_index: 2, - parent_root: hex!("c99e49787106733eeebab4d93eb326e1f2214575c9d928f0c4ab0da0776f1622").into(), - state_root: hex!("fbf8a08c86ef36bd173e37e733da4a78aa8e85fee99a990e858dd12a59087fde").into(), - body_root: hex!("a2a8ad06901447b2807a9059580a4c40d8a941f325b1343c69f7c7c6c90e4ab0").into(), + slot: 864, + proposer_index: 4, + parent_root: hex!("614e7672f991ac268cd841055973f55e1e42228831a211adef207bb7329be614").into(), + state_root: hex!("5fa8dfca3d760e4242ab46d529144627aa85348a19173b6e081172c701197a4a").into(), + body_root: hex!("0f34c083b1803666bb1ac5e73fa71582731a2cf37d279ff0a3b0cad5a2ff371e").into(), }, current_sync_committee: SyncCommittee { pubkeys: [ @@ -544,20 +545,20 @@ pub fn make_checkpoint() -> Box { aggregate_pubkey: hex!("8fbd66eeec2ff69ef0b836f04b1d67d88bcd4dfd495061964ad757c77abe822a39fa1cd8ed0d4d9bc9276cea73fd745c").into(), }, current_sync_committee_branch: vec![ - hex!("3ade38d498a062b50880a9409e1ca3a7fd4315d91eeb3bb83e56ac6bfe8d6a59").into(), - hex!("93880225bf99a0c5ec22b266ff829837754e9c5edf37a68c05b8f803fd82fa45").into(), - hex!("4c60656ec9a95fcf11030ad309c716b5b15beb7f60a0bcfc7c9d4eff505472ff").into(), - hex!("22d1645fceb4bf9a695043dda19a53e784ec70df6a6b1bd66ea30eba1cca5f2f").into(), - hex!("a8fc6cad84ceefc633ec56c2d031d525e1cb4b51c70eb252919fce5bba9a1fde").into(), + hex!("3ade38d498a062b50880a9409e1ca3a7fd4315d91eeb3bb83e56ac6bfe8d6a59").into(), + hex!("a9e90f89e7f90fd5d79a6bbcaf40ba5cfc05ab1b561ac51c84867c32248d5b1e").into(), + hex!("bd1a76b03e02402bb24a627de1980a80ab17691980271f597b844b89b497ef75").into(), + hex!("07bbcd27c7cad089023db046eda17e8209842b7d97add8b873519e84fe6480e7").into(), + hex!("94c11eeee4cb6192bf40810f23486d8c75dfbc2b6f28d988d6f74435ede243b0").into(), ], validators_root: hex!("270d43e74ce340de4bca2b1936beca0f4f5408d9e78aec4850920baf659d5b69").into(), - block_roots_root: hex!("d160b7687041891b73e54b06fc4e04f82d0fa8fdd76705895e216c6b24709dfe").into(), + block_roots_root: hex!("b9aab9c388c4e4fcd899b71f62c498fc73406e38e8eb14aa440e9affa06f2a10").into(), block_roots_branch: vec![ - hex!("105290e42d98ab6a0ada6e55453cede36c672abf645eeb986b88d7487616e135").into(), - hex!("9da41f274bcdf6122335443d9ce94d07163b48dba3e2f9499ff56f4e48b48b99").into(), - hex!("ecea7e1d3152d8130e83afdfe34b4de4ba2b69a33c9471991096daf454de9cf5").into(), - hex!("b2bf1758e50b2bfff29169fbc70fdb884b2b05bb615dbc53567574da6f4f1ae2").into(), - hex!("cd87069daf70975779126d6af833b7d636c75ca4d5e750ebcad0e76408a5e5bf").into(), + hex!("733422bd810895dab74cbbe07c69dd440cbb51f573181ad4dddac30fcdd0f41f").into(), + hex!("9b9eca73ab01d14549c325ba1b4610bb20bf1f8ec2dbd649f9d8cc7f3cea75fa").into(), + hex!("bcc666ad0ad9f9725cbd682bc95589d35b1b53b2a615f1e6e8dd5e086336becf").into(), + hex!("3069b547a08f703a1715016e926cbd64e71f93f64fb68d98d8c8f1ab745c46e5").into(), + hex!("c2de7e1097239404e17b263cfa0473533cc41e903cb03440d633bc5c27314cb4").into(), ], }) } @@ -567,13 +568,13 @@ pub fn make_sync_committee_update() -> Box { attested_header: BeaconHeader { slot: 129, proposer_index: 5, - parent_root: hex!("e32b6c18f029e755b0273dc1c4fa2bc4979794c8286ad40276c1b8a8e36049d8").into(), - state_root: hex!("5ec9dacf25a5f09f20be0c59246b3d8dcfe64bd085b4bac5cec180690339801e").into(), - body_root: hex!("4080cf2412d6ff77fc3164ad6155423a7112f207f173145ec16371a93f481f87").into(), + parent_root: hex!("c2def03fe44a2802130ca1a6d8406e4ccf4f344fec7075d4d84431cd4a8b0904").into(), + state_root: hex!("fa62cde6666add7353d7aedcb61ebe3c6c84b5361e34f814825b1250affb5be4").into(), + body_root: hex!("0f9c69f243fe7b5fa5860396c66c720a9e8b1e526e7914188930497cc4a9134c").into(), }, sync_aggregate: SyncAggregate{ sync_committee_bits: hex!("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), - sync_committee_signature: hex!("a761c3333fbb3d36bc8f65454f898da38001499dcd37494cf3d86940a995399ae649216ba4c985af154f83f72c8b1856079b7636a7a8d7d3f7602df2cbf699edb72b65253e82de4d9cc4db7377eafb22f799129f63f094a21c00675bdd5cc243").into(), + sync_committee_signature: hex!("810cfde2afea3e276256c09bdf1cd321c33dcadeefddcfd24f488e6f756d917cfda90b5b437b3a4b4ef880985afa28a40cf565ec0a82877ddee36adc01d55d9d4a911ae3e22556e4c2636f1c707366fba019fb49450440fcd263d0b054b04bf0").into(), }, signature_slot: 130, next_sync_committee_update: Some(NextSyncCommitteeUpdate { @@ -1096,34 +1097,34 @@ pub fn make_sync_committee_update() -> Box { }, next_sync_committee_branch: vec![ hex!("3ade38d498a062b50880a9409e1ca3a7fd4315d91eeb3bb83e56ac6bfe8d6a59").into(), - hex!("fd1e5ff5d4a15081efe3ff17857b1f95984c9a271b1c41c2f81f43e60c2cc541").into(), - hex!("e1c97f93bb7352d395d1ff8ee29881572cb7eb5d71634783701171dcd30cd93d").into(), - hex!("77fa2170ddbd89b15dae02f2e6cf9f76c8e00d1c4217320acffbe01576d0da61").into(), - hex!("e97288e0627219087a024078d69445f34f0583a6350a7c3c40c39fd1fa6f8d68").into(), + hex!("43276bee17fc9fba3f4866e902f0e5b5b308d79db91154bb8bf819973837a7d9").into(), + hex!("5572348e13ce59446ca0ea7cfeed07579da05f121920a76559e19bda94dd81cd").into(), + hex!("2d58adca9f3c742530de037f1933d6de1920ea4b68581613d4bc32b71547f221").into(), + hex!("7072b3c6577cd5a89b3234968f316f54630bb97eafbdb59e5b61637a9640255f").into(), ], }), finalized_header: BeaconHeader{ slot: 64, proposer_index: 4, - parent_root: hex!("0f7bc2353778c14c7f6dba0fc5fe6eec87228b0d3a5447b61dce67b4d9338de3").into(), - state_root: hex!("feb990de653ce494c0a263f820eaf05a9300dbdc30cb6065ede602827bfccde4").into(), - body_root: hex!("f5235cd8c24f2695fc5b7989926305c10ad8cf5a87d62a739f675f5543df2ec1").into(), + parent_root: hex!("a876486aaad7ddb897f369fd22d0a9903cd61d00c9e0dfe7998dd68d1008c678").into(), + state_root: hex!("818e21c3388575f8ccc9ff17ec79d5a57915bcd31bccf47770f65a18e068416b").into(), + body_root: hex!("1d1f73b864b3bb7e11ff91b56ca1381e0f9ca8122b2c542db88243604c763019").into(), }, finality_branch: vec![ hex!("0200000000000000000000000000000000000000000000000000000000000000").into(), hex!("10c726fac935bf9657cc7476d3cfa7bedec5983dcfb59e8a7df6d0a619e108d7").into(), hex!("98e9116c6bb7f20de18800dc63e73e689d06d6a47d35b5e2b32cf093d475840d").into(), - hex!("e1c97f93bb7352d395d1ff8ee29881572cb7eb5d71634783701171dcd30cd93d").into(), - hex!("77fa2170ddbd89b15dae02f2e6cf9f76c8e00d1c4217320acffbe01576d0da61").into(), - hex!("e97288e0627219087a024078d69445f34f0583a6350a7c3c40c39fd1fa6f8d68").into(), + hex!("5572348e13ce59446ca0ea7cfeed07579da05f121920a76559e19bda94dd81cd").into(), + hex!("2d58adca9f3c742530de037f1933d6de1920ea4b68581613d4bc32b71547f221").into(), + hex!("7072b3c6577cd5a89b3234968f316f54630bb97eafbdb59e5b61637a9640255f").into(), ], - block_roots_root: hex!("6fcdfd1c3fb1bdd421fe59dddfff3855b5ed5e30373887991a0059d019ad12bc").into(), + block_roots_root: hex!("715b08694bef183a6d94b3113d16a7129f89fc3edec85a7e0eaf6ef9153552ef").into(), block_roots_branch: vec![ - hex!("94b59531f172bc24f914bc0c10104ccb158676850f8cc3b47b6ddb7f096ebdd7").into(), - hex!("22470ed9155a938587d44d5fa19217c0f939d8862e504e67cd8cb4d1b960795e").into(), - hex!("feec3ef1a68f93849e71e84f90b99602cccc31868137b6887ca8244a4b979e8e").into(), + hex!("4028c72c71b6ce80ea7d18b2c9471f4e4fa39746261a9921e832a4a2f9bdf7bb").into(), + hex!("75f98062661785d3290b7bd998b64446582baa49210733fd4603e1a97cd45a44").into(), + hex!("6fb757f44052f30c464810f01b0132adfa1a5446d8715b41e9af88eee1ee3e65").into(), hex!("5340ad5877c72dca689ca04bc8fedb78d67a4801d99887937edd8ccd29f87e82").into(), - hex!("f5ff4b0c6190005015889879568f5f0d9c40134c7ec4ffdda47950dcd92395ad").into(), + hex!("f2b3cb56753939a728ccad399a434ca490f018f2f331529ec0d8b2d59c509271").into(), ], }) } @@ -1131,95 +1132,180 @@ pub fn make_sync_committee_update() -> Box { pub fn make_finalized_header_update() -> Box { Box::new(Update { attested_header: BeaconHeader { - slot: 2566, - proposer_index: 6, - parent_root: hex!("6eb9f13a2c496318ce1ab3087bbd872f5c9519a1a7ca8231a2453e3cb523af00").into(), - state_root: hex!("c8cb12766113dff7e46d2917267bf33d0626d99dd47715fcdbc5c65fad3c04b4").into(), - body_root: hex!("d8cfd0d7bc9bc3724417a1655bb0a67c0765ca36197320f4d834150b52ef1420").into(), + slot: 933, + proposer_index: 1, + parent_root: hex!("f5fc63e2780ca302b97aea73fc95d74d702b5afe9a772c2b68f695026337b620").into(), + state_root: hex!("d856d11636bc4d866e78be9e747b222b0977556a367ab42e4085277301438050").into(), + body_root: hex!("5689091ab4eb76c2e876271add4924e1c66ce987c300c24aac2ad8c703e9a33f").into(), }, sync_aggregate: SyncAggregate{ sync_committee_bits: hex!("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), - sync_committee_signature: hex!("9296f9a0387f2cac47008e22ad7c3cd3d49d35384c13e6aa1eacca7dca7c3d2ca81515e50eb3396b9550ed20ef7d8fa2049a186598feb2c00e93728045fcff917733d1827481b8fc95f3913e27fc70112c2490496eb57bb7181f02c3f9fd471f").into(), + sync_committee_signature: hex!("93a3d482fe2a2f7fd2b634169752a8fddf1dc28b23a020b398be8526faf37a74ca0f6db1bed78a9c7256c09a6115235e108e0e8a7ce09287317b0856c4b77dfa5adba6cf4c3ebea5bfa4cd2fcde80fd0a532f2defe65d530201d5d2258796559").into(), }, - signature_slot: 2567, + signature_slot: 934, next_sync_committee_update: None, finalized_header: BeaconHeader { - slot: 2496, - proposer_index: 2, - parent_root: hex!("c99e49787106733eeebab4d93eb326e1f2214575c9d928f0c4ab0da0776f1622").into(), - state_root: hex!("fbf8a08c86ef36bd173e37e733da4a78aa8e85fee99a990e858dd12a59087fde").into(), - body_root: hex!("a2a8ad06901447b2807a9059580a4c40d8a941f325b1343c69f7c7c6c90e4ab0").into(), + slot: 864, + proposer_index: 4, + parent_root: hex!("614e7672f991ac268cd841055973f55e1e42228831a211adef207bb7329be614").into(), + state_root: hex!("5fa8dfca3d760e4242ab46d529144627aa85348a19173b6e081172c701197a4a").into(), + body_root: hex!("0f34c083b1803666bb1ac5e73fa71582731a2cf37d279ff0a3b0cad5a2ff371e").into(), }, finality_branch: vec![ - hex!("4e00000000000000000000000000000000000000000000000000000000000000").into(), + hex!("1b00000000000000000000000000000000000000000000000000000000000000").into(), hex!("10c726fac935bf9657cc7476d3cfa7bedec5983dcfb59e8a7df6d0a619e108d7").into(), hex!("98e9116c6bb7f20de18800dc63e73e689d06d6a47d35b5e2b32cf093d475840d").into(), - hex!("958b8e43347f6df6fa5eb3d62d06a862381a6585aa40640dd1c0de11f1cf89c1").into(), - hex!("f107dce04faa86a28fc5d4a618be9cb8d4fc3c23d6c42c3624f3ff4bf6586a03").into(), - hex!("a501cdc02e86969ac3e4d0c5a36f4f049efaa1ab8cb6693f51d130eb52a80f30").into(), + hex!("f12d9aededc72724e417b518fe6f847684f26f81616243dedf8c551cc7d504f5").into(), + hex!("89a85d0907ab3fd6e00ae385f61d456c6191646404ae7b8d23d0e60440cf4d00").into(), + hex!("9fc943b6020eb61d780d78bcc6f6102a81d2c868d58f36e61c6e286a2dc4d8c2").into(), ], - block_roots_root: hex!("d160b7687041891b73e54b06fc4e04f82d0fa8fdd76705895e216c6b24709dfe").into(), + block_roots_root: hex!("b9aab9c388c4e4fcd899b71f62c498fc73406e38e8eb14aa440e9affa06f2a10").into(), block_roots_branch: vec![ - hex!("105290e42d98ab6a0ada6e55453cede36c672abf645eeb986b88d7487616e135").into(), - hex!("9da41f274bcdf6122335443d9ce94d07163b48dba3e2f9499ff56f4e48b48b99").into(), - hex!("ecea7e1d3152d8130e83afdfe34b4de4ba2b69a33c9471991096daf454de9cf5").into(), - hex!("b2bf1758e50b2bfff29169fbc70fdb884b2b05bb615dbc53567574da6f4f1ae2").into(), - hex!("cd87069daf70975779126d6af833b7d636c75ca4d5e750ebcad0e76408a5e5bf").into(), + hex!("733422bd810895dab74cbbe07c69dd440cbb51f573181ad4dddac30fcdd0f41f").into(), + hex!("9b9eca73ab01d14549c325ba1b4610bb20bf1f8ec2dbd649f9d8cc7f3cea75fa").into(), + hex!("bcc666ad0ad9f9725cbd682bc95589d35b1b53b2a615f1e6e8dd5e086336becf").into(), + hex!("3069b547a08f703a1715016e926cbd64e71f93f64fb68d98d8c8f1ab745c46e5").into(), + hex!("c2de7e1097239404e17b263cfa0473533cc41e903cb03440d633bc5c27314cb4").into(), ] }) } -pub fn make_execution_header_update() -> Box { - Box::new(ExecutionHeaderUpdate { +pub fn make_execution_proof() -> Box { + Box::new(ExecutionProof { header: BeaconHeader { - slot: 215, - proposer_index: 2, - parent_root: hex!("97518f531a252bb6ca547b21aca9da767943ec99211d3b15c804e34c3a523f45").into(), - state_root: hex!("b088b5a3a8c90d6dc919a695cd7bb0267c6f983ea2e675c559ceb8f46cb90b67").into(), - body_root: hex!("0ba23c8224fdd01531d5ad51486353bd524a0b4c20bca704e26d3210616f829b").into(), + slot: 393, + proposer_index: 4, + parent_root: hex!("6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef").into(), + state_root: hex!("b62ac34a8cb82497be9542fe2114410c9f6021855b766015406101a1f3d86434").into(), + body_root: hex!("04005fe231e11a5b7b1580cb73b177ae8b338bedd745497e6bb7122126a806db").into(), }, ancestry_proof: Some(AncestryProof { header_branch: vec![ - hex!("97518f531a252bb6ca547b21aca9da767943ec99211d3b15c804e34c3a523f45").into(), - hex!("5ce0db996bd499c2b4f7a93263d5aafd052f420efb617cce6fdd54e25516aa45").into(), - hex!("84f0e373b66011ce774c7061440c0a50a51cce2b4b335395eee3e563d605597f").into(), - hex!("48f9ccc5f9594142c18c3b5c39a99f0549329c6ab3ba06c9a50030eadca87770").into(), - hex!("f89d6e311e05bc75a6f63ce118bccce254551f1a88d54c3b4f773f81f946bd99").into(), - hex!("2edd6d893c22636675147c07dfcdb541a146e87c3f15b51c388be4868246dc9b").into(), - hex!("d76b7de5f856e3208a91a42c9c398a7f4fab35e667bf916346050ae742514a2d").into(), - hex!("83a2e233e76385953ca41de4c3afe60471a61f0cc1b3846b4a0670e3e563b747").into(), - hex!("e783a5a109c2ad74e4eb53e8f6b11b31266a92a9e16c1fd5873109c5d41b282c").into(), - hex!("d4ea1ef3869ee6a0fd0b19d7d70027d144eecd4f1d32cbf47632a0a9069164b9").into(), - hex!("f8179564b58eb93a850d35e4156a04db651106442ad891c3e85155c1762792f1").into(), - hex!("4cbb1edb48cf1e32fb30db60aaaeaf6190ffe4d0c8dbc96cec307daecb78be12").into(), + hex!("6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef").into(), + hex!("fa84cc88ca53a72181599ff4eb07d8b444bce023fe2347c3b4f51004c43439d3").into(), + hex!("cadc8ae211c6f2221c9138e829249adf902419c78eb4727a150baa4d9a02cc9d").into(), + hex!("33a89962df08a35c52bd7e1d887cd71fa7803e68787d05c714036f6edf75947c").into(), + hex!("2c9760fce5c2829ef3f25595a703c21eb22d0186ce223295556ed5da663a82cf").into(), + hex!("e1aa87654db79c8a0ecd6c89726bb662fcb1684badaef5cd5256f479e3c622e1").into(), + hex!("aa70d5f314e4a1fbb9c362f3db79b21bf68b328887248651fbd29fc501d0ca97").into(), + hex!("160b6c235b3a1ed4ef5f80b03ee1c76f7bf3f591c92fca9d8663e9221b9f9f0f").into(), + hex!("f68d7dcd6a07a18e9de7b5d2aa1980eb962e11d7dcb584c96e81a7635c8d2535").into(), + hex!("1d5f912dfd6697110dd1ecb5cb8e77952eef57d85deb373572572df62bb157fc").into(), + hex!("ffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b").into(), + hex!("6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220").into(), hex!("b7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f").into(), ], - finalized_block_root: hex!("890a7f23b9ed2160901654be9efc575d6830ca860e2a97866ae3423fb7bd7231").into(), + finalized_block_root: hex!("751414cd97c0624f922b3e80285e9f776b08fa22fd5f87391f2ed7ef571a8d46").into(), }), execution_header: VersionedExecutionPayloadHeader::Deneb(deneb::ExecutionPayloadHeader { - parent_hash: hex!("d82ec63f5c5e6ba61d62f09c188f158e6449b94bdcc31941e68639eec3c4cf7a").into(), + parent_hash: hex!("8092290aa21b7751576440f77edd02a94058429ce50e63a92d620951fb25eda2").into(), fee_recipient: hex!("0000000000000000000000000000000000000000").into(), - state_root: hex!("8b65545fe5f3216b47b6339b9c91ca2b7f1032a970b04246d9e9fb4460ee34c3").into(), - receipts_root: hex!("7b1f61b9714c080ef0be014e01657a15f45f0304b477beebc7ca5596c8033095").into(), - logs_bloom: hex!("00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010").into(), - prev_randao: hex!("6d9e2a012d82b1b6cb0a2c1c1ed24cc16dbb56e6e39ae545371e0666ab057862").into(), - block_number: 215, - gas_limit: 64842908, - gas_used: 119301, - timestamp: 1705859527, - extra_data: hex!("d983010d0a846765746888676f312e32312e358664617277696e").into(), + state_root: hex!("96a83e9ddf745346fafcb0b03d57314623df669ed543c110662b21302a0fae8b").into(), + receipts_root: hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").into(), + logs_bloom: hex!("00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000400000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000040004000000000000002002002000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000080000000000000000000000000000000000100000000000000000200000200000010").into(), + prev_randao: hex!("62e309d4f5119d1f5c783abc20fc1a549efbab546d8d0b25ff1cfd58be524e67").into(), + block_number: 393, + gas_limit: 54492273, + gas_used: 199644, + timestamp: 1710552813, + extra_data: hex!("d983010d0b846765746888676f312e32312e368664617277696e").into(), base_fee_per_gas: U256::from(7u64), - block_hash: hex!("48498dbfbcfae53a7f4c289ee00747aceea925f6260c50ead5a33e1c55c40f98").into(), - transactions_root: hex!("5ebc1347fe3df0611d4f66b19bd8e1c6f4eaed0371d850f14c83b1c77ea234e6").into(), + block_hash: hex!("6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131").into(), + transactions_root: hex!("2cfa6ed7327e8807c7973516c5c32a68ef2459e586e8067e113d081c3bd8c07d").into(), withdrawals_root: hex!("792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535").into(), blob_gas_used: 0, excess_blob_gas: 0, }), execution_branch: vec![ - hex!("f8c69d3830406d668619bcccc13c8dddde41e863326f7418b241d5924c4ad34a").into(), + hex!("a6833fa629f3286b6916c6e50b8bf089fc9126bee6f64d0413b4e59c1265834d").into(), hex!("b46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb").into(), hex!("db56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71").into(), - hex!("f4d6b5cf9c6e212615c3674fa625d04eb1114153fb221ef5ad02aa433fc67cfb").into(), + hex!("d3af7c05c516726be7505239e0b9c7cb53d24abce6b91cdb3b3995f0164a75da").into(), ], }) } + +pub fn make_inbound_fixture() -> InboundQueueFixture { + InboundQueueFixture { + message: Message { + event_log: Log { + address: hex!("eda338e4dc46038493b885327842fd3e301cab39").into(), + topics: vec![ + hex!("7153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84f").into(), + hex!("c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539").into(), + hex!("5f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0").into(), + ], + data: hex!("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").into(), + }, + proof: Proof { + receipt_proof: (vec![ + hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").to_vec(), + hex!("4a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f").to_vec(), + ], vec![ + hex!("f851a09c01dd6d2d8de951c45af23d3ad00829ce021c04d6c8acbe1612d456ee320d4980808080808080a04a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f8080808080808080").to_vec(), + hex!("f9028c30b9028802f90284018301d205b9010000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010f90179f85894eda338e4dc46038493b885327842fd3e301cab39e1a0f78bb28d4b1d7da699e5c0bc2be29c2b04b5aab6aacf6298fe5304f9db9c6d7ea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7df9011c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a05f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0b8a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").to_vec(), + ]), + execution_proof: ExecutionProof { + header: BeaconHeader { + slot: 393, + proposer_index: 4, + parent_root: hex!("6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef").into(), + state_root: hex!("b62ac34a8cb82497be9542fe2114410c9f6021855b766015406101a1f3d86434").into(), + body_root: hex!("04005fe231e11a5b7b1580cb73b177ae8b338bedd745497e6bb7122126a806db").into(), + }, + ancestry_proof: Some(AncestryProof { + header_branch: vec![ + hex!("6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef").into(), + hex!("fa84cc88ca53a72181599ff4eb07d8b444bce023fe2347c3b4f51004c43439d3").into(), + hex!("cadc8ae211c6f2221c9138e829249adf902419c78eb4727a150baa4d9a02cc9d").into(), + hex!("33a89962df08a35c52bd7e1d887cd71fa7803e68787d05c714036f6edf75947c").into(), + hex!("2c9760fce5c2829ef3f25595a703c21eb22d0186ce223295556ed5da663a82cf").into(), + hex!("e1aa87654db79c8a0ecd6c89726bb662fcb1684badaef5cd5256f479e3c622e1").into(), + hex!("aa70d5f314e4a1fbb9c362f3db79b21bf68b328887248651fbd29fc501d0ca97").into(), + hex!("160b6c235b3a1ed4ef5f80b03ee1c76f7bf3f591c92fca9d8663e9221b9f9f0f").into(), + hex!("f68d7dcd6a07a18e9de7b5d2aa1980eb962e11d7dcb584c96e81a7635c8d2535").into(), + hex!("1d5f912dfd6697110dd1ecb5cb8e77952eef57d85deb373572572df62bb157fc").into(), + hex!("ffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b").into(), + hex!("6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220").into(), + hex!("b7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f").into(), + ], + finalized_block_root: hex!("751414cd97c0624f922b3e80285e9f776b08fa22fd5f87391f2ed7ef571a8d46").into(), + }), + execution_header: VersionedExecutionPayloadHeader::Deneb(deneb::ExecutionPayloadHeader { + parent_hash: hex!("8092290aa21b7751576440f77edd02a94058429ce50e63a92d620951fb25eda2").into(), + fee_recipient: hex!("0000000000000000000000000000000000000000").into(), + state_root: hex!("96a83e9ddf745346fafcb0b03d57314623df669ed543c110662b21302a0fae8b").into(), + receipts_root: hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").into(), + logs_bloom: hex!("00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000400000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000040004000000000000002002002000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000080000000000000000000000000000000000100000000000000000200000200000010").into(), + prev_randao: hex!("62e309d4f5119d1f5c783abc20fc1a549efbab546d8d0b25ff1cfd58be524e67").into(), + block_number: 393, + gas_limit: 54492273, + gas_used: 199644, + timestamp: 1710552813, + extra_data: hex!("d983010d0b846765746888676f312e32312e368664617277696e").into(), + base_fee_per_gas: U256::from(7u64), + block_hash: hex!("6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131").into(), + transactions_root: hex!("2cfa6ed7327e8807c7973516c5c32a68ef2459e586e8067e113d081c3bd8c07d").into(), + withdrawals_root: hex!("792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535").into(), + blob_gas_used: 0, + excess_blob_gas: 0, + }), + execution_branch: vec![ + hex!("a6833fa629f3286b6916c6e50b8bf089fc9126bee6f64d0413b4e59c1265834d").into(), + hex!("b46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb").into(), + hex!("db56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71").into(), + hex!("d3af7c05c516726be7505239e0b9c7cb53d24abce6b91cdb3b3995f0164a75da").into(), + ], + } + }, + }, + finalized_header: BeaconHeader { + slot: 864, + proposer_index: 4, + parent_root: hex!("614e7672f991ac268cd841055973f55e1e42228831a211adef207bb7329be614").into(), + state_root: hex!("5fa8dfca3d760e4242ab46d529144627aa85348a19173b6e081172c701197a4a").into(), + body_root: hex!("0f34c083b1803666bb1ac5e73fa71582731a2cf37d279ff0a3b0cad5a2ff371e").into(), + }, + block_roots_root: hex!("b9aab9c388c4e4fcd899b71f62c498fc73406e38e8eb14aa440e9affa06f2a10").into(), + } +} diff --git a/bridges/snowbridge/pallets/ethereum-client/src/benchmarking/mod.rs b/bridges/snowbridge/pallets/ethereum-client/src/benchmarking/mod.rs index e1520cd715393e79f0265b07263fa9b762206c97..4b8796b628d793951fec9ba905db1cd17f544eee 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/benchmarking/mod.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/benchmarking/mod.rs @@ -65,24 +65,6 @@ mod benchmarks { Ok(()) } - #[benchmark] - fn submit_execution_header() -> Result<(), BenchmarkError> { - let caller: T::AccountId = whitelisted_caller(); - let checkpoint_update = make_checkpoint(); - let finalized_header_update = make_finalized_header_update(); - let execution_header_update = make_execution_header_update(); - let execution_header_hash = execution_header_update.execution_header.block_hash(); - EthereumBeaconClient::::process_checkpoint_update(&checkpoint_update)?; - EthereumBeaconClient::::process_update(&finalized_header_update)?; - - #[extrinsic_call] - _(RawOrigin::Signed(caller.clone()), Box::new(*execution_header_update)); - - assert!(>::contains_key(execution_header_hash)); - - Ok(()) - } - #[benchmark(extra)] fn bls_fast_aggregate_verify_pre_aggregated() -> Result<(), BenchmarkError> { EthereumBeaconClient::::process_checkpoint_update(&make_checkpoint())?; diff --git a/bridges/snowbridge/pallets/ethereum-client/src/impls.rs b/bridges/snowbridge/pallets/ethereum-client/src/impls.rs index 300431d87707ddcfd15eb7937f8ef581c157aeed..f600b1f67e29e7875bfccd6fab6926edda6498cc 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/impls.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/impls.rs @@ -1,6 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: 2023 Snowfork use super::*; +use frame_support::ensure; +use primitives::ExecutionProof; use snowbridge_core::inbound::{ VerificationError::{self, *}, @@ -14,32 +16,13 @@ impl Verifier for Pallet { /// the log should be in the beacon client storage, meaning it has been verified and is an /// ancestor of a finalized beacon block. fn verify(event_log: &Log, proof: &Proof) -> Result<(), VerificationError> { - log::info!( - target: "ethereum-client", - "💫 Verifying message with block hash {}", - proof.block_hash, - ); + Self::verify_execution_proof(&proof.execution_proof) + .map_err(|e| InvalidExecutionProof(e.into()))?; - let header = >::get(proof.block_hash).ok_or(HeaderNotFound)?; - - let receipt = match Self::verify_receipt_inclusion(header.receipts_root, proof) { - Ok(receipt) => receipt, - Err(err) => { - log::error!( - target: "ethereum-client", - "💫 Verification of receipt inclusion failed for block {}: {:?}", - proof.block_hash, - err - ); - return Err(err) - }, - }; - - log::trace!( - target: "ethereum-client", - "💫 Verified receipt inclusion for transaction at index {} in block {}", - proof.tx_index, proof.block_hash, - ); + let receipt = Self::verify_receipt_inclusion( + proof.execution_proof.execution_header.receipts_root(), + &proof.receipt_proof.1, + )?; event_log.validate().map_err(|_| InvalidLog)?; @@ -53,18 +36,11 @@ impl Verifier for Pallet { if !receipt.contains_log(&event_log) { log::error!( target: "ethereum-client", - "💫 Event log not found in receipt for transaction at index {} in block {}", - proof.tx_index, proof.block_hash, + "💫 Event log not found in receipt for transaction", ); return Err(LogNotFound) } - log::info!( - target: "ethereum-client", - "💫 Receipt verification successful for {}", - proof.block_hash, - ); - Ok(()) } } @@ -74,9 +50,9 @@ impl Pallet { /// `proof.block_hash`. pub fn verify_receipt_inclusion( receipts_root: H256, - proof: &Proof, + receipt_proof: &[Vec], ) -> Result { - let result = verify_receipt_proof(receipts_root, &proof.data.1).ok_or(InvalidProof)?; + let result = verify_receipt_proof(receipts_root, receipt_proof).ok_or(InvalidProof)?; match result { Ok(receipt) => Ok(receipt), @@ -90,4 +66,96 @@ impl Pallet { }, } } + + /// Validates an execution header with ancestry_proof against a finalized checkpoint on + /// chain.The beacon header containing the execution header is sent, plus the execution header, + /// along with a proof that the execution header is rooted in the beacon header body. + pub(crate) fn verify_execution_proof(execution_proof: &ExecutionProof) -> DispatchResult { + let latest_finalized_state = + FinalizedBeaconState::::get(LatestFinalizedBlockRoot::::get()) + .ok_or(Error::::NotBootstrapped)?; + // Checks that the header is an ancestor of a finalized header, using slot number. + ensure!( + execution_proof.header.slot <= latest_finalized_state.slot, + Error::::HeaderNotFinalized + ); + + // Gets the hash tree root of the execution header, in preparation for the execution + // header proof (used to check that the execution header is rooted in the beacon + // header body. + let execution_header_root: H256 = execution_proof + .execution_header + .hash_tree_root() + .map_err(|_| Error::::BlockBodyHashTreeRootFailed)?; + + ensure!( + verify_merkle_branch( + execution_header_root, + &execution_proof.execution_branch, + config::EXECUTION_HEADER_SUBTREE_INDEX, + config::EXECUTION_HEADER_DEPTH, + execution_proof.header.body_root + ), + Error::::InvalidExecutionHeaderProof + ); + + let beacon_block_root: H256 = execution_proof + .header + .hash_tree_root() + .map_err(|_| Error::::HeaderHashTreeRootFailed)?; + + match &execution_proof.ancestry_proof { + Some(proof) => { + Self::verify_ancestry_proof( + beacon_block_root, + execution_proof.header.slot, + &proof.header_branch, + proof.finalized_block_root, + )?; + }, + None => { + // If the ancestry proof is not provided, we expect this beacon header to be a + // finalized beacon header. We need to check that the header hash matches the + // finalized header root at the expected slot. + let state = >::get(beacon_block_root) + .ok_or(Error::::ExpectedFinalizedHeaderNotStored)?; + if execution_proof.header.slot != state.slot { + return Err(Error::::ExpectedFinalizedHeaderNotStored.into()) + } + }, + } + + Ok(()) + } + + /// Verify that `block_root` is an ancestor of `finalized_block_root` Used to prove that + /// an execution header is an ancestor of a finalized header (i.e. the blocks are + /// on the same chain). + fn verify_ancestry_proof( + block_root: H256, + block_slot: u64, + block_root_proof: &[H256], + finalized_block_root: H256, + ) -> DispatchResult { + let state = >::get(finalized_block_root) + .ok_or(Error::::ExpectedFinalizedHeaderNotStored)?; + + ensure!(block_slot < state.slot, Error::::HeaderNotFinalized); + + let index_in_array = block_slot % (SLOTS_PER_HISTORICAL_ROOT as u64); + let leaf_index = (SLOTS_PER_HISTORICAL_ROOT as u64) + index_in_array; + + ensure!( + verify_merkle_branch( + block_root, + block_root_proof, + leaf_index as usize, + config::BLOCK_ROOT_AT_INDEX_DEPTH, + state.block_roots_root + ), + Error::::InvalidAncestryMerkleProof + ); + + Ok(()) + } } diff --git a/bridges/snowbridge/pallets/ethereum-client/src/lib.rs b/bridges/snowbridge/pallets/ethereum-client/src/lib.rs index a54d4a05ac5840df4aa7b00389527a0ec94ee22d..c1b9e19729bc47588ad179db0c9c280a05834bc1 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/lib.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/lib.rs @@ -10,13 +10,11 @@ //! //! * [`Call::force_checkpoint`]: Set the initial trusted consensus checkpoint. //! * [`Call::set_operating_mode`]: Set the operating mode of the pallet. Can be used to disable -//! processing of conensus updates. +//! processing of consensus updates. //! //! ## Consensus Updates //! //! * [`Call::submit`]: Submit a finalized beacon header with an optional sync committee update -//! * [`Call::submit_execution_header`]: Submit an execution header together with an ancestry proof -//! that can be verified against an already imported finalized beacon header. #![cfg_attr(not(feature = "std"), no_std)] pub mod config; @@ -40,8 +38,7 @@ use frame_support::{ use frame_system::ensure_signed; use primitives::{ fast_aggregate_verify, verify_merkle_branch, verify_receipt_proof, BeaconHeader, BlsError, - CompactBeaconState, CompactExecutionHeader, ExecutionHeaderState, ForkData, ForkVersion, - ForkVersions, PublicKeyPrepared, SigningData, + CompactBeaconState, ForkData, ForkVersion, ForkVersions, PublicKeyPrepared, SigningData, }; use snowbridge_core::{BasicOperatingMode, RingBufferMap}; use sp_core::H256; @@ -51,11 +48,7 @@ pub use weights::WeightInfo; use functions::{ compute_epoch, compute_period, decompress_sync_committee_bits, sync_committee_sum, }; -pub use types::ExecutionHeaderBuffer; -use types::{ - CheckpointUpdate, ExecutionHeaderUpdate, FinalizedBeaconStateBuffer, SyncCommitteePrepared, - Update, -}; +use types::{CheckpointUpdate, FinalizedBeaconStateBuffer, SyncCommitteePrepared, Update}; pub use pallet::*; @@ -76,10 +69,7 @@ pub mod pallet { pub struct MaxFinalizedHeadersToKeep(PhantomData); impl Get for MaxFinalizedHeadersToKeep { fn get() -> u32 { - // Consider max latency allowed between LatestFinalizedState and LatestExecutionState is - // the total slots in one sync_committee_period so 1 should be fine we keep 2 periods - // here for redundancy. - const MAX_REDUNDANCY: u32 = 2; + const MAX_REDUNDANCY: u32 = 20; config::EPOCHS_PER_SYNC_COMMITTEE_PERIOD as u32 * MAX_REDUNDANCY } } @@ -92,9 +82,6 @@ pub mod pallet { type RuntimeEvent: From> + IsType<::RuntimeEvent>; #[pallet::constant] type ForkVersions: Get; - /// Maximum number of execution headers to keep - #[pallet::constant] - type MaxExecutionHeadersToKeep: Get; type WeightInfo: WeightInfo; } @@ -105,10 +92,6 @@ pub mod pallet { block_hash: H256, slot: u64, }, - ExecutionHeaderImported { - block_hash: H256, - block_number: u64, - }, SyncCommitteeUpdated { period: u64, }, @@ -130,6 +113,10 @@ pub mod pallet { InvalidExecutionHeaderProof, InvalidAncestryMerkleProof, InvalidBlockRootsRootMerkleProof, + /// The gap between the finalized headers is larger than the sync committee period, + /// rendering execution headers unprovable using ancestry proofs (blocks root size is + /// the same as the sync committee period slots). + InvalidFinalizedHeaderGap, HeaderNotFinalized, BlockBodyHashTreeRootFailed, HeaderHashTreeRootFailed, @@ -187,25 +174,6 @@ pub mod pallet { pub(super) type NextSyncCommittee = StorageValue<_, SyncCommitteePrepared, ValueQuery>; - /// Latest imported execution header - #[pallet::storage] - #[pallet::getter(fn latest_execution_state)] - pub(super) type LatestExecutionState = - StorageValue<_, ExecutionHeaderState, ValueQuery>; - - /// Execution Headers - #[pallet::storage] - pub type ExecutionHeaders = - StorageMap<_, Identity, H256, CompactExecutionHeader, OptionQuery>; - - /// Execution Headers: Current position in ring buffer - #[pallet::storage] - pub type ExecutionHeaderIndex = StorageValue<_, u32, ValueQuery>; - - /// Execution Headers: Mapping of ring buffer index to a pruning candidate - #[pallet::storage] - pub type ExecutionHeaderMapping = StorageMap<_, Identity, u32, H256, ValueQuery>; - /// The current operating mode of the pallet. #[pallet::storage] #[pallet::getter(fn operating_mode)] @@ -244,21 +212,6 @@ pub mod pallet { Ok(()) } - #[pallet::call_index(2)] - #[pallet::weight(T::WeightInfo::submit_execution_header())] - #[transactional] - /// Submits a new execution header update. The relevant related beacon header - /// is also included to prove the execution header, as well as ancestry proof data. - pub fn submit_execution_header( - origin: OriginFor, - update: Box, - ) -> DispatchResult { - ensure_signed(origin)?; - ensure!(!Self::operating_mode().is_halted(), Error::::Halted); - Self::process_execution_header_update(&update)?; - Ok(()) - } - /// Halt or resume all pallet operations. May only be called by root. #[pallet::call_index(3)] #[pallet::weight((T::DbWeight::get().reads_writes(1, 1), DispatchClass::Operational))] @@ -321,41 +274,19 @@ pub mod pallet { >::set(sync_committee_prepared); >::kill(); InitialCheckpointRoot::::set(header_root); - >::kill(); Self::store_validators_root(update.validators_root); - Self::store_finalized_header(header_root, update.header, update.block_roots_root)?; + Self::store_finalized_header(update.header, update.block_roots_root)?; Ok(()) } pub(crate) fn process_update(update: &Update) -> DispatchResult { - Self::cross_check_execution_state()?; Self::verify_update(update)?; Self::apply_update(update)?; Ok(()) } - /// Cross check to make sure that execution header import does not fall too far behind - /// finalised beacon header import. If that happens just return an error and pause - /// processing until execution header processing has caught up. - pub(crate) fn cross_check_execution_state() -> DispatchResult { - let latest_finalized_state = - FinalizedBeaconState::::get(LatestFinalizedBlockRoot::::get()) - .ok_or(Error::::NotBootstrapped)?; - let latest_execution_state = Self::latest_execution_state(); - // The execution header import should be at least within the slot range of a sync - // committee period. - let max_latency = config::EPOCHS_PER_SYNC_COMMITTEE_PERIOD * config::SLOTS_PER_EPOCH; - ensure!( - latest_execution_state.beacon_slot == 0 || - latest_finalized_state.slot < - latest_execution_state.beacon_slot + max_latency as u64, - Error::::ExecutionHeaderTooFarBehind - ); - Ok(()) - } - /// References and strictly follows /// Verifies that provided next sync committee is valid through a series of checks /// (including checking that a sync committee period isn't skipped and that the header is @@ -398,6 +329,17 @@ pub mod pallet { Error::::IrrelevantUpdate ); + // Verify the finalized header gap between the current finalized header and new imported + // header is not larger than the sync committee period, otherwise we cannot do + // ancestry proofs for execution headers in the gap. + ensure!( + latest_finalized_state + .slot + .saturating_add(config::SLOTS_PER_HISTORICAL_ROOT as u64) >= + update.finalized_header.slot, + Error::::InvalidFinalizedHeaderGap + ); + // Verify that the `finality_branch`, if present, confirms `finalized_header` to match // the finalized checkpoint root saved in the state of `attested_header`. let finalized_block_root: H256 = update @@ -519,127 +461,9 @@ pub mod pallet { }; if update.finalized_header.slot > latest_finalized_state.slot { - let finalized_block_root: H256 = update - .finalized_header - .hash_tree_root() - .map_err(|_| Error::::HeaderHashTreeRootFailed)?; - Self::store_finalized_header( - finalized_block_root, - update.finalized_header, - update.block_roots_root, - )?; - } - - Ok(()) - } - - /// Validates an execution header for import. The beacon header containing the execution - /// header is sent, plus the execution header, along with a proof that the execution header - /// is rooted in the beacon header body. - pub(crate) fn process_execution_header_update( - update: &ExecutionHeaderUpdate, - ) -> DispatchResult { - let latest_finalized_state = - FinalizedBeaconState::::get(LatestFinalizedBlockRoot::::get()) - .ok_or(Error::::NotBootstrapped)?; - // Checks that the header is an ancestor of a finalized header, using slot number. - ensure!( - update.header.slot <= latest_finalized_state.slot, - Error::::HeaderNotFinalized - ); - - // Checks that we don't skip execution headers, they need to be imported sequentially. - let latest_execution_state: ExecutionHeaderState = Self::latest_execution_state(); - ensure!( - latest_execution_state.block_number == 0 || - update.execution_header.block_number() == - latest_execution_state.block_number + 1, - Error::::ExecutionHeaderSkippedBlock - ); - - // Gets the hash tree root of the execution header, in preparation for the execution - // header proof (used to check that the execution header is rooted in the beacon - // header body. - let execution_header_root: H256 = update - .execution_header - .hash_tree_root() - .map_err(|_| Error::::BlockBodyHashTreeRootFailed)?; - - ensure!( - verify_merkle_branch( - execution_header_root, - &update.execution_branch, - config::EXECUTION_HEADER_SUBTREE_INDEX, - config::EXECUTION_HEADER_DEPTH, - update.header.body_root - ), - Error::::InvalidExecutionHeaderProof - ); - - let block_root: H256 = update - .header - .hash_tree_root() - .map_err(|_| Error::::HeaderHashTreeRootFailed)?; - - match &update.ancestry_proof { - Some(proof) => { - Self::verify_ancestry_proof( - block_root, - update.header.slot, - &proof.header_branch, - proof.finalized_block_root, - )?; - }, - None => { - // If the ancestry proof is not provided, we expect this header to be a - // finalized header. We need to check that the header hash matches the finalized - // header root at the expected slot. - let state = >::get(block_root) - .ok_or(Error::::ExpectedFinalizedHeaderNotStored)?; - if update.header.slot != state.slot { - return Err(Error::::ExpectedFinalizedHeaderNotStored.into()) - } - }, + Self::store_finalized_header(update.finalized_header, update.block_roots_root)?; } - Self::store_execution_header( - update.execution_header.block_hash(), - update.execution_header.clone().into(), - update.header.slot, - block_root, - ); - - Ok(()) - } - - /// Verify that `block_root` is an ancestor of `finalized_block_root` Used to prove that - /// an execution header is an ancestor of a finalized header (i.e. the blocks are - /// on the same chain). - fn verify_ancestry_proof( - block_root: H256, - block_slot: u64, - block_root_proof: &[H256], - finalized_block_root: H256, - ) -> DispatchResult { - let state = >::get(finalized_block_root) - .ok_or(Error::::ExpectedFinalizedHeaderNotStored)?; - - ensure!(block_slot < state.slot, Error::::HeaderNotFinalized); - - let index_in_array = block_slot % (SLOTS_PER_HISTORICAL_ROOT as u64); - let leaf_index = (SLOTS_PER_HISTORICAL_ROOT as u64) + index_in_array; - - ensure!( - verify_merkle_branch( - block_root, - block_root_proof, - leaf_index as usize, - config::BLOCK_ROOT_AT_INDEX_DEPTH, - state.block_roots_root - ), - Error::::InvalidAncestryMerkleProof - ); - Ok(()) } @@ -664,13 +488,15 @@ pub mod pallet { /// Stores a compacted (slot and block roots root (hash of the `block_roots` beacon state /// field, used for ancestry proof)) beacon state in a ring buffer map, with the header root /// as map key. - fn store_finalized_header( - header_root: H256, + pub fn store_finalized_header( header: BeaconHeader, block_roots_root: H256, ) -> DispatchResult { let slot = header.slot; + let header_root: H256 = + header.hash_tree_root().map_err(|_| Error::::HeaderHashTreeRootFailed)?; + >::insert( header_root, CompactBeaconState { slot: header.slot, block_roots_root }, @@ -689,36 +515,6 @@ pub mod pallet { Ok(()) } - /// Stores the provided execution header in pallet storage. The header is stored - /// in a ring buffer map, with the block hash as map key. The last imported execution - /// header is also kept in storage, for the relayer to check import progress. - pub fn store_execution_header( - block_hash: H256, - header: CompactExecutionHeader, - beacon_slot: u64, - beacon_block_root: H256, - ) { - let block_number = header.block_number; - - >::insert(block_hash, header); - - log::trace!( - target: LOG_TARGET, - "💫 Updated latest execution block at {} to number {}.", - block_hash, - block_number - ); - - LatestExecutionState::::mutate(|s| { - s.beacon_block_root = beacon_block_root; - s.beacon_slot = beacon_slot; - s.block_hash = block_hash; - s.block_number = block_number; - }); - - Self::deposit_event(Event::ExecutionHeaderImported { block_hash, block_number }); - } - /// Stores the validators root in storage. Validators root is the hash tree root of all the /// validators at genesis and is used to used to identify the chain that we are on /// (used in conjunction with the fork version). diff --git a/bridges/snowbridge/pallets/ethereum-client/src/mock.rs b/bridges/snowbridge/pallets/ethereum-client/src/mock.rs index 799b14f4773e421a37b75d226d7829ce8bb7dcf6..bd6144ebd8f9335ff02a82ad756d1b6dd06125e5 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/mock.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/mock.rs @@ -2,12 +2,13 @@ // SPDX-FileCopyrightText: 2023 Snowfork use crate as ethereum_beacon_client; use crate::config; -use frame_support::{derive_impl, parameter_types}; -use hex_literal::hex; +use frame_support::{derive_impl, dispatch::DispatchResult, parameter_types}; use pallet_timestamp; -use primitives::{CompactExecutionHeader, Fork, ForkVersions}; +use primitives::{Fork, ForkVersions}; use snowbridge_core::inbound::{Log, Proof}; +use sp_std::default::Default; use std::{fs::File, path::PathBuf}; + type Block = frame_system::mocking::MockBlock; use sp_runtime::BuildStorage; @@ -20,8 +21,8 @@ where serde_json::from_reader(File::open(filepath).unwrap()) } -pub fn load_execution_header_update_fixture() -> primitives::ExecutionHeaderUpdate { - load_fixture("execution-header-update.json".to_string()).unwrap() +pub fn load_execution_proof_fixture() -> primitives::ExecutionProof { + load_fixture("execution-proof.json".to_string()).unwrap() } pub fn load_checkpoint_update_fixture( @@ -50,41 +51,8 @@ pub fn load_next_finalized_header_update_fixture( } pub fn get_message_verification_payload() -> (Log, Proof) { - ( - Log { - address: hex!("ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0").into(), - topics: vec![ - hex!("1b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ad").into(), - hex!("00000000000000000000000000000000000000000000000000000000000003e8").into(), - hex!("0000000000000000000000000000000000000000000000000000000000000001").into(), - ], - data: hex!("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004b000f000000000000000100d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec701345772617070656420457468657210574554481235003511000000000000000000000000000000000000000000").into(), - }, - Proof { - block_hash: hex!("05aaa60b0f27cce9e71909508527264b77ee14da7b5bf915fcc4e32715333213").into(), - tx_index: 0, - data: (vec![ - hex!("cf0d1c1ba57d1e0edfb59786c7e30c2b7e12bd54612b00cd21c4eaeecedf44fb").to_vec(), - hex!("d21fc4f68ab05bc4dcb23c67008e92c4d466437cdd6ed7aad0c008944c185510").to_vec(), - hex!("b9890f91ca0d77aa2a4adfaf9b9e40c94cac9e638b6d9797923865872944b646").to_vec(), - ], vec![ - hex!("f90131a0b601337b3aa10a671caa724eba641e759399979856141d3aea6b6b4ac59b889ba00c7d5dd48be9060221a02fb8fa213860b4c50d47046c8fa65ffaba5737d569e0a094601b62a1086cd9c9cb71a7ebff9e718f3217fd6e837efe4246733c0a196f63a06a4b0dd0aefc37b3c77828c8f07d1b7a2455ceb5dbfd3c77d7d6aeeddc2f7e8ca0d6e8e23142cdd8ec219e1f5d8b56aa18e456702b195deeaa210327284d42ade4a08a313d4c87023005d1ab631bbfe3f5de1e405d0e66d0bef3e033f1e5711b5521a0bf09a5d9a48b10ade82b8d6a5362a15921c8b5228a3487479b467db97411d82fa0f95cccae2a7c572ef3c566503e30bac2b2feb2d2f26eebf6d870dcf7f8cf59cea0d21fc4f68ab05bc4dcb23c67008e92c4d466437cdd6ed7aad0c008944c1855108080808080808080").to_vec(), - hex!("f851a0b9890f91ca0d77aa2a4adfaf9b9e40c94cac9e638b6d9797923865872944b646a060a634b9280e3a23fb63375e7bbdd9ab07fd379ab6a67e2312bbc112195fa358808080808080808080808080808080").to_vec(), - hex!("f9030820b9030402f90300018301d6e2b9010000000000000800000000000020040008000000000000000000000000400000008000000000000000000000000000000000000000000000000000000000042010000000001000000000000000000000000000000000040000000000000000000000000000000000000000000000008000000000000000002000000000000000000000000200000000000000200000000000100000000040000001000200008000000000000200000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000f901f5f87a942ffa5ecdbe006d30397c7636d3e015eee251369ff842a0c965575a00553e094ca7c5d14f02e107c258dda06867cbf9e0e69f80e71bbcc1a000000000000000000000000000000000000000000000000000000000000003e8a000000000000000000000000000000000000000000000000000000000000003e8f9011c94ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0f863a01b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ada000000000000000000000000000000000000000000000000000000000000003e8a00000000000000000000000000000000000000000000000000000000000000001b8a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004b000f000000000000000100d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec701345772617070656420457468657210574554481235003511000000000000000000000000000000000000000000f858948cf6147918a5cbb672703f879f385036f8793a24e1a01449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5ba0000000000000000000000000440edffa1352b13227e8ee646f3ea37456dec701").to_vec(), - ]), - } - ) -} - -pub fn get_message_verification_header() -> CompactExecutionHeader { - CompactExecutionHeader { - parent_hash: hex!("04a7f6ab8282203562c62f38b0ab41d32aaebe2c7ea687702b463148a6429e04") - .into(), - block_number: 55, - state_root: hex!("894d968712976d613519f973a317cb0781c7b039c89f27ea2b7ca193f7befdb3").into(), - receipts_root: hex!("cf0d1c1ba57d1e0edfb59786c7e30c2b7e12bd54612b00cd21c4eaeecedf44fb") - .into(), - } + let inbound_fixture = snowbridge_pallet_ethereum_client_fixtures::make_inbound_fixture(); + (inbound_fixture.message.event_log, inbound_fixture.message.proof) } frame_support::construct_runtime!( @@ -130,20 +98,25 @@ parameter_types! { epoch: 0, } }; - pub const ExecutionHeadersPruneThreshold: u32 = 8192; } impl ethereum_beacon_client::Config for Test { type RuntimeEvent = RuntimeEvent; type ForkVersions = ChainForkVersions; - type MaxExecutionHeadersToKeep = ExecutionHeadersPruneThreshold; type WeightInfo = (); } // Build genesis storage according to the mock runtime. pub fn new_tester() -> sp_io::TestExternalities { let t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - let mut ext = sp_io::TestExternalities::new(t); - let _ = ext.execute_with(|| Timestamp::set(RuntimeOrigin::signed(1), 30_000)); + let ext = sp_io::TestExternalities::new(t); ext } + +pub fn initialize_storage() -> DispatchResult { + let inbound_fixture = snowbridge_pallet_ethereum_client_fixtures::make_inbound_fixture(); + EthereumBeaconClient::store_finalized_header( + inbound_fixture.finalized_header, + inbound_fixture.block_roots_root, + ) +} diff --git a/bridges/snowbridge/pallets/ethereum-client/src/tests.rs b/bridges/snowbridge/pallets/ethereum-client/src/tests.rs index 50b6a25c3428dba843303031018a4ef5e93cf696..765958c128212ee279bf547eb864335c7921e2eb 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/tests.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/tests.rs @@ -1,32 +1,26 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: 2023 Snowfork use crate::{ - functions::compute_period, pallet::ExecutionHeaders, sync_committee_sum, verify_merkle_branch, - BeaconHeader, CompactBeaconState, Error, ExecutionHeaderBuffer, FinalizedBeaconState, - LatestExecutionState, LatestFinalizedBlockRoot, NextSyncCommittee, SyncCommitteePrepared, + functions::compute_period, sync_committee_sum, verify_merkle_branch, BeaconHeader, + CompactBeaconState, Error, FinalizedBeaconState, LatestFinalizedBlockRoot, NextSyncCommittee, + SyncCommitteePrepared, }; use crate::mock::{ - get_message_verification_header, get_message_verification_payload, - load_checkpoint_update_fixture, load_execution_header_update_fixture, + get_message_verification_payload, load_checkpoint_update_fixture, load_finalized_header_update_fixture, load_next_finalized_header_update_fixture, load_next_sync_committee_update_fixture, load_sync_committee_update_fixture, }; pub use crate::mock::*; -use crate::config::{EPOCHS_PER_SYNC_COMMITTEE_PERIOD, SLOTS_PER_EPOCH}; +use crate::config::{EPOCHS_PER_SYNC_COMMITTEE_PERIOD, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT}; use frame_support::{assert_err, assert_noop, assert_ok}; use hex_literal::hex; use primitives::{ - CompactExecutionHeader, ExecutionHeaderState, Fork, ForkVersions, NextSyncCommitteeUpdate, - VersionedExecutionPayloadHeader, -}; -use rand::{thread_rng, Rng}; -use snowbridge_core::{ - inbound::{VerificationError, Verifier}, - RingBufferMap, + types::deneb, Fork, ForkVersions, NextSyncCommitteeUpdate, VersionedExecutionPayloadHeader, }; +use snowbridge_core::inbound::{VerificationError, Verifier}; use sp_core::H256; use sp_runtime::DispatchError; @@ -212,61 +206,6 @@ pub fn sync_committee_participation_is_supermajority_errors_when_not_supermajori }); } -#[test] -pub fn execution_header_pruning() { - new_tester().execute_with(|| { - let execution_header_prune_threshold = ExecutionHeadersPruneThreshold::get(); - let to_be_deleted = execution_header_prune_threshold / 2; - - let mut stored_hashes = vec![]; - - for i in 0..execution_header_prune_threshold { - let mut hash = H256::default(); - thread_rng().try_fill(&mut hash.0[..]).unwrap(); - EthereumBeaconClient::store_execution_header( - hash, - CompactExecutionHeader::default(), - i as u64, - hash, - ); - stored_hashes.push(hash); - } - - // We should have stored everything until now - assert_eq!({ ExecutionHeaders::::iter().count() }, stored_hashes.len()); - - // Let's push extra entries so that some of the previous entries are deleted. - for i in 0..to_be_deleted { - let mut hash = H256::default(); - thread_rng().try_fill(&mut hash.0[..]).unwrap(); - EthereumBeaconClient::store_execution_header( - hash, - CompactExecutionHeader::default(), - (i + execution_header_prune_threshold) as u64, - hash, - ); - - stored_hashes.push(hash); - } - - // We should have only stored upto `execution_header_prune_threshold` - assert_eq!( - ExecutionHeaders::::iter().count() as u32, - execution_header_prune_threshold - ); - - // First `to_be_deleted` items must be deleted - for i in 0..to_be_deleted { - assert!(!ExecutionHeaders::::contains_key(stored_hashes[i as usize])); - } - - // Other entries should be part of data - for i in to_be_deleted..(to_be_deleted + execution_header_prune_threshold) { - assert!(ExecutionHeaders::::contains_key(stored_hashes[i as usize])); - } - }); -} - #[test] fn compute_fork_version() { let mock_fork_versions = ForkVersions { @@ -348,34 +287,6 @@ fn find_present_keys() { }); } -#[test] -fn cross_check_execution_state() { - new_tester().execute_with(|| { - let header_root: H256 = TEST_HASH.into(); - >::insert( - header_root, - CompactBeaconState { - // set slot to period 5 - slot: ((EPOCHS_PER_SYNC_COMMITTEE_PERIOD * SLOTS_PER_EPOCH) * 5) as u64, - block_roots_root: Default::default(), - }, - ); - LatestFinalizedBlockRoot::::set(header_root); - >::set(ExecutionHeaderState { - beacon_block_root: Default::default(), - // set slot to period 2 - beacon_slot: ((EPOCHS_PER_SYNC_COMMITTEE_PERIOD * SLOTS_PER_EPOCH) * 2) as u64, - block_hash: Default::default(), - block_number: 0, - }); - - assert_err!( - EthereumBeaconClient::cross_check_execution_state(), - Error::::ExecutionHeaderTooFarBehind - ); - }); -} - /* SYNC PROCESS TESTS */ #[test] @@ -608,40 +519,6 @@ fn submit_update_with_skipped_sync_committee_period() { }); } -#[test] -fn submit_update_execution_headers_too_far_behind() { - let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let execution_header_update = Box::new(load_execution_header_update_fixture()); - let next_update = Box::new(load_next_sync_committee_update_fixture()); - - new_tester().execute_with(|| { - let far_ahead_finalized_header_slot = finalized_header_update.finalized_header.slot + - (EPOCHS_PER_SYNC_COMMITTEE_PERIOD * SLOTS_PER_EPOCH * 2) as u64; - assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - assert_ok!(EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update - )); - - let header_root: H256 = TEST_HASH.into(); - >::insert( - header_root, - CompactBeaconState { - slot: far_ahead_finalized_header_slot, - block_roots_root: Default::default(), - }, - ); - LatestFinalizedBlockRoot::::set(header_root); - - assert_err!( - EthereumBeaconClient::submit(RuntimeOrigin::signed(1), next_update), - Error::::ExecutionHeaderTooFarBehind - ); - }); -} - #[test] fn submit_irrelevant_update() { let checkpoint = Box::new(load_checkpoint_update_fixture()); @@ -703,183 +580,57 @@ fn submit_update_with_invalid_sync_committee_update() { }); } +/// Check that a gap of more than 8192 slots between finalized headers is not allowed. #[test] -fn submit_execution_header_update() { +fn submit_finalized_header_update_with_too_large_gap() { let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let execution_header_update = Box::new(load_execution_header_update_fixture()); - - new_tester().execute_with(|| { - assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - assert_ok!(EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update.clone() - )); - assert!(>::contains_key( - execution_header_update.execution_header.block_hash() - )); - }); -} - -#[test] -fn submit_execution_header_update_invalid_ancestry_proof() { - let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let mut execution_header_update = Box::new(load_execution_header_update_fixture()); - if let Some(ref mut ancestry_proof) = execution_header_update.ancestry_proof { - ancestry_proof.header_branch[0] = TEST_HASH.into() - } - - new_tester().execute_with(|| { - assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - assert_err!( - EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update - ), - Error::::InvalidAncestryMerkleProof - ); - }); -} - -#[test] -fn submit_execution_header_update_invalid_execution_header_proof() { - let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let mut execution_header_update = Box::new(load_execution_header_update_fixture()); - execution_header_update.execution_branch[0] = TEST_HASH.into(); - - new_tester().execute_with(|| { - assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - assert_err!( - EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update - ), - Error::::InvalidExecutionHeaderProof - ); - }); -} + let update = Box::new(load_sync_committee_update_fixture()); + let mut next_update = Box::new(load_next_sync_committee_update_fixture()); -#[test] -fn submit_execution_header_update_that_skips_block() { - let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let execution_header_update = Box::new(load_execution_header_update_fixture()); - let mut skipped_block_execution_header_update = - Box::new(load_execution_header_update_fixture()); - let mut skipped_execution_header = - skipped_block_execution_header_update.execution_header.clone(); - - skipped_execution_header = match skipped_execution_header { - VersionedExecutionPayloadHeader::Capella(execution_payload_header) => { - let mut mut_execution_payload_header = execution_payload_header.clone(); - mut_execution_payload_header.block_number = execution_payload_header.block_number + 2; - VersionedExecutionPayloadHeader::Capella(mut_execution_payload_header) - }, - VersionedExecutionPayloadHeader::Deneb(execution_payload_header) => { - let mut mut_execution_payload_header = execution_payload_header.clone(); - mut_execution_payload_header.block_number = execution_payload_header.block_number + 2; - VersionedExecutionPayloadHeader::Deneb(mut_execution_payload_header) - }, - }; + // Adds 8193 slots, so that the next update is still in the next sync committee, but the + // gap between the finalized headers is more than 8192 slots. + let slot_with_large_gap = checkpoint.header.slot + SLOTS_PER_HISTORICAL_ROOT as u64 + 1; - skipped_block_execution_header_update.execution_header = skipped_execution_header; + next_update.finalized_header.slot = slot_with_large_gap; + // Adding some slots to the attested header and signature slot since they need to be ahead + // of the finalized header. + next_update.attested_header.slot = slot_with_large_gap + 33; + next_update.signature_slot = slot_with_large_gap + 43; new_tester().execute_with(|| { assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - assert_ok!(EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update.clone() - )); - assert!(>::contains_key( - execution_header_update.execution_header.block_hash() - )); - assert_err!( - EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - skipped_block_execution_header_update - ), - Error::::ExecutionHeaderSkippedBlock - ); - }); -} - -#[test] -fn submit_execution_header_update_that_is_also_finalized_header_which_is_not_stored() { - let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let mut execution_header_update = Box::new(load_execution_header_update_fixture()); - execution_header_update.ancestry_proof = None; - - new_tester().execute_with(|| { - assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), update.clone())); + assert!(>::exists()); assert_err!( - EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update - ), - Error::::ExpectedFinalizedHeaderNotStored + EthereumBeaconClient::submit(RuntimeOrigin::signed(1), next_update.clone()), + Error::::InvalidFinalizedHeaderGap ); }); } +/// Check that a gap of 8192 slots between finalized headers is allowed. #[test] -fn submit_execution_header_update_that_is_also_finalized_header_which_is_stored_but_slots_dont_match( -) { +fn submit_finalized_header_update_with_gap_at_limit() { let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let mut execution_header_update = Box::new(load_execution_header_update_fixture()); - execution_header_update.ancestry_proof = None; - - new_tester().execute_with(|| { - assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - - let block_root: H256 = execution_header_update.header.hash_tree_root().unwrap(); - - >::insert( - block_root, - CompactBeaconState { - slot: execution_header_update.header.slot + 1, - block_roots_root: Default::default(), - }, - ); - LatestFinalizedBlockRoot::::set(block_root); - - assert_err!( - EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update - ), - Error::::ExpectedFinalizedHeaderNotStored - ); - }); -} + let update = Box::new(load_sync_committee_update_fixture()); + let mut next_update = Box::new(load_next_sync_committee_update_fixture()); -#[test] -fn submit_execution_header_not_finalized() { - let checkpoint = Box::new(load_checkpoint_update_fixture()); - let finalized_header_update = Box::new(load_finalized_header_update_fixture()); - let update = Box::new(load_execution_header_update_fixture()); + next_update.finalized_header.slot = checkpoint.header.slot + SLOTS_PER_HISTORICAL_ROOT as u64; + // Adding some slots to the attested header and signature slot since they need to be ahead + // of the finalized header. + next_update.attested_header.slot = + checkpoint.header.slot + SLOTS_PER_HISTORICAL_ROOT as u64 + 33; + next_update.signature_slot = checkpoint.header.slot + SLOTS_PER_HISTORICAL_ROOT as u64 + 43; new_tester().execute_with(|| { assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); - assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); - - >::mutate(>::get(), |x| { - let prev = x.unwrap(); - *x = Some(CompactBeaconState { slot: update.header.slot - 1, ..prev }); - }); - + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), update.clone())); + assert!(>::exists()); assert_err!( - EthereumBeaconClient::submit_execution_header(RuntimeOrigin::signed(1), update), - Error::::HeaderNotFinalized + EthereumBeaconClient::submit(RuntimeOrigin::signed(1), next_update.clone()), + // The test should pass the InvalidFinalizedHeaderGap check, and will fail at the + // next check, the merkle proof, because we changed the next_update slots. + Error::::InvalidHeaderMerkleProof ); }); } @@ -888,37 +639,21 @@ fn submit_execution_header_not_finalized() { #[test] fn verify_message() { - let header = get_message_verification_header(); let (event_log, proof) = get_message_verification_payload(); - let block_hash = proof.block_hash; new_tester().execute_with(|| { - >::insert(block_hash, header); + assert_ok!(initialize_storage()); assert_ok!(EthereumBeaconClient::verify(&event_log, &proof)); }); } -#[test] -fn verify_message_missing_header() { - let (event_log, proof) = get_message_verification_payload(); - - new_tester().execute_with(|| { - assert_err!( - EthereumBeaconClient::verify(&event_log, &proof), - VerificationError::HeaderNotFound - ); - }); -} - #[test] fn verify_message_invalid_proof() { - let header = get_message_verification_header(); let (event_log, mut proof) = get_message_verification_payload(); - proof.data.1[0] = TEST_HASH.into(); - let block_hash = proof.block_hash; + proof.receipt_proof.1[0] = TEST_HASH.into(); new_tester().execute_with(|| { - >::insert(block_hash, header); + assert_ok!(initialize_storage()); assert_err!( EthereumBeaconClient::verify(&event_log, &proof), VerificationError::InvalidProof @@ -928,29 +663,28 @@ fn verify_message_invalid_proof() { #[test] fn verify_message_invalid_receipts_root() { - let mut header = get_message_verification_header(); - let (event_log, proof) = get_message_verification_payload(); - let block_hash = proof.block_hash; - header.receipts_root = TEST_HASH.into(); + let (event_log, mut proof) = get_message_verification_payload(); + let mut payload = deneb::ExecutionPayloadHeader::default(); + payload.receipts_root = TEST_HASH.into(); + proof.execution_proof.execution_header = VersionedExecutionPayloadHeader::Deneb(payload); new_tester().execute_with(|| { - >::insert(block_hash, header); + assert_ok!(initialize_storage()); assert_err!( EthereumBeaconClient::verify(&event_log, &proof), - VerificationError::InvalidProof + VerificationError::InvalidExecutionProof( + Error::::BlockBodyHashTreeRootFailed.into() + ) ); }); } #[test] fn verify_message_invalid_log() { - let header = get_message_verification_header(); let (mut event_log, proof) = get_message_verification_payload(); - let block_hash = proof.block_hash; event_log.topics = vec![H256::zero(); 10]; - new_tester().execute_with(|| { - >::insert(block_hash, header); + assert_ok!(initialize_storage()); assert_err!( EthereumBeaconClient::verify(&event_log, &proof), VerificationError::InvalidLog @@ -960,13 +694,11 @@ fn verify_message_invalid_log() { #[test] fn verify_message_receipt_does_not_contain_log() { - let header = get_message_verification_header(); let (mut event_log, proof) = get_message_verification_payload(); - let block_hash = proof.block_hash; event_log.data = hex!("f9013c94ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0f863a01b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ada000000000000000000000000000000000000000000000000000000000000003e8a00000000000000000000000000000000000000000000000000000000000000002b8c000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000068000f000000000000000101d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec70100000101001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c0000e8890423c78a0000000000000000000000000000000000000000000000000000000000000000").to_vec(); new_tester().execute_with(|| { - >::insert(block_hash, header); + assert_ok!(initialize_storage()); assert_err!( EthereumBeaconClient::verify(&event_log, &proof), VerificationError::LogNotFound @@ -978,7 +710,6 @@ fn verify_message_receipt_does_not_contain_log() { fn set_operating_mode() { let checkpoint = Box::new(load_checkpoint_update_fixture()); let update = Box::new(load_finalized_header_update_fixture()); - let execution_header_update = Box::new(load_execution_header_update_fixture()); new_tester().execute_with(|| { assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); @@ -992,14 +723,6 @@ fn set_operating_mode() { EthereumBeaconClient::submit(RuntimeOrigin::signed(1), update), Error::::Halted ); - - assert_noop!( - EthereumBeaconClient::submit_execution_header( - RuntimeOrigin::signed(1), - execution_header_update - ), - Error::::Halted - ); }); } @@ -1015,3 +738,107 @@ fn set_operating_mode_root_only() { ); }); } + +#[test] +fn verify_execution_proof_invalid_ancestry_proof() { + let checkpoint = Box::new(load_checkpoint_update_fixture()); + let finalized_header_update = Box::new(load_finalized_header_update_fixture()); + let mut execution_header_update = Box::new(load_execution_proof_fixture()); + if let Some(ref mut ancestry_proof) = execution_header_update.ancestry_proof { + ancestry_proof.header_branch[0] = TEST_HASH.into() + } + + new_tester().execute_with(|| { + assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); + assert_err!( + EthereumBeaconClient::verify_execution_proof(&execution_header_update), + Error::::InvalidAncestryMerkleProof + ); + }); +} + +#[test] +fn verify_execution_proof_invalid_execution_header_proof() { + let checkpoint = Box::new(load_checkpoint_update_fixture()); + let finalized_header_update = Box::new(load_finalized_header_update_fixture()); + let mut execution_header_update = Box::new(load_execution_proof_fixture()); + execution_header_update.execution_branch[0] = TEST_HASH.into(); + + new_tester().execute_with(|| { + assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); + assert_err!( + EthereumBeaconClient::verify_execution_proof(&execution_header_update), + Error::::InvalidExecutionHeaderProof + ); + }); +} + +#[test] +fn verify_execution_proof_that_is_also_finalized_header_which_is_not_stored() { + let checkpoint = Box::new(load_checkpoint_update_fixture()); + let finalized_header_update = Box::new(load_finalized_header_update_fixture()); + let mut execution_header_update = Box::new(load_execution_proof_fixture()); + execution_header_update.ancestry_proof = None; + + new_tester().execute_with(|| { + assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); + assert_err!( + EthereumBeaconClient::verify_execution_proof(&execution_header_update), + Error::::ExpectedFinalizedHeaderNotStored + ); + }); +} + +#[test] +fn submit_execution_proof_that_is_also_finalized_header_which_is_stored_but_slots_dont_match() { + let checkpoint = Box::new(load_checkpoint_update_fixture()); + let finalized_header_update = Box::new(load_finalized_header_update_fixture()); + let mut execution_header_update = Box::new(load_execution_proof_fixture()); + execution_header_update.ancestry_proof = None; + + new_tester().execute_with(|| { + assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); + + let block_root: H256 = execution_header_update.header.hash_tree_root().unwrap(); + + >::insert( + block_root, + CompactBeaconState { + slot: execution_header_update.header.slot + 1, + block_roots_root: Default::default(), + }, + ); + LatestFinalizedBlockRoot::::set(block_root); + + assert_err!( + EthereumBeaconClient::verify_execution_proof(&execution_header_update), + Error::::ExpectedFinalizedHeaderNotStored + ); + }); +} + +#[test] +fn verify_execution_proof_not_finalized() { + let checkpoint = Box::new(load_checkpoint_update_fixture()); + let finalized_header_update = Box::new(load_finalized_header_update_fixture()); + let update = Box::new(load_execution_proof_fixture()); + + new_tester().execute_with(|| { + assert_ok!(EthereumBeaconClient::process_checkpoint_update(&checkpoint)); + assert_ok!(EthereumBeaconClient::submit(RuntimeOrigin::signed(1), finalized_header_update)); + + >::mutate(>::get(), |x| { + let prev = x.unwrap(); + *x = Some(CompactBeaconState { slot: update.header.slot - 1, ..prev }); + }); + + assert_err!( + EthereumBeaconClient::verify_execution_proof(&update), + Error::::HeaderNotFinalized + ); + }); +} diff --git a/bridges/snowbridge/pallets/ethereum-client/src/types.rs b/bridges/snowbridge/pallets/ethereum-client/src/types.rs index 5dcefea9f80f4e201d8de633a7a323f530220a45..8808f989754b240d207101cbeff6fe25fe74279a 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/types.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/types.rs @@ -15,17 +15,7 @@ pub type CheckpointUpdate = primitives::CheckpointUpdate; pub type Update = primitives::Update; pub type NextSyncCommitteeUpdate = primitives::NextSyncCommitteeUpdate; -pub use primitives::ExecutionHeaderUpdate; - -/// ExecutionHeader ring buffer implementation -pub type ExecutionHeaderBuffer = RingBufferMapImpl< - u32, - ::MaxExecutionHeadersToKeep, - crate::ExecutionHeaderIndex, - crate::ExecutionHeaderMapping, - crate::ExecutionHeaders, - OptionQuery, ->; +pub use primitives::{AncestryProof, ExecutionProof}; /// FinalizedState ring buffer implementation pub(crate) type FinalizedBeaconStateBuffer = RingBufferMapImpl< diff --git a/bridges/snowbridge/pallets/ethereum-client/src/weights.rs b/bridges/snowbridge/pallets/ethereum-client/src/weights.rs index e1a5578f46615e6a75400631ea7d0cc00a0d90cb..e4629746aa2d9f8afe31e6af037b71a3c6f9b2bb 100644 --- a/bridges/snowbridge/pallets/ethereum-client/src/weights.rs +++ b/bridges/snowbridge/pallets/ethereum-client/src/weights.rs @@ -36,7 +36,6 @@ pub trait WeightInfo { fn force_checkpoint() -> Weight; fn submit() -> Weight; fn submit_with_sync_committee() -> Weight; - fn submit_execution_header() -> Weight; } // For backwards compatibility and tests @@ -59,10 +58,4 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(6)) .saturating_add(RocksDbWeight::get().writes(1)) } - fn submit_execution_header() -> Weight { - Weight::from_parts(113_158_000_u64, 0) - .saturating_add(Weight::from_parts(0, 3537)) - .saturating_add(RocksDbWeight::get().reads(5)) - .saturating_add(RocksDbWeight::get().writes(4)) - } } diff --git a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/execution-header-update.json b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/execution-header-update.json deleted file mode 100755 index 319014249c12d9de36ee9e73e08cdeabcd954f63..0000000000000000000000000000000000000000 --- a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/execution-header-update.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "header": { - "slot": 215, - "proposer_index": 2, - "parent_root": "0x97518f531a252bb6ca547b21aca9da767943ec99211d3b15c804e34c3a523f45", - "state_root": "0xb088b5a3a8c90d6dc919a695cd7bb0267c6f983ea2e675c559ceb8f46cb90b67", - "body_root": "0x0ba23c8224fdd01531d5ad51486353bd524a0b4c20bca704e26d3210616f829b" - }, - "ancestry_proof": { - "header_branch": [ - "0x97518f531a252bb6ca547b21aca9da767943ec99211d3b15c804e34c3a523f45", - "0x5ce0db996bd499c2b4f7a93263d5aafd052f420efb617cce6fdd54e25516aa45", - "0x84f0e373b66011ce774c7061440c0a50a51cce2b4b335395eee3e563d605597f", - "0x48f9ccc5f9594142c18c3b5c39a99f0549329c6ab3ba06c9a50030eadca87770", - "0xf89d6e311e05bc75a6f63ce118bccce254551f1a88d54c3b4f773f81f946bd99", - "0x2edd6d893c22636675147c07dfcdb541a146e87c3f15b51c388be4868246dc9b", - "0xd76b7de5f856e3208a91a42c9c398a7f4fab35e667bf916346050ae742514a2d", - "0x83a2e233e76385953ca41de4c3afe60471a61f0cc1b3846b4a0670e3e563b747", - "0xe783a5a109c2ad74e4eb53e8f6b11b31266a92a9e16c1fd5873109c5d41b282c", - "0xd4ea1ef3869ee6a0fd0b19d7d70027d144eecd4f1d32cbf47632a0a9069164b9", - "0xf8179564b58eb93a850d35e4156a04db651106442ad891c3e85155c1762792f1", - "0x4cbb1edb48cf1e32fb30db60aaaeaf6190ffe4d0c8dbc96cec307daecb78be12", - "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f" - ], - "finalized_block_root": "0x890a7f23b9ed2160901654be9efc575d6830ca860e2a97866ae3423fb7bd7231" - }, - "execution_header": { - "Deneb": { - "parent_hash": "0xd82ec63f5c5e6ba61d62f09c188f158e6449b94bdcc31941e68639eec3c4cf7a", - "fee_recipient": "0x0000000000000000000000000000000000000000", - "state_root": "0x8b65545fe5f3216b47b6339b9c91ca2b7f1032a970b04246d9e9fb4460ee34c3", - "receipts_root": "0x7b1f61b9714c080ef0be014e01657a15f45f0304b477beebc7ca5596c8033095", - "logs_bloom": "0x00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010", - "prev_randao": "0x6d9e2a012d82b1b6cb0a2c1c1ed24cc16dbb56e6e39ae545371e0666ab057862", - "block_number": 215, - "gas_limit": 64842908, - "gas_used": 119301, - "timestamp": 1705859527, - "extra_data": "0xd983010d0a846765746888676f312e32312e358664617277696e", - "base_fee_per_gas": 7, - "block_hash": "0x48498dbfbcfae53a7f4c289ee00747aceea925f6260c50ead5a33e1c55c40f98", - "transactions_root": "0x5ebc1347fe3df0611d4f66b19bd8e1c6f4eaed0371d850f14c83b1c77ea234e6", - "withdrawals_root": "0x792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535", - "blob_gas_used": 0, - "excess_blob_gas": 0 - } - }, - "execution_branch": [ - "0xf8c69d3830406d668619bcccc13c8dddde41e863326f7418b241d5924c4ad34a", - "0xb46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb", - "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0xf4d6b5cf9c6e212615c3674fa625d04eb1114153fb221ef5ad02aa433fc67cfb" - ] -} \ No newline at end of file diff --git a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/execution-proof.json b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/execution-proof.json new file mode 100755 index 0000000000000000000000000000000000000000..f55898087dfec122d84f699ee75cfe9aadbb4d6d --- /dev/null +++ b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/execution-proof.json @@ -0,0 +1,54 @@ +{ + "header": { + "slot": 393, + "proposer_index": 4, + "parent_root": "0x6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef", + "state_root": "0xb62ac34a8cb82497be9542fe2114410c9f6021855b766015406101a1f3d86434", + "body_root": "0x04005fe231e11a5b7b1580cb73b177ae8b338bedd745497e6bb7122126a806db" + }, + "ancestry_proof": { + "header_branch": [ + "0x6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef", + "0xfa84cc88ca53a72181599ff4eb07d8b444bce023fe2347c3b4f51004c43439d3", + "0xcadc8ae211c6f2221c9138e829249adf902419c78eb4727a150baa4d9a02cc9d", + "0x33a89962df08a35c52bd7e1d887cd71fa7803e68787d05c714036f6edf75947c", + "0x2c9760fce5c2829ef3f25595a703c21eb22d0186ce223295556ed5da663a82cf", + "0xe1aa87654db79c8a0ecd6c89726bb662fcb1684badaef5cd5256f479e3c622e1", + "0xaa70d5f314e4a1fbb9c362f3db79b21bf68b328887248651fbd29fc501d0ca97", + "0x160b6c235b3a1ed4ef5f80b03ee1c76f7bf3f591c92fca9d8663e9221b9f9f0f", + "0xf68d7dcd6a07a18e9de7b5d2aa1980eb962e11d7dcb584c96e81a7635c8d2535", + "0x1d5f912dfd6697110dd1ecb5cb8e77952eef57d85deb373572572df62bb157fc", + "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", + "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", + "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f" + ], + "finalized_block_root": "0x751414cd97c0624f922b3e80285e9f776b08fa22fd5f87391f2ed7ef571a8d46" + }, + "execution_header": { + "Deneb": { + "parent_hash": "0x8092290aa21b7751576440f77edd02a94058429ce50e63a92d620951fb25eda2", + "fee_recipient": "0x0000000000000000000000000000000000000000", + "state_root": "0x96a83e9ddf745346fafcb0b03d57314623df669ed543c110662b21302a0fae8b", + "receipts_root": "0xdccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284", + "logs_bloom": "0x00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000400000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000040004000000000000002002002000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000080000000000000000000000000000000000100000000000000000200000200000010", + "prev_randao": "0x62e309d4f5119d1f5c783abc20fc1a549efbab546d8d0b25ff1cfd58be524e67", + "block_number": 393, + "gas_limit": 54492273, + "gas_used": 199644, + "timestamp": 1710552813, + "extra_data": "0xd983010d0b846765746888676f312e32312e368664617277696e", + "base_fee_per_gas": 7, + "block_hash": "0x6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131", + "transactions_root": "0x2cfa6ed7327e8807c7973516c5c32a68ef2459e586e8067e113d081c3bd8c07d", + "withdrawals_root": "0x792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535", + "blob_gas_used": 0, + "excess_blob_gas": 0 + } + }, + "execution_branch": [ + "0xa6833fa629f3286b6916c6e50b8bf089fc9126bee6f64d0413b4e59c1265834d", + "0xb46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb", + "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", + "0xd3af7c05c516726be7505239e0b9c7cb53d24abce6b91cdb3b3995f0164a75da" + ] +} \ No newline at end of file diff --git a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/finalized-header-update.json b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/finalized-header-update.json index f9d5324d57b15fc657876b46bbf4a8e716d4c30c..2dec5cc56fac60b924053573f5962c02b487b24b 100755 --- a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/finalized-header-update.json +++ b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/finalized-header-update.json @@ -1,38 +1,40 @@ { "attested_header": { - "slot": 2566, - "proposer_index": 6, - "parent_root": "0x6eb9f13a2c496318ce1ab3087bbd872f5c9519a1a7ca8231a2453e3cb523af00", - "state_root": "0xc8cb12766113dff7e46d2917267bf33d0626d99dd47715fcdbc5c65fad3c04b4", - "body_root": "0xd8cfd0d7bc9bc3724417a1655bb0a67c0765ca36197320f4d834150b52ef1420" + "slot": 933, + "proposer_index": 1, + "parent_root": "0xf5fc63e2780ca302b97aea73fc95d74d702b5afe9a772c2b68f695026337b620", + "state_root": "0xd856d11636bc4d866e78be9e747b222b0977556a367ab42e4085277301438050", + "body_root": "0x5689091ab4eb76c2e876271add4924e1c66ce987c300c24aac2ad8c703e9a33f" }, "sync_aggregate": { "sync_committee_bits": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "sync_committee_signature": "0x9296f9a0387f2cac47008e22ad7c3cd3d49d35384c13e6aa1eacca7dca7c3d2ca81515e50eb3396b9550ed20ef7d8fa2049a186598feb2c00e93728045fcff917733d1827481b8fc95f3913e27fc70112c2490496eb57bb7181f02c3f9fd471f" + "sync_committee_signature": "0x93a3d482fe2a2f7fd2b634169752a8fddf1dc28b23a020b398be8526faf37a74ca0f6db1bed78a9c7256c09a6115235e108e0e8a7ce09287317b0856c4b77dfa5adba6cf4c3ebea5bfa4cd2fcde80fd0a532f2defe65d530201d5d2258796559" }, - "signature_slot": 2567, + "signature_slot": 934, "next_sync_committee_update": null, "finalized_header": { - "slot": 2496, - "proposer_index": 2, - "parent_root": "0xc99e49787106733eeebab4d93eb326e1f2214575c9d928f0c4ab0da0776f1622", - "state_root": "0xfbf8a08c86ef36bd173e37e733da4a78aa8e85fee99a990e858dd12a59087fde", - "body_root": "0xa2a8ad06901447b2807a9059580a4c40d8a941f325b1343c69f7c7c6c90e4ab0" + "slot": 864, + "proposer_index": 4, + "parent_root": "0x614e7672f991ac268cd841055973f55e1e42228831a211adef207bb7329be614", + "state_root": "0x5fa8dfca3d760e4242ab46d529144627aa85348a19173b6e081172c701197a4a", + "body_root": "0x0f34c083b1803666bb1ac5e73fa71582731a2cf37d279ff0a3b0cad5a2ff371e" }, "finality_branch": [ - "0x4e00000000000000000000000000000000000000000000000000000000000000", + "0x1b00000000000000000000000000000000000000000000000000000000000000", "0x10c726fac935bf9657cc7476d3cfa7bedec5983dcfb59e8a7df6d0a619e108d7", "0x98e9116c6bb7f20de18800dc63e73e689d06d6a47d35b5e2b32cf093d475840d", - "0x958b8e43347f6df6fa5eb3d62d06a862381a6585aa40640dd1c0de11f1cf89c1", - "0xf107dce04faa86a28fc5d4a618be9cb8d4fc3c23d6c42c3624f3ff4bf6586a03", - "0xa501cdc02e86969ac3e4d0c5a36f4f049efaa1ab8cb6693f51d130eb52a80f30" + "0xf12d9aededc72724e417b518fe6f847684f26f81616243dedf8c551cc7d504f5", + "0x89a85d0907ab3fd6e00ae385f61d456c6191646404ae7b8d23d0e60440cf4d00", + "0x9fc943b6020eb61d780d78bcc6f6102a81d2c868d58f36e61c6e286a2dc4d8c2" ], - "block_roots_root": "0xd160b7687041891b73e54b06fc4e04f82d0fa8fdd76705895e216c6b24709dfe", + "block_roots_root": "0xb9aab9c388c4e4fcd899b71f62c498fc73406e38e8eb14aa440e9affa06f2a10", "block_roots_branch": [ - "0x105290e42d98ab6a0ada6e55453cede36c672abf645eeb986b88d7487616e135", - "0x9da41f274bcdf6122335443d9ce94d07163b48dba3e2f9499ff56f4e48b48b99", - "0xecea7e1d3152d8130e83afdfe34b4de4ba2b69a33c9471991096daf454de9cf5", - "0xb2bf1758e50b2bfff29169fbc70fdb884b2b05bb615dbc53567574da6f4f1ae2", - "0xcd87069daf70975779126d6af833b7d636c75ca4d5e750ebcad0e76408a5e5bf" - ] + "0x733422bd810895dab74cbbe07c69dd440cbb51f573181ad4dddac30fcdd0f41f", + "0x9b9eca73ab01d14549c325ba1b4610bb20bf1f8ec2dbd649f9d8cc7f3cea75fa", + "0xbcc666ad0ad9f9725cbd682bc95589d35b1b53b2a615f1e6e8dd5e086336becf", + "0x3069b547a08f703a1715016e926cbd64e71f93f64fb68d98d8c8f1ab745c46e5", + "0xc2de7e1097239404e17b263cfa0473533cc41e903cb03440d633bc5c27314cb4" + ], + "execution_header": null, + "execution_branch": null } \ No newline at end of file diff --git a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/inbound-message.json b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/inbound-message.json index 5aa5a59f023761e248fd23ec3b29de19092e5e90..6589dca5fb456549d201b00402b2b2fa375d7b49 100644 --- a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/inbound-message.json +++ b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/inbound-message.json @@ -1,31 +1,79 @@ { - "execution_header": { - "parent_hash": "0xd82ec63f5c5e6ba61d62f09c188f158e6449b94bdcc31941e68639eec3c4cf7a", - "state_root": "0x8b65545fe5f3216b47b6339b9c91ca2b7f1032a970b04246d9e9fb4460ee34c3", - "receipts_root": "0x7b1f61b9714c080ef0be014e01657a15f45f0304b477beebc7ca5596c8033095", - "block_number": 215 + "event_log": { + "address": "0xeda338e4dc46038493b885327842fd3e301cab39", + "topics": [ + "0x7153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84f", + "0xc173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539", + "0x5f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000" }, - "message": { - "event_log": { - "address": "0xeda338e4dc46038493b885327842fd3e301cab39", - "topics": [ - "0x7153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84f", - "0xc173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539", - "0x5f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0" + "proof": { + "block_hash": "0x6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131", + "tx_index": 0, + "receipt_proof": { + "keys": [ + "0xdccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284", + "0x4a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000" + "values": [ + "0xf851a09c01dd6d2d8de951c45af23d3ad00829ce021c04d6c8acbe1612d456ee320d4980808080808080a04a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f8080808080808080", + "0xf9028c30b9028802f90284018301d205b9010000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010f90179f85894eda338e4dc46038493b885327842fd3e301cab39e1a0f78bb28d4b1d7da699e5c0bc2be29c2b04b5aab6aacf6298fe5304f9db9c6d7ea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7df9011c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a05f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0b8a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000" + ] }, - "Proof": { - "block_hash": "0x48498dbfbcfae53a7f4c289ee00747aceea925f6260c50ead5a33e1c55c40f98", - "tx_index": 0, - "data": { - "keys": [ - "0x7b1f61b9714c080ef0be014e01657a15f45f0304b477beebc7ca5596c8033095" + "execution_proof": { + "header": { + "slot": 393, + "proposer_index": 4, + "parent_root": "0x6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef", + "state_root": "0xb62ac34a8cb82497be9542fe2114410c9f6021855b766015406101a1f3d86434", + "body_root": "0x04005fe231e11a5b7b1580cb73b177ae8b338bedd745497e6bb7122126a806db" + }, + "ancestry_proof": { + "header_branch": [ + "0x6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef", + "0xfa84cc88ca53a72181599ff4eb07d8b444bce023fe2347c3b4f51004c43439d3", + "0xcadc8ae211c6f2221c9138e829249adf902419c78eb4727a150baa4d9a02cc9d", + "0x33a89962df08a35c52bd7e1d887cd71fa7803e68787d05c714036f6edf75947c", + "0x2c9760fce5c2829ef3f25595a703c21eb22d0186ce223295556ed5da663a82cf", + "0xe1aa87654db79c8a0ecd6c89726bb662fcb1684badaef5cd5256f479e3c622e1", + "0xaa70d5f314e4a1fbb9c362f3db79b21bf68b328887248651fbd29fc501d0ca97", + "0x160b6c235b3a1ed4ef5f80b03ee1c76f7bf3f591c92fca9d8663e9221b9f9f0f", + "0xf68d7dcd6a07a18e9de7b5d2aa1980eb962e11d7dcb584c96e81a7635c8d2535", + "0x1d5f912dfd6697110dd1ecb5cb8e77952eef57d85deb373572572df62bb157fc", + "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", + "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", + "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f" ], - "values": [ - "0xf9028e822080b9028802f90284018301d205b9010000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010f90179f85894eda338e4dc46038493b885327842fd3e301cab39e1a0f78bb28d4b1d7da699e5c0bc2be29c2b04b5aab6aacf6298fe5304f9db9c6d7ea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7df9011c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a05f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0b8a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000" - ] - } + "finalized_block_root": "0x751414cd97c0624f922b3e80285e9f776b08fa22fd5f87391f2ed7ef571a8d46" + }, + "execution_header": { + "Deneb": { + "parent_hash": "0x8092290aa21b7751576440f77edd02a94058429ce50e63a92d620951fb25eda2", + "fee_recipient": "0x0000000000000000000000000000000000000000", + "state_root": "0x96a83e9ddf745346fafcb0b03d57314623df669ed543c110662b21302a0fae8b", + "receipts_root": "0xdccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284", + "logs_bloom": "0x00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000400000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000040004000000000000002002002000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000080000000000000000000000000000000000100000000000000000200000200000010", + "prev_randao": "0x62e309d4f5119d1f5c783abc20fc1a549efbab546d8d0b25ff1cfd58be524e67", + "block_number": 393, + "gas_limit": 54492273, + "gas_used": 199644, + "timestamp": 1710552813, + "extra_data": "0xd983010d0b846765746888676f312e32312e368664617277696e", + "base_fee_per_gas": 7, + "block_hash": "0x6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131", + "transactions_root": "0x2cfa6ed7327e8807c7973516c5c32a68ef2459e586e8067e113d081c3bd8c07d", + "withdrawals_root": "0x792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535", + "blob_gas_used": 0, + "excess_blob_gas": 0 + } + }, + "execution_branch": [ + "0xa6833fa629f3286b6916c6e50b8bf089fc9126bee6f64d0413b4e59c1265834d", + "0xb46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb", + "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", + "0xd3af7c05c516726be7505239e0b9c7cb53d24abce6b91cdb3b3995f0164a75da" + ] } } } \ No newline at end of file diff --git a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/initial-checkpoint.json b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/initial-checkpoint.json index 202790c1db5b53068c7aedf561dc7972cb863f00..a62d646617e49ee11c1d68e401069c5bdf4368be 100755 --- a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/initial-checkpoint.json +++ b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/initial-checkpoint.json @@ -1,10 +1,10 @@ { "header": { - "slot": 2496, - "proposer_index": 2, - "parent_root": "0xc99e49787106733eeebab4d93eb326e1f2214575c9d928f0c4ab0da0776f1622", - "state_root": "0xfbf8a08c86ef36bd173e37e733da4a78aa8e85fee99a990e858dd12a59087fde", - "body_root": "0xa2a8ad06901447b2807a9059580a4c40d8a941f325b1343c69f7c7c6c90e4ab0" + "slot": 864, + "proposer_index": 4, + "parent_root": "0x614e7672f991ac268cd841055973f55e1e42228831a211adef207bb7329be614", + "state_root": "0x5fa8dfca3d760e4242ab46d529144627aa85348a19173b6e081172c701197a4a", + "body_root": "0x0f34c083b1803666bb1ac5e73fa71582731a2cf37d279ff0a3b0cad5a2ff371e" }, "current_sync_committee": { "pubkeys": [ @@ -525,18 +525,18 @@ }, "current_sync_committee_branch": [ "0x3ade38d498a062b50880a9409e1ca3a7fd4315d91eeb3bb83e56ac6bfe8d6a59", - "0x93880225bf99a0c5ec22b266ff829837754e9c5edf37a68c05b8f803fd82fa45", - "0x4c60656ec9a95fcf11030ad309c716b5b15beb7f60a0bcfc7c9d4eff505472ff", - "0x22d1645fceb4bf9a695043dda19a53e784ec70df6a6b1bd66ea30eba1cca5f2f", - "0xa8fc6cad84ceefc633ec56c2d031d525e1cb4b51c70eb252919fce5bba9a1fde" + "0xa9e90f89e7f90fd5d79a6bbcaf40ba5cfc05ab1b561ac51c84867c32248d5b1e", + "0xbd1a76b03e02402bb24a627de1980a80ab17691980271f597b844b89b497ef75", + "0x07bbcd27c7cad089023db046eda17e8209842b7d97add8b873519e84fe6480e7", + "0x94c11eeee4cb6192bf40810f23486d8c75dfbc2b6f28d988d6f74435ede243b0" ], "validators_root": "0x270d43e74ce340de4bca2b1936beca0f4f5408d9e78aec4850920baf659d5b69", - "block_roots_root": "0xd160b7687041891b73e54b06fc4e04f82d0fa8fdd76705895e216c6b24709dfe", + "block_roots_root": "0xb9aab9c388c4e4fcd899b71f62c498fc73406e38e8eb14aa440e9affa06f2a10", "block_roots_branch": [ - "0x105290e42d98ab6a0ada6e55453cede36c672abf645eeb986b88d7487616e135", - "0x9da41f274bcdf6122335443d9ce94d07163b48dba3e2f9499ff56f4e48b48b99", - "0xecea7e1d3152d8130e83afdfe34b4de4ba2b69a33c9471991096daf454de9cf5", - "0xb2bf1758e50b2bfff29169fbc70fdb884b2b05bb615dbc53567574da6f4f1ae2", - "0xcd87069daf70975779126d6af833b7d636c75ca4d5e750ebcad0e76408a5e5bf" + "0x733422bd810895dab74cbbe07c69dd440cbb51f573181ad4dddac30fcdd0f41f", + "0x9b9eca73ab01d14549c325ba1b4610bb20bf1f8ec2dbd649f9d8cc7f3cea75fa", + "0xbcc666ad0ad9f9725cbd682bc95589d35b1b53b2a615f1e6e8dd5e086336becf", + "0x3069b547a08f703a1715016e926cbd64e71f93f64fb68d98d8c8f1ab745c46e5", + "0xc2de7e1097239404e17b263cfa0473533cc41e903cb03440d633bc5c27314cb4" ] } \ No newline at end of file diff --git a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/sync-committee-update.json b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/sync-committee-update.json index 6bf20355c7a34ea3b1a9949f39cabc363a029590..4d601d7d8f0bbc0a3eda4d3afa927c076f290301 100755 --- a/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/sync-committee-update.json +++ b/bridges/snowbridge/pallets/ethereum-client/tests/fixtures/sync-committee-update.json @@ -2,13 +2,13 @@ "attested_header": { "slot": 129, "proposer_index": 5, - "parent_root": "0xe32b6c18f029e755b0273dc1c4fa2bc4979794c8286ad40276c1b8a8e36049d8", - "state_root": "0x5ec9dacf25a5f09f20be0c59246b3d8dcfe64bd085b4bac5cec180690339801e", - "body_root": "0x4080cf2412d6ff77fc3164ad6155423a7112f207f173145ec16371a93f481f87" + "parent_root": "0xc2def03fe44a2802130ca1a6d8406e4ccf4f344fec7075d4d84431cd4a8b0904", + "state_root": "0xfa62cde6666add7353d7aedcb61ebe3c6c84b5361e34f814825b1250affb5be4", + "body_root": "0x0f9c69f243fe7b5fa5860396c66c720a9e8b1e526e7914188930497cc4a9134c" }, "sync_aggregate": { "sync_committee_bits": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "sync_committee_signature": "0xa761c3333fbb3d36bc8f65454f898da38001499dcd37494cf3d86940a995399ae649216ba4c985af154f83f72c8b1856079b7636a7a8d7d3f7602df2cbf699edb72b65253e82de4d9cc4db7377eafb22f799129f63f094a21c00675bdd5cc243" + "sync_committee_signature": "0x810cfde2afea3e276256c09bdf1cd321c33dcadeefddcfd24f488e6f756d917cfda90b5b437b3a4b4ef880985afa28a40cf565ec0a82877ddee36adc01d55d9d4a911ae3e22556e4c2636f1c707366fba019fb49450440fcd263d0b054b04bf0" }, "signature_slot": 130, "next_sync_committee_update": { @@ -531,33 +531,35 @@ }, "next_sync_committee_branch": [ "0x3ade38d498a062b50880a9409e1ca3a7fd4315d91eeb3bb83e56ac6bfe8d6a59", - "0xfd1e5ff5d4a15081efe3ff17857b1f95984c9a271b1c41c2f81f43e60c2cc541", - "0xe1c97f93bb7352d395d1ff8ee29881572cb7eb5d71634783701171dcd30cd93d", - "0x77fa2170ddbd89b15dae02f2e6cf9f76c8e00d1c4217320acffbe01576d0da61", - "0xe97288e0627219087a024078d69445f34f0583a6350a7c3c40c39fd1fa6f8d68" + "0x43276bee17fc9fba3f4866e902f0e5b5b308d79db91154bb8bf819973837a7d9", + "0x5572348e13ce59446ca0ea7cfeed07579da05f121920a76559e19bda94dd81cd", + "0x2d58adca9f3c742530de037f1933d6de1920ea4b68581613d4bc32b71547f221", + "0x7072b3c6577cd5a89b3234968f316f54630bb97eafbdb59e5b61637a9640255f" ] }, "finalized_header": { "slot": 64, "proposer_index": 4, - "parent_root": "0x0f7bc2353778c14c7f6dba0fc5fe6eec87228b0d3a5447b61dce67b4d9338de3", - "state_root": "0xfeb990de653ce494c0a263f820eaf05a9300dbdc30cb6065ede602827bfccde4", - "body_root": "0xf5235cd8c24f2695fc5b7989926305c10ad8cf5a87d62a739f675f5543df2ec1" + "parent_root": "0xa876486aaad7ddb897f369fd22d0a9903cd61d00c9e0dfe7998dd68d1008c678", + "state_root": "0x818e21c3388575f8ccc9ff17ec79d5a57915bcd31bccf47770f65a18e068416b", + "body_root": "0x1d1f73b864b3bb7e11ff91b56ca1381e0f9ca8122b2c542db88243604c763019" }, "finality_branch": [ "0x0200000000000000000000000000000000000000000000000000000000000000", "0x10c726fac935bf9657cc7476d3cfa7bedec5983dcfb59e8a7df6d0a619e108d7", "0x98e9116c6bb7f20de18800dc63e73e689d06d6a47d35b5e2b32cf093d475840d", - "0xe1c97f93bb7352d395d1ff8ee29881572cb7eb5d71634783701171dcd30cd93d", - "0x77fa2170ddbd89b15dae02f2e6cf9f76c8e00d1c4217320acffbe01576d0da61", - "0xe97288e0627219087a024078d69445f34f0583a6350a7c3c40c39fd1fa6f8d68" + "0x5572348e13ce59446ca0ea7cfeed07579da05f121920a76559e19bda94dd81cd", + "0x2d58adca9f3c742530de037f1933d6de1920ea4b68581613d4bc32b71547f221", + "0x7072b3c6577cd5a89b3234968f316f54630bb97eafbdb59e5b61637a9640255f" ], - "block_roots_root": "0x6fcdfd1c3fb1bdd421fe59dddfff3855b5ed5e30373887991a0059d019ad12bc", + "block_roots_root": "0x715b08694bef183a6d94b3113d16a7129f89fc3edec85a7e0eaf6ef9153552ef", "block_roots_branch": [ - "0x94b59531f172bc24f914bc0c10104ccb158676850f8cc3b47b6ddb7f096ebdd7", - "0x22470ed9155a938587d44d5fa19217c0f939d8862e504e67cd8cb4d1b960795e", - "0xfeec3ef1a68f93849e71e84f90b99602cccc31868137b6887ca8244a4b979e8e", + "0x4028c72c71b6ce80ea7d18b2c9471f4e4fa39746261a9921e832a4a2f9bdf7bb", + "0x75f98062661785d3290b7bd998b64446582baa49210733fd4603e1a97cd45a44", + "0x6fb757f44052f30c464810f01b0132adfa1a5446d8715b41e9af88eee1ee3e65", "0x5340ad5877c72dca689ca04bc8fedb78d67a4801d99887937edd8ccd29f87e82", - "0xf5ff4b0c6190005015889879568f5f0d9c40134c7ec4ffdda47950dcd92395ad" - ] + "0xf2b3cb56753939a728ccad399a434ca490f018f2f331529ec0d8b2d59c509271" + ], + "execution_header": null, + "execution_branch": null } \ No newline at end of file diff --git a/bridges/snowbridge/pallets/inbound-queue/Cargo.toml b/bridges/snowbridge/pallets/inbound-queue/Cargo.toml index b850496cd4e14cd906565d488450b339a29f463f..9fc1f31fbf7c0d0e76c67ae126fddce66ca82b83 100644 --- a/bridges/snowbridge/pallets/inbound-queue/Cargo.toml +++ b/bridges/snowbridge/pallets/inbound-queue/Cargo.toml @@ -42,7 +42,7 @@ snowbridge-core = { path = "../../primitives/core", default-features = false } snowbridge-ethereum = { path = "../../primitives/ethereum", default-features = false } snowbridge-router-primitives = { path = "../../primitives/router", default-features = false } snowbridge-beacon-primitives = { path = "../../primitives/beacon", default-features = false } -snowbridge-pallet-inbound-queue-fixtures = { path = "./fixtures", default-features = false, optional = true } +snowbridge-pallet-inbound-queue-fixtures = { path = "fixtures", default-features = false, optional = true } [dev-dependencies] frame-benchmarking = { path = "../../../../substrate/frame/benchmarking" } diff --git a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/lib.rs b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/lib.rs index 4f3445b2905364147d3974988fee0fad2f387d07..00adcdfa186adc755273b9753d833a6bdbec5b56 100644 --- a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/lib.rs +++ b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/lib.rs @@ -2,17 +2,6 @@ // SPDX-FileCopyrightText: 2023 Snowfork #![cfg_attr(not(feature = "std"), no_std)] -use snowbridge_beacon_primitives::CompactExecutionHeader; -use snowbridge_core::inbound::Message; -use sp_core::RuntimeDebug; - pub mod register_token; -pub mod register_token_with_insufficient_fee; pub mod send_token; pub mod send_token_to_penpal; - -#[derive(Clone, RuntimeDebug)] -pub struct InboundQueueFixture { - pub execution_header: CompactExecutionHeader, - pub message: Message, -} diff --git a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token.rs b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token.rs index b8d510e6b13d02420191591ff917eb0366f818d6..340b2fadfacfd9bdb0c291323cbd69cd71c00b7c 100644 --- a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token.rs +++ b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token.rs @@ -3,20 +3,16 @@ // Generated, do not edit! // See ethereum client README.md for instructions to generate -use crate::InboundQueueFixture; use hex_literal::hex; -use snowbridge_beacon_primitives::CompactExecutionHeader; -use snowbridge_core::inbound::{Log, Message, Proof}; +use snowbridge_beacon_primitives::{ + types::deneb, AncestryProof, BeaconHeader, ExecutionProof, VersionedExecutionPayloadHeader, +}; +use snowbridge_core::inbound::{InboundQueueFixture, Log, Message, Proof}; +use sp_core::U256; use sp_std::vec; pub fn make_register_token_message() -> InboundQueueFixture { InboundQueueFixture { - execution_header: CompactExecutionHeader{ - parent_hash: hex!("d5de3dd02c96dbdc8aaa4db70a1e9fdab5ded5f4d52f18798acd56a3d37d1ad6").into(), - block_number: 772, - state_root: hex!("49cba2a79b23ad74cefe80c3a96699825d1cda0f75bfceb587c5549211c86245").into(), - receipts_root: hex!("7b1f61b9714c080ef0be014e01657a15f45f0304b477beebc7ca5596c8033095").into(), - }, message: Message { event_log: Log { address: hex!("eda338e4dc46038493b885327842fd3e301cab39").into(), @@ -28,14 +24,74 @@ pub fn make_register_token_message() -> InboundQueueFixture { data: hex!("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").into(), }, proof: Proof { - block_hash: hex!("392182a385b3a417e8ddea8b252953ee81e6ec0fb09d9056c96c89fbeb703a3f").into(), - tx_index: 0, - data: (vec![ - hex!("7b1f61b9714c080ef0be014e01657a15f45f0304b477beebc7ca5596c8033095").to_vec(), + receipt_proof: (vec![ + hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").to_vec(), + hex!("4a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f").to_vec(), ], vec![ - hex!("f9028e822080b9028802f90284018301d205b9010000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010f90179f85894eda338e4dc46038493b885327842fd3e301cab39e1a0f78bb28d4b1d7da699e5c0bc2be29c2b04b5aab6aacf6298fe5304f9db9c6d7ea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7df9011c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a05f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0b8a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").to_vec(), + hex!("f851a09c01dd6d2d8de951c45af23d3ad00829ce021c04d6c8acbe1612d456ee320d4980808080808080a04a98e45a319168b0fc6005ce6b744ee9bf54338e2c0784b976a8578d241ced0f8080808080808080").to_vec(), + hex!("f9028c30b9028802f90284018301d205b9010000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010f90179f85894eda338e4dc46038493b885327842fd3e301cab39e1a0f78bb28d4b1d7da699e5c0bc2be29c2b04b5aab6aacf6298fe5304f9db9c6d7ea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7df9011c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a05f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0b8a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7d00e40b54020000000000000000000000000000000000000000000000000000000000").to_vec(), ]), + execution_proof: ExecutionProof { + header: BeaconHeader { + slot: 393, + proposer_index: 4, + parent_root: hex!("6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef").into(), + state_root: hex!("b62ac34a8cb82497be9542fe2114410c9f6021855b766015406101a1f3d86434").into(), + body_root: hex!("04005fe231e11a5b7b1580cb73b177ae8b338bedd745497e6bb7122126a806db").into(), + }, + ancestry_proof: Some(AncestryProof { + header_branch: vec![ + hex!("6545b47a614a1dd4cad042a0cdbbf5be347e8ffcdc02c6c64540d5153acebeef").into(), + hex!("fa84cc88ca53a72181599ff4eb07d8b444bce023fe2347c3b4f51004c43439d3").into(), + hex!("cadc8ae211c6f2221c9138e829249adf902419c78eb4727a150baa4d9a02cc9d").into(), + hex!("33a89962df08a35c52bd7e1d887cd71fa7803e68787d05c714036f6edf75947c").into(), + hex!("2c9760fce5c2829ef3f25595a703c21eb22d0186ce223295556ed5da663a82cf").into(), + hex!("e1aa87654db79c8a0ecd6c89726bb662fcb1684badaef5cd5256f479e3c622e1").into(), + hex!("aa70d5f314e4a1fbb9c362f3db79b21bf68b328887248651fbd29fc501d0ca97").into(), + hex!("160b6c235b3a1ed4ef5f80b03ee1c76f7bf3f591c92fca9d8663e9221b9f9f0f").into(), + hex!("f68d7dcd6a07a18e9de7b5d2aa1980eb962e11d7dcb584c96e81a7635c8d2535").into(), + hex!("1d5f912dfd6697110dd1ecb5cb8e77952eef57d85deb373572572df62bb157fc").into(), + hex!("ffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b").into(), + hex!("6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220").into(), + hex!("b7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f").into(), + ], + finalized_block_root: hex!("751414cd97c0624f922b3e80285e9f776b08fa22fd5f87391f2ed7ef571a8d46").into(), + }), + execution_header: VersionedExecutionPayloadHeader::Deneb(deneb::ExecutionPayloadHeader { + parent_hash: hex!("8092290aa21b7751576440f77edd02a94058429ce50e63a92d620951fb25eda2").into(), + fee_recipient: hex!("0000000000000000000000000000000000000000").into(), + state_root: hex!("96a83e9ddf745346fafcb0b03d57314623df669ed543c110662b21302a0fae8b").into(), + receipts_root: hex!("dccdfceea05036f7b61dcdabadc937945d31e68a8d3dfd4dc85684457988c284").into(), + logs_bloom: hex!("00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000400000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000080000000000000000000000000000040004000000000000002002002000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000080000000000000000000000000000000000100000000000000000200000200000010").into(), + prev_randao: hex!("62e309d4f5119d1f5c783abc20fc1a549efbab546d8d0b25ff1cfd58be524e67").into(), + block_number: 393, + gas_limit: 54492273, + gas_used: 199644, + timestamp: 1710552813, + extra_data: hex!("d983010d0b846765746888676f312e32312e368664617277696e").into(), + base_fee_per_gas: U256::from(7u64), + block_hash: hex!("6a9810efb9581d30c1a5c9074f27c68ea779a8c1ae31c213241df16225f4e131").into(), + transactions_root: hex!("2cfa6ed7327e8807c7973516c5c32a68ef2459e586e8067e113d081c3bd8c07d").into(), + withdrawals_root: hex!("792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535").into(), + blob_gas_used: 0, + excess_blob_gas: 0, + }), + execution_branch: vec![ + hex!("a6833fa629f3286b6916c6e50b8bf089fc9126bee6f64d0413b4e59c1265834d").into(), + hex!("b46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb").into(), + hex!("db56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71").into(), + hex!("d3af7c05c516726be7505239e0b9c7cb53d24abce6b91cdb3b3995f0164a75da").into(), + ], + } }, }, + finalized_header: BeaconHeader { + slot: 864, + proposer_index: 4, + parent_root: hex!("614e7672f991ac268cd841055973f55e1e42228831a211adef207bb7329be614").into(), + state_root: hex!("5fa8dfca3d760e4242ab46d529144627aa85348a19173b6e081172c701197a4a").into(), + body_root: hex!("0f34c083b1803666bb1ac5e73fa71582731a2cf37d279ff0a3b0cad5a2ff371e").into(), + }, + block_roots_root: hex!("b9aab9c388c4e4fcd899b71f62c498fc73406e38e8eb14aa440e9affa06f2a10").into(), } } diff --git a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token_with_insufficient_fee.rs b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token_with_insufficient_fee.rs deleted file mode 100644 index 82ff2283101e331395b06dd14f3876076e71722e..0000000000000000000000000000000000000000 --- a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/register_token_with_insufficient_fee.rs +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: 2023 Snowfork -// Generated, do not edit! -// See ethereum client README.md for instructions to generate - -use crate::InboundQueueFixture; -use hex_literal::hex; -use snowbridge_beacon_primitives::CompactExecutionHeader; -use snowbridge_core::inbound::{Log, Message, Proof}; -use sp_std::vec; - -pub fn make_register_token_with_infufficient_fee_message() -> InboundQueueFixture { - InboundQueueFixture { - execution_header: CompactExecutionHeader{ - parent_hash: hex!("998e81dc6df788a920b67e058fbde0dc3f4ec6f11f3f7cd8c3148e6d99584885").into(), - block_number: 338, - state_root: hex!("30ef9c9db2609de19bbc6c3cbeddac889e82bbcb2db20304b3abdfbdc7134cbf").into(), - receipts_root: hex!("969335c3132a007cb8b5886a3c23dd8da63cba04aeda29857a86ee1c13dae782").into(), - }, - message: Message { - event_log: Log { - address: hex!("eda338e4dc46038493b885327842fd3e301cab39").into(), - topics: vec![ - hex!("7153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84f").into(), - hex!("c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539").into(), - hex!("5f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0").into(), - ], - // insufficient xcm fee as only 1000(hex:e803) - data: hex!("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7de8030000000000000000000000000000000000000000000000000000000000000000").into(), - }, - proof: Proof { - block_hash: hex!("5976f37f0e331d194eb331df74355ef47565c3a1bd11c95a45b681f6917085c1").into(), - tx_index: 0, - data: (vec![ - hex!("969335c3132a007cb8b5886a3c23dd8da63cba04aeda29857a86ee1c13dae782").to_vec(), - ], vec![ - hex!("f9028e822080b9028802f90284018301d205b9010000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000080000000000000000000000000000004000000000080000000000000000000000000000000000010100000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000040004000000000000002000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000010f90179f85894eda338e4dc46038493b885327842fd3e301cab39e1a0f78bb28d4b1d7da699e5c0bc2be29c2b04b5aab6aacf6298fe5304f9db9c6d7ea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7df9011c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a05f7060e971b0dc81e63f0aa41831091847d97c1a4693ac450cc128c7214e65e0b8a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002e00a736aa00000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7de8030000000000000000000000000000000000000000000000000000000000000000").to_vec(), - ]), - }, - }, - } -} diff --git a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token.rs b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token.rs index 2562217100eaf7cd0c5dff420c55826b277d3570..4075febab59d596b94c74a140d0176c25d3a1991 100755 --- a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token.rs +++ b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token.rs @@ -3,20 +3,16 @@ // Generated, do not edit! // See ethereum client README.md for instructions to generate -use crate::InboundQueueFixture; use hex_literal::hex; -use snowbridge_beacon_primitives::CompactExecutionHeader; -use snowbridge_core::inbound::{Log, Message, Proof}; +use snowbridge_beacon_primitives::{ + types::deneb, AncestryProof, BeaconHeader, ExecutionProof, VersionedExecutionPayloadHeader, +}; +use snowbridge_core::inbound::{InboundQueueFixture, Log, Message, Proof}; +use sp_core::U256; use sp_std::vec; pub fn make_send_token_message() -> InboundQueueFixture { InboundQueueFixture { - execution_header: CompactExecutionHeader{ - parent_hash: hex!("920cecde45d428e3a77590b70f8533cf4c2c36917b8a7b74c915e7fa3dae7075").into(), - block_number: 1148, - state_root: hex!("bbc6ba0e9940d641afecbbaf3f97abd2b9ffaf2f6bd4879c4a71e659eca89978").into(), - receipts_root: hex!("9f3340b57eddc1f86de30776db57faeca80269a3dd459031741988dec240ce34").into(), - }, message: Message { event_log: Log { address: hex!("eda338e4dc46038493b885327842fd3e301cab39").into(), @@ -28,14 +24,72 @@ pub fn make_send_token_message() -> InboundQueueFixture { data: hex!("00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005f00a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000").into(), }, proof: Proof { - block_hash: hex!("d3c155f123c3cbff22f3d7869283e02179edea9ffa7a5e9a4d8414c2a6b8991f").into(), - tx_index: 0, - data: (vec![ - hex!("9f3340b57eddc1f86de30776db57faeca80269a3dd459031741988dec240ce34").to_vec(), + receipt_proof: (vec![ + hex!("f9d844c5b79638609ba385b910fec3b5d891c9d7b189f135f0432f33473de915").to_vec(), ], vec![ - hex!("f90451822080b9044b02f90447018301bcb9b9010000800000000000000000000020000000000000000000004000000000000000000400000000000000000000001000000010000000000000000000000008000000200000000000000001000008000000000000000000000000000000008000080000000000200000000000000000000000000100000000000000000011000000000000020200000000000000000000000000003000000040080008000000000000000000040044000021000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000200800000000000f9033cf89b9487d1f7fdfee7f651fabc8bfcb6e086c278b77a7df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000057a2d4ff0c3866d96556884bf09fecdd7ccd530ca00000000000000000000000000000000000000000000000000de0b6b3a7640000f9015d94eda338e4dc46038493b885327842fd3e301cab39f884a024c5d2de620c6e25186ae16f6919eba93b6e2c1a33857cc419d9f3a00d6967e9a000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7da000000000000000000000000000000000000000000000000000000000000003e8b8c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000208eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48f9013c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a0c8eaf22f2cb07bac4679df0a660e7115ed87fcfd4e32ac269f6540265bbbd26fb8c000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005f00a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000").to_vec(), + hex!("f90451822080b9044b02f90447018301bcb6b9010000800000000000000000000020000000000000000000004000000000000000000400000000000000000000001000000010000000000000000000000008000000200000000000000001000008000000000000000000000000000000008000080000000000200000000000000000000000000100000000000000000011000000000000020200000000000000000000000000003000000040080008000000000000000000040044000021000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000200800000000000f9033cf89b9487d1f7fdfee7f651fabc8bfcb6e086c278b77a7df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000057a2d4ff0c3866d96556884bf09fecdd7ccd530ca00000000000000000000000000000000000000000000000000de0b6b3a7640000f9015d94eda338e4dc46038493b885327842fd3e301cab39f884a024c5d2de620c6e25186ae16f6919eba93b6e2c1a33857cc419d9f3a00d6967e9a000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7da000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000000000000000000000000000000000000000003e8b8c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000208eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48f9013c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a0c8eaf22f2cb07bac4679df0a660e7115ed87fcfd4e32ac269f6540265bbbd26fb8c000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005f00a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000").to_vec(), ]), + execution_proof: ExecutionProof { + header: BeaconHeader { + slot: 2321, + proposer_index: 5, + parent_root: hex!("2add14727840d3a5ea061e14baa47030bb81380a65999200d119e73b86411d20").into(), + state_root: hex!("d962981467920bb2b7efa4a7a1baf64745582c3250857f49a957c5dae9a0da39").into(), + body_root: hex!("18e3f7f51a350f371ad35d166f2683b42af51d1836b295e4093be08acb0dcb7a").into(), + }, + ancestry_proof: Some(AncestryProof { + header_branch: vec![ + hex!("2add14727840d3a5ea061e14baa47030bb81380a65999200d119e73b86411d20").into(), + hex!("48b2e2f5256906a564e5058698f70e3406765fefd6a2edc064bb5fb88aa2ed0a").into(), + hex!("e5ed7c704e845418219b2fda42cd2f3438ffbe4c4b320935ae49439c6189f7a7").into(), + hex!("4a7ce24526b3f571548ad69679e4e260653a1b3b911a344e7f988f25a5c917a7").into(), + hex!("46fc859727ab0d0e8c344011f7d7a4426ccb537bb51363397e56cc7153f56391").into(), + hex!("f496b6f85a7c6c28a9048f2153550a7c5bcb4b23844ed3b87f6baa646124d8a3").into(), + hex!("7318644e474beb46e595a1875acc7444b937f5208065241911d2a71ac50c2de3").into(), + hex!("5cf48519e518ac64286aef5391319782dd38831d5dcc960578a6b9746d5f8cee").into(), + hex!("efb3e50fa39ca9fe7f76adbfa36fa8451ec2fd5d07b22aaf822137c04cf95a76").into(), + hex!("2206cd50750355ffaef4a67634c21168f2b564c58ffd04f33b0dc7af7dab3291").into(), + hex!("1a4014f6c4fcce9949fba74cb0f9e88df086706f9e05560cc9f0926f8c90e373").into(), + hex!("2df7cc0bcf3060be4132c63da7599c2600d9bbadf37ab001f15629bc2255698e").into(), + hex!("b7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f").into(), + ], + finalized_block_root: hex!("f869dd1c9598043008a3ac2a5d91b3d6c7b0bb3295b3843bc84c083d70b0e604").into(), + }), + execution_header: VersionedExecutionPayloadHeader::Deneb(deneb::ExecutionPayloadHeader { + parent_hash: hex!("5d7859883dde1eba6c98b20eac18426134b25da2a89e5e360f3343b15e0e0a31").into(), + fee_recipient: hex!("0000000000000000000000000000000000000000").into(), + state_root: hex!("f8fbebed4c84d46231bd293bb9fbc9340d5c28c284d99fdaddb77238b8960ae2").into(), + receipts_root: hex!("f9d844c5b79638609ba385b910fec3b5d891c9d7b189f135f0432f33473de915").into(), + logs_bloom: hex!("00800000000000000000000020000000000000000000004000000000000000000400000000000000000000001000000010000000000000000000000008000000200000000000000001000008000000000000000000000000000000008000080000000000200000000000000000000000000100000000000000000011000000000000020200000000000000000000000000003000000040080008000000000000000000040044000021000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000200800000000000").into(), + prev_randao: hex!("15533eeb366c6386bea5aeb8f425871928348c092209e4377f2418a6dedd7fd0").into(), + block_number: 2321, + gas_limit: 30000000, + gas_used: 113846, + timestamp: 1710554741, + extra_data: hex!("d983010d0b846765746888676f312e32312e368664617277696e").into(), + base_fee_per_gas: U256::from(7u64), + block_hash: hex!("585a07122a30339b03b6481eae67c2d3de2b6b64f9f426230986519bf0f1bdfe").into(), + transactions_root: hex!("09cd60ee2207d804397c81f7b7e1e5d3307712b136e5376623a80317a4bdcd7a").into(), + withdrawals_root: hex!("792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535").into(), + blob_gas_used: 0, + excess_blob_gas: 0, + }), + execution_branch: vec![ + hex!("9d419471a9a4719b40e7607781fbe32d9a7766b79805505c78c0c58133496ba2").into(), + hex!("b46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb").into(), + hex!("db56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71").into(), + hex!("bee375b8f1bbe4cd0e783c78026c1829ae72741c2dead5cab05d6834c5e5df65").into(), + ], + } }, }, + finalized_header: BeaconHeader { + slot: 4032, + proposer_index: 5, + parent_root: hex!("180aaaec59d38c3860e8af203f01f41c9bc41665f4d17916567c80f6cd23e8a2").into(), + state_root: hex!("3341790429ed3bf894cafa3004351d0b99e08baf6c38eb2a54d58e69fd2d19c6").into(), + body_root: hex!("a221e0c695ac7b7d04ce39b28b954d8a682ecd57961d81b44783527c6295f455").into(), + }, + block_roots_root: hex!("5744385ef06f82e67606f49aa29cd162f2e837a68fb7bd82f1fc6155d9f8640f").into(), } } diff --git a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token_to_penpal.rs b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token_to_penpal.rs index 86ba3f7ecc18f3743fd22592fc23a50f26b447d7..6a951b568ae5d39cd3c6deca801b5feb1d05322f 100755 --- a/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token_to_penpal.rs +++ b/bridges/snowbridge/pallets/inbound-queue/fixtures/src/send_token_to_penpal.rs @@ -3,39 +3,93 @@ // Generated, do not edit! // See ethereum client README.md for instructions to generate -use crate::InboundQueueFixture; use hex_literal::hex; -use snowbridge_beacon_primitives::CompactExecutionHeader; -use snowbridge_core::inbound::{Log, Message, Proof}; +use snowbridge_beacon_primitives::{ + types::deneb, AncestryProof, BeaconHeader, ExecutionProof, VersionedExecutionPayloadHeader, +}; +use snowbridge_core::inbound::{InboundQueueFixture, Log, Message, Proof}; +use sp_core::U256; use sp_std::vec; pub fn make_send_token_to_penpal_message() -> InboundQueueFixture { InboundQueueFixture { - execution_header: CompactExecutionHeader{ - parent_hash: hex!("434148c290f27ee4be34fa344cd7608bf942a4541b27c9d868439631b3f37a8d").into(), - block_number: 816, - state_root: hex!("595e643f9095870e30e85e2bbef7d9e3a39df5aae839d26cf455d3dbf3e5a539").into(), - receipts_root: hex!("c40ab2c4abcfdea4f42195e0ad822806e5423108021c3b542646c7193319a6c1").into(), - }, message: Message { event_log: Log { address: hex!("eda338e4dc46038493b885327842fd3e301cab39").into(), topics: vec![ hex!("7153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84f").into(), hex!("c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539").into(), - hex!("c8eaf22f2cb07bac4679df0a660e7115ed87fcfd4e32ac269f6540265bbbd26f").into(), + hex!("be323bced46a1a49c8da2ab62ad5e974fd50f1dabaeed70b23ca5bcf14bfe4aa").into(), ], - data: hex!("00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007300a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d01d00700001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c00286bee000000000000000000000000000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000000000000000000000000000").into(), + data: hex!("00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007300a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d01d00700001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c00286bee000000000000000000000000000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000000000000000000000000000").into(), }, proof: Proof { - block_hash: hex!("6c49a7f8fb2014a23e58a949c95a6743174589a7ce83434b073dc05dec402f3d").into(), - tx_index: 0, - data: (vec![ - hex!("c40ab2c4abcfdea4f42195e0ad822806e5423108021c3b542646c7193319a6c1").to_vec(), + receipt_proof: (vec![ + hex!("106f1eaeac04e469da0020ad5c8a72af66323638bd3f561a3c8236063202c120").to_vec(), ], vec![ - hex!("f90471822080b9046b02f90467018301d30fb9010000800000000000000000000000000000000000000000004000000000000000000400000000004000000000001000000010000000000000000000000008000000200000000000000001000008000000000000000000000000000000008000080000000000200000000000000000000000000100000000000000000011000000000000020000000000000000000000000000003000000000080018000000000000000000040044000021000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000200820000000000f9035cf89b9487d1f7fdfee7f651fabc8bfcb6e086c278b77a7df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000057a2d4ff0c3866d96556884bf09fecdd7ccd530ca00000000000000000000000000000000000000000000000000de0b6b3a7640000f9015d94eda338e4dc46038493b885327842fd3e301cab39f884a024c5d2de620c6e25186ae16f6919eba93b6e2c1a33857cc419d9f3a00d6967e9a000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7da000000000000000000000000000000000000000000000000000000000000007d0b8c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000201cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07cf9015c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a0c8eaf22f2cb07bac4679df0a660e7115ed87fcfd4e32ac269f6540265bbbd26fb8e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007300a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d01d00700001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c00286bee000000000000000000000000000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000000000000000000000000000").to_vec(), + hex!("f90471822080b9046b02f904670183017d9cb9010000800000000000008000000000000000000000000000004000000000000000000400000000004000000000001000000010000000000000000000001008000000000000000000000001000008000040000000000000000000000000008000080000000000200000000000000000000000000100000000000000000010000000000000020000000000000000000000000000003000000000080018000000000000000000040004000021000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000200820000000000f9035cf89b9487d1f7fdfee7f651fabc8bfcb6e086c278b77a7df863a0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000057a2d4ff0c3866d96556884bf09fecdd7ccd530ca00000000000000000000000000000000000000000000000000de0b6b3a7640000f9015d94eda338e4dc46038493b885327842fd3e301cab39f884a024c5d2de620c6e25186ae16f6919eba93b6e2c1a33857cc419d9f3a00d6967e9a000000000000000000000000087d1f7fdfee7f651fabc8bfcb6e086c278b77a7da000000000000000000000000090a987b944cb1dcce5564e5fdecd7a54d3de27fea000000000000000000000000000000000000000000000000000000000000007d0b8c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000201cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07cf9015c94eda338e4dc46038493b885327842fd3e301cab39f863a07153f9357c8ea496bba60bf82e67143e27b64462b49041f8e689e1b05728f84fa0c173fac324158e77fb5840738a1a541f633cbec8884c6a601c567d2b376a0539a0be323bced46a1a49c8da2ab62ad5e974fd50f1dabaeed70b23ca5bcf14bfe4aab8e000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007300a736aa00000000000187d1f7fdfee7f651fabc8bfcb6e086c278b77a7d01d00700001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c00286bee000000000000000000000000000064a7b3b6e00d000000000000000000e40b5402000000000000000000000000000000000000000000000000").to_vec(), ]), + execution_proof: ExecutionProof { + header: BeaconHeader { + slot: 4235, + proposer_index: 4, + parent_root: hex!("1b31e6264c19bcad120e434e0aede892e7d7c8ed80ab505cb593d9a4a16bc566").into(), + state_root: hex!("725f51771a0ecf72c647a283ab814ca088f998eb8c203181496b0b8e01f624fa").into(), + body_root: hex!("6f1c326d192e7e97e21e27b16fd7f000b8fa09b435ff028849927e382302b0ce").into(), + }, + ancestry_proof: Some(AncestryProof { + header_branch: vec![ + hex!("1b31e6264c19bcad120e434e0aede892e7d7c8ed80ab505cb593d9a4a16bc566").into(), + hex!("335eb186c077fa7053ec96dcc5d34502c997713d2d5bc4eb74842118d8cd5a64").into(), + hex!("326607faf2a7dfc9cfc4b6895f8f3d92a659552deb2c8fd1e892ec00c86c734c").into(), + hex!("4e20002125d7b6504df7c774f3f48e018e1e6762d03489149670a8335bba1425").into(), + hex!("e76af5cd61aade5aec8282b6f1df9046efa756b0466bba5e49032410f7739a1b").into(), + hex!("ee4dcd9527712116380cddafd120484a3bedf867225bbb86850b84decf6da730").into(), + hex!("e4687a07421d3150439a2cd2f09f3b468145d75b359a2e5fa88dfbec51725b15").into(), + hex!("38eaa78978e95759aa9b6f8504a8dbe36151f20ae41907e6a1ea165700ceefcd").into(), + hex!("1c1b071ec6f13e15c47d07d1bfbcc9135d6a6c819e68e7e6078a2007418c1a23").into(), + hex!("0b3ad7ad193c691c8c4ba1606ad2a90482cd1d033c7db58cfe739d0e20431e9e").into(), + hex!("ffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b").into(), + hex!("6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220").into(), + hex!("b2ffec5f2c14640305dd941330f09216c53b99d198e93735a400a6d3a4de191f").into(), + ], + finalized_block_root: hex!("08be7a59e947f08cd95c4ef470758730bf9e3b0db0824cb663ea541c39b0e65c").into(), + }), + execution_header: VersionedExecutionPayloadHeader::Deneb(deneb::ExecutionPayloadHeader { + parent_hash: hex!("5d1186ae041f58785edb2f01248e95832f2e5e5d6c4eb8f7ff2f58980bfc2de9").into(), + fee_recipient: hex!("0000000000000000000000000000000000000000").into(), + state_root: hex!("2a66114d20e93082c8e9b47c8d401a937013487d757c9c2f3123cf43dc1f656d").into(), + receipts_root: hex!("106f1eaeac04e469da0020ad5c8a72af66323638bd3f561a3c8236063202c120").into(), + logs_bloom: hex!("00800000000000008000000000000000000000000000004000000000000000000400000000004000000000001000000010000000000000000000001008000000000000000000000001000008000040000000000000000000000000008000080000000000200000000000000000000000000100000000000000000010000000000000020000000000000000000000000000003000000000080018000000000000000000040004000021000000002000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000200820000000000").into(), + prev_randao: hex!("92e063c7e369b74149fdd1d7132ed2f635a19b9d8bff57637b8ee4736576426e").into(), + block_number: 4235, + gas_limit: 30000000, + gas_used: 97692, + timestamp: 1710556655, + extra_data: hex!("d983010d0b846765746888676f312e32312e368664617277696e").into(), + base_fee_per_gas: U256::from(7u64), + block_hash: hex!("ce24fe3047aa20a8f222cd1d04567c12b39455400d681141962c2130e690953f").into(), + transactions_root: hex!("0c8388731de94771777c60d452077065354d90d6e5088db61fc6a134684195cc").into(), + withdrawals_root: hex!("792930bbd5baac43bcc798ee49aa8185ef76bb3b44ba62b91d86ae569e4bb535").into(), + blob_gas_used: 0, + excess_blob_gas: 0, + }), + execution_branch: vec![ + hex!("99d397fa180078e66cd3a3b77bcb07553052f4e21d447167f3a406f663b14e6a").into(), + hex!("b46f0c01805fe212e15907981b757e6c496b0cb06664224655613dcec82505bb").into(), + hex!("db56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71").into(), + hex!("53ddf17147819c1abb918178b0230d965d1bc2c0d389f45e91e54cb1d2d468aa").into(), + ], + } }, }, + finalized_header: BeaconHeader { + slot: 4672, + proposer_index: 4, + parent_root: hex!("951233bf9f4bddfb2fa8f54e3bd0c7883779ef850e13e076baae3130dd7732db").into(), + state_root: hex!("4d303003b8cb097cbcc14b0f551ee70dac42de2c1cc2f4acfca7058ca9713291").into(), + body_root: hex!("664d13952b6f369bf4cf3af74d067ec33616eb57ed3a8a403fd5bae4fbf737dd").into(), + }, + block_roots_root: hex!("af71048297c070e6539cf3b9b90ae07d86d363454606bc239734629e6b49b983").into(), } } diff --git a/bridges/snowbridge/pallets/inbound-queue/src/benchmarking/mod.rs b/bridges/snowbridge/pallets/inbound-queue/src/benchmarking/mod.rs index 931befa2ac67810eaf7aac1b8156a46fc398f7a2..d59d92757721bac925cdfe67542138771c2a9dfa 100644 --- a/bridges/snowbridge/pallets/inbound-queue/src/benchmarking/mod.rs +++ b/bridges/snowbridge/pallets/inbound-queue/src/benchmarking/mod.rs @@ -19,8 +19,8 @@ mod benchmarks { let create_message = make_register_token_message(); T::Helper::initialize_storage( - create_message.message.proof.block_hash, - create_message.execution_header, + create_message.finalized_header, + create_message.block_roots_root, ); let sovereign_account = sibling_sovereign_account::(1000u32.into()); diff --git a/bridges/snowbridge/pallets/inbound-queue/src/lib.rs b/bridges/snowbridge/pallets/inbound-queue/src/lib.rs index bdc21fcf037025f933b7c11e92937744e83e1da7..8acbb0c2916e704930268835e12bd14972737114 100644 --- a/bridges/snowbridge/pallets/inbound-queue/src/lib.rs +++ b/bridges/snowbridge/pallets/inbound-queue/src/lib.rs @@ -28,9 +28,6 @@ mod envelope; #[cfg(feature = "runtime-benchmarks")] mod benchmarking; -#[cfg(feature = "runtime-benchmarks")] -use snowbridge_beacon_primitives::CompactExecutionHeader; - pub mod weights; #[cfg(test)] @@ -44,7 +41,7 @@ use envelope::Envelope; use frame_support::{ traits::{ fungible::{Inspect, Mutate}, - tokens::Preservation, + tokens::{Fortitude, Preservation}, }, weights::WeightToFee, PalletError, @@ -52,6 +49,7 @@ use frame_support::{ use frame_system::ensure_signed; use scale_info::TypeInfo; use sp_core::{H160, H256}; +use sp_runtime::traits::Zero; use sp_std::{convert::TryFrom, vec}; use xcm::prelude::{ send_xcm, Instruction::SetTopic, Junction::*, Location, SendError as XcmpSendError, SendXcm, @@ -72,6 +70,9 @@ use sp_runtime::{traits::Saturating, SaturatedConversion, TokenError}; pub use weights::WeightInfo; +#[cfg(feature = "runtime-benchmarks")] +use snowbridge_beacon_primitives::BeaconHeader; + type BalanceOf = <::Token as Inspect<::AccountId>>::Balance; @@ -91,7 +92,7 @@ pub mod pallet { #[cfg(feature = "runtime-benchmarks")] pub trait BenchmarkHelper { - fn initialize_storage(block_hash: H256, header: CompactExecutionHeader); + fn initialize_storage(beacon_header: BeaconHeader, block_roots_root: H256); } #[pallet::config] @@ -261,11 +262,19 @@ pub mod pallet { } })?; - // Reward relayer from the sovereign account of the destination parachain - // Expected to fail if sovereign account has no funds + // Reward relayer from the sovereign account of the destination parachain, only if funds + // are available let sovereign_account = sibling_sovereign_account::(channel.para_id); let delivery_cost = Self::calculate_delivery_cost(message.encode().len() as u32); - T::Token::transfer(&sovereign_account, &who, delivery_cost, Preservation::Preserve)?; + let amount = T::Token::reducible_balance( + &sovereign_account, + Preservation::Preserve, + Fortitude::Polite, + ) + .min(delivery_cost); + if !amount.is_zero() { + T::Token::transfer(&sovereign_account, &who, amount, Preservation::Preserve)?; + } // Decode message into XCM let (xcm, fee) = diff --git a/bridges/snowbridge/pallets/inbound-queue/src/mock.rs b/bridges/snowbridge/pallets/inbound-queue/src/mock.rs index 086b27cb8280a5357b56e50065124c0d20f0e5a7..c96c868bc26ef71984e70bc40863db73cf18b9c5 100644 --- a/bridges/snowbridge/pallets/inbound-queue/src/mock.rs +++ b/bridges/snowbridge/pallets/inbound-queue/src/mock.rs @@ -4,11 +4,13 @@ use super::*; use frame_support::{ derive_impl, parameter_types, - traits::{ConstU128, ConstU32, Everything}, + traits::{ConstU32, Everything}, weights::IdentityFee, }; use hex_literal::hex; -use snowbridge_beacon_primitives::{Fork, ForkVersions}; +use snowbridge_beacon_primitives::{ + types::deneb, BeaconHeader, ExecutionProof, Fork, ForkVersions, VersionedExecutionPayloadHeader, +}; use snowbridge_core::{ gwei, inbound::{Log, Proof, VerificationError}, @@ -20,7 +22,7 @@ use sp_runtime::{ traits::{BlakeTwo256, IdentifyAccount, IdentityLookup, Verify}, BuildStorage, FixedU128, MultiSignature, }; -use sp_std::convert::From; +use sp_std::{convert::From, default::Default}; use xcm::{latest::SendXcm, prelude::*}; use xcm_executor::AssetsInHolding; @@ -65,6 +67,10 @@ impl frame_system::Config for Test { type Block = Block; } +parameter_types! { + pub const ExistentialDeposit: u128 = 1; +} + impl pallet_balances::Config for Test { type MaxLocks = (); type MaxReserves = (); @@ -72,7 +78,7 @@ impl pallet_balances::Config for Test { type Balance = Balance; type RuntimeEvent = RuntimeEvent; type DustRemoval = (); - type ExistentialDeposit = ConstU128<1>; + type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = (); type FreezeIdentifier = (); @@ -82,7 +88,6 @@ impl pallet_balances::Config for Test { } parameter_types! { - pub const ExecutionHeadersPruneThreshold: u32 = 10; pub const ChainForkVersions: ForkVersions = ForkVersions{ genesis: Fork { version: [0, 0, 0, 1], // 0x00000001 @@ -110,7 +115,6 @@ parameter_types! { impl snowbridge_pallet_ethereum_client::Config for Test { type RuntimeEvent = RuntimeEvent; type ForkVersions = ChainForkVersions; - type MaxExecutionHeadersToKeep = ExecutionHeadersPruneThreshold; type WeightInfo = (); } @@ -139,7 +143,7 @@ parameter_types! { #[cfg(feature = "runtime-benchmarks")] impl BenchmarkHelper for Test { // not implemented since the MockVerifier is used for tests - fn initialize_storage(_: H256, _: CompactExecutionHeader) {} + fn initialize_storage(_: BeaconHeader, _: H256) {} } // Mock XCM sender that always succeeds @@ -173,7 +177,8 @@ parameter_types! { pub Parameters: PricingParameters = PricingParameters { exchange_rate: FixedU128::from_rational(1, 400), fee_per_gas: gwei(20), - rewards: Rewards { local: DOT, remote: meth(1) } + rewards: Rewards { local: DOT, remote: meth(1) }, + multiplier: FixedU128::from_rational(1, 1), }; } @@ -334,5 +339,32 @@ pub fn mock_event_log_invalid_gateway() -> Log { } } +pub fn mock_execution_proof() -> ExecutionProof { + ExecutionProof { + header: BeaconHeader::default(), + ancestry_proof: None, + execution_header: VersionedExecutionPayloadHeader::Deneb(deneb::ExecutionPayloadHeader { + parent_hash: Default::default(), + fee_recipient: Default::default(), + state_root: Default::default(), + receipts_root: Default::default(), + logs_bloom: vec![], + prev_randao: Default::default(), + block_number: 0, + gas_limit: 0, + gas_used: 0, + timestamp: 0, + extra_data: vec![], + base_fee_per_gas: Default::default(), + block_hash: Default::default(), + transactions_root: Default::default(), + withdrawals_root: Default::default(), + blob_gas_used: 0, + excess_blob_gas: 0, + }), + execution_branch: vec![], + } +} + pub const ASSET_HUB_PARAID: u32 = 1000u32; pub const TEMPLATE_PARAID: u32 = 1001u32; diff --git a/bridges/snowbridge/pallets/inbound-queue/src/test.rs b/bridges/snowbridge/pallets/inbound-queue/src/test.rs index 9a47e475b8c997a6fe4cc4d1860af3da0bf52a57..bd993c968df7373910b438a2e090ef2896bb41dd 100644 --- a/bridges/snowbridge/pallets/inbound-queue/src/test.rs +++ b/bridges/snowbridge/pallets/inbound-queue/src/test.rs @@ -6,7 +6,7 @@ use frame_support::{assert_noop, assert_ok}; use hex_literal::hex; use snowbridge_core::{inbound::Proof, ChannelId}; use sp_keyring::AccountKeyring as Keyring; -use sp_runtime::{DispatchError, TokenError}; +use sp_runtime::DispatchError; use sp_std::convert::From; use crate::{Error, Event as InboundQueueEvent}; @@ -25,9 +25,8 @@ fn test_submit_happy_path() { let message = Message { event_log: mock_event_log(), proof: Proof { - block_hash: Default::default(), - tx_index: Default::default(), - data: Default::default(), + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), }, }; @@ -77,9 +76,8 @@ fn test_submit_xcm_invalid_channel() { let message = Message { event_log: mock_event_log_invalid_channel(), proof: Proof { - block_hash: Default::default(), - tx_index: Default::default(), - data: Default::default(), + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), }, }; assert_noop!( @@ -103,9 +101,8 @@ fn test_submit_with_invalid_gateway() { let message = Message { event_log: mock_event_log_invalid_gateway(), proof: Proof { - block_hash: Default::default(), - tx_index: Default::default(), - data: Default::default(), + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), }, }; assert_noop!( @@ -129,9 +126,8 @@ fn test_submit_with_invalid_nonce() { let message = Message { event_log: mock_event_log(), proof: Proof { - block_hash: Default::default(), - tx_index: Default::default(), - data: Default::default(), + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), }, }; assert_ok!(InboundQueue::submit(origin.clone(), message.clone())); @@ -150,12 +146,12 @@ fn test_submit_with_invalid_nonce() { } #[test] -fn test_submit_no_funds_to_reward_relayers() { +fn test_submit_no_funds_to_reward_relayers_just_ignore() { new_tester().execute_with(|| { let relayer: AccountId = Keyring::Bob.into(); let origin = RuntimeOrigin::signed(relayer); - // Reset balance of sovereign_account to zero so to trigger the FundsUnavailable error + // Reset balance of sovereign_account to zero first let sovereign_account = sibling_sovereign_account::(ASSET_HUB_PARAID.into()); Balances::set_balance(&sovereign_account, 0); @@ -163,15 +159,12 @@ fn test_submit_no_funds_to_reward_relayers() { let message = Message { event_log: mock_event_log(), proof: Proof { - block_hash: Default::default(), - tx_index: Default::default(), - data: Default::default(), + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), }, }; - assert_noop!( - InboundQueue::submit(origin.clone(), message.clone()), - TokenError::FundsUnavailable - ); + // Check submit successfully in case no funds available + assert_ok!(InboundQueue::submit(origin.clone(), message.clone())); }); } @@ -183,9 +176,8 @@ fn test_set_operating_mode() { let message = Message { event_log: mock_event_log(), proof: Proof { - block_hash: Default::default(), - tx_index: Default::default(), - data: Default::default(), + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), }, }; @@ -210,3 +202,44 @@ fn test_set_operating_mode_root_only() { ); }); } + +#[test] +fn test_submit_no_funds_to_reward_relayers_and_ed_preserved() { + new_tester().execute_with(|| { + let relayer: AccountId = Keyring::Bob.into(); + let origin = RuntimeOrigin::signed(relayer); + + // Reset balance of sovereign account to (ED+1) first + let sovereign_account = sibling_sovereign_account::(ASSET_HUB_PARAID.into()); + Balances::set_balance(&sovereign_account, ExistentialDeposit::get() + 1); + + // Submit message successfully + let message = Message { + event_log: mock_event_log(), + proof: Proof { + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), + }, + }; + assert_ok!(InboundQueue::submit(origin.clone(), message.clone())); + + // Check balance of sovereign account to ED + let amount = Balances::balance(&sovereign_account); + assert_eq!(amount, ExistentialDeposit::get()); + + // Submit another message with nonce set as 2 + let mut event_log = mock_event_log(); + event_log.data[31] = 2; + let message = Message { + event_log, + proof: Proof { + receipt_proof: Default::default(), + execution_proof: mock_execution_proof(), + }, + }; + assert_ok!(InboundQueue::submit(origin.clone(), message.clone())); + // Check balance of sovereign account as ED does not change + let amount = Balances::balance(&sovereign_account); + assert_eq!(amount, ExistentialDeposit::get()); + }); +} diff --git a/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml b/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml index 0606e9de33056c9dffae50befcc1da5e865dca44..5315d6b4adbc1618720c7e0c781c65353c0ca4d6 100644 --- a/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml +++ b/bridges/snowbridge/pallets/outbound-queue/merkle-tree/Cargo.toml @@ -23,7 +23,7 @@ sp-runtime = { path = "../../../../../substrate/primitives/runtime", default-fea [dev-dependencies] hex-literal = { version = "0.4.1" } -env_logger = "0.9" +env_logger = "0.11" hex = "0.4" array-bytes = "4.1" sp-crypto-hashing = { path = "../../../../../substrate/primitives/crypto/hashing" } diff --git a/bridges/snowbridge/pallets/outbound-queue/runtime-api/src/lib.rs b/bridges/snowbridge/pallets/outbound-queue/runtime-api/src/lib.rs index 51f46a7b49c8838eddf44d9d3ba18f07b57c5dcd..e6ddaa43935249603d0bee9f852c40e8091471d6 100644 --- a/bridges/snowbridge/pallets/outbound-queue/runtime-api/src/lib.rs +++ b/bridges/snowbridge/pallets/outbound-queue/runtime-api/src/lib.rs @@ -3,7 +3,10 @@ #![cfg_attr(not(feature = "std"), no_std)] use frame_support::traits::tokens::Balance as BalanceT; -use snowbridge_core::outbound::Message; +use snowbridge_core::{ + outbound::{Command, Fee}, + PricingParameters, +}; use snowbridge_outbound_queue_merkle_tree::MerkleProof; sp_api::decl_runtime_apis! { @@ -11,10 +14,10 @@ sp_api::decl_runtime_apis! { { /// Generate a merkle proof for a committed message identified by `leaf_index`. /// The merkle root is stored in the block header as a - /// `\[`sp_runtime::generic::DigestItem::Other`\]` + /// `sp_runtime::generic::DigestItem::Other` fn prove_message(leaf_index: u64) -> Option; - /// Calculate the delivery fee for `message` - fn calculate_fee(message: Message) -> Option; + /// Calculate the delivery fee for `command` + fn calculate_fee(command: Command, parameters: Option>) -> Fee; } } diff --git a/bridges/snowbridge/pallets/outbound-queue/src/api.rs b/bridges/snowbridge/pallets/outbound-queue/src/api.rs index 44d63f1e2d23f48f3d13d7834de5cde8d2c78dfc..b904819b1b186e176976b82a4fadd1ced0f05ed1 100644 --- a/bridges/snowbridge/pallets/outbound-queue/src/api.rs +++ b/bridges/snowbridge/pallets/outbound-queue/src/api.rs @@ -4,8 +4,12 @@ use crate::{Config, MessageLeaves}; use frame_support::storage::StorageStreamIter; -use snowbridge_core::outbound::{Message, SendMessage}; +use snowbridge_core::{ + outbound::{Command, Fee, GasMeter}, + PricingParameters, +}; use snowbridge_outbound_queue_merkle_tree::{merkle_proof, MerkleProof}; +use sp_core::Get; pub fn prove_message(leaf_index: u64) -> Option where @@ -19,12 +23,14 @@ where Some(proof) } -pub fn calculate_fee(message: Message) -> Option +pub fn calculate_fee( + command: Command, + parameters: Option>, +) -> Fee where T: Config, { - match crate::Pallet::::validate(&message) { - Ok((_, fees)) => Some(fees.total()), - _ => None, - } + let gas_used_at_most = T::GasMeter::maximum_gas_used_at_most(&command); + let parameters = parameters.unwrap_or(T::PricingParameters::get()); + crate::Pallet::::calculate_fee(gas_used_at_most, parameters) } diff --git a/bridges/snowbridge/pallets/outbound-queue/src/lib.rs b/bridges/snowbridge/pallets/outbound-queue/src/lib.rs index 9e949a4791a8a64d4c36f3f78628279c367939f8..9b9dbe854a5ee51e4182b39a617824dd02d0b3b5 100644 --- a/bridges/snowbridge/pallets/outbound-queue/src/lib.rs +++ b/bridges/snowbridge/pallets/outbound-queue/src/lib.rs @@ -47,24 +47,37 @@ //! consume on Ethereum. Using this upper bound, a final fee can be calculated. //! //! The fee calculation also requires the following parameters: -//! * ETH/DOT exchange rate -//! * Ether fee per unit of gas +//! * Average ETH/DOT exchange rate over some period +//! * Max fee per unit of gas that bridge is willing to refund relayers for //! //! By design, it is expected that governance should manually update these //! parameters every few weeks using the `set_pricing_parameters` extrinsic in the //! system pallet. //! +//! This is an interim measure. Once ETH/DOT liquidity pools are available in the Polkadot network, +//! we'll use them as a source of pricing info, subject to certain safeguards. +//! //! ## Fee Computation Function //! //! ```text //! LocalFee(Message) = WeightToFee(ProcessMessageWeight(Message)) -//! RemoteFee(Message) = MaxGasRequired(Message) * FeePerGas + Reward -//! Fee(Message) = LocalFee(Message) + (RemoteFee(Message) / Ratio("ETH/DOT")) +//! RemoteFee(Message) = MaxGasRequired(Message) * Params.MaxFeePerGas + Params.Reward +//! RemoteFeeAdjusted(Message) = Params.Multiplier * (RemoteFee(Message) / Params.Ratio("ETH/DOT")) +//! Fee(Message) = LocalFee(Message) + RemoteFeeAdjusted(Message) //! ``` //! -//! By design, the computed fee is always going to conservative, to cover worst-case -//! costs of dispatch on Ethereum. In future iterations of the design, we will optimize -//! this, or provide a mechanism to asynchronously refund a portion of collected fees. +//! By design, the computed fee includes a safety factor (the `Multiplier`) to cover +//! unfavourable fluctuations in the ETH/DOT exchange rate. +//! +//! ## Fee Settlement +//! +//! On the remote side, in the gateway contract, the relayer accrues +//! +//! ```text +//! Min(GasPrice, Message.MaxFeePerGas) * GasUsed() + Message.Reward +//! ``` +//! Or in plain english, relayers are refunded for gas consumption, using a +//! price that is a minimum of the actual gas price, or `Message.MaxFeePerGas`. //! //! # Extrinsics //! @@ -106,7 +119,7 @@ pub use snowbridge_outbound_queue_merkle_tree::MerkleProof; use sp_core::{H256, U256}; use sp_runtime::{ traits::{CheckedDiv, Hash}, - DigestItem, + DigestItem, Saturating, }; use sp_std::prelude::*; pub use types::{CommittedMessage, ProcessMessageOriginOf}; @@ -366,8 +379,9 @@ pub mod pallet { // downcast to u128 let fee: u128 = fee.try_into().defensive_unwrap_or(u128::MAX); - // convert to local currency + // multiply by multiplier and convert to local currency let fee = FixedU128::from_inner(fee) + .saturating_mul(params.multiplier) .checked_div(¶ms.exchange_rate) .expect("exchange rate is not zero; qed") .into_inner(); diff --git a/bridges/snowbridge/pallets/outbound-queue/src/mock.rs b/bridges/snowbridge/pallets/outbound-queue/src/mock.rs index 850b13dcf310e0b5660f5d80685787761380bd2f..5eeeeead140018e81a8aaaf302d678e3a4321e08 100644 --- a/bridges/snowbridge/pallets/outbound-queue/src/mock.rs +++ b/bridges/snowbridge/pallets/outbound-queue/src/mock.rs @@ -69,6 +69,7 @@ impl pallet_message_queue::Config for Test { type HeapSize = HeapSize; type MaxStale = MaxStale; type ServiceWeight = ServiceWeight; + type IdleMaxServiceWeight = (); type QueuePausedQuery = (); } @@ -77,7 +78,8 @@ parameter_types! { pub Parameters: PricingParameters = PricingParameters { exchange_rate: FixedU128::from_rational(1, 400), fee_per_gas: gwei(20), - rewards: Rewards { local: DOT, remote: meth(1) } + rewards: Rewards { local: DOT, remote: meth(1) }, + multiplier: FixedU128::from_rational(4, 3), }; } diff --git a/bridges/snowbridge/pallets/outbound-queue/src/test.rs b/bridges/snowbridge/pallets/outbound-queue/src/test.rs index 8ed4a318d68e99181e7f1e0793cc66e23829132a..4e9ea36e24bc1a4e8bb22677d55e7b8a55e6ccf9 100644 --- a/bridges/snowbridge/pallets/outbound-queue/src/test.rs +++ b/bridges/snowbridge/pallets/outbound-queue/src/test.rs @@ -268,28 +268,34 @@ fn encode_digest_item() { } #[test] -fn validate_messages_with_fees() { +fn test_calculate_fees_with_unit_multiplier() { new_tester().execute_with(|| { - let message = mock_message(1000); - let (_, fee) = OutboundQueue::validate(&message).unwrap(); + let gas_used: u64 = 250000; + let price_params: PricingParameters<::Balance> = PricingParameters { + exchange_rate: FixedU128::from_rational(1, 400), + fee_per_gas: 10000_u32.into(), + rewards: Rewards { local: 1_u32.into(), remote: 1_u32.into() }, + multiplier: FixedU128::from_rational(1, 1), + }; + let fee = OutboundQueue::calculate_fee(gas_used, price_params); assert_eq!(fee.local, 698000000); - assert_eq!(fee.remote, 2680000000000); + assert_eq!(fee.remote, 1000000); }); } #[test] -fn test_calculate_fees() { +fn test_calculate_fees_with_multiplier() { new_tester().execute_with(|| { let gas_used: u64 = 250000; - let illegal_price_params: PricingParameters<::Balance> = - PricingParameters { - exchange_rate: FixedU128::from_rational(1, 400), - fee_per_gas: 10000_u32.into(), - rewards: Rewards { local: 1_u32.into(), remote: 1_u32.into() }, - }; - let fee = OutboundQueue::calculate_fee(gas_used, illegal_price_params); + let price_params: PricingParameters<::Balance> = PricingParameters { + exchange_rate: FixedU128::from_rational(1, 400), + fee_per_gas: 10000_u32.into(), + rewards: Rewards { local: 1_u32.into(), remote: 1_u32.into() }, + multiplier: FixedU128::from_rational(4, 3), + }; + let fee = OutboundQueue::calculate_fee(gas_used, price_params); assert_eq!(fee.local, 698000000); - assert_eq!(fee.remote, 1000000); + assert_eq!(fee.remote, 1333333); }); } @@ -297,13 +303,13 @@ fn test_calculate_fees() { fn test_calculate_fees_with_valid_exchange_rate_but_remote_fee_calculated_as_zero() { new_tester().execute_with(|| { let gas_used: u64 = 250000; - let illegal_price_params: PricingParameters<::Balance> = - PricingParameters { - exchange_rate: FixedU128::from_rational(1, 1), - fee_per_gas: 1_u32.into(), - rewards: Rewards { local: 1_u32.into(), remote: 1_u32.into() }, - }; - let fee = OutboundQueue::calculate_fee(gas_used, illegal_price_params.clone()); + let price_params: PricingParameters<::Balance> = PricingParameters { + exchange_rate: FixedU128::from_rational(1, 1), + fee_per_gas: 1_u32.into(), + rewards: Rewards { local: 1_u32.into(), remote: 1_u32.into() }, + multiplier: FixedU128::from_rational(1, 1), + }; + let fee = OutboundQueue::calculate_fee(gas_used, price_params.clone()); assert_eq!(fee.local, 698000000); // Though none zero pricing params the remote fee calculated here is invalid // which should be avoided diff --git a/bridges/snowbridge/pallets/system/src/lib.rs b/bridges/snowbridge/pallets/system/src/lib.rs index 6e5ceb5e9b1d42796567c3da5e549b2af3cfd4de..39c73e3630e7b425e46252943a44d10bfe1cebc7 100644 --- a/bridges/snowbridge/pallets/system/src/lib.rs +++ b/bridges/snowbridge/pallets/system/src/lib.rs @@ -159,6 +159,7 @@ pub mod pallet { type DefaultPricingParameters: Get>; /// Cost of delivering a message from Ethereum + #[pallet::constant] type InboundDeliveryCost: Get>; type WeightInfo: WeightInfo; @@ -334,6 +335,7 @@ pub mod pallet { let command = Command::SetPricingParameters { exchange_rate: params.exchange_rate.into(), delivery_cost: T::InboundDeliveryCost::get().saturated_into::(), + multiplier: params.multiplier.into(), }; Self::send(PRIMARY_GOVERNANCE_CHANNEL, command, PaysFee::::No)?; diff --git a/bridges/snowbridge/pallets/system/src/mock.rs b/bridges/snowbridge/pallets/system/src/mock.rs index a711eab5d3d4ea5068af634fedbbc173f8186395..687072a49e2e5ca9e27d7f1be94ea89564c2275f 100644 --- a/bridges/snowbridge/pallets/system/src/mock.rs +++ b/bridges/snowbridge/pallets/system/src/mock.rs @@ -148,6 +148,7 @@ impl pallet_message_queue::Config for Test { type HeapSize = HeapSize; type MaxStale = MaxStale; type ServiceWeight = ServiceWeight; + type IdleMaxServiceWeight = (); type QueuePausedQuery = (); } @@ -193,7 +194,8 @@ parameter_types! { pub Parameters: PricingParameters = PricingParameters { exchange_rate: FixedU128::from_rational(1, 400), fee_per_gas: gwei(20), - rewards: Rewards { local: DOT, remote: meth(1) } + rewards: Rewards { local: DOT, remote: meth(1) }, + multiplier: FixedU128::from_rational(4, 3) }; pub const InboundDeliveryCost: u128 = 1_000_000_000; diff --git a/bridges/snowbridge/parachain/pallets/ethereum-beacon-client/src/mock.rs b/bridges/snowbridge/parachain/pallets/ethereum-beacon-client/src/mock.rs deleted file mode 100644 index d2cca373e92bd1a70f2ee68a7913214967b2dec0..0000000000000000000000000000000000000000 --- a/bridges/snowbridge/parachain/pallets/ethereum-beacon-client/src/mock.rs +++ /dev/null @@ -1,259 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// SPDX-FileCopyrightText: 2023 Snowfork -use crate as ethereum_beacon_client; -use frame_support::parameter_types; -use pallet_timestamp; -use primitives::{Fork, ForkVersions}; -use sp_core::H256; -use sp_runtime::traits::{BlakeTwo256, IdentityLookup}; - -#[cfg(not(feature = "beacon-spec-mainnet"))] -pub mod minimal { - use super::*; - - use crate::config; - use frame_support::derive_impl; - use hex_literal::hex; - use primitives::CompactExecutionHeader; - use snowbridge_core::inbound::{Log, Proof}; - use sp_runtime::BuildStorage; - use std::{fs::File, path::PathBuf}; - - type Block = frame_system::mocking::MockBlock; - - frame_support::construct_runtime!( - pub enum Test { - System: frame_system::{Pallet, Call, Storage, Event}, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - EthereumBeaconClient: ethereum_beacon_client::{Pallet, Call, Storage, Event}, - } - ); - - parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; - } - - #[derive_impl(frame_system::config_preludes::TestDefaultConfig)] - impl frame_system::Config for Test { - type BaseCallFilter = frame_support::traits::Everything; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type RuntimeTask = RuntimeTask; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = u64; - type Lookup = IdentityLookup; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type PalletInfo = PalletInfo; - type SS58Prefix = SS58Prefix; - type Nonce = u64; - type Block = Block; - } - - impl pallet_timestamp::Config for Test { - type Moment = u64; - type OnTimestampSet = (); - type MinimumPeriod = (); - type WeightInfo = (); - } - - parameter_types! { - pub const ExecutionHeadersPruneThreshold: u32 = 10; - pub const ChainForkVersions: ForkVersions = ForkVersions{ - genesis: Fork { - version: [0, 0, 0, 1], // 0x00000001 - epoch: 0, - }, - altair: Fork { - version: [1, 0, 0, 1], // 0x01000001 - epoch: 0, - }, - bellatrix: Fork { - version: [2, 0, 0, 1], // 0x02000001 - epoch: 0, - }, - capella: Fork { - version: [3, 0, 0, 1], // 0x03000001 - epoch: 0, - }, - }; - } - - impl ethereum_beacon_client::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ForkVersions = ChainForkVersions; - type MaxExecutionHeadersToKeep = ExecutionHeadersPruneThreshold; - type WeightInfo = (); - } - - // Build genesis storage according to the mock runtime. - pub fn new_tester() -> sp_io::TestExternalities { - let t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - let mut ext = sp_io::TestExternalities::new(t); - let _ = ext.execute_with(|| Timestamp::set(RuntimeOrigin::signed(1), 30_000)); - ext - } - - fn load_fixture(basename: &str) -> Result - where - T: for<'de> serde::Deserialize<'de>, - { - let filepath: PathBuf = - [env!("CARGO_MANIFEST_DIR"), "tests", "fixtures", basename].iter().collect(); - serde_json::from_reader(File::open(filepath).unwrap()) - } - - pub fn load_execution_header_update_fixture() -> primitives::ExecutionHeaderUpdate { - load_fixture("execution-header-update.minimal.json").unwrap() - } - - pub fn load_checkpoint_update_fixture( - ) -> primitives::CheckpointUpdate<{ config::SYNC_COMMITTEE_SIZE }> { - load_fixture("initial-checkpoint.minimal.json").unwrap() - } - - pub fn load_sync_committee_update_fixture( - ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> { - load_fixture("sync-committee-update.minimal.json").unwrap() - } - - pub fn load_finalized_header_update_fixture( - ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> { - load_fixture("finalized-header-update.minimal.json").unwrap() - } - - pub fn load_next_sync_committee_update_fixture( - ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> { - load_fixture("next-sync-committee-update.minimal.json").unwrap() - } - - pub fn load_next_finalized_header_update_fixture( - ) -> primitives::Update<{ config::SYNC_COMMITTEE_SIZE }, { config::SYNC_COMMITTEE_BITS_SIZE }> { - load_fixture("next-finalized-header-update.minimal.json").unwrap() - } - - pub fn get_message_verification_payload() -> (Log, Proof) { - ( - Log { - address: hex!("ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0").into(), - topics: vec![ - hex!("1b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ad").into(), - hex!("00000000000000000000000000000000000000000000000000000000000003e8").into(), - hex!("0000000000000000000000000000000000000000000000000000000000000001").into(), - ], - data: hex!("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004b000f000000000000000100d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec701345772617070656420457468657210574554481235003511000000000000000000000000000000000000000000").into(), - }, - Proof { - block_hash: hex!("05aaa60b0f27cce9e71909508527264b77ee14da7b5bf915fcc4e32715333213").into(), - tx_index: 0, - data: (vec![ - hex!("cf0d1c1ba57d1e0edfb59786c7e30c2b7e12bd54612b00cd21c4eaeecedf44fb").to_vec(), - hex!("d21fc4f68ab05bc4dcb23c67008e92c4d466437cdd6ed7aad0c008944c185510").to_vec(), - hex!("b9890f91ca0d77aa2a4adfaf9b9e40c94cac9e638b6d9797923865872944b646").to_vec(), - ], vec![ - hex!("f90131a0b601337b3aa10a671caa724eba641e759399979856141d3aea6b6b4ac59b889ba00c7d5dd48be9060221a02fb8fa213860b4c50d47046c8fa65ffaba5737d569e0a094601b62a1086cd9c9cb71a7ebff9e718f3217fd6e837efe4246733c0a196f63a06a4b0dd0aefc37b3c77828c8f07d1b7a2455ceb5dbfd3c77d7d6aeeddc2f7e8ca0d6e8e23142cdd8ec219e1f5d8b56aa18e456702b195deeaa210327284d42ade4a08a313d4c87023005d1ab631bbfe3f5de1e405d0e66d0bef3e033f1e5711b5521a0bf09a5d9a48b10ade82b8d6a5362a15921c8b5228a3487479b467db97411d82fa0f95cccae2a7c572ef3c566503e30bac2b2feb2d2f26eebf6d870dcf7f8cf59cea0d21fc4f68ab05bc4dcb23c67008e92c4d466437cdd6ed7aad0c008944c1855108080808080808080").to_vec(), - hex!("f851a0b9890f91ca0d77aa2a4adfaf9b9e40c94cac9e638b6d9797923865872944b646a060a634b9280e3a23fb63375e7bbdd9ab07fd379ab6a67e2312bbc112195fa358808080808080808080808080808080").to_vec(), - hex!("f9030820b9030402f90300018301d6e2b9010000000000000800000000000020040008000000000000000000000000400000008000000000000000000000000000000000000000000000000000000000042010000000001000000000000000000000000000000000040000000000000000000000000000000000000000000000008000000000000000002000000000000000000000000200000000000000200000000000100000000040000001000200008000000000000200000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000f901f5f87a942ffa5ecdbe006d30397c7636d3e015eee251369ff842a0c965575a00553e094ca7c5d14f02e107c258dda06867cbf9e0e69f80e71bbcc1a000000000000000000000000000000000000000000000000000000000000003e8a000000000000000000000000000000000000000000000000000000000000003e8f9011c94ee9170abfbf9421ad6dd07f6bdec9d89f2b581e0f863a01b11dcf133cc240f682dab2d3a8e4cd35c5da8c9cf99adac4336f8512584c5ada000000000000000000000000000000000000000000000000000000000000003e8a00000000000000000000000000000000000000000000000000000000000000001b8a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004b000f000000000000000100d184c103f7acc340847eee82a0b909e3358bc28d440edffa1352b13227e8ee646f3ea37456dec701345772617070656420457468657210574554481235003511000000000000000000000000000000000000000000f858948cf6147918a5cbb672703f879f385036f8793a24e1a01449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5ba0000000000000000000000000440edffa1352b13227e8ee646f3ea37456dec701").to_vec(), - ]), - } - ) - } - - pub fn get_message_verification_header() -> CompactExecutionHeader { - CompactExecutionHeader { - parent_hash: hex!("04a7f6ab8282203562c62f38b0ab41d32aaebe2c7ea687702b463148a6429e04") - .into(), - block_number: 55, - state_root: hex!("894d968712976d613519f973a317cb0781c7b039c89f27ea2b7ca193f7befdb3") - .into(), - receipts_root: hex!("cf0d1c1ba57d1e0edfb59786c7e30c2b7e12bd54612b00cd21c4eaeecedf44fb") - .into(), - } - } -} - -#[cfg(feature = "beacon-spec-mainnet")] -pub mod mainnet { - use super::*; - use frame_support::derive_impl; - - type Block = frame_system::mocking::MockBlock; - use sp_runtime::BuildStorage; - - frame_support::construct_runtime!( - pub enum Test { - System: frame_system::{Pallet, Call, Storage, Event}, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - EthereumBeaconClient: ethereum_beacon_client::{Pallet, Call, Storage, Event}, - } - ); - - parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; - } - - #[derive_impl(frame_system::config_preludes::TestDefaultConfig)] - impl frame_system::Config for Test { - type BaseCallFilter = frame_support::traits::Everything; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type RuntimeTask = RuntimeTask; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = u64; - type Lookup = IdentityLookup; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type PalletInfo = PalletInfo; - type SS58Prefix = SS58Prefix; - type Nonce = u64; - type Block = Block; - } - - impl pallet_timestamp::Config for Test { - type Moment = u64; - type OnTimestampSet = (); - type MinimumPeriod = (); - type WeightInfo = (); - } - - parameter_types! { - pub const ChainForkVersions: ForkVersions = ForkVersions{ - genesis: Fork { - version: [0, 0, 16, 32], // 0x00001020 - epoch: 0, - }, - altair: Fork { - version: [1, 0, 16, 32], // 0x01001020 - epoch: 36660, - }, - bellatrix: Fork { - version: [2, 0, 16, 32], // 0x02001020 - epoch: 112260, - }, - capella: Fork { - version: [3, 0, 16, 32], // 0x03001020 - epoch: 162304, - }, - }; - pub const ExecutionHeadersPruneThreshold: u32 = 10; - } - - impl ethereum_beacon_client::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ForkVersions = ChainForkVersions; - type MaxExecutionHeadersToKeep = ExecutionHeadersPruneThreshold; - type WeightInfo = (); - } - - // Build genesis storage according to the mock runtime. - pub fn new_tester() -> sp_io::TestExternalities { - let t = frame_system::GenesisConfig::::default().build_storage().unwrap(); - let mut ext = sp_io::TestExternalities::new(t); - let _ = ext.execute_with(|| Timestamp::set(RuntimeOrigin::signed(1), 30_000)); - ext - } -} diff --git a/bridges/snowbridge/primitives/beacon/src/lib.rs b/bridges/snowbridge/primitives/beacon/src/lib.rs index 4c569d0176c21882aa3875024551848b1cc97494..6579d0f60966e1aff54583457e5fe31f7fded8b6 100644 --- a/bridges/snowbridge/primitives/beacon/src/lib.rs +++ b/bridges/snowbridge/primitives/beacon/src/lib.rs @@ -15,12 +15,12 @@ pub mod updates; mod serde_utils; pub use types::{ - BeaconHeader, CompactBeaconState, CompactExecutionHeader, ExecutionHeaderState, - ExecutionPayloadHeader, FinalizedHeaderState, Fork, ForkData, ForkVersion, ForkVersions, Mode, - PublicKey, Signature, SigningData, SyncAggregate, SyncCommittee, SyncCommitteePrepared, + AncestryProof, BeaconHeader, CompactBeaconState, ExecutionPayloadHeader, ExecutionProof, + FinalizedHeaderState, Fork, ForkData, ForkVersion, ForkVersions, Mode, PublicKey, Signature, + SigningData, SyncAggregate, SyncCommittee, SyncCommitteePrepared, VersionedExecutionPayloadHeader, }; -pub use updates::{CheckpointUpdate, ExecutionHeaderUpdate, NextSyncCommitteeUpdate, Update}; +pub use updates::{CheckpointUpdate, NextSyncCommitteeUpdate, Update}; pub use bits::decompress_sync_committee_bits; pub use bls::{ diff --git a/bridges/snowbridge/primitives/beacon/src/types.rs b/bridges/snowbridge/primitives/beacon/src/types.rs index 2af522f56b0dc4b00a155252e927a90e9bca9ed1..e12350510c9b83c85e27ecfa1534b984ff23fb05 100644 --- a/bridges/snowbridge/primitives/beacon/src/types.rs +++ b/bridges/snowbridge/primitives/beacon/src/types.rs @@ -110,14 +110,6 @@ impl<'de> Deserialize<'de> for Signature { } } -#[derive(Copy, Clone, Default, Encode, Decode, TypeInfo, MaxEncodedLen)] -pub struct ExecutionHeaderState { - pub beacon_block_root: H256, - pub beacon_slot: u64, - pub block_hash: H256, - pub block_number: u64, -} - #[derive(Copy, Clone, Default, Encode, Decode, TypeInfo, MaxEncodedLen)] pub struct FinalizedHeaderState { pub beacon_block_root: H256, @@ -346,35 +338,6 @@ impl ExecutionPayloadHeader { } } -#[derive( - Default, - Encode, - Decode, - CloneNoBound, - PartialEqNoBound, - RuntimeDebugNoBound, - TypeInfo, - MaxEncodedLen, -)] -pub struct CompactExecutionHeader { - pub parent_hash: H256, - #[codec(compact)] - pub block_number: u64, - pub state_root: H256, - pub receipts_root: H256, -} - -impl From for CompactExecutionHeader { - fn from(execution_payload: ExecutionPayloadHeader) -> Self { - Self { - parent_hash: execution_payload.parent_hash, - block_number: execution_payload.block_number, - state_root: execution_payload.state_root, - receipts_root: execution_payload.receipts_root, - } - } -} - #[derive( Default, Encode, @@ -405,18 +368,6 @@ pub enum VersionedExecutionPayloadHeader { Deneb(deneb::ExecutionPayloadHeader), } -/// Convert VersionedExecutionPayloadHeader to CompactExecutionHeader -impl From for CompactExecutionHeader { - fn from(versioned_execution_header: VersionedExecutionPayloadHeader) -> Self { - match versioned_execution_header { - VersionedExecutionPayloadHeader::Capella(execution_payload_header) => - execution_payload_header.into(), - VersionedExecutionPayloadHeader::Deneb(execution_payload_header) => - execution_payload_header.into(), - } - } -} - impl VersionedExecutionPayloadHeader { pub fn hash_tree_root(&self) -> Result { match self { @@ -448,6 +399,45 @@ impl VersionedExecutionPayloadHeader { execution_payload_header.block_number, } } + + pub fn receipts_root(&self) -> H256 { + match self { + VersionedExecutionPayloadHeader::Capella(execution_payload_header) => + execution_payload_header.receipts_root, + VersionedExecutionPayloadHeader::Deneb(execution_payload_header) => + execution_payload_header.receipts_root, + } + } +} + +#[derive(Encode, Decode, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, TypeInfo)] +#[cfg_attr( + feature = "std", + derive(serde::Deserialize), + serde(deny_unknown_fields, bound(serialize = ""), bound(deserialize = "")) +)] +pub struct ExecutionProof { + /// Header for the beacon block containing the execution payload + pub header: BeaconHeader, + /// Proof that `header` is an ancestor of a finalized header + pub ancestry_proof: Option, + /// The execution header to be verified + pub execution_header: VersionedExecutionPayloadHeader, + /// Merkle proof that execution payload is contained within `header` + pub execution_branch: Vec, +} + +#[derive(Encode, Decode, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, TypeInfo)] +#[cfg_attr( + feature = "std", + derive(serde::Deserialize), + serde(deny_unknown_fields, bound(serialize = ""), bound(deserialize = "")) +)] +pub struct AncestryProof { + /// Merkle proof that `header` is an ancestor of `finalized_header` + pub header_branch: Vec, + /// Root of a finalized block that has already been imported into the light client + pub finalized_block_root: H256, } #[cfg(test)] @@ -576,7 +566,6 @@ pub enum Mode { } pub mod deneb { - use crate::CompactExecutionHeader; use codec::{Decode, Encode}; use frame_support::{CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound}; use scale_info::TypeInfo; @@ -627,15 +616,4 @@ pub mod deneb { pub blob_gas_used: u64, // [New in Deneb:EIP4844] pub excess_blob_gas: u64, // [New in Deneb:EIP4844] } - - impl From for CompactExecutionHeader { - fn from(execution_payload: ExecutionPayloadHeader) -> Self { - Self { - parent_hash: execution_payload.parent_hash, - block_number: execution_payload.block_number, - state_root: execution_payload.state_root, - receipts_root: execution_payload.receipts_root, - } - } - } } diff --git a/bridges/snowbridge/primitives/beacon/src/updates.rs b/bridges/snowbridge/primitives/beacon/src/updates.rs index 1ecd32c6d7b79f34854d9387fba78b99cce333b2..ca651b5806f270f85d830c218c53cb6a509cc6f4 100644 --- a/bridges/snowbridge/primitives/beacon/src/updates.rs +++ b/bridges/snowbridge/primitives/beacon/src/updates.rs @@ -6,7 +6,7 @@ use scale_info::TypeInfo; use sp_core::H256; use sp_std::prelude::*; -use crate::types::{BeaconHeader, SyncAggregate, SyncCommittee, VersionedExecutionPayloadHeader}; +use crate::types::{BeaconHeader, SyncAggregate, SyncCommittee}; #[derive(Encode, Decode, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, TypeInfo)] #[cfg_attr( @@ -23,26 +23,13 @@ pub struct CheckpointUpdate { pub block_roots_branch: Vec, } -impl Default for CheckpointUpdate { - fn default() -> Self { - CheckpointUpdate { - header: Default::default(), - current_sync_committee: Default::default(), - current_sync_committee_branch: Default::default(), - validators_root: Default::default(), - block_roots_root: Default::default(), - block_roots_branch: Default::default(), - } - } -} - #[derive( Default, Encode, Decode, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, TypeInfo, )] #[cfg_attr( feature = "std", derive(serde::Deserialize), - serde(deny_unknown_fields, bound(serialize = ""), bound(deserialize = "")) + serde(bound(serialize = ""), bound(deserialize = "")) )] pub struct Update { /// A recent header attesting to the finalized header, using its `state_root`. @@ -78,33 +65,3 @@ pub struct NextSyncCommitteeUpdate { pub next_sync_committee: SyncCommittee, pub next_sync_committee_branch: Vec, } - -#[derive(Encode, Decode, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, TypeInfo)] -#[cfg_attr( - feature = "std", - derive(serde::Deserialize), - serde(deny_unknown_fields, bound(serialize = ""), bound(deserialize = "")) -)] -pub struct ExecutionHeaderUpdate { - /// Header for the beacon block containing the execution payload - pub header: BeaconHeader, - /// Proof that `header` is an ancestor of a finalized header - pub ancestry_proof: Option, - /// Execution header to be imported - pub execution_header: VersionedExecutionPayloadHeader, - /// Merkle proof that execution payload is contained within `header` - pub execution_branch: Vec, -} - -#[derive(Encode, Decode, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, TypeInfo)] -#[cfg_attr( - feature = "std", - derive(serde::Deserialize), - serde(deny_unknown_fields, bound(serialize = ""), bound(deserialize = "")) -)] -pub struct AncestryProof { - /// Merkle proof that `header` is an ancestor of `finalized_header` - pub header_branch: Vec, - /// Root of a finalized block that has already been imported into the light client - pub finalized_block_root: H256, -} diff --git a/bridges/snowbridge/primitives/core/src/inbound.rs b/bridges/snowbridge/primitives/core/src/inbound.rs index 4b04470ad02615d86f1a1c530f3cbed809649328..9e8ed789ab500917eb520176fdf39343a65838da 100644 --- a/bridges/snowbridge/primitives/core/src/inbound.rs +++ b/bridges/snowbridge/primitives/core/src/inbound.rs @@ -5,6 +5,7 @@ use codec::{Decode, Encode}; use frame_support::PalletError; use scale_info::TypeInfo; +use snowbridge_beacon_primitives::{BeaconHeader, ExecutionProof}; use sp_core::{H160, H256}; use sp_runtime::RuntimeDebug; use sp_std::vec::Vec; @@ -25,6 +26,8 @@ pub enum VerificationError { InvalidLog, /// Unable to verify the transaction receipt with the provided proof InvalidProof, + /// Unable to verify the execution header with ancestry proof + InvalidExecutionProof(#[codec(skip)] &'static str), } pub type MessageNonce = u64; @@ -65,10 +68,15 @@ impl Log { /// Inclusion proof for a transaction receipt #[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, TypeInfo)] pub struct Proof { - // The block hash of the block in which the receipt was included. - pub block_hash: H256, - // The index of the transaction (and receipt) within the block. - pub tx_index: u32, // Proof keys and values (receipts tree) - pub data: (Vec>, Vec>), + pub receipt_proof: (Vec>, Vec>), + // Proof that an execution header was finalized by the beacon chain + pub execution_proof: ExecutionProof, +} + +#[derive(Clone, RuntimeDebug)] +pub struct InboundQueueFixture { + pub message: Message, + pub finalized_header: BeaconHeader, + pub block_roots_root: H256, } diff --git a/bridges/snowbridge/primitives/core/src/outbound.rs b/bridges/snowbridge/primitives/core/src/outbound.rs index bce123878d3a456fc8b50f841cd64516a5d58dee..0ba0fdb61089e9bd77f162a87bcf7f78842bae5c 100644 --- a/bridges/snowbridge/primitives/core/src/outbound.rs +++ b/bridges/snowbridge/primitives/core/src/outbound.rs @@ -136,6 +136,8 @@ mod v1 { exchange_rate: UD60x18, // Cost of delivering a message from Ethereum to BridgeHub, in ROC/KSM/DOT delivery_cost: u128, + // Fee multiplier + multiplier: UD60x18, }, } @@ -203,10 +205,11 @@ mod v1 { Token::Uint(U256::from(*transfer_asset_xcm)), Token::Uint(*register_token), ])]), - Command::SetPricingParameters { exchange_rate, delivery_cost } => + Command::SetPricingParameters { exchange_rate, delivery_cost, multiplier } => ethabi::encode(&[Token::Tuple(vec![ Token::Uint(exchange_rate.clone().into_inner()), Token::Uint(U256::from(*delivery_cost)), + Token::Uint(multiplier.clone().into_inner()), ])]), } } @@ -273,7 +276,8 @@ mod v1 { } } -#[cfg_attr(feature = "std", derive(PartialEq, Debug))] +#[derive(Clone, Encode, Decode, RuntimeDebug, TypeInfo)] +#[cfg_attr(feature = "std", derive(PartialEq))] /// Fee for delivering message pub struct Fee where @@ -346,12 +350,13 @@ pub trait GasMeter { /// the command within the message const MAXIMUM_BASE_GAS: u64; + /// Total gas consumed at most, including verification & dispatch fn maximum_gas_used_at_most(command: &Command) -> u64 { Self::MAXIMUM_BASE_GAS + Self::maximum_dispatch_gas_used_at_most(command) } - /// Measures the maximum amount of gas a command payload will require to dispatch, AFTER - /// validation & verification. + /// Measures the maximum amount of gas a command payload will require to *dispatch*, NOT + /// including validation & verification. fn maximum_dispatch_gas_used_at_most(command: &Command) -> u64; } diff --git a/bridges/snowbridge/primitives/core/src/pricing.rs b/bridges/snowbridge/primitives/core/src/pricing.rs index 33aeda6d15c4701ce4594b1e783d7aa69f84cc8e..0f392c7ad4bdde9c4bed812b995b039816c8977c 100644 --- a/bridges/snowbridge/primitives/core/src/pricing.rs +++ b/bridges/snowbridge/primitives/core/src/pricing.rs @@ -13,6 +13,8 @@ pub struct PricingParameters { pub rewards: Rewards, /// Ether (wei) fee per gas unit pub fee_per_gas: U256, + /// Fee multiplier + pub multiplier: FixedU128, } #[derive(Clone, Encode, Decode, PartialEq, RuntimeDebug, MaxEncodedLen, TypeInfo)] @@ -43,6 +45,9 @@ where if self.rewards.remote.is_zero() { return Err(InvalidPricingParameters) } + if self.multiplier == FixedU128::zero() { + return Err(InvalidPricingParameters) + } Ok(()) } } diff --git a/bridges/snowbridge/runtime/test-common/Cargo.toml b/bridges/snowbridge/runtime/test-common/Cargo.toml index 4e8b311cb97812bb94140aa02405b3a174064a8f..90b4f38e721480d05c75a818bab86dec2be275f9 100644 --- a/bridges/snowbridge/runtime/test-common/Cargo.toml +++ b/bridges/snowbridge/runtime/test-common/Cargo.toml @@ -14,7 +14,7 @@ workspace = true codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.4.1" } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } serde = { optional = true, features = ["derive"], workspace = true, default-features = true } smallvec = "1.11.0" diff --git a/bridges/snowbridge/runtime/test-common/src/lib.rs b/bridges/snowbridge/runtime/test-common/src/lib.rs index 7455adf76170acefd50f06e8a40ef1c79028f49f..3e2de0e481b868de773ad3b2946d91e31e1e71d1 100644 --- a/bridges/snowbridge/runtime/test-common/src/lib.rs +++ b/bridges/snowbridge/runtime/test-common/src/lib.rs @@ -467,7 +467,6 @@ pub fn ethereum_extrinsic( let initial_checkpoint = make_checkpoint(); let update = make_finalized_header_update(); let sync_committee_update = make_sync_committee_update(); - let execution_header_update = make_execution_header_update(); let alice = Alice; let alice_account = alice.to_account_id(); @@ -494,22 +493,12 @@ pub fn ethereum_extrinsic( } .into(); - let execution_header_call: ::RuntimeCall = - snowbridge_pallet_ethereum_client::Call::::submit_execution_header { - update: Box::new(*execution_header_update), - } - .into(); - let update_outcome = construct_and_apply_extrinsic(alice, update_call.into()); assert_ok!(update_outcome); let sync_committee_outcome = construct_and_apply_extrinsic(alice, update_sync_committee_call.into()); assert_ok!(sync_committee_outcome); - - let execution_header_outcome = - construct_and_apply_extrinsic(alice, execution_header_call.into()); - assert_ok!(execution_header_outcome); }); } @@ -548,7 +537,6 @@ pub fn ethereum_to_polkadot_message_extrinsics_work( .execute_with(|| { let initial_checkpoint = make_checkpoint(); let sync_committee_update = make_sync_committee_update(); - let execution_header_update = make_execution_header_update(); let alice = Alice; let alice_account = alice.to_account_id(); @@ -569,18 +557,8 @@ pub fn ethereum_to_polkadot_message_extrinsics_work( } .into(); - let execution_header_call: ::RuntimeCall = - snowbridge_pallet_ethereum_client::Call::::submit_execution_header { - update: Box::new(*execution_header_update), - } - .into(); - let sync_committee_outcome = construct_and_apply_extrinsic(alice, update_sync_committee_call.into()); assert_ok!(sync_committee_outcome); - - let execution_header_outcome = - construct_and_apply_extrinsic(alice, execution_header_call.into()); - assert_ok!(execution_header_outcome); }); } diff --git a/bridges/snowbridge/scripts/contribute-upstream.sh b/bridges/snowbridge/scripts/contribute-upstream.sh index 32005b770ecf44cb9af18c61f830243ed5287e68..529057c3f26feb8b3287648ccfc4fb72a649b71d 100755 --- a/bridges/snowbridge/scripts/contribute-upstream.sh +++ b/bridges/snowbridge/scripts/contribute-upstream.sh @@ -79,4 +79,10 @@ git fetch parity master git checkout parity/master -- .github git add -- .github +git commit -m "cleanup branch" + +# Fetch the latest from parity master +echo "Fetching latest from Parity master. Resolve merge conflicts, if there are any." +git fetch parity master +git merge parity/master echo "OK" diff --git a/bridges/testing/environments/rococo-westend/rococo.zndsl b/bridges/testing/environments/rococo-westend/rococo.zndsl index 5b49c7c632fa4dd0ce77134858a2f697acbfff16..a75286445a240eb302ac8fd23ae7fe707e6c0af3 100644 --- a/bridges/testing/environments/rococo-westend/rococo.zndsl +++ b/bridges/testing/environments/rococo-westend/rococo.zndsl @@ -1,7 +1,7 @@ -Description: Check if the with-Westend GRANPDA pallet was initialized at Rococo BH +Description: Check if the with-Westend GRANDPA pallet was initialized at Rococo BH Network: ./bridge_hub_rococo_local_network.toml Creds: config -# relay is already started - let's wait until with-Westend GRANPDA pallet is initialized at Rococo +# relay is already started - let's wait until with-Westend GRANDPA pallet is initialized at Rococo bridge-hub-rococo-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/best-finalized-header-at-bridged-chain.js with "Westend,0" within 400 seconds diff --git a/bridges/testing/environments/rococo-westend/westend.zndsl b/bridges/testing/environments/rococo-westend/westend.zndsl index 07968838852f7c0a00131db3080c460c07d08206..21d4ebf3b05b003083f7d35bf6bb7a1ca4c1ad05 100644 --- a/bridges/testing/environments/rococo-westend/westend.zndsl +++ b/bridges/testing/environments/rococo-westend/westend.zndsl @@ -1,6 +1,6 @@ -Description: Check if the with-Rococo GRANPDA pallet was initialized at Westend BH +Description: Check if the with-Rococo GRANDPA pallet was initialized at Westend BH Network: ./bridge_hub_westend_local_network.toml Creds: config -# relay is already started - let's wait until with-Rococo GRANPDA pallet is initialized at Westend +# relay is already started - let's wait until with-Rococo GRANDPA pallet is initialized at Westend bridge-hub-westend-collator1: js-script {{FRAMEWORK_PATH}}/js-helpers/best-finalized-header-at-bridged-chain.js with "Rococo,0" within 400 seconds diff --git a/bridges/testing/framework/utils/generate_hex_encoded_call/index.js b/bridges/testing/framework/utils/generate_hex_encoded_call/index.js index 30f89d754ceb7de1b24bc31413e09c862a461256..c8e361b25a9ce3e56f3c839d53e2fc67106a98c8 100644 --- a/bridges/testing/framework/utils/generate_hex_encoded_call/index.js +++ b/bridges/testing/framework/utils/generate_hex_encoded_call/index.js @@ -126,36 +126,36 @@ if (!process.argv[2] || !process.argv[3]) { } const type = process.argv[2]; -const rpcEnpoint = process.argv[3]; +const rpcEndpoint = process.argv[3]; const output = process.argv[4]; const inputArgs = process.argv.slice(5, process.argv.length); console.log(`Generating hex-encoded call data for:`); console.log(` type: ${type}`); -console.log(` rpcEnpoint: ${rpcEnpoint}`); +console.log(` rpcEndpoint: ${rpcEndpoint}`); console.log(` output: ${output}`); console.log(` inputArgs: ${inputArgs}`); switch (type) { case 'remark-with-event': - remarkWithEvent(rpcEnpoint, output); + remarkWithEvent(rpcEndpoint, output); break; case 'add-exporter-config': - addExporterConfig(rpcEnpoint, output, inputArgs[0], inputArgs[1]); + addExporterConfig(rpcEndpoint, output, inputArgs[0], inputArgs[1]); break; case 'remove-exporter-config': - removeExporterConfig(rpcEnpoint, output, inputArgs[0], inputArgs[1]); + removeExporterConfig(rpcEndpoint, output, inputArgs[0], inputArgs[1]); break; case 'add-universal-alias': - addUniversalAlias(rpcEnpoint, output, inputArgs[0], inputArgs[1]); + addUniversalAlias(rpcEndpoint, output, inputArgs[0], inputArgs[1]); break; case 'add-reserve-location': - addReserveLocation(rpcEnpoint, output, inputArgs[0]); + addReserveLocation(rpcEndpoint, output, inputArgs[0]); break; case 'force-create-asset': - forceCreateAsset(rpcEnpoint, output, inputArgs[0], inputArgs[1], inputArgs[2], inputArgs[3]); + forceCreateAsset(rpcEndpoint, output, inputArgs[0], inputArgs[1], inputArgs[2], inputArgs[3]); break; case 'force-xcm-version': - forceXcmVersion(rpcEnpoint, output, inputArgs[0], inputArgs[1]); + forceXcmVersion(rpcEndpoint, output, inputArgs[0], inputArgs[1]); break; case 'check': console.log(`Checking nodejs installation, if you see this everything is ready!`); diff --git a/bridges/testing/run-tests.sh b/bridges/testing/run-tests.sh index 6149d9912653c79968a0229759c8f1bf46f68a9f..fd12b57f53349a0a449af7103c05341d3c94ceb9 100755 --- a/bridges/testing/run-tests.sh +++ b/bridges/testing/run-tests.sh @@ -30,7 +30,7 @@ done export POLKADOT_SDK_PATH=`realpath $(dirname "$0")/../..` export BRIDGE_TESTS_FOLDER=$POLKADOT_SDK_PATH/bridges/testing/tests -# set pathc to binaries +# set path to binaries if [ "$ZOMBIENET_DOCKER_PATHS" -eq 1 ]; then export POLKADOT_BINARY=/usr/local/bin/polkadot export POLKADOT_PARACHAIN_BINARY=/usr/local/bin/polkadot-parachain diff --git a/bridges/testing/tests/0002-mandatory-headers-synced-while-idle/run.sh b/bridges/testing/tests/0002-mandatory-headers-synced-while-idle/run.sh index 7d5b8d9273664b0861e8ffe1c528e9e1718c4df4..3a604b3876d96241903c1c5a110cc6392f26cb7e 100755 --- a/bridges/testing/tests/0002-mandatory-headers-synced-while-idle/run.sh +++ b/bridges/testing/tests/0002-mandatory-headers-synced-while-idle/run.sh @@ -24,7 +24,7 @@ echo -e "Sleeping 90s before starting relayer ...\n" sleep 90 ${BASH_SOURCE%/*}/../../environments/rococo-westend/start_relayer.sh $rococo_dir $westend_dir relayer_pid -# Sometimes the relayer syncs multiple parachain heads in the begining leading to test failures. +# Sometimes the relayer syncs multiple parachain heads in the beginning leading to test failures. # See issue: https://github.com/paritytech/parity-bridges-common/issues/2838. # TODO: Remove this sleep after the issue is fixed. echo -e "Sleeping 180s before runing the tests ...\n" diff --git a/cumulus/client/collator/Cargo.toml b/cumulus/client/collator/Cargo.toml index 0e911b9f3abfec1a894b50d63620f914268b78a9..42f7342d1a5381a6174c15909b815485eb7c8a7e 100644 --- a/cumulus/client/collator/Cargo.toml +++ b/cumulus/client/collator/Cargo.toml @@ -12,7 +12,7 @@ workspace = true [dependencies] parking_lot = "0.12.1" codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"] } -futures = "0.3.21" +futures = "0.3.30" tracing = "0.1.25" # Substrate @@ -34,7 +34,7 @@ cumulus-client-network = { path = "../network" } cumulus-primitives-core = { path = "../../primitives/core" } [dev-dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" # Substrate sp-maybe-compressed-blob = { path = "../../../substrate/primitives/maybe-compressed-blob" } diff --git a/cumulus/client/consensus/aura/Cargo.toml b/cumulus/client/consensus/aura/Cargo.toml index e815e89d8ce3bebcdcf52b363917ba17c0382708..70dd67cb9a00b2e7b0baf04dbfdaaff0386104e5 100644 --- a/cumulus/client/consensus/aura/Cargo.toml +++ b/cumulus/client/consensus/aura/Cargo.toml @@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" workspace = true [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"] } futures = "0.3.28" tracing = "0.1.37" @@ -41,7 +41,7 @@ substrate-prometheus-endpoint = { path = "../../../../substrate/utils/prometheus cumulus-client-consensus-common = { path = "../common" } cumulus-relay-chain-interface = { path = "../../relay-chain-interface" } cumulus-client-consensus-proposer = { path = "../proposer" } -cumulus-client-parachain-inherent = { path = "../../../client/parachain-inherent" } +cumulus-client-parachain-inherent = { path = "../../parachain-inherent" } cumulus-primitives-aura = { path = "../../../primitives/aura" } cumulus-primitives-core = { path = "../../../primitives/core" } cumulus-client-collator = { path = "../../collator" } diff --git a/cumulus/client/consensus/aura/src/collators/lookahead.rs b/cumulus/client/consensus/aura/src/collators/lookahead.rs index 161f10d55a193de35a2585e1a1f5725f30e19bf7..580058336174df21a225d64e96a52913b24c2ae7 100644 --- a/cumulus/client/consensus/aura/src/collators/lookahead.rs +++ b/cumulus/client/consensus/aura/src/collators/lookahead.rs @@ -49,7 +49,7 @@ use polkadot_node_subsystem::messages::{ CollationGenerationMessage, RuntimeApiMessage, RuntimeApiRequest, }; use polkadot_overseer::Handle as OverseerHandle; -use polkadot_primitives::{CollatorPair, Id as ParaId, OccupiedCoreAssumption}; +use polkadot_primitives::{CollatorPair, CoreIndex, Id as ParaId, OccupiedCoreAssumption}; use futures::{channel::oneshot, prelude::*}; use sc_client_api::{backend::AuxStore, BlockBackend, BlockOf}; @@ -184,7 +184,15 @@ where while let Some(relay_parent_header) = import_notifications.next().await { let relay_parent = relay_parent_header.hash(); - if !is_para_scheduled(relay_parent, params.para_id, &mut params.overseer_handle).await { + // TODO: Currently we use just the first core here, but for elastic scaling + // we iterate and build on all of the cores returned. + let core_index = if let Some(core_index) = + cores_scheduled_for_para(relay_parent, params.para_id, &mut params.overseer_handle) + .await + .get(0) + { + *core_index + } else { tracing::trace!( target: crate::LOG_TARGET, ?relay_parent, @@ -193,7 +201,7 @@ where ); continue - } + }; let max_pov_size = match params .relay_client @@ -396,6 +404,7 @@ where parent_head: parent_header.encode().into(), validation_code_hash, result_sender: None, + core_index, }, ), "SubmitCollation", @@ -480,14 +489,12 @@ async fn max_ancestry_lookback( } } -// Checks if there exists a scheduled core for the para at the provided relay parent. -// -// Falls back to `false` in case of an error. -async fn is_para_scheduled( +// Return all the cores assigned to the para at the provided relay parent. +async fn cores_scheduled_for_para( relay_parent: PHash, para_id: ParaId, overseer_handle: &mut OverseerHandle, -) -> bool { +) -> Vec { let (tx, rx) = oneshot::channel(); let request = RuntimeApiRequest::AvailabilityCores(tx); overseer_handle @@ -503,7 +510,7 @@ async fn is_para_scheduled( ?relay_parent, "Failed to query availability cores runtime API", ); - return false + return Vec::new() }, Err(oneshot::Canceled) => { tracing::error!( @@ -511,9 +518,19 @@ async fn is_para_scheduled( ?relay_parent, "Sender for availability cores runtime request dropped", ); - return false + return Vec::new() }, }; - cores.iter().any(|core| core.para_id() == Some(para_id)) + cores + .iter() + .enumerate() + .filter_map(|(index, core)| { + if core.para_id() == Some(para_id) { + Some(CoreIndex(index as u32)) + } else { + None + } + }) + .collect() } diff --git a/cumulus/client/consensus/common/Cargo.toml b/cumulus/client/consensus/common/Cargo.toml index 5a014b10e35f39b0a5e00ca01da7cfd3ecc50a5f..fb4a85ad122637470a81371eb12352a14ac7c61e 100644 --- a/cumulus/client/consensus/common/Cargo.toml +++ b/cumulus/client/consensus/common/Cargo.toml @@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" workspace = true [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"] } dyn-clone = "1.0.16" futures = "0.3.28" diff --git a/cumulus/client/consensus/common/src/level_monitor.rs b/cumulus/client/consensus/common/src/level_monitor.rs index 270e3f57ae5a374aba2f22966c7376e0791020ca..fb4b0498f6887f8bea1d3e7ba4e7f4082e2f9747 100644 --- a/cumulus/client/consensus/common/src/level_monitor.rs +++ b/cumulus/client/consensus/common/src/level_monitor.rs @@ -158,7 +158,7 @@ where /// the limit passed to the constructor. /// /// If the given level is found to have a number of blocks greater than or equal the limit - /// then the limit is enforced by chosing one (or more) blocks to remove. + /// then the limit is enforced by choosing one (or more) blocks to remove. /// /// The removal strategy is driven by the block freshness. /// diff --git a/cumulus/client/consensus/common/src/tests.rs b/cumulus/client/consensus/common/src/tests.rs index bfb95ae388ae3cd31f5035a9c6195631adbb8809..7816d3a4c40a7ab02aceb86c701f127e45158470 100644 --- a/cumulus/client/consensus/common/src/tests.rs +++ b/cumulus/client/consensus/common/src/tests.rs @@ -832,7 +832,7 @@ fn restore_limit_monitor() { .collect::>(); // Scenario before limit application (with B11 imported as best) - // Import order (freshess): B00, B10, B11, B12, B20, B21 + // Import order (freshness): B00, B10, B11, B12, B20, B21 // // B00 --+-- B10 --+-- B20 // | +-- B21 diff --git a/cumulus/client/consensus/proposer/Cargo.toml b/cumulus/client/consensus/proposer/Cargo.toml index b37232bb4485d6f5ece63a3c940bd065c1d3f083..42ca4e06f8f45e410006304cf1290e811e153b4c 100644 --- a/cumulus/client/consensus/proposer/Cargo.toml +++ b/cumulus/client/consensus/proposer/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] anyhow = "1.0" -async-trait = "0.1.74" +async-trait = "0.1.79" thiserror = { workspace = true } # Substrate diff --git a/cumulus/client/consensus/relay-chain/Cargo.toml b/cumulus/client/consensus/relay-chain/Cargo.toml index 3d06d6b89ef7447b6196b1fc395ed7be54e3ba62..cb32b98045760de5621792c6ef45f76faf2e7e08 100644 --- a/cumulus/client/consensus/relay-chain/Cargo.toml +++ b/cumulus/client/consensus/relay-chain/Cargo.toml @@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" workspace = true [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" futures = "0.3.28" parking_lot = "0.12.1" tracing = "0.1.37" diff --git a/cumulus/client/network/Cargo.toml b/cumulus/client/network/Cargo.toml index 995ef606d270ed688af3751016be9c8c37f80305..1210975ef690c4d110a7f96b2e88e4d151edfa87 100644 --- a/cumulus/client/network/Cargo.toml +++ b/cumulus/client/network/Cargo.toml @@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" workspace = true [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"] } futures = "0.3.28" futures-timer = "3.0.2" diff --git a/cumulus/client/parachain-inherent/Cargo.toml b/cumulus/client/parachain-inherent/Cargo.toml index e00f3ba26066c037aca5e11fcb539ae6d95a4c85..6e9adab1ffc9e2bf9de9d8101eb38e4da8212b27 100644 --- a/cumulus/client/parachain-inherent/Cargo.toml +++ b/cumulus/client/parachain-inherent/Cargo.toml @@ -7,9 +7,9 @@ description = "Inherent that needs to be present in every parachain block. Conta license = "Apache-2.0" [dependencies] -async-trait = "0.1.73" +async-trait = "0.1.79" codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"] } -scale-info = { version = "2.10.0", features = ["derive"] } +scale-info = { version = "2.11.1", features = ["derive"] } tracing = { version = "0.1.37" } # Substrate diff --git a/cumulus/client/pov-recovery/Cargo.toml b/cumulus/client/pov-recovery/Cargo.toml index 375a57a87c2aa3fb92a6317c756b18c8117736f8..571935620d6d90b3aa1157124a2bae6fd73a19c2 100644 --- a/cumulus/client/pov-recovery/Cargo.toml +++ b/cumulus/client/pov-recovery/Cargo.toml @@ -32,7 +32,7 @@ polkadot-primitives = { path = "../../../polkadot/primitives" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = { path = "../relay-chain-interface" } -async-trait = "0.1.74" +async-trait = "0.1.79" [dev-dependencies] tokio = { version = "1.32.0", features = ["macros"] } diff --git a/cumulus/client/pov-recovery/src/lib.rs b/cumulus/client/pov-recovery/src/lib.rs index 32aba6c8993a6da67cd3adeb394e87e6c067b46c..0ca21749c3eb557a78f0996c703e86b35cab6f17 100644 --- a/cumulus/client/pov-recovery/src/lib.rs +++ b/cumulus/client/pov-recovery/src/lib.rs @@ -18,7 +18,7 @@ //! //! A parachain needs to build PoVs that are send to the relay chain to progress. These PoVs are //! erasure encoded and one piece of it is stored by each relay chain validator. As the relay chain -//! decides on which PoV per parachain to include and thus, to progess the parachain it can happen +//! decides on which PoV per parachain to include and thus, to progress the parachain it can happen //! that the block corresponding to this PoV isn't propagated in the parachain network. This can //! have several reasons, either a malicious collator that managed to include its own PoV and //! doesn't want to share it with the rest of the network or maybe a collator went down before it @@ -338,8 +338,8 @@ where let mut blocks_to_delete = vec![hash]; while let Some(delete) = blocks_to_delete.pop() { - if let Some(childs) = self.waiting_for_parent.remove(&delete) { - blocks_to_delete.extend(childs.iter().map(BlockT::hash)); + if let Some(children) = self.waiting_for_parent.remove(&delete) { + blocks_to_delete.extend(children.iter().map(BlockT::hash)); } } self.clear_waiting_recovery(&hash); @@ -448,7 +448,7 @@ where /// Import the given `block`. /// - /// This will also recursivley drain `waiting_for_parent` and import them as well. + /// This will also recursively drain `waiting_for_parent` and import them as well. fn import_block(&mut self, block: Block) { let mut blocks = VecDeque::new(); @@ -495,7 +495,7 @@ where tracing::debug!( target: LOG_TARGET, block_hash = ?hash, - "Cound not recover. Block was never announced as candidate" + "Could not recover. Block was never announced as candidate" ); return }, diff --git a/cumulus/client/relay-chain-inprocess-interface/Cargo.toml b/cumulus/client/relay-chain-inprocess-interface/Cargo.toml index aa16230cd8aff0f313311c15269508156e57b544..7629b6c631a3a0195760eee7fd39e754c289dd3e 100644 --- a/cumulus/client/relay-chain-inprocess-interface/Cargo.toml +++ b/cumulus/client/relay-chain-inprocess-interface/Cargo.toml @@ -10,7 +10,7 @@ license = "GPL-3.0-or-later WITH Classpath-exception-2.0" workspace = true [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" futures = "0.3.28" futures-timer = "3.0.2" diff --git a/cumulus/client/relay-chain-interface/Cargo.toml b/cumulus/client/relay-chain-interface/Cargo.toml index 6e652b892104e929e5e0a5bb7ce8cf33d364e8e6..6df9847252fecf8e4bdcdec0ff9f830d6530668b 100644 --- a/cumulus/client/relay-chain-interface/Cargo.toml +++ b/cumulus/client/relay-chain-interface/Cargo.toml @@ -20,7 +20,7 @@ sp-state-machine = { path = "../../../substrate/primitives/state-machine" } sc-client-api = { path = "../../../substrate/client/api" } futures = "0.3.28" -async-trait = "0.1.74" +async-trait = "0.1.79" thiserror = { workspace = true } jsonrpsee-core = "0.22" parity-scale-codec = "3.6.4" diff --git a/cumulus/client/relay-chain-minimal-node/Cargo.toml b/cumulus/client/relay-chain-minimal-node/Cargo.toml index 98240c92adab38ea103f14699e1e49f7449b3d24..6860b42a5078d48e74bbbd7ee64fbab43e5d5e13 100644 --- a/cumulus/client/relay-chain-minimal-node/Cargo.toml +++ b/cumulus/client/relay-chain-minimal-node/Cargo.toml @@ -49,6 +49,6 @@ cumulus-primitives-core = { path = "../../primitives/core" } array-bytes = "6.1" tracing = "0.1.37" -async-trait = "0.1.74" +async-trait = "0.1.79" futures = "0.3.28" parking_lot = "0.12.1" diff --git a/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs b/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs index 8d8a2920b4efaa70a9b59ba42ccd26a2e4cb64d5..aa5e67e453f69bd02920888a19d73b94e92addce 100644 --- a/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs +++ b/cumulus/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs @@ -26,9 +26,7 @@ use polkadot_core_primitives::{Block, BlockNumber, Hash, Header}; use polkadot_overseer::{ChainApiBackend, RuntimeApiSubsystemClient}; use polkadot_primitives::{ async_backing::{AsyncBackingParams, BackingState}, - slashing, - vstaging::{ApprovalVotingParams, NodeFeatures}, - CoreIndex, + slashing, ApprovalVotingParams, CoreIndex, NodeFeatures, }; use sc_authority_discovery::{AuthorityDiscovery, Error as AuthorityDiscoveryError}; use sc_client_api::AuxStore; diff --git a/cumulus/client/relay-chain-minimal-node/src/lib.rs b/cumulus/client/relay-chain-minimal-node/src/lib.rs index 4bccca59fe3ea2eec816513778885f43c9504d51..6aea043713d873b77ecadc8b7efc7c7eb8c0039b 100644 --- a/cumulus/client/relay-chain-minimal-node/src/lib.rs +++ b/cumulus/client/relay-chain-minimal-node/src/lib.rs @@ -55,6 +55,7 @@ fn build_authority_discovery_service( prometheus_registry: Option, ) -> AuthorityDiscoveryService { let auth_disc_publish_non_global_ips = config.network.allow_non_globals_in_dht; + let auth_disc_public_addresses = config.network.public_addresses.clone(); let authority_discovery_role = sc_authority_discovery::Role::Discover; let dht_event_stream = network.event_stream("authority-discovery").filter_map(|e| async move { match e { @@ -65,6 +66,7 @@ fn build_authority_discovery_service( let (worker, service) = sc_authority_discovery::new_worker_and_service_with_config( sc_authority_discovery::WorkerConfig { publish_non_global_ips: auth_disc_publish_non_global_ips, + public_addresses: auth_disc_public_addresses, // Require that authority discovery records are signed. strict_record_validation: true, ..Default::default() diff --git a/cumulus/client/relay-chain-rpc-interface/Cargo.toml b/cumulus/client/relay-chain-rpc-interface/Cargo.toml index 801712b1ad150a8a63e85c40ec0854a62b5969bc..14981677289561040875b0951dbdbffb5854a439 100644 --- a/cumulus/client/relay-chain-rpc-interface/Cargo.toml +++ b/cumulus/client/relay-chain-rpc-interface/Cargo.toml @@ -35,7 +35,7 @@ futures-timer = "3.0.2" parity-scale-codec = "3.6.4" jsonrpsee = { version = "0.22", features = ["ws-client"] } tracing = "0.1.37" -async-trait = "0.1.74" +async-trait = "0.1.79" url = "2.4.0" serde_json = { workspace = true, default-features = true } serde = { workspace = true, default-features = true } diff --git a/cumulus/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/cumulus/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index b716feef1c998d66eba3c5ea28ee1dd98c4959e3..48d35dd3a55eee935fb27f2fbc60302e9ed3e76a 100644 --- a/cumulus/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/cumulus/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -293,7 +293,8 @@ impl ReconnectingWebsocketWorker { /// listeners. If an error occurs during sending, the receiver has been closed and we remove /// the sender from the list. /// - Find a new valid RPC server to connect to in case the websocket connection is terminated. - /// If the worker is not able to connec to an RPC server from the list, the worker shuts down. + /// If the worker is not able to connect to an RPC server from the list, the worker shuts + /// down. pub async fn run(mut self) { let mut pending_requests = FuturesUnordered::new(); diff --git a/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs b/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs index 8cf5ccf0c707e5f8e3529462041f75a17ea6c117..547803865c28a28a7534b3a5d7e0075a2332c71b 100644 --- a/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -32,13 +32,12 @@ use parity_scale_codec::{Decode, Encode}; use cumulus_primitives_core::{ relay_chain::{ async_backing::{AsyncBackingParams, BackingState}, - slashing, - vstaging::{ApprovalVotingParams, NodeFeatures}, - BlockNumber, CandidateCommitments, CandidateEvent, CandidateHash, - CommittedCandidateReceipt, CoreIndex, CoreState, DisputeState, ExecutorParams, - GroupRotationInfo, Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage, - OccupiedCoreAssumption, PvfCheckStatement, ScrapedOnChainVotes, SessionIndex, SessionInfo, - ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature, + slashing, ApprovalVotingParams, BlockNumber, CandidateCommitments, CandidateEvent, + CandidateHash, CommittedCandidateReceipt, CoreIndex, CoreState, DisputeState, + ExecutorParams, GroupRotationInfo, Hash as RelayHash, Header as RelayHeader, + InboundHrmpMessage, NodeFeatures, OccupiedCoreAssumption, PvfCheckStatement, + ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode, ValidationCodeHash, + ValidatorId, ValidatorIndex, ValidatorSignature, }, InboundDownwardMessage, ParaId, PersistedValidationData, }; diff --git a/cumulus/client/service/Cargo.toml b/cumulus/client/service/Cargo.toml index 2bafbee951a950ce7144e593cab9ae4387b1a5f6..e03e20fe5b416102aa99739cb00c0b39edf5b999 100644 --- a/cumulus/client/service/Cargo.toml +++ b/cumulus/client/service/Cargo.toml @@ -30,6 +30,7 @@ sp-consensus = { path = "../../../substrate/primitives/consensus/common" } sp-core = { path = "../../../substrate/primitives/core" } sp-runtime = { path = "../../../substrate/primitives/runtime" } sp-transaction-pool = { path = "../../../substrate/primitives/transaction-pool" } +sp-io = { path = "../../../substrate/primitives/io" } # Polkadot polkadot-primitives = { path = "../../../polkadot/primitives" } diff --git a/cumulus/client/service/src/lib.rs b/cumulus/client/service/src/lib.rs index 950e59aff24ec19a2e0ed3b22215d6c77fb7dc5e..91e884d6f7ecec86906b5b06ead50a054aaf2577 100644 --- a/cumulus/client/service/src/lib.rs +++ b/cumulus/client/service/src/lib.rs @@ -54,6 +54,15 @@ use std::{sync::Arc, time::Duration}; pub use cumulus_primitives_proof_size_hostfunction::storage_proof_size; +/// Host functions that should be used in parachain nodes. +/// +/// Contains the standard substrate host functions, as well as a +/// host function to enable PoV-reclaim on parachain nodes. +pub type ParachainHostFunctions = ( + cumulus_primitives_proof_size_hostfunction::storage_proof_size::HostFunctions, + sp_io::SubstrateHostFunctions, +); + // Given the sporadic nature of the explicit recovery operation and the // possibility to retry infinite times this value is more than enough. // In practice here we expect no more than one queued messages. diff --git a/cumulus/pallets/aura-ext/Cargo.toml b/cumulus/pallets/aura-ext/Cargo.toml index ff30dce7b03394a523a811217de0db9b7dc5cd02..fe717596f9b307993f968ea0e7b58faef591dcf7 100644 --- a/cumulus/pallets/aura-ext/Cargo.toml +++ b/cumulus/pallets/aura-ext/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-support = { path = "../../../substrate/frame/support", default-features = false } diff --git a/cumulus/pallets/collator-selection/Cargo.toml b/cumulus/pallets/collator-selection/Cargo.toml index 241a78466d61be3969930e031e1a52f4f3478482..c04d9e1403ec0e3d527e06c7b0c7c5e6f64150ad 100644 --- a/cumulus/pallets/collator-selection/Cargo.toml +++ b/cumulus/pallets/collator-selection/Cargo.toml @@ -19,7 +19,7 @@ targets = ["x86_64-unknown-linux-gnu"] log = { workspace = true } codec = { default-features = false, features = ["derive"], package = "parity-scale-codec", version = "3.0.0" } rand = { version = "0.8.5", features = ["std_rng"], default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } sp-std = { path = "../../../substrate/primitives/std", default-features = false } sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } diff --git a/cumulus/pallets/collator-selection/src/lib.rs b/cumulus/pallets/collator-selection/src/lib.rs index 84bde5c9fac9f640692458f02b37f0ee108a734f..82cce385b4d4625e704e0356a761f946629b5547 100644 --- a/cumulus/pallets/collator-selection/src/lib.rs +++ b/cumulus/pallets/collator-selection/src/lib.rs @@ -81,6 +81,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +use core::marker::PhantomData; +use frame_support::traits::TypedGet; pub use pallet::*; #[cfg(test)] @@ -981,3 +983,15 @@ pub mod pallet { } } } + +/// [`TypedGet`] implementaion to get the AccountId of the StakingPot. +pub struct StakingPotAccountId(PhantomData); +impl TypedGet for StakingPotAccountId +where + R: crate::Config, +{ + type Type = ::AccountId; + fn get() -> Self::Type { + >::account_id() + } +} diff --git a/cumulus/pallets/dmp-queue/Cargo.toml b/cumulus/pallets/dmp-queue/Cargo.toml index 83ed994d04167607e3df54587c49e6b88576d4ec..b2b24aeed72ba28ea320a90b8e725ce983fa1a07 100644 --- a/cumulus/pallets/dmp-queue/Cargo.toml +++ b/cumulus/pallets/dmp-queue/Cargo.toml @@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true } frame-support = { path = "../../../substrate/frame/support", default-features = false } diff --git a/cumulus/pallets/parachain-system/Cargo.toml b/cumulus/pallets/parachain-system/Cargo.toml index 7e0442f0b5856fa5153e29ff497cfee876c067ec..a905df5b94a644ffeb69ae73ecd4f2002c10ee92 100644 --- a/cumulus/pallets/parachain-system/Cargo.toml +++ b/cumulus/pallets/parachain-system/Cargo.toml @@ -16,7 +16,7 @@ environmental = { version = "1.1.4", default-features = false } impl-trait-for-tuples = "0.2.1" log = { workspace = true } trie-db = { version = "0.28.0", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true } diff --git a/cumulus/pallets/parachain-system/src/lib.rs b/cumulus/pallets/parachain-system/src/lib.rs index 1c01ef33c7e7534647712609cc48494803946c3b..54a1def59600dff5dd8b1484691dcb18fff5ce63 100644 --- a/cumulus/pallets/parachain-system/src/lib.rs +++ b/cumulus/pallets/parachain-system/src/lib.rs @@ -464,7 +464,7 @@ pub mod pallet { // One complication here, is that the `host_configuration` is updated by an inherent // and those are processed after the block initialization phase. Therefore, we have to // be content only with the configuration as per the previous block. That means that - // the configuration can be either stale (or be abscent altogether in case of the + // the configuration can be either stale (or be absent altogether in case of the // beginning of the chain). // // In order to mitigate this, we do the following. At the time, we are only concerned diff --git a/cumulus/pallets/parachain-system/src/mock.rs b/cumulus/pallets/parachain-system/src/mock.rs index 0b1d536ba7cd9153d1409a65a87bc8234a09bd95..fe89dfe68c67e4b5d9f9e046dcf2a780a292da0a 100644 --- a/cumulus/pallets/parachain-system/src/mock.rs +++ b/cumulus/pallets/parachain-system/src/mock.rs @@ -125,6 +125,7 @@ impl pallet_message_queue::Config for Test { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MaxWeight; + type IdleMaxServiceWeight = (); type WeightInfo = (); } diff --git a/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs b/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs index 5519d1521ea6da85573f2ecdd9cca001616b5806..60eccfb072f41e87223d54f34b5c7eb59c00b2ad 100644 --- a/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs +++ b/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs @@ -90,7 +90,7 @@ pub enum Error { DmqMqcHead(ReadEntryErr), /// Relay dispatch queue cannot be extracted. RelayDispatchQueueRemainingCapacity(ReadEntryErr), - /// The hrmp inress channel index cannot be extracted. + /// The hrmp ingress channel index cannot be extracted. HrmpIngressChannelIndex(ReadEntryErr), /// The hrmp egress channel index cannot be extracted. HrmpEgressChannelIndex(ReadEntryErr), diff --git a/cumulus/pallets/solo-to-para/Cargo.toml b/cumulus/pallets/solo-to-para/Cargo.toml index f7dc5fe4de372b1b5a03ea00cc041e3e568332d3..417038d7833c5ca4ec4acf681cba73d24ab45c5e 100644 --- a/cumulus/pallets/solo-to-para/Cargo.toml +++ b/cumulus/pallets/solo-to-para/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-support = { path = "../../../substrate/frame/support", default-features = false } diff --git a/cumulus/pallets/xcm/Cargo.toml b/cumulus/pallets/xcm/Cargo.toml index 63cb14b16e769fe8ddd309baf8d51594b47da49b..9122e110fb92e51b0f85e3ba4136d30178d8ab7a 100644 --- a/cumulus/pallets/xcm/Cargo.toml +++ b/cumulus/pallets/xcm/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } sp-std = { path = "../../../substrate/primitives/std", default-features = false } sp-io = { path = "../../../substrate/primitives/io", default-features = false } diff --git a/cumulus/pallets/xcmp-queue/Cargo.toml b/cumulus/pallets/xcmp-queue/Cargo.toml index 9078d5eda997526b8f3ed7d9f118cc9c927dedc1..ab196c6d3ec6a089d8099d6ae893631ac513e9d7 100644 --- a/cumulus/pallets/xcmp-queue/Cargo.toml +++ b/cumulus/pallets/xcmp-queue/Cargo.toml @@ -12,7 +12,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-support = { path = "../../../substrate/frame/support", default-features = false } diff --git a/cumulus/pallets/xcmp-queue/src/lib.rs b/cumulus/pallets/xcmp-queue/src/lib.rs index e92169be16b0b8466582f3dd143d9e3e1807a42d..b4cd925d540ead4ef17af337f59192c4cfec0042 100644 --- a/cumulus/pallets/xcmp-queue/src/lib.rs +++ b/cumulus/pallets/xcmp-queue/src/lib.rs @@ -462,7 +462,7 @@ impl Pallet { // Max message size refers to aggregates, or pages. Not to individual fragments. let max_message_size = channel_info.max_message_size as usize; let format_size = format.encoded_size(); - // We check the encoded fragment length plus the format size agains the max message size + // We check the encoded fragment length plus the format size against the max message size // because the format is concatenated if a new page is needed. let size_to_check = encoded_fragment .len() diff --git a/cumulus/pallets/xcmp-queue/src/migration.rs b/cumulus/pallets/xcmp-queue/src/migration.rs index c7fa61a3e3f0513e53d67fcee4efd6c3cecf29f6..1702cd70bc2fb7e09cf15fbe21294bdb76b96ef1 100644 --- a/cumulus/pallets/xcmp-queue/src/migration.rs +++ b/cumulus/pallets/xcmp-queue/src/migration.rs @@ -20,7 +20,7 @@ use crate::{Config, OverweightIndex, Pallet, QueueConfig, QueueConfigData, DEFAU use cumulus_primitives_core::XcmpMessageFormat; use frame_support::{ pallet_prelude::*, - traits::{EnqueueMessage, OnRuntimeUpgrade, StorageVersion}, + traits::{EnqueueMessage, StorageVersion, UncheckedOnRuntimeUpgrade}, weights::{constants::WEIGHT_REF_TIME_PER_MILLIS, Weight}, }; @@ -96,7 +96,7 @@ pub mod v2 { /// 2D weights). pub struct UncheckedMigrationToV2(PhantomData); - impl OnRuntimeUpgrade for UncheckedMigrationToV2 { + impl UncheckedOnRuntimeUpgrade for UncheckedMigrationToV2 { #[allow(deprecated)] fn on_runtime_upgrade() -> Weight { let translate = |pre: v1::QueueConfigData| -> v2::QueueConfigData { @@ -187,7 +187,7 @@ pub mod v3 { /// Migrates the pallet storage to v3. pub struct UncheckedMigrationToV3(PhantomData); - impl OnRuntimeUpgrade for UncheckedMigrationToV3 { + impl UncheckedOnRuntimeUpgrade for UncheckedMigrationToV3 { fn on_runtime_upgrade() -> Weight { #[frame_support::storage_alias] type Overweight = @@ -266,7 +266,7 @@ pub mod v4 { /// thresholds to at least the default values. pub struct UncheckedMigrationToV4(PhantomData); - impl OnRuntimeUpgrade for UncheckedMigrationToV4 { + impl UncheckedOnRuntimeUpgrade for UncheckedMigrationToV4 { fn on_runtime_upgrade() -> Weight { let translate = |pre: v2::QueueConfigData| -> QueueConfigData { let pre_default = v2::QueueConfigData::default(); @@ -315,6 +315,7 @@ pub mod v4 { mod tests { use super::*; use crate::mock::{new_test_ext, Test}; + use frame_support::traits::OnRuntimeUpgrade; #[test] #[allow(deprecated)] diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama.json b/cumulus/parachains/chain-specs/asset-hub-kusama.json index 654275eade81e5379004e649e11eb7e4acb2ec1f..66a705a40869ce6eb3fe2ac7a028ce68c784c18c 100644 --- a/cumulus/parachains/chain-specs/asset-hub-kusama.json +++ b/cumulus/parachains/chain-specs/asset-hub-kusama.json @@ -27,7 +27,8 @@ "/dns/mine14.rotko.net/tcp/34524/ws/p2p/12D3KooWJUFnjR2PNbsJhudwPVaWCoZy1acPGKjM2cSuGj345BBu", "/dns/mine14.rotko.net/tcp/35524/wss/p2p/12D3KooWJUFnjR2PNbsJhudwPVaWCoZy1acPGKjM2cSuGj345BBu", "/dns/asset-hub-kusama.bootnodes.polkadotters.com/tcp/30511/p2p/12D3KooWDpk7wVH7RgjErEvbvAZ2kY5VeaAwRJP5ojmn1e8b8UbU", - "/dns/asset-hub-kusama.bootnodes.polkadotters.com/tcp/30513/wss/p2p/12D3KooWDpk7wVH7RgjErEvbvAZ2kY5VeaAwRJP5ojmn1e8b8UbU" + "/dns/asset-hub-kusama.bootnodes.polkadotters.com/tcp/30513/wss/p2p/12D3KooWDpk7wVH7RgjErEvbvAZ2kY5VeaAwRJP5ojmn1e8b8UbU", + "/dns/boot-kusama-assethub.luckyfriday.io/tcp/443/wss/p2p/12D3KooWSwaeFs6FNgpgh54fdoxSDAA4nJNaPE3PAcse2GRrG7b3" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot.json b/cumulus/parachains/chain-specs/asset-hub-polkadot.json index 454060d2a87afb84407323263eea97d2f12d5a68..16caa52ba91376ed30187c89d249ff38ed1ea42a 100644 --- a/cumulus/parachains/chain-specs/asset-hub-polkadot.json +++ b/cumulus/parachains/chain-specs/asset-hub-polkadot.json @@ -27,7 +27,8 @@ "/dns/mint14.rotko.net/tcp/34514/ws/p2p/12D3KooWKkzLjYF6M5eEs7nYiqEtRqY8SGVouoCwo3nCWsRnThDW", "/dns/mint14.rotko.net/tcp/35514/wss/p2p/12D3KooWKkzLjYF6M5eEs7nYiqEtRqY8SGVouoCwo3nCWsRnThDW", "/dns/asset-hub-polkadot.bootnodes.polkadotters.com/tcp/30508/p2p/12D3KooWKbfY9a9oywxMJKiALmt7yhrdQkjXMtvxhhDDN23vG93R", - "/dns/asset-hub-polkadot.bootnodes.polkadotters.com/tcp/30510/wss/p2p/12D3KooWKbfY9a9oywxMJKiALmt7yhrdQkjXMtvxhhDDN23vG93R" + "/dns/asset-hub-polkadot.bootnodes.polkadotters.com/tcp/30510/wss/p2p/12D3KooWKbfY9a9oywxMJKiALmt7yhrdQkjXMtvxhhDDN23vG93R", + "/dns/boot-polkadot-assethub.luckyfriday.io/tcp/443/wss/p2p/12D3KooWDR9M7CjV1xdjCRbRwkFn1E7sjMaL4oYxGyDWxuLrFc2J" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/bridge-hub-kusama.json b/cumulus/parachains/chain-specs/bridge-hub-kusama.json index 90b70b05016d52aeecaea4870f438bf980f7263b..6644ea41ab748548d3c6dcbd06951522672dbb53 100644 --- a/cumulus/parachains/chain-specs/bridge-hub-kusama.json +++ b/cumulus/parachains/chain-specs/bridge-hub-kusama.json @@ -27,7 +27,8 @@ "/dns/kbr13.rotko.net/tcp/34553/ws/p2p/12D3KooWAmBp54mUEYtvsk2kxNEsDbAvdUMcaghxKXgUQxmPEQ66", "/dns/kbr13.rotko.net/tcp/35553/wss/p2p/12D3KooWAmBp54mUEYtvsk2kxNEsDbAvdUMcaghxKXgUQxmPEQ66", "/dns/bridge-hub-kusama.bootnodes.polkadotters.com/tcp/30520/p2p/12D3KooWH3pucezRRS5esoYyzZsUkKWcPSByQxEvmM819QL1HPLV", - "/dns/bridge-hub-kusama.bootnodes.polkadotters.com/tcp/30522/wss/p2p/12D3KooWH3pucezRRS5esoYyzZsUkKWcPSByQxEvmM819QL1HPLV" + "/dns/bridge-hub-kusama.bootnodes.polkadotters.com/tcp/30522/wss/p2p/12D3KooWH3pucezRRS5esoYyzZsUkKWcPSByQxEvmM819QL1HPLV", + "/dns/boot-kusama-bridgehub.luckyfriday.io/tcp/443/wss/p2p/12D3KooWQybw6AFmAvrFfwUQnNxUpS12RovapD6oorh2mAJr4xyd" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json index a9444b89e1e2cce9c79a367c4c561e910f1f28f7..c51c5eff89b86a0ce553bbcfc472f6fb5cf0d535 100644 --- a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json +++ b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json @@ -23,7 +23,8 @@ "/dns/pbr13.rotko.net/tcp/34543/ws/p2p/12D3KooWMxZY7tDc2Rh454VaJJ7RexKAXVS6xSBEvTnXSGCnuGDw", "/dns/pbr13.rotko.net/tcp/35543/wss/p2p/12D3KooWMxZY7tDc2Rh454VaJJ7RexKAXVS6xSBEvTnXSGCnuGDw", "/dns/bridge-hub-polkadot.bootnodes.polkadotters.com/tcp/30517/p2p/12D3KooWLUNE3LHPDa1WrrZaYT7ArK66CLM1bPv7kKz74UcLnQRB", - "/dns/bridge-hub-polkadot.bootnodes.polkadotters.com/tcp/30519/wss/p2p/12D3KooWLUNE3LHPDa1WrrZaYT7ArK66CLM1bPv7kKz74UcLnQRB" + "/dns/bridge-hub-polkadot.bootnodes.polkadotters.com/tcp/30519/wss/p2p/12D3KooWLUNE3LHPDa1WrrZaYT7ArK66CLM1bPv7kKz74UcLnQRB", + "/dns/boot-polkadot-bridgehub.luckyfriday.io/tcp/443/wss/p2p/12D3KooWKf3mBXHjLbwtPqv1BdbQuwbFNcQQYxASS7iQ25264AXH" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/collectives-polkadot.json b/cumulus/parachains/chain-specs/collectives-polkadot.json index 259669cf37a0643534eaa5d1776daf79ec402d75..ce80e21ae625e813be0f71245bc454cb284455f3 100644 --- a/cumulus/parachains/chain-specs/collectives-polkadot.json +++ b/cumulus/parachains/chain-specs/collectives-polkadot.json @@ -27,7 +27,8 @@ "/dns/pch13.rotko.net/tcp/34573/ws/p2p/12D3KooWRXudHoazPZ9osMfdY38e8CBxQLD4RhrVeHpRSNNpcDtH", "/dns/pch13.rotko.net/tcp/35573/wss/p2p/12D3KooWRXudHoazPZ9osMfdY38e8CBxQLD4RhrVeHpRSNNpcDtH", "/dns/collectives-polkadot.bootnodes.polkadotters.com/tcp/30526/p2p/12D3KooWNohUjvJtGKUa8Vhy8C1ZBB5N8JATB6e7rdLVCioeb3ff", - "/dns/collectives-polkadot.bootnodes.polkadotters.com/tcp/30528/wss/p2p/12D3KooWNohUjvJtGKUa8Vhy8C1ZBB5N8JATB6e7rdLVCioeb3ff" + "/dns/collectives-polkadot.bootnodes.polkadotters.com/tcp/30528/wss/p2p/12D3KooWNohUjvJtGKUa8Vhy8C1ZBB5N8JATB6e7rdLVCioeb3ff", + "/dns/boot-polkadot-collectives.luckyfriday.io/tcp/443/wss/p2p/12D3KooWCzifnPooTt4kvTnXT7FTKTymVL7xn7DURQLsS2AKpf6w" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/coretime-kusama.json b/cumulus/parachains/chain-specs/coretime-kusama.json new file mode 100644 index 0000000000000000000000000000000000000000..abad4fc9237c26633177892219e24a9ebfeab2fa --- /dev/null +++ b/cumulus/parachains/chain-specs/coretime-kusama.json @@ -0,0 +1,111 @@ +{ + "name": "Kusama Coretime", + "id": "coretime-kusama", + "chainType": "Live", + "bootNodes": [ + "/dns/kusama-coretime-connect-a-0.polkadot.io/tcp/30334/p2p/12D3KooWR7Biy6nPgQFhk2eYP62pAkcFA6he9RUFURTDh7ewTjpo", + "/dns/kusama-coretime-connect-a-1.polkadot.io/tcp/30334/p2p/12D3KooWAGFiMZDF9RxdacrkenzGdo8nhfSe9EXofHc5mHeJ9vGX", + "/dns/kusama-coretime-connect-a-0.polkadot.io/tcp/443/wss/p2p/12D3KooWR7Biy6nPgQFhk2eYP62pAkcFA6he9RUFURTDh7ewTjpo", + "/dns/kusama-coretime-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWAGFiMZDF9RxdacrkenzGdo8nhfSe9EXofHc5mHeJ9vGX" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1005, + "codeSubstitutes": {}, + "genesis": { + "runtimeGenesis": { + "code": "0x52bc537646db8e0528b52ffd0058640605ae3e8629134f107868930e681756ccf063649703992ad4ee818f51911de6fa91e874d2fe2ba7696b4c18dcb3a8cb4c0791c5b5583c14d76913132861747d5e806b5eae206d441fad0d2b09d95bee2db79452a69402ae14771224121affdebcea431b8a9900f6f539f2612d6606cc7537c8dca73b24858d87bf43525cf01b33f700d8cf11d3e85d9d3fe8dbdea69a20edce5d74f6d7a60dba8ff3e7d1a3cb3675ac4bb1dfe99d4e31f30fe61e80ced1b6698746f0c53b5fc7daf488483d7f3e474250e7ed4d82fe35e1e70dcc6ac647beae04000780bbd38982799429d871f06d8fa2c3d79502e00110799429d8d7957cb80fa7713a51461585c3b191cb7894cc315f5fa7134547455117d178941cfcf275e974a2bc8a7a584539e7afa29e5798a3b08a72750a7694731b177914998a9a99711c1525e3231d8ec351382a6a46f31947e1f0e923cfe1ebd4e944b12acaf26ebf662aaa8757ee37de95cf38aa7da6a262f45751963f47cdf8e551a0d354d48d1b4e2bea9215255dc7e5281d7e55148639eaf21d1ef39ecf8a8ad1ad8ac22aaac62d7f983f474d7f1515631c159d07af8e7a5e2beac60d97a92819af2ab7a9a81b362e53c9787554e5b5a26c2466e328a9d52948311515e33232be234646a687bb65b94d8d655d96d42133834384bdaaa5850373974c1ce988b3dd8c68d44e47f5b0675532579c386670381d2351b4a4c4ae57c988e6c321e78ca86ad7d6484794c1a2cc0ce66e7a78578f745c4e1255ebe62666e6c2240f3c38aa9d071e240e1c3d7c87e77c87d9430f8eb2bc871e7454d5c87b380fd3721ee20e3b384a87ef70b3831bc93cefe13dcc88bc0727390a879378e0c15197f350797092a364bcb9b974780fdf21caf80e7d7373d383a32aefa1a26e6e4498936aad71d4f41ae93d9c071baf711c24e7c15133cec30e3be8e0b5a27670afce83a32c7747bd1e9ac7c4f48cf7f09b9a1a771b1bdfe135ee358e12798df31b2f396ae425cee1e124478d9cc49a3bc94b8ec2e1ee28e73cecc083470fe7c183f370940ee7c18eba9c87d71d3bdc6d2aaaa6a26adc7d878def70d4f41deca8e8d57770d4f31d58871b47557e53513adc788f8ad2c16d6c7c074761dec351d24b15d5430fae55d48e8adae13131cea3a268687c4745f1f09818dfe12819df5151343b9cc651b3ee6c895d73924fea3515455351345ee3737a0f4759dea3a2a87b0f475d75892db1532739caaa4e6c899d54513dd4299887cb6b455996dfa8a81b7e55bf1c252b05ae8ab22ee75151964fe9d3513a6a912db1f370944c1d624bec3b54d48d8ceb50513d2aaa8757ada21c07ef51510b06286c2023cc0bd0700229271d4e18411666b4a10c2c88e28453141dbee34a8ba36e0e755d691d87eaaeb43e53e596d86d6a74388f8ada81c3692a2a35041e84610b171ad8a08c219c74a45a0045154c80042ab0810b17271d8ed25151a34a7354e94aeb38eaba928fba917e5d54691c85d524b6c43e535132750a3e45c1fc46458d3ca64e91738a22725a5118e6a38a4acdc04a1b566600668d3198e1245a2b7ce1810c4cd002304860c349e4285145553527ab34aeb48ed575a500d4edc7afbffaa32b922db1cf8abaea14a45394e756450901842fc8908335a0f0e5062759a7f053941e4750830f8c500529da10865394f6ca515545c5ea5b6247c14a5d69fdd5752500d42de7d75d256d897d3de5827a680144a112e58c126de7ceb9732e4a9577ce39f733b744170c2f4c796f537b3ba94ddbfbf6f61b0905ccb7636d72dfecdf726f9a89f92b469728eb9b753be7d8695893da712877b7db386697cfb58608fb73761b7f3b6625ccfdc9cddc43d902916ddaf89d034185bc2a6763acbdc716c80f7ff926d5377163341dc69afbac898875f92630d102f961a16f9280676fdfac8827c4d9102af4ec98d0b33797b92fdbb4b53bdf76f6cd4da7f9a0edae88761f576593d61730e1af183d90c1cfd8cc2dd1e7396ddae48f366dd4db041d8836bd874ed3a61db2a28a876ed3a636b9dfb0df721efab64e9f36ec379a874edbd40e7d063a74ac4decd0f706569f1d6228937d6fb69c773e59db9f8c31cf6b123ff7ac88e755955d3720f7ec96cfb469c619afab6e975b7e45ac4dd19dd3365dee7c468d7f5eda36699b84396742fa5f93b0ba616e79d4f6310dc8fde55314b5fda9ed5f1a89e6d97771369b67e7ba550eddf974cc95b66f693201ec520382cf3cf3ed7367639b0989ce7593cfbe9acb36c6b06fd83b9f2fdb178335e9a649ce2bf72655efd7777ac7adb64d6a7fdac6df84c3840913e6b7d4af476d0372bfce5536a99d339eadb0d226b5ef3436e36d5a774e6ad3be4d9bfc9dfb5820ee9d6f37ef3ce75787d4c5b0cadc9b8db66f5267bbd4be3e97079a4377080a94dfa128a0fc36fa7602fc0e41b1e53be3f181b2b76f9b2a6f7f6d72de2edbb4df3e3be3a9ea52e74edbaf34fec999f3e934206ec2f39af47c087de79c0db1dba40d7b86754b3d94aed2b6f7db7320f7d137e381bed3736e2624d6ed7d74e995b6f957eeb46ddb3697c4129b135ff936a9f21d27b526a8775e699bcd3f9f8c456ddf69fb9b15f11e6a4ddc3b7fda36897d331e575f93d8bbfad05f1d52153b29e6b689977f7d8eb64d6b6adfe4afbfc9dad2f6391b63ea9c478c0ce873e7ec9df1705ddaeeb46d92f3d9188f2184d4589cfdcd5edd26edf4663caf496ea7392322f5ed9bf1a498d98cb9379bbff3b9243a9707ba4dda280f3b67419c1012127ae2d96763db26f6f5d7a6f6f5cd64939cef346b58939ce3d06de69db73fdfe43b9f336dda26ad3ba76913bf739b36b13b9f8cd1b469dff9664f6ba2c73b49c96f97dfb58648fbf3f65781f8b9be26ad6f3684bdebd6cebed33bbd37aefaf8af0ea966d6c224e8e2d967dab43b04c5d0b3db7010fbec7bc3d5c77f754831ff2c42d9f9b70bb0bed95c22e8867d3bd6a615e30a5abe9db6698748d0c5b7cfb469bd9da64deced361c047ffbde74f5f15f1d52cc08985ba23bf44415bfc95fa76d5a31aea0e5d7659b360c30a4f1eb589bf8d7b775f6b4cdfcfade6cf5f15f1d52cc09981b00bad16727b569c39e9d9da64d1be9d9d97db4899f9db66987a0c8f2ec336dea67dfd6e1d366f3ec589bd6d9f786ab4fceaf0e29e607cced81ae6f151305f7a0082fb86818fa06ba02aa0555014d014501cd8262414f404d40a7d02b6809a815b40a4a023a0595424740a5a0512814f48951182a340ac3a8cb480bbd81880d2230a23588da20724327a191d0478043804278579e954783b7c57bc173c1ec625a99359854260c322a19164427c8c288ac105591a5215b43a40351124459443810852102435445140311151117a217885c206a81480c9112aa2c2e34466b5429a85810d5b8ac706de1ea7265e1c2c2f5832b08d90a322d32156429c850906591619199209b925d9155915191499141c984b037606d606c606ec0da80ad819d012b0346066c0c9818b030606a605fc0b88075c1b0805901a302c6059b022605cc09d816cc0cac8cf885d117e6956a0b110a44598858205a81480b910a4429101d413424e2816807580a322e445e4c1b8cc670554134031110443010fd40b485c807a21e5c564426442f5c24b8a298595c585c27e841e20811091ab000059c8404e1d94140100c18328449844501083080111862ae8829418c153155c49020868a982962a4c48c20468a18283151c444898122e6891821ca06ba060a069a06fd02ed02d502cd029d02a5028d02dd429d40cda065d0265032a80d680de80b466f18b5316ac308cc880c2068c26734c6c808a3228c8830fa6234849117a328465088c288de2062c3c9072a9075c9b2803d016302a60586057602cc04d814ec0aac04981558151809302ab0293029d8083029b02818142c0a0c0aec094c6886996f986d2899592617738b511a9305233546629842b38aab0da3345c57e0a1ab093f5c595c53ae125c545c535c52ae115c525c512e2896172814e813a814281328177a86e5c5e282b5054b0b161a140bb40bf542bd40b96055c1a282c5c59a8225052b0a16142c33ac2dd615ac32ac2658645856b0ba40d1a055a06b584aa06a50355034d0335033d02fb40c940c740c540c56181618d611ac21cb081611ac2fac21583bb078406140a9583d18916105c1f2c20282f5039a06cb091616ac24503016122c215845b098608d612dc1d262893112c228085406a333502e680c4662585fb07c60a961a56185c1028325068b0cd6186818e816ac275859b0ca609d617519fdc0fa32528365060b0dd61aa236ac34586a18ad61e486111b2c1d58594640b0b05838b0bab06e60d960c48675c5b262d1c09a8155a59760c1c0e2c2a2626d61bdc07281d5028b05d60a2c2d2c155829b05060656161619dc0328135c5bac22a81658545028b0aab0a4b8a35020b8a258515c53ac3a80956141614960cac272c211946be41b621d9906e906d906c9060a41a641ae41a120dd20cf20c232ef28b2c8324831c8314830c8304835443a621bf20bd20bb20bd482ec82d482dc82e320b120bf20a120d6b0a690559855115464f8c84a8154905c9454e4146419e21a1209f40af8c9630628295032b06728b34836e21d720cb904d90644826c831e412a416298654820c438221932091208f2087a41164112411e417720852083208d20b0904f903e903d903c903b903a9039945e640e24062915dc81b481bc81ac82bd28aa4819c81ac22652063206120a9482ee416f205d205b20592057205520ba902990289029985c4429e409a404e9157c812482b64159204920a398594224720a590512414198584423e2185aa30d51baa362a362a37546da8d85081a9d650a9a14a43b5468586ea0c9519aa2f55192a325463a8c45085a10243a5469546f585ca0b55172a2f1517aa2d545aa8ba5459a8b0505da142a3b24255850ea3a242c5a59a4225852a0a1514aa27544ea8b654665465544da8c8a898508d512da112a352421546054695840a09d511aaa1ca0855112a22545f5443a8845005a1f2a20242f5838a07d50e2a1d5459aa1c5438a8b05437a86c505da9685055a9645051a9b8a85a30b242a58218850b4429c4332214e213a2135807714b342396119b10c918a1a1b5f0117e9a64400314a02d9880048800009631f997af36ac763d4e926ce0c812497a92387264b2438249cf9123d772cf920d240162c204078e001dd1f3a30409264a8e1cd9818333b7209a5aa8995db6034a38c044891ea0243d3f473851e2a487498f909b9985238e28c1012643962c5142014047f42c59a284020230b19033afb064499223962c49a200349200ea00939e2556d89e1e0e1c5102e80850121d50d2f381d2a4c23a59a22409500f12477a7a38d0c394c22ac101264a8e80e0a7878926204852c46714b6e708264a303992e4889225bee708264a38008809134a1c71c4e330cf404289237a90e8319fb04e40d0e373c4891310f41061a28412274e7a20a04d27ec07942cf13f3d3e3f4a4ca0086d9ab13d40499050b2244913477a98e861c2082348f474a003498c046096b14e7c8ee849e20826ac1320263d3f3d493051e2730c264a385033b5ec114a9c3051f203e444cf11102c59628924477e7a9058a2848993cf114a2c39d94c31d6098f39844d72c4667ab11e38920428091249807a1a10337f1002254b92280152c244098eb983f5394289251b38d203c4c4113d4ef4dc983ad81f251480cd1c2c13259660e208124b9430b181234c921c7144c9120fc4a4c7031de88100123d4830b1e408264a984420c90f13dfc3c4c13ae95102a4e44789248098482233b12c1325940025f961028923404a2c717244c9129fe48789c7a1492a545fb40881e13735774848e839e576446806348397e0ea3d4a29757fbc36bb6ed731f3ba9672f246d7bb8e37566e2bcbc554d5c41c740b7158cc11e2d86a1d77dc8ebc91777388fd627cae1be3de75ec9e5bf71c4fc75573746ff7b98508b0625c553de77663e55ebfedb5dc6255c5ecb6c2dc5aebdaf5365c87cde5deaa5a5e761c63ec7671b9e265cc6195855558d556c4aa6dcbb5e524ef728cae8a514ad9db2d999b7bc41ca08a7131abaa9c9bcf71e5981dbbcab22ae79c735c653864bb1b63eced8d5bad73bb8f5de5b059392ba6821046765657bbcd6eaf1dd78ebdf8ba78af6baf6b9977fbdabdf6daddeb8ad775c52737c618e5cac85be9d011a3103a742ccb28e33e7e1ba37c72c69532f27bbb71e36b51f772579cf56e07217966cd198b98bb29740b24eeee7237dc8db137728cbda3e6de2a76dc8d312ec7b81b6337370eeed8bcccbdec96972bae7abbb79de36880d8cbcbddbbcc1be532cbe5962b77a5e465761c39eeee9c1c779dcc6e0e6ee6702bdffcb18e2d6651c5ccbd6e7723335b722b1eeb74789979f9e5e851e3606667e25d6666b70588bcce31c7d8cccd6e5d8c1de5b2e36576ccdb3340f08a9a2b5e5ec7046076bced3aa6b707c01bd755ccb1dac5c1ccd5ca0a13ad28e3dd6e166de7f8c149862d9b7b7977a55cc9cc92979717eb8e317616bb79eee6eceefac0bbbc38ac6877779bb2e3dd6d8e2c775900bb2ef632f3acb663dce5de5de9787b37f2eeeeee72efca1665bc8db3a3c831561c63ac7c543c6300e27b1ce3e3c1dd3172b41ef3004089793b3ac7ec1cb49ccdf2c6b8f1c5eaade38e0bbb63a28889e264b641f0a384077a3c1073ec0f1d5062c9910e3051d2810e28b164c7c8659ce841828992234c942449e2080e7040894a80254b94f8e4907ae881c40369c6c74c0f3b00e0266784c41225491c71046809134938d08344e9270990931e464e76ece0e17344920d2c59a2c40f007448d2f3c383a6c7e70890133d4c72e8e9c08e1b4e809c2871a2c706021d91c40993243f4047809478c0034a906676004a38d0f3b34495f949d2b3e4889a11124c7a965822c9919e0e24f95102c849dd1f8092fcf430e9e9c00e03f87152b33f8080034a7e7a9a3862801f0a50800120d1a3c385448f13273d3f4b784089238efcf434a1c4113d3f47923841e2889e233ff8980a3080258ee871724409a02540f073848eb603005242899f2348f4fcf420f1a3c411530106d0a3e40708004ef4246123c30120268e003151f2b304cdfee00125404c98f839728413251ea84098703015600003e8f149b264037ee3c7007e38e284121f003ad201264a92709224891cbaa7e78703364d30e971727f38c24409254e7e7a9a38e281233f4a0025394289254b921c0172a227872698f4b81e3023f4a652a989645357ea0505a5229220de54505010076d50502a28a8da542a15e4906c073d24290e0a0a724882381514e490a43828d548521c14947a290bc9a682828252a988648352412917c4294612c4418c645341a9540a3a241b946a24411c14d448368891a438885312c906050505a520920d0a6a24295e241b14944abd548524c541a98824c5294e4124294ea51ac92e9214a7520fc9a618c9a65229876453a94692003705de5df68093241bae695f691bf4428c307879a07e9845c8e96c177870841874e18b1b6a2074629f529cce04bca08104293790628a2f4eecd7970b0cbcf2fc379865fffad2a6f569610c056d9f17c67486e7cae8e25859130494e181d6f93b2382fdd60c117df55b37214fcbd68d7f49efaf2f4de2ed62e33f3eed5aa349ecd717a77375e9d224f62ecf5cb6c0062830610d6ac842c589b7b8e00660d410850e700084e7cc0ea9381d3e31bcb20fa7fcbe4c88fbe7b249bccd3cfb7c5aff640c2ea9bdb321f09d3b587771dabdb37269d2e95c5fbac4cef239bbbeb06fd797e71c4fe00285284e18c30dc29c98070f7ec08221b8808a2160716287599c0e122d5070852a66f0c2193438b1432f9cce07be9082136ce94210a6b071e22728579f49c5ea1e4213face363d5fdfe46faf49d02b0dfa649d3d6d744fabed4ba753f39c572e8176599f486fafea132c4f2a77bea7e9984377c2e9580ea75bb91ca8497009a733ebc583a449b0e6646935afd61881f97409587ed527975b3eeb132c462eb7fcc974ccf7049768d2b66c3cf4693dc71e572bd99e9e06d424b884d341d225e830dbe49f2c244d82d0b7edf2d029741ae80b5dc259d795aebaaeb4d1223bddd936093a0b5107bd72e751645653c4d59ae8ce53a75a136b8ca9d3d3f6276c298f837823e0a929e27cdfc8e80c43513875e5ce8d54ee2a0acb7394f3ca5f3522bd2baa5d3eaf892e7d4f9556136b11cb2bdfd3640ad4242835e94ad02b6d5d29459d6812f45897681274e841947ddb2f1f54a5ba6594d9edd137f97ca33aeb4ad0a9f3753a3475a371a5577db4ce9e7a495c3721be1d886f7fabb35b32452e98000b6378e79bb91d0ac3dc9b0d6ef9f6b95c73e2e8ec1280be95eb132c46d6218c11ee09f2b24797c03aac759779f7b4d0d708f4f527715d8c9030529ab44ffd37676f875a9cceba95e856a0c321a7132bccc25a8d73e8a9d36a35aed618b1ce6e642b0a8bab46d86145416747455f4f9de6728c6c121c6a526f908c2d395fcdbd6a0582a1ed090e391d98a54bed55dd2e65f90d0efd9e1866598e11f286359ab4efbfc12cdf9ee374560b9536d8f006194c61ca144eed3f9c4e4a8806335063073d2042185e4eedee745251aef84210c4c8a2a5094838f980832e70a08427e4200a5a9cdaa1f6641d7ad49e6071fe24ab31823dba11f6e8ae1a598745a044618f1e651dfa936f7f5c164810dffec3e940974354cbf796369aef753ab1ae2bd1871ac995da377314dd6711503204418b3294b002229ce1cba91d6ef9d521c8a55c8bb64420756a7fe23c8aab2348c0a9bd6b50738fc95db7d4b6e47ae7cf3b2b02baabdb7358ad447f99907d2b52fc146bd075c2e2dc6544ac7f752bf2bb38d637635db7d4f73ad116811f2d2f90e594ebce62be06b0d0bfac08fab1bae7dcabce311673b333fe3906c63f083cb71c8b2a6f41208b7f9e61d1837f2e7d03e2d737217e479ef9aed3b449faba8ddfb409f375529b2c5fcff9d1264b7b103a585d97b65f49e9d8fe48fa4ed710991e9fcf29f2cd1a30e7259a5ef98498ef43ac06a91c3abcbcd2f861745837fe89615656c473acfa44df9e3b49bde5322bc249ea2ff7b1fcf9ac9be55785515b2bf551cb1cd3523544a0670e3df3ab6ea9bf469af4cb27f3077da441810205cac8a5d8fd81f924c5ee0f9b7bab6ea71dd704f5236d4f32f5af89e389b94233771991e796bb6c8874ab6e99cb5a63f9f4e89d0dc96a8d5589605e39e6953f9fd8f4c11ad018c60feb66b9bcbc06fabe744bab81354874e9b2ee5f6efd052d9f6ab3a474e7b036e130d05d11cf65dd2ab7fc627ea8f10771eaea99c514361c7b8ca146e8becf9ab831caf8b105b2bba2ce8a784242bfceebeb3c3f72b56e2bb4877fbd8b13fd396b95b7bb2c08fbfab540aabab9ac215255f6eb19ce6d67ed35a9637b5cbfb222e6e2b46fbd16a759e8a3b68bd3fdc4f7f0afcef411a673a75980b23f1fe826bf29155434fe190b50f6ed1f7f9e822c1fdd498c0248a43cbf221440c115f7d070a436d544875ea44ddb0d05dab4919024d1a68d66b510d126dea12cd27878bd16ebb745c3cbc3df560c3af0b4bd77b41f7274177d971d28fef2dfb4a90987f959078a1f9d332247be3db62f77ddf5c12ee3619facf9c48c08e72c8873ce95083e3aeac9932019f4d1b7b71411ed3eb26eced7b71824ba23d2eeea13d69c4fee26e29c6325c2346daa1cbacd32a1cfb98d5f31aea085ceec10165e3e6af0699b363af4d919116db4f18637fc6661d6c77ad438cc6f26b43e5ae889676ff7c5126336e16fcca1b7e684dfaa3eec96abe08b0fc0af186294e0b77ee8acfdf0e2400792df64c3fcf4cd82607e5d93ebc58f695b74e896b63e1702cf319f8b01ba432a20e39d5b9606b1deac37cb9d77468408e696cf877126a49a6e6998bf8c880c229deb2e0efb4e63dad6951787ddf2a96dfdeceb5613f29bb83708fd7aa56d409c8adc6acc5da23d8d8753f827a404ed1cfc0e51a9c13717bf435b50f1a4dfa11708e1d995a00e09bf432b00f30cc6ef90163d781fbf432a40e3174803b97ed987e8a305b26de8442e395f5ff61877aaa8b138d1b3f73b55beb03eecc7ba75dd82be89fe0efcf0b35b33179d18b64094300634bec9e89b90cfee3c7210fbfb5bff16dff97418cc864c36a6fc26848d2943e26f4c9840094de8f24d903c7fd9e29b04897e03da021668b8f80de80a17730bbf0191600bf0372754f0410084b0e537275e6c7976ce864821a1212e1bb2619e1d6643fc9bf0479f51ab382302bdeb4603a18fde5e6541a23fdf71bda5be9ac26f4e521fbdd29a6c9830613ad54de09881d03f197079edb59f8d551a9cc2b7d6e33913e2df1eb52670bc0ad4443c3ad47cdaa3cfd63a13c261a057b0d60c790e5dc8735881e60e5561e381faabbab537c10f3df5da434dfb069adfbe65b4d082c1d3e409b9edf2bc8068442fcb41701a68fc7ab3ce9ed62f0ee209fdfaac30970559342a29a58c523a862411fb54019467af9c9f4fa8d56f9e6c04cc2b8d1dd37c2a677799908a48e55c2d13ba435764f19757ce45d01daa2286bf1ef3391dc69910b959ee5369dbe595cf4aab19f284843ef3f7ee37f34aebcf7ca72b0ceee28cbcbdd2443ed2b6ea65412a1755ef2c48e5d4771cd56a88542ef2ca4555ab21727de5d75795c7e2bce895b74fea74f6f4bcd2669af47ce4226d7f7136ccabac88eb31e7b1409ec3ac889ac5798e551e2291c642bf991016b212e33b4d9d4e4c7d5d7afe467593bf519fca2fdf2a5f225246b8aeebf29d9e0fe32c087be5b221955f3ea2c5793e5a9c27f46f719e07e8137ae2339fd6cceac87771ac918b2c6d733f5d3445d6f44cfb118d30dfe911e6a299616e4daceefa98d572fb96b65e6dec1b2b6d92f3faed5957554c23f4fd0e95a00d2314fe0e9500cc2eceea508234dee677a80464fcf3cd5576decfdf7318f40e7af9579bb830619ecf92ca64cb98b2b9ca1e372b62cb98f2b15a9941bf410d32d932a63cf42d041f6164720028430fab952741b2ae13ef9c7df6d39c6f66012b4f82d6cbc9f2b52284831533c882cacf0e5472a045086889f5f256847c980212849a3800942127b6103c8462bd9cac2ab45e4eeccead08e5c0820ea2504348e8b4f54990ac42cff4eab6c43b8fd1021668f006284242a7cd1a20f3b0a30de6946f5fefe1b75d6dbf6781fce4bc95e7a9f5823bdf5761852205ce09ba149953156d9af9761e312da0db925fcff96de6b7ed42112850e32a9ad4bed18dabf8f66dbbf0eda8e7d495d2e002207001842c5d84844ed09d6ff4fbe434a1778312c8008a1810e104450a9c93732932a707458a3e459782809373a84941c00985c588735411576a775bbe1d3a0a8b91e8b0a2765ca93d56141623d05d45b92bb5c39ab3edd090f36db7ac1a46b0042b63a8820db4f084982de89e52282083085b6c71042e3b40c3694fcfb79c6fdfcc880b099d9c57d1a61ebefd694e5b579af2ab43d04b713f2cee3d0d3a73056105217c3619ff0e5921060f5442196880fe789a70987f1eab4d93e07bee759be17c1708f4f5091d3be92eba8bee2a772ea37317dd393723180f6a1b63daa373f49ae7fcfd352f09d1a1c651428dff693b44c646dfb97bef9ccf389b772e311f287b8c610f723df36fc6d36e5d371731a3cfc919cfe5d39f571ae6bb4032873e332df5dbac329fcad7a7367f87ace8c1bfc581bd5a3ba6556e69fcedab49c734e99610f6f59d96755b973e57dba6af4f8749ad33e7d5f633cd47bacff4f64b9bcef2d900cce774de6de224f5996f1f70431b61dec96eb99205159fd56dfae53b6e4e8849ad2d7f3362526bdf4c0811ac6e4ebce5d3e76642b66e0eb320975ffe9cf1ccea7305b97cebe59b0d916f551fe9ed9b24d22eddd2f6b54d4d7e4e98bb40a2afc31935209a04bd089fd324e89b6d360fdd6d760486d9b4cee5d0855820be38d2a1fb68136d92b41cfaa56d97a4dfb48eac79a833d325e9d0d705bf01f1d06b16083f9c9666d324e9ee77c88a21709818f35cbaf3df212ba43c0d67d26b2a77df5f53d5261ce62bdf212bbcf855421968f8198dad6ad32459697071d6377b51e37756a613e26aeffad8ac8876dac61f75a05c0e058b73cbd7e7b4b41dea9e8d39ccd2b68b10cc88785911ee9d5fda9e7ac2ed77ce80d4152f8bc8d92f0ed879e92e23d2a3af7c6e8bb6a0298c7536c40ee6b221765e7a6742987c93a0af7cb321d8d6633aac3306a4b878e9d3612f0b92a2f24d90bcf4d92c126d4154d6c7acb0985512bba4a5ed695ad8a5edc9d2f6d4d990f658376e5e27da827e1767db211364f1d12f8d5a9a0b090909099d863c77d5654d9c8002c51342ffb34d8a1eebe63a2be2b97b1fe7d0371b62bfaa4cd03c10cdc7ba8bb33967e77cd89f56436403c1b7ef6fc6d3bed3419d8a0dc148300df09b366d3e3cfb76f3ecd510156730cd3740c483212aae4ce962b5ed0204611d4077a8045f3c0bbdf3395adf9b8d85be7dea30b69a11d4879f78e8fd1b061acc787ef6ce88b0d0475fad893784febaf35d20dbf39a21d7bfda64f4eb3b85cf795837579ff786f9d9d86a45283b3f9675ce9a7813faaedab0d0af0e29c85d8369013aa70f747d46661aa18fce8d3158935e93667c882269bc78c6f3e752aed3d92e6df437ffe8734b143acd4e9b3639449b368aa44dd18568d3fbe814e8c147c7409bdc47b75c3efef8b8647cf4e73b5d85d0c718638cbe37b1faec9716c31c52f9f3f9b4c69e563daf76fa49cb77fa69fcd2a35bbea5ac2867a535c1ffb426f82b9ffcb4ca67b72fcef3a91a50f97cdec4e6cd9d0e7b5aa579d5b26eefa547af34d7af6ed2d92bdf7152db6f82faf6afba6a29abeced35497a6741f8337fda937503ea6fc26cfc663c9957da567913f4973ca1277e93dea462e38930df847ce94fdb30770e359fcba1cff9aa7ccf9b4828503cf13f4dc4b7bc89ea9da4deaacfb96c527d79ccdf5fbed3b2fff24c6be2feaa354378e8a1bf8c07bad39eefb8cba1d644bff3d9cdebc30ac20ffdd25e5537feca2d6d634bdb226659965b55fa8e8bd1fde624f5eccfb11ae4f9c3ba55d5e7d526a8dfdcb30fa1dfbed3537ba39d7135cfd99fb756f3bcbdf2f934f6c9d9103b95b33f2d0bd25ef91bd25e55ce4d38cc0f10b6d99025862079e972dde779e5536adbfbe7ceaa3f4df68b90d003dd78e9ce01612f8b58e2d27e9a24e07b719e03c5bf7ceb7f6e693f9703c597be1991236ff94e4bad498fb7fcd29a24e079712cad098779cba5b6f13fabeefa789d0581fe9c339e58b7d4477f9a941a7ba5edaf436dcb78de8f9b8c7101f362dc419f50dbe78c619005e3344743a64f9fd8e58bf985b9e5d7a5cd3469ddd2a8b6ce3ea7d604ffc63f9db526f8e79c3e7b79fb89b8eef4d47ca25bb44dd32b5fe76c8ef8e7663c1b6368932ecf79cc39e3e1bae3769ab58ddf27bae50b84bfd27c71d6699b727e7d6ab4492bbf2212ddaaa3cba13fc79cb30750bf2a4d93d6b13ab34ddae8ec736e66d52df596631a6b98b65d6e5d757b7ff974d65c6ffc986f0c4819e1777d6075bbdc5ddafea5edb3e57ca7bbc9fbca777aa767d436e8ec52abe1da84bfaa366008097d0070bed26c9ac40f53154335e67b9a11d4e7790fbffd8a71052dbb40b69c872938e47a3821f4edd52de89f6f5603960b0fab15e9ab49879a047c98c211c29cd69fb6a1fef92c592f5f79f42de8a1ef06b1ebc3b64a1023cb03f15795c97af9262e4c988fd5ca93a02d63ca4956a12d63ca867a58b7e79bf5ce77dcd37af8c998d4d637b3c09631e5b43d7c10a760f71348f0a57faee0d24e47073386b278f1811bd8c0e2340031ae1802038c2c68c18cd3521650ac49ecd5af185190f1fcd40574a3cfbe3d280616bcf0faccb958caf1d826b57bef69fc9b5d604a9186d6c5641770c6801628e04817fc7ca75f95756f5c076602b649a3c907a09b3120f5efd514f302369a77ebd2f93b6dd80be9c2058eae33ddf6c698ae774644eab7769fad4d827e7d290d46d0c5efd008aaf86df4cf03f02b0616d8f8d17b93293bd3971191fad4b3b7162383e9321ed80e8bd099b2434d7b42f8a3efb46c534d10fee8b1ca678701fd63a74f29fa2ad6b0cb6b28c65c1e283f12acb0e577280842cf84dfa1a12c3f23bd9d668154de35df3cbe779401ca3be7f2ae02f53341f3db124242420f44f3be8d7eb7986f511031eb43fb16f34b7fd77f7e80e4ffcccb92efa5ac1b74e90e5627eef997483fbf3be7efeac3ffde879fff2d4e7bd4e0e2b4432d2e4efbd3aac5e9773a335d6ab740d81f0f66045227e87bf384fee02f8d0512c4b3e72c10d1b3ef12f608cf6e80e7e6476a12fba837393f9ccee5ccbe2d18ccb74d23f36dbf4cf76576157b99060536104de21f394dca81e2da0874fdd26a8acc795d97b310e866d94ca6b5d0b3bbcaa3e512027b82deda0f57629fda3a8b3db257ec982b718e2b71105ddf28b452af2b35e6ded4b8392f8ff549f42bfae54f2a9fbea79a2295d73c604f95d7482012e1677fc0f238e73ee39f731bb1272e22a52b3deeac0894e8bc06d61a232ab75c0231ba15fdc99e9268d2d3a82b3d9fd222bd3d9daa954b906892970f8aa9ee87022663097379a0d1e7926818d6e830c400e6379a30c090c6f7cdb743cc4df726fb938eab8f730935f6e7136a1be65c375b75637fd3771c37417df4a96dd02b7627b1fa3c677fdacc4809d4f20db33c1b02ddaa1b84ceeee35c7a673cbed3186d53f4fe09a3bf8c88d4479fbc5974970d811eeb067d9c470d3a67cf1fc699f3cd5e9d1cb330e736378b60fa3abb8f6c127c0fbeb8bda58b4081b85d7e68d866a1df9ef73a674458e8538cb5ceeeb44e2fe6b29a28352896579a1479aa7cb52dc8d2a4f871aa9a780fbd66085379583bab89b548e5fb46e849c6589b8cb6d43bdf718f855e2aa1ecb0df0dbc108318bc70e5b96eb7c5b46415e1ebae0b91f0d87557c1fb2c965db9f8207cf2d958b272cebd680388c936bdc5d937332333b383e776d0bc03cace6ba13e13c3e42a55aa089fab52650793b174777753f9f52a0efd3a7c8eb150f6ee6e2cddbdcc95951ce79c7331fae69c732e46df9c73cec52c94c6c66f6a8a48df37d242a7b89a15ac4291e2c7493a56a5c8d3f476ea9cd32e979a65e55ae29fbb186384afe6017bb21cb5432710480781e504f8ae71be5fe36a11ab7e104cc57e4f98ee3d20a5a3272bf75cf3ee7befbdf766bf7efdde7baf0bcadef0caef0b9203975f9244c373bbeba2a3a1f1f7a0a3a3f764e55e571bb0737eefbdea5d5de6c16389837959b28a901f3333efeeeeee767777f735459516fab1736ed961e17471166255b538aeaa6a3bba38ebef3de8e2832e466d9fbb7f75fbc0c3f8dee37d6f6f3a7e615a39c08173ceb9dd756d7136c2b7a49919991fdcbf39bf6c85b20b997b7d130e0384fd606e04e886e1052d9e170c2f6884d1052ddf4260bf1c84f48d99bdd9977d606666e9b06e93a4b74fa94929233373e5eea76d4bb0675f162c796d9bf95d93f42db6ab8074a5bdaabe26f56308b56daedbf5ec2d3f56b56eecb05ecfd6fbc82533cfdc98abc17421b11fe6dc4f883d0cc62cc8dc261ce6c130e5eb020a2d4e77df80b26fbb73428bc32fcbe23c7666cc1e78d8a1bbbb75a89af7c801079b1a1e3b6874e4d071de2d5da9bb7b46e6460c1d89326c5e96ac227cae797749dc3269cca6a171ef0137e7bc9fd4e12dc9ca91d69febd65eb501b773ce061bbfbbab31e6be0ec11698a50630cbafb373a82dbf575c965fefe79c734e079306efbdf71adb480f5d3a57419f7315363371ab78758350db97da12d273ecbdf79e7befb9f796dd833edf7a14428aef3df8de7befbdf7de7b71022fbf60a63e302600e7709c73ce6decc3b9e7bc3801800088a58a24f9053d5cd682f1eb3b561c0fbf39e71c57a1ec3beccd6fbbbb980ebf39e75cacfcc6a64955a4a15538e79c7b22cc69d64939f43987bebde7fc39f7790e6a4efbcd39e74618d3c039e728e662305737da23e6460e3237709891c978d6d76666dbddc5b139e7dc53818e4743b3edeef2d891a38647c6b3bece39e76ab6dd5d9b2d8bc30ba40c0e18c9737ed0dce891438cf7a08e39e7c579331855edc60715558c6606ce39e774c054401dbb71ce39b7c3eef260f5b0bb4bc2dc835e6d4f96d69fbbcf74dc0e8b01c036db75c7825d0780b3b98101c068de5bf2e3df7b3e305e0165778e310e66a9c05b4072f40580d33e08809d9b39ce391f30e7727c10008e8f0000a044ea81871d6e74a89af7c801879cc806b8623e2f9e5da6f1ec95d3e2d9636b797608e6d91f5f7976c7de5c8576efee48b66963df6ef6daa4b644eb550e266f217b0ba7e1ee11055ecadc35bde73a08e85b8c31fef043df628c11a8df8af4b92c031a8617a6ccb8cc480b9da4cfcde03a1dab4a9127e91dad48dfa2573ea3269b14a366f98e73e21df42ad68d1f42e803d4efaa74996f962eebba9263c3cc18ebdddddddd7dbc8f17672dd891573a371a2d10ab128916889459b6402a0bc31648bce6371038af6b813cccb21688cbe437901655d50261fe2dc6759b73ce55516ebbbbd6b6bbebd63d77ce39e7e6eeeeeeeeeeee2e2683c9ce9f4fe79c77cce2ec5b20cdbc7471b8b9ccd95ed0a6f2256e692a5f86788a175ed0f5b99594a29a21599893a9cbe25cfc577771dcf3f10e0b8aa3c1f03ce62de664da2497518dafa0eca4efe659175b8435098a6a863cd76d027fc59c23a6ef47dc216a735dd85cc65af4b220d663191dd1999d19c9f015323338640e793343696c6668f707de3dc628f6ae3ecaa36666b94ca1b1a112073601dd489f430fe77cc7396ed6b220d67badb5470e38d8d4d4ca63078d8e9a03c74cad55a6de88a9b5d6ea830c12e672bb0747f159815699107e4e717d528a7acb64cf11a21db6ab56a2ef34d4f6d41a10a7c8eca7e7ccccec3bc4679853f26058bb97f1c08ce7b9e6e521da52cf3398bba6f75c07d1fdedfc3e3ffc40d6b766a0de35ad6fedcf6577d76d6b7fb535ed55ce86b090d0efd077ed366abe63c063877b344f470e1c3352a6af37f4e3460c1d65a297bd1c922badc4e88c799725ab7783623107040089475ff29f83c1d3d23068aeb97e132dfbb061bf926453c36307cdb20feb03e0b7802639e726370771621fa850765e9c8e0f02a05f0a28fb4ea321c48f997e6020d1a475867b042dbed7ffead6e45d2db927faf7b0e79a5330f31ee9610f93a49b1c1f4d5a8f18e708f1a35905db8f5fd7fc1ee96f9ab4ced92e4e85cf3df79c73ceb98de43ab2f7e877deefea1681f7a8a3c27258d866bb4b7ebc2f0e6be692993437b01b52e63336311915714179b4058db7086b52166333c48f17fc98a16912e602ca4e69de3d9b1cf3b26cf85f9d9196dc4a4754c19648d07a2d7057235bda6037bf9ebaf2ce9fc62ca0ec6fc972714eb302ca4eda195e81642d28fbba8e1ca37f3d2a8c390789c93539dfd6b7493ebbdba41c16c6d63531aeb09841d1c835ef94c1903cacdb3aeff13e0edea882b2b7cc25dac5c17161ec72759e6f9b72a84ee5cee5ea44facf47eff3a2b6aeb4bbae3e7f754ea771a5751cd84c2623ba318aa13466c422996c06c34133735c3a2c1ab963f2c06a86a81d6ba0cdc3c1e5f0e3d7b97b38c65950ea74a2b74b8d46c331237323c78561fdebbc0cb38c86aa80b2b30a9ec8f5fb76e68d9c61dae2ac3bf7e2b74f11c6f4b928e379759ba4fdfad3f153fb28e37970f4be7d528cb3a0fe5b0cd63752f06430460165e72c28ff0299a9444f93fccfb94a6c5e9648e4823af53ac919f201eeb4c5e49785bbfc7abb29bfee7ae8d71f642abfbed12bd06db7fc3abd025dbfc2f6ec35eba9dfbaf5b7cf2ddc54fa8b1b7a3c056e17766e3a06ed9aa263d0f529ab28adcdc9f79626adf3777d591667dd2ac3dcd8db39e7ba7bb44d98dbfb76a2ae589396f43e6e51f4b36349c43fef97fcf817455d6b86c46fefefba4de0b999d13037a62c6b86b0737651ac9fdd2451fb4e3bcdc6ccee3d77af4a5733c4bd737e57370a7cf33b2f338ad9c6190fd4bfbe39e6d6bf31b34f13eead80c0b9f59b19794242ef3733c24242276764874e8e9fbb598ab9cded1ecc82588f05edf6b916b7c86de0d937e917ddd13c01dd5e267f5cb1911e7b4de2166d93f80abad1cfb220d69b805e4137f9d439b5f9e5baa5b6e5f2ed3c85b6f3a769125f41d767cc7331313131cd9b43b4a57ef45db723cfd5714585c9cd39edaa95e73bdd1a104d5acf713adea5f57ddea4f5f5cd7fdde9ac195bb0a0e1062590620c284ea92e8ef08420d4e009617081c2697dd7e5fade2c77e1ad0e942838cc090b7429e429068a941fa71897429e9ae6d4a45333e6ab03458a1fa7cca5c893c837880029323b8014d229f32d4608293f4e996f32bfbecdfcfa5b20bc4ea7691e07e76a45c44570f09d9e4f28051e980512c4b73f5fe77ca3d17d34e9f9645afd10a249cfab0a8443e722d04dfe06840e9f9e0fe17472d8780a652935be2d181bdf58a8876fbb45876fcb85c6b7edb2c379f8eca1ed29071d36d3e948f9e76fa391358744fa079d339e056c8c90377869d2fe103b4d7a43597016236334c853feb9eca1c5780e1a9d1a3f0e1a9607ec098af3761ad7e1317e23071eff7c331ee94b8940d9d937da43739e83d6ced9e53834b96acde50ebfa0ec1fa39db8f4bc352852f86999009b880bb0ed1841448fd59dc579ce43a0ec9cfdc826d26715b25f0981b2d75cb58873ed4e52226d67b51481028587d338941daec3e7ce02117d8cb746ddd28a34e9390781bacf1c07a740e638d41ae938f89e2820f21a596b8c88711c5c02318e437d82c5483bf527ce635c02d471701cea9376ea7bda537c00670fa82912e30fd8538c4b607486a1334ed467d7687be2a1ed6987b6279ab7d18a408932f21c0eb5c5e133ae43db13bf8d36f21a2d87f3d070f80e6dc6693419d7a1dd7023f60445c66f3c604f50629c3a9d6912d58670a5e7315bfef90d2eff5ca6cb3f9f49e39fe3f8f2cf732c987f3e62a11cda9e70687b9ad1f624a3ede986b6a7186d4f54dbd3484b6dc65364c7955e8ad234e9f97b1e4499077b41d9455aa6ad6320507ebe374f2665f5880b6dd224f98f67df727e57cbf33a8dd37192d3c9d992d3e1d3fa10441431d2a6caa9d42a0d5b127bd4e49298b4a41dca71faaf3659e2fb9ba0beff7d376b334d724e9dcbba5d72cedb5d682e0f7407cfa137be198f6c52ebb8fc1bdf9c7b9348ecce7d9cefe03b4d6a93ab9b3f0fde966fa31dbef5b87c13f1f02d87e95b56e31b0e986f988d6f36efb689836f3522dfae1c7ce331f2cdeae1db8e772e17c8f319df68a86f95fba623c6b7a8f996e3866ff0ab6f38a0e3f06de6657c733af826f3ce7b8144d7e15b4c0edf6e2c90ca9dd30542e3ae6e3cb8f3c983466a52bbd3bc49ed3b68374d6ae71f50fffdcd7f089267f736b91dfcede03c68fb2e2322f53bf864cc5b874feda41deae6cf156bd20dfb806eef67686cda9ddc125747a13c21e72d25a51bcd3bdfbad475a89af7c801079b1a1e3b6874e4c031f3250947187aa6ce656ec0771e43ab773e125def3c9bef1c9bd93bbf44efa4b68be3bcd278719c47ad17c739d4dee2387f9a5c1c579b423961d930ae10c2efc05208736fb649855e643caf15b4f28d185b417b9fac9ef3c357fdab9b907f5e2c0e14b4f22931a65ff0c80c7a5141ebcbe2b07769d2fe36a75c5f9ae4ea86e49d335db67ca391bed15eefba45bfba68d13f7a8ff789becfadbad154b91e5bbbbc643c5b97faef38a701c15fdf69ae82ce29cf3ea7b469ebb5a5497c692101adfc4a63f62f108ddfaf6feb5797265d693489dd077dcf97972b8d3631fff3a8c11e6c97cbcb95469b96e7d5a5fbfc01c16bcbb3effa3e5f4f7d18266bf1275fd8cd4ff7b0d6b09f106b8dfe8c15d6da6ef929b1d66ab6493ffc1ee1a77561adddf839b1d6e44f0c6b0d889f9916911c61adf54f8ab536f333066b8de6e70dacb59c9f32586b7bc6cf99a12d38b0d66a866cef79fcd625335a7260ad2d183f75e4c031239361736d44d00bf6817d95f0d381b1f533141a3dcee85cf342917b9bc6afa77e2e14dabe5910d137e130abc66ae167f55e7fac5b93ef872dd0845910d1bbdaefc58b3106a1775af35655d5515433047ef4fd8d3fd69f7775c510839687d6c39a21ede5d971bef4b31976f9e2a8a01b4ce3d96b88301af0e7bae67ddac76c48ff16818aab4cf7e04f476cb50dfb6d5bb25bc890e5817a56720abac1216b0b4ba195ffc49ff3c793111ffb81bf840c5a3c5083d129f95334341ac397076a329e7dbb7ee32874a3798e422b9f31d86a5b7904b4f2d4cf1bd86a3fd72fd92dbf4d92c156f3df5a33643d7aac1b172ecfbef5e7fdb664b72cd92d0fbdf8d4cf196c359682563e7746e6460c1d89320c078e87c3352f0dcde863dd8ebcf3eba7b4b0d53427fc9cd86ada0f3f336cb5989f226c35f87384ada6fda4d86a3ff0812004e3d9674c15e17bae99f7c256db23fc9c354178767eed2747793f5df3ba7511d3f8fd3728f48b678e826e70c875f7e3ad44d08b9d9725ab08b3e71ae31589a2571feb26e49df5e5395b121ffda3efb8a9ed6351db7c7ce5536258c6133322525cc46be25ebacc786415028826b5b31a94d3a01bfcf2edf00b5ca34d60dae4a2cf2ce3891818226c7cbb6be72f509765f6556568888a19a87cf9c2891e549cafa3d54eef3a7fbe1a931fef239dc1d08d8548406cebf8e892c3ac4a6a9273d0a5b691dec773a755756195521688509ba098e1dc153eecae18df09f85a536471da7f5b9d0d630a31fcc669a0dbae01e404ca39a6f2c0ccbd59f2a30dbb580f7e5b827dd71b36507ea7499b36757d4d6ae71c30a4b4be31cada8e97ee05633c6b3d3c6742f85f0e8741dbf94940fc5820fbae5d7210eb65caf74e673c99b64910630c2fb51da70aabb03c9f4fa334f8993fc1af183088f23254cef0f3614fab69f7e14dcf5a4dd726ee0d6250b1e2570c2a5ffc845faa7cc9f2ce60e3bb36413d13391e887e6b37bef829b1a761597e5ad8d36e6cf1f3c258ab81be627041450df4998f3e27f6b48b0ba19f18c61af4a7459f8bcd6c4515882665cfda8ab1051a1e3a9f14831ae402d1d06017e8a54bae00ecbc06ca0576699d3d39ae1b14c3bb9c0512df3905da04a5bb45e39def9499c1914307cd8e8c081e31427f427316c87ce7f687d39939ce7579c735c772e7b08bd3b9dc89dc4ae6908bd311552d4d7235ec22dfd3a5d570ad31c2f2cc2570b9a83e997e79569f603132fdf227985bbea7ebbab09c26a981eefb466b8cb8dc7223d3316fada53c17e8e59d4f4cb3f8c41a44a349ce316d4f908bd3815aa0162eef7c4f98961c2def7cc7f910ce739cff703eb51a7659c3ceb5c688ca2f3752b911e956f50c04babf3f2c8e73e7310378e74b78878477be69ef80bcf36dc7e72c8ef39de634d0f62da7d25c18d4f9feabcc3f728440997a1da3c65c1ee872f93972ce57ece430e8fab2e4206ea6fcba5b2eef868cb6fcce15128958bf75fbc0effe73af45d15f063321fcaeb745d16b7cbc060dc35c7823eb96fa1f5ff9467ab8f97898f3d0377fe81b8dcc929caf893ef44d8a3ca6d2385a492db3a600aca56d3fdef249e374480158d3ae3b51dd2ae7acc2ea6156c466460406e1e51756494db2bcf2c82eb5f66ac90f5897fc2072a3ca124ef02d7fb39cd9500ad36da18f1fba1109e846f36c25d2389d587dfc8804ed74a2b3a382f29b826e4bc613d1a66d99406481ac66d3257698f1b83a924285f862c6e6a5a916827558887d351f39403469b98c605f3331740d49f11c045bdef9ae8fa26cccc2b3f9780d88d7ee23a74dd0d98160587fe03f7f7589ab6c7079a0de2d91043b6034344ee34e63434363e3ae699cde68d207de5b0ec95548a1ecd036d35390d0054f294118151758b0af9918fa0dc305820886287b30e27f3a59774f99f2ae1851e16dceb48b8d2e396f3025007381b982febc51952e3987190fd711951115a703b3802e682be87681b9c05c6cb4ce55a55e25a03f8fca3b2be8cfb392c1294e27abb292ef9c680b92fe5efa3bc75a27f36da64b2da9f49e4259ca95db0c11f7af5ac99c354c3a9d0b8c04b35d605245e881155e689981174ae0c2024ce0032158d1c5161a58015393b190ce2febb6818855ffae823e8fbec95195264d99511b8daef04fe1b78b8a0e9efd655920fe5ce5b70bcc3bdfb0e71117ef7c9bcf6e6d10a317ac0f6e3a5fa32b4d721eb5119526017dbe8da88caa34c9398cafa0504a9ba46c4be094771863f1b029908368cfd51a5a1ce79716527e93531ab05cf807a73c3b674d05b57c3a74219e2536e1307f392f8153fe79d4ac649ed51195772e5fb669ba73ac4dd6e5ce9f170bc4dff9888ad39127e7a32b53d00d4ef91d599a4003213cd10518639c9cc32b4e27891632b84214c6d0410970704a0d218c135049c3942d70c1859373a885d3a10015a4f0032136ac8104344ecea76b0cc62a625646c4c56cb935abbcd898d224dfa00bdeb9d47649b1aa563287594c713a329370ca14aa179826b99642d9b70bcc28cbaf0e37ca30b1148182a1b01899a351e523bfaa11916315b5229f9ef59c8ec5c88c3b67f67623ec5d8de070aca230c7519dced4ca9f3672aa893cd350588c60a931e2f9c88dbccbaf6a84baa8a290b852e5d4d9b9ce8adaf1918f2a0a8b9191bb8a2ae24a958feaba6aade9aee6b852e5a8ccd795640c8d71991c19dfd30ddf1357bee3e8262b975ae5321a0a4b911b15c5a791538fd19e2ce1315bd051652157aa2a8fa142a3437f82c2f2803dc1579f40dfd3c642d89e322845a0448fc22738a47545711657aa5e456131f2a8b852e5af3a476131c2ee2a8a1d85c5084f71a5ca1d95af7c4a53e12c5fb1efc9553eb53ded4d557d78a65ec733300dfbb45c6a9bc8b7916f976f986f996fd0b7e9d1a7e889dedba4479f234a7da4f52f7dfca24b24f24bf4322c9bc134fe6b4e87f3ba3c5e759be49c7fc7b925a47f3e1d848dbd97f1bcbac177da16dfbdf7aa28b4c23673ce419f55c6036b86b0fb0744b54de217d7ba26863514aeb431be4ee7067d30cee0c07264a3186ca673b40eec697307d638c01c7a601ad64f2c1445a82bad776d1df806d376c09a871e48b4c40303408d0d8f1e015d9c00602d050ed65108c039e7a06fce238430fa807514ec1cccf90173d73f0780ed7bf507aca30c00eb27dc13007bee1e10401400db6cf747014a8e04a123399223b99273373ad4f5e1dcfa581feb637176abe6d200581041085106657f42341494fd0059911d5712ea28680a8025c0a4a383edfc308001302019cf0209625908ec740004901e5500d64f3494b700aca3e82782600c211c62779fbb7dd8e6e0bfe84eeb7fdb73e7f36970a13fcdfdc2fa9ad4ef78b0a705c19eb6c17f0fa7a1a0d2955a084624e319027b43a000b27ea29f8075eb87ce415765644e527ec874ce0d4dc663b41b4e4693423ac5f82482c56852684e313734297e8af14904b64e478a3cc5785f5fc5f84e0b002733c23e622a75a5574411458aec34a28528fb9b46643cdb6dda6a86707cf85b977d1a31ea0278d1ddddfc9efdb914dab4ee9c6be8a0c65d82e4e438f68e2f3a237eb8d2fa7c0ecefcf623e3e922d0209990390ac28bc3ce45a04489225d895dbad25699106d71d8b5c59196902098dbe9f7642684b4c564425ab4a5beca84503a324248f5cfafec01239e982bd47fb39e7db39e4fac310cc3305e297a99902aafe5eb12411712617dceffea06f4aea620c72bccc9d75017b298e59db317ca5dbe6c9b7e8036ecb5585b6276ecb8523b4b6dff09a539cd387be10348712fac1052724e330898f1f6a8c50249c0b7731956c70957fac286614d95b79430df6b1883f21894a934294a8f342e35e94a3596f3f0d4a9c6aa3516a0f11c6e0487f3a8282c96e370ab1aa1f11c9ea3a2444b4801963674504548e844e3a9d30ed7e1d42d1dda0e4bc70e5aade4c8212b6b8995879e40250d0e8db940f7c45cc8011868c00221a1138d2bb56fa4139626aebf7c07670d10f966f992cc6b8844a74eeb96fa587d7f3e9f188f4ecf685273d9d224de02e52b549ae0e20b5180c21b5610862c9cda198cd329e2044dc0a20a4bd00114359c523a0863042b6808021a5edc706ae7349cce86418a33c4d88119a850638c53ef347bd102e534a83316e873196334d6d226cb69e5214b632d60f06f3cb4a57e54198c21a7c35dbad44e99b57c53e78c87d6a5fc1c4474eb8dfc69917d885934fe18a73e9703749380862a7e00bf493803979f5818cab0a48dd1f00344f90cdfbe7117a971a5d544b73e3ed46aa2efd0d015cf63605e5519cf0db7fcf9bca1b1178dbfca789ee57d39e69b8cbf2edbe53295d3b85cc68bb8dc47c66f342073ab6e327ec93c191adfe9bfa159a171f6d23a34fe5c0b34c6a9eff37397d6e1d328e32e3ef28dc580d1680c4697baf21077a1427831f483b34037f6e2dbd98b368d2a7be12fda64552b34dece5ddabb6e97784b0caddc4593ba9db140b794cc1af0d887e8af46f621fa8c57da34f2fe4d7e8cfedab404fb915b3e471a5fb134a6c257a023df984a15dfe90de8b7496f8b6e39674122536952bbb604fb51e52b685091d6047f1a50a048e1271d2e45ce2987e3f0cd886462f876ab6efc9715a8ac56661cd3b8cba5711a52b20b9ad45a689ca7381d9aca83a140ade83ab45d026cefa3e7d0767fd8e247c7a1ed16203ad4aa2545afb4b9a4e84e389dd196a2778fd7f1d1aadca549ed52f889d3e802f482612f4d6aeef2f3dab90b7be1343ad61ff831d6255f3c503f128ec4e9cc54ac4bec3df3dcd1260a71df847ce8b3d29e476dc580e2837f1afca121297e363b2d2c4e7bf51e6a3b648436fe69d673c6c35d16a79dabd0e55bc7739ee3971b8d630d70fd09dda8ce367d5a1688e9ddcd470863c59a242d8bc7f29d662ad01b41480f2f17235f413758e5622e74a3ef86f8ca790a54cade60162a057ad5f7f37ea34b7e6051a0b0cad336d1770eabc02bb08b0502a955a5acfbfa6110623162554644aceccfa524c72c736fb6def22ec6f85a070a1618dd4ae651b322c54f99cf6dd366b3917eb79cccd731bab380d6a14242424f9cd6675a87877c7596b0823d5ea34b8edd553706bd2a66a34d963bbfead642efa0e864beb594773ea3fb1fdf16b66d82d8fbb5b04cc3de4381caab66321b79ea241a69393fb21c918f3cf3186f309ae45022a74d85bb8b982ceb92f32ec5f016aa69190de14aceb5547e02b5a26fabe5346377ecee6d12cc84602f17a7ab95cce18c1b1b6643aadf82bebdca8258df9e45165d926db2da252635f763d04a6b2a1ad4fa8a1328acd257e6c4a2c657d0adb388a48f0e9707589776fd81ffb4fd57975891e22751199ef396369dd1a6aed224e7ce994beb886a5fa94da549ee790bdd7a280b2a60b4a74e22dfe8c7ae56a8a74e238fd149390b843ffafbf15493aee47ca45157722e3283eec9a98f5ce49be42d4d721ebd7d6334def91469236da4eda95a11f94e9fd1a41eea92f31e1a6a92db9348cbbe6091821086304548e814a3a1b018716884018b30275175576a2a599c0e0f659c000b3680a20c3a60c2c9797be17452525800061a6b50a38a2a579c9c3715a733a970021bcc08c21a5ec23839ef2b4e47c6094868c20f8020a54b104e6ea60b149cf684a57d73ada934c97919746b2a194fe54da54d4da54d3543b8a672f8effb5d45a3e8f125f3d6a2753277de5964daeb123b7ca83d933597703abca5e8d6828911daf12e892e395fc22d69931bf9b643e45b4ce69bf53daaeb4a5f44755dc9957875b0ca535cc97977dd96684834814237c5e9f01757723e7d9374ca3bff3299326de72f6ed64dd2ae8f42c152b9147ec272d58de669689a4a53712557554bb382f98c9a5665e5359ae4220b9e47e89cf7509b6074a7842dade99f50c692f637faff84226c69bf2b8369d29726b9fd8dbf1091f9fed2a62a76d4f6e19736add126303fbea9381ddeb249da54def95a3142dec04693f6f75de6f7083af0c1f316a7b327593759d58dc6bad1fcc65b3e888fdfc589db7324daa42d592e0fab15297ec23c89d6c1dc69af4bddbdc5ea1a2a9c3f876ec9727996ef7ec8748210b4f8e5e2b8ccf639e276cb65b9b47b57ae38f7e07b0f4608218c95165ac418630cc24ca0dbf3e29d4ce39dd3c269d15a5a0b18307c85af643ccc041ac45a6ef760ac640b695f876dcce52d0f7dfa8ce58bc4e95815a84bf00ada194f7479c518d46541dcb73709c65fdf25d0cd1f022d8e163a83a44dcea123d126d99ed3a6e7d01d3a741af7a049d0a5c65e68fc4593a003d13a2ca54bd06d6c6e6e7cf8000288dffca1109b108fc4e9005595a13409fa1574e3a120d6f35093e04d93e014fa1cc9590c0a210f3d8dcd02d9875ef96b138f9819d025cbe5a557d52ae1c92675ac3222aa8c01a9afaadaecd67318f4396f915c1841df3057319f8901954dda9ee9c926f583f03dc89babbfbde713b5a48bd29530e82d25a5fbea06b186d023cd4357c5e89ee9b9d6b67ef6cdf97bcd3eb0633d9d86fdf6bee1db311efa6b13f47689396d003f9744396340ea5dddfa6b86d4cc34c95577bdab4bb08f3f1df7ba277a75d907f6f7d44a63ee0d8341b705638d6767df472d107e76a0050cd13a2e242404c5c9fa754a010e22fe56818c29089db6edf25be5c4c6af7312e8269f97b3fc665b977216797110eb62b8fd0109f3f9d356cbcf3469ebcbe4e2b4afc623093a7fc3beb11df7daad05b24c82275e6322b073ef39672435cf533fe3329867974f59f93a9d1b1ee3dba6918b7cdb94c371501daea3e6d0b64938ea8cb64d92a937b46d524ca5d1d69568dd78caa86e934435ab1bc5ea2667dd68aeba51ab6e2eeb4653d558617dd539ced1ef065d6a1d29242424b4e5d4fe74b61f6ecbafce103b3bab9393b33aeeabb36ecbd2ddf23bcd50987bb345a1774e1f6de7445da2498e8b4053344e874fce277cfe846efbe59d37599ddd2516c87be7f0ca0231c0bb65c33b7ee29df314ef7c42ec69ef3be3814b9ae41c117e58936892a3a1afba28b425cbb353eaae3489bbe02a4d621fa288d3a171257649290d8d3367013db23b76fefc55f67d1aa753c495d829531a9a7f7b7229a1130d33f310aec4b0ebcc566cb5609ce56d61eecdc643ae779bf0ed9bf5ebbc3a3c5b6a77d14fa6cc5ef0175cb9075cb807df4e01245cb870e14265e32a7c65e32ebe37d6e2db2bad0b2adfb1cab7b3161fd62bdf48b870e1c2053e05b870ecd765eecd06bb382e4d6a88468567c033be7dc70dd12e29dd7688ee10dd2167a1af614f3df33fa1bf3b06588213a8f0b30ebb5d36753a43b8523ba5a14eb3f96ff4db37d26f543ea47152ce07a525a8e42a95d4b1540d928e29433334a3092001031540303020180e87c3014dd6f41e14800e90ac4c583a1786834914c4300a32c6184380210000621001313a4e02ae6a5796a88645c8e1c1062421dd621917ad177ae3437826b7353e20ee4f17f6de84f349a3ab6e4317c767ec0833bc2c0e9db270bc8824b61a14de6240448cff32cbad1493adfa35c9a10d851c4b6c4bba45f6da3f13cc0fa64915e47e8ca2db4b025d9156ad67e768c8dc98860fb86618e6bca550f238726dbb1908572284af9a8785a8c96caf2a6e8312ef75f0896aa936972bc3d906a5e8ffbd4db06fc8162dfaaf4ea3b12a3d4f0af35f66261453b4b903c1cdcfe3b2a1f278cdaf412320ef3bfd58380ede8a089ef176bca149cef8a63af1c96c3be4ad64c084def62ac81f994a400227576467aaf1ef0be2ceae4086394c478c9642649a2352654484bdebfb47e71a5327232d8591b2693d91c28bb82fa8d713e9cbec699d70b11682212fad251dd8f514fe7c769a4b5ef8b9649c815c0b4089b0cbfb5f1140d1f64eaab603465bd12c3d76b0780cec349799a1cb3739fb1d61aacef293663bd12ed8e0d37d885bde9f398b9ab019e40a68f63e2a50448f88b6a2bb32edb391a4ad897ae3d18cfaee8128ba993137c765dabd32d6efcf1506b9a871b08a4b62dbad0759e17d3bbc84b8e48bd5f60e502cb723fa8c5864cd70074be5f4387b75bc817fedc574ebd1c6776c1641776bf616df5e9bef8eb5d103698be84bd290ba618c20a8bf0d936479695df76c5e469a59d92cffe8df8a0ec2df608a343903c41adf9baef775867d1decfc35efd181a7df38b4566cdeb62e6d2372078f55dd8610a438d3a82056ea25f8cb89b02a575889a017f9afca1cffd98a37ee042d8962c98de6dd49ae94430ff798bf83570e134d87a23c2a41f9282c4b440acf221cafaee8e7aa34d145311033ba4a906107c95ad35c80d69a147d5f6b0ac26fad096bed5a132458586be273beef18b363f13241722536c9da4d3e5859203939098e6644dd505f6bf55a5ac3e1dbf1bf32b43dfe09cc90133cf21151e8cc6f634186d45ae86ab7d612e8fa79440b3df4dfa4ad0cfa046bb437222b94f447d691abac8869d36cd763d4da17b3e22099a2710859c7f1b6a3bdee718dc718b888ae0726f17ba68eef5127ee50183879e211619021f96497f31e7d6d82207be69d7d11d64de148a72309612149c84b07e48fa5b80f1f187442c6cb36002adea56588a383938638ba598dd4fb47e26be0167eba085996a5ef2ded9e9a5bf78fb77d5a2cad4013d8b37fa575e55221df1f36fc9d14fe822939afed4ae50f1911c3ec7edacaa52a61cbfbdf3e51d5247e988305f03003cb8685af7d4db9f8fb74c453e51e93b155a9862227ec35865cfe8ed83595c40d4cac9cd4cd212f6082d738e74e6673c81ba4d2e7a6d2b85e3923e59d8381b208285a0e420448376c8e901a3c6d5c9905ea5fd4184acc24cba426f853d80196e819a5a843e04f5dae84facabee27c915566a522cb1cc33361351b560f0a7aa310d0ab553940eb2f72830e3d5de92af60010480e32b8d3b0c4ff1819fc12041fc8fad857aabf19add0a4323336b68b27c03e467b0a70ca8cc3b2ff350f138b731778bb31eb67a98fb81d8e74e90ce41c6b4085622fc086edd14e190a4d8356e8861def3699497471d8d721b58e89c8c45f319fbdbfe2a62fc622a02e7a8ce68818759ccc3038f9c4cf1c7a76f464e5e875853ace5aad2b3a03542d76dcb848cde2d294e449731b4d0b64157602f22238b64488e3c5168cc6f426231dc9e2d632bda66f66e6a797251c9d9d60f0ffea82d75db566654e1e169bdaa5998f0d0b888bbf088399d0917baeda588e106804a494fca30cefee788a9c9d042796f9ee4e066de42095fc94f49f62d32758112ffe5ce5d9a4abc167a96c130c09f9253474f7506a01c2eb480e934ae911191e40405a413af949b3b662ccb8b6f4e578e2c332103898826b44583f42d037e4503703e0035d968393bfea68ebe7a3dda7d9fa8ffaa1a9b39ae0852d93c13f58a9c75842716372c2aeb54522d7450a62502e6e7d7aa9f5b6f1dfeb9ecc55c38524653af24c1b8643bb9db272bd0f5905049973b052717cc3114968cdab99f1f682b5b07738f07749bcf9f76a65179a28216fe086e414818dd4db0c5a9c8da4de6aa42c06aede54a938bfb0a0217ec59276becc5d53d516c5c1c82607e67f1a3091b53e20eed7b7632d50abdf2a81d3cb931a0f0b9194f543921dd3f2142fca1cf9119cc45a661704654e9f25569b525f0f65a7467c3f35dae50c576839052d08c3313095340977a107f494c0345e9951c498e4adbbedcff51aeea947ae9698988b78f1ae4c1729144cb8c9d26c2b064fed359a9a0efb4ee2f42dcc430759fdd5769a0df79d167292ca1384bcfc005f563245da1ff289bdb98e8a8f63e314e0e885e6ab4afc0cc43fed0a4216c307eb5543c6d94703f4b14eab074e1a298443f31067d79bc0ea37fc47dc0f15267d13fea20554b4b02131ea5768248f4ffeaa63a6de8f9a6699320d6c69c35336abd94f88cf284321e3b3d55aeb8fa1fed7a36d4f71a6fd43c1347e7f62a18e131881e2d48c0f1a1aed124b34fcb424b05b3092459bc83981c9d991375f8592a63ac5a3bd9bc8abc36cbdfa38b320f8e1fc801e555241a680806d907bf7068e2a9e58054513ca0ea16b8440d1a12226934e3b5f7fd9895e83bd906dcf0839cbc5762a02b4b4a40b146e55790e5476d8620e7faeea25f52748271429e501bf97622d31711da66a768d6e0ae326430aed1a7bfe9db474c8502e74157e587cecd4adb5f2d84efcb15e970181db89e1745ecc44503dc1f4d8ce732b87a756f9d108b7f98cdb4504b6a6713ea5ca7bfe48fd963cfccaccf316f8f3ae846d4e2ebde3016cc10e8ac74568b36b9543705f8b12e1f05f998a8bb149b0df9f7998f8321abcd6b40926ce71ed64cd661fc721a508927b06af721d0bc1308c6a6dfba81bb49cb1dce532c69190a222695122f7ad66c049bba54c6f7ff62d5d01c26717a0586958f65b284ec88555fc0e2c9b42b47bc97a4c31592b387dc7ff90c515624324fed6a8c1abe9fc5a5a086a64771c25b258d0d042c1d2d303eb24d8fedc3e6674774ece3bd635f7cba9730a5644fbe9d83f3c2c61e9799d5c8f242965a0b204445af490254ccf560e078598bebb3f9a584303a2e24c2e291d079b1603613b550d7d67b23c460072a1a73637f82078325670bcd7fc1c3fd6183e58e3557427a45120ca9a6b603d811dcea4abfb99b4c3bfee66bcd799873b0408ae0435e83595077ee4de57b1c6cb8abb50081938c26e49a843d1808dc649a8f136477ab7d795ada3f1564048a634fa68ad7ad2a340802abd9e42d57246d75ba33e90ee5eaf65062f3dedac50311a0e62fdfd9816a7c27990cf96ad157dbbe310d390f2ab3ed15bb17ad4b2bdca96de1700298765ce776a6ed8e06bd48da2333176c45b97d694fa8ad866f8315c7d4a1238ca6338358c767f9b686e171b8ac38b1d9a8e1444edd1e9b75458f8d2f66e012eb09a3a8340da90124305d91c3a64a0c4de17e0e5c7bac317b1c8e1a6434821c3fb63191d3317ab7299761c750fce51448b47c9865441db5bd73d6f21adfb761c1fb9e12d62cd401b37d748258b3baeac3f8ea8f833d850e1a3956de33c617b7ab4abd6f41c863f8125597d57b38dda9e5260e6960979c1cdfdbce30db8b9b86573b79adfccbe23ed89482ba5595b3f784b490e65c6072f5d1da3e6e1f3f4b21624e45cfb3f42e69d9816e19c204cb9dde29e7de821b6cc71a53ad47b292953a941267aeb5b02b5b158920ee2c83028e87618c0306f29c534309da3e0b759cd6c289dc35b204c60b38730281d15f4ac25eb5f8ebe26db566f85815cb34d88d9af1b768235306de1ed690b91203930c59ba60517fd0fdd05bb70cf65fbbc1e55fce37fa17a03b8fc2e04f9c53e012dc96cd326a4df53558d4bcaa0b9a7b20283830552d397611c9c32e66726e70c44fc6a3817ffdd70a7404116ad6e3ebe54063332f1b328bfdf5ca262c9d5969aa3ef6ba746ca0636df0431fec28627539495ed0afb1c86ef62d50c4d6a6d84c9ff4438f61a048a617b4c8a78c61ce8d353d884d624a4084ad4c10e6dccf9ecf67fc61ccce4f9ae2a9f5225ea69d796abe5a3d4965368fa41a70b0f683c73f46df5c27e66003195e4f72d68001c56c2088b9b6886832dad8da180d97839dfc10dd3325374a131599d58e5f4837b25a37efba00053f3db4e5b1b3c6ab8f18bbc7244b50ab81ef2ee2ff6a2eb0571fe32ba7a8f0644683c68496f0dca944c420d6247729ce6876916930fd121a08a66868259674164cf4a3e9e853b1d7e545297f0247cfbfa1d5c7a30380453710852e33e5bc6898edc2342f2a0848cc37d84c045f60632380441fc07627dc9c240c7fc089a26f2c8373603414a3f3bdaca83b25378cd28addf62c0079182255188acfc33b51172e23f137837680174f88e5f81e3aa671181bcea6461dd6ec2535761f6d0b19585050621a95ebbac438c5098f3a8d8d6f8cf1cdad878e509d43bc6efda486fb295916317c4b72388cf1117dc1653c8d5cd649cb3d37e2f00c845e271ae79a50eda88d188ae1467d22fe7b2239b2f1efc9b8e00a4037f2106e4bbd6c7b9e7ee3ef9ae0835ac59b1e931ef2b0ba8e6c4777aed6711b4acc0cf33789c85eb9954df6e91d0c3868ff51635542e68c811b36adda365439508b39652756abd6b6e611842809ea547ff5e58974950a0619da562c9dab0021a50b33cab1ba3e1106dceaa3119e6b18914df9c6d4d27e31513398cca3933428867d276990c663fc7e66c19ec8ba7b707d6654eda07fc695703010081c9d8502539d24b9a3d5d2c9deaabcd7691635d560334a75223b9c13011d28cacda1f385c600f54075f41185464cdc528be4c0026d64ead6696ec4f10019a5acb10a5a909368057d8318eec6b04f8d8483b18e11a0eaae15993019ee77734712c30824cc53818a6b79c217793fe07fd81a499bbe961e7995c149d3739a11a423b4b3fd8bb612483a10890e7b2afcb9c97da6490ce32bd0c8229afa75b730d0af1b22e42f84166821f083d498d1c6abba98c8b7c5a8161b8ee1978680baeb03c92f136b9112d4b86d840c7986ca8888070a482e51d76b85711da0ceaa1bad9f3e710cb7e7a2ad3edf98856045d873982f78b239cb0ee3b8f585e8fe14cb06abdc19ee7d7bfb3d7f18db3a5d2b291dcc9985dee7f098b14d581ecc76df11edbe4828ba8c416223efeb29a5529c4fbb0ec391ccb55b4c7e03851292c10e07a206e1b9209e04287f13a9dfd27f85094cc0e7a4a94f7b46fb67563653a0e0d441f89c720cf364a5df6047dc10344dfea2d564a0b1fe9087051ce7fc0e99029b68c8a6abcfb083f38194e69c64e1e93add4971589df57667f00bffc325758acd6b46b148de89c50ae49b1d4567d6895695f18683969f45a93b4fdb50d32946f1f3c84b0ce9935b3ce747ce17b8910c3b17aab2ce4a95f6f4ad512ca8d8fefd83cd7e0a307653848198011e344055f20769afcadd0ede830939b6cfc03f4c44ebffc41d2b77875d110b849bb6b571d8180f284e0c3e010361dab9e6e73e9ac87c8cd60a53a4f96523c77bb85b91f8ac6f4a467cb8cd4acff7409e6151a11222d80732aac26f696c06ff02c6f96f3f76d6fc2f534ece471d0be4aa8ff44a2b8943feb26c847446ef24a494dcff1842e3cf22fbdcb4ab5c14493e99ae1085309f153ffbee96e958d55f0cf43061a30883098c32b8f8460224c7154400f47ef358a6efa82eeebb0e75c7c614031d60c30b00065af4bac70d67b4277082794e64400850823edb11b86d55e58a4ec17d8c427dac46b9aac1bba6c9fa0ef3ebef6498f5ed9787a6fc92c565e32ee0e909ded8de5042e3aad9cf5a136cf92dc22f96fd228002bb7c441250942a443247e9a908ef983b349ec8a7173034a0b928f31b99fa35387a9da799943cabbd70b116089157ed567bb32b0a47bf1ee7768d518c3c543eb83b7c58b04cd41a07293208f5789a808d6e97dcddc215c9d4bbc67fcb6c1ea6c5ef39a4b557ba17bbc7d1dc810500866a1a8ec7b0e5702122fff1edf54eedd2a8475ebef58c06225150d17c1035eeb933879c275a558a9239e5a12d36a1be504dfa90a69ce7297370584da0461ecfb423b9f8b8afca349743940cbe4ade77763d60dc16ea780bb1e2c9ebc037d4e0ad960186815616a299396fcda662f131a7f6b0d52ed58f9e2161a453e77dbc5685e3ef4ba663bc2c7fd7140f5f0abcefa83729e2db5ac43f18148d543c8ae41927dbdf6b19b5c0ec94793914f9d83e84c0a2df47f42c2e974a8b097da8cfe211e4cd4d103c7bc698641636f55d5989b812e80f2766452552fb3d40649a8e26f1ed5d674df78ac9f8bc17f47062eb2fbc9de199e1c8a5b45b1e88d4599e006f1b4a2b6b60e84ad711cc50da3b51ade1778eb89a1c0aaf845df354394716122cd6c43ab19920b2daea4973bbae93d3054faf77c4a7515e2dca3e6141c3b686c5a12cddad160cacf6029259b7a81c8a5703829ceb0d81579f7556d54bbb8bb834466dc345db045a80db010b9b6b5e0a35bdb790dc81b68c8535c19a1bf090275276ea5e6402c69c2067726f435403204885a1a6672d4ffb2c8e2deffa68f12c23d7606cb69a7a022dcbd1b7fb23fe2fdb899c5b7d919efd69f25c7d1c947266bb25caca6e85e8a275ad4d2e014f9a5e11aca3768c83d7ce7fac6bd76b913ef065574000aa8c90b94d3b1960a4966cf4909718610833f3d0460216bf2395b7b5bcbc2b5be8bbb0de60076ea601426f403eaa02eef3f2f636b60499e17afbd0c53ee5ae2d4ee770707f898b041a0d6a0acba5265b7d46713a4d27cfb2e031bfc326cbe71bedeac65ed333c6e1efe626df78fe277ebd0b1f8d8d444ed3432849cb2babf5fc5d5c6c7fa0b89b4252a9bceca06ae168880904525c7f77955d6cbc1c99355545dca5f9003d4c1b0e1b4acf80d5cc27da53cd003dc2677fd15fc252d09a57f14674d1da74e253a92e97254617c8b7a8f2a9902d9c4ae47427c5d2e7f5016601e6d6bf2e15fed54993a60343c98e1557571c83f86d0067916b517b463e380b49ee2e7a09dad39f10a0bcfb7511ffa37f5474c701dfbc7f1fdef9e1ff76bd4680b3fcad5b77adaa6c4ad510a0976a6a7acc1bdb256e4087d0ed836be9f1af8ef4a3980cddceb9ec25c36480aacc4fda6992fd9d7d8af22dc931d32d6b324e2d30b90c53026d21d97d692ef91fcad644527ec21b91f7e2c0c1b1f29c52aa23393ab3eec0974a9f9514d9ce12a47a5ab4b9db0d15cbd10d4e1e9816d4c7369904b6a82697e41d9d48858bd8fd169e129b396f1bb083308347a691fe631354525639d3ad64a2286d6cdd4d40f27265071ebf878df0652f4893a54d6e2b4ccdd88d1f738bd4302453cd51929210d567547e04fbac9ac02da83dacda97895e3ceb57089a4a66136010d9bc8435ef829c5a9760cd540f3dafc3e103faf16c5c8fef58fc65a8ce2001757c05c6d98477b48f73e905c1c84034d3c588d334870ed217db951f186d3736c8da81f0e0a8e0e334736ab918445a1e8688c377c9b46b6d931c7ee166a23291d72a19aa5a227006645d76e8542e9a474d6572623c235f5541aecae896868738c201dfa883ba6fb94b97895b2df097e66bebbbab050a8d509963158abc17c25296e4bc7932a28c890e40365a8f84bc4c93a263b20fe0cd04608aeec49354ed6601c3348aecca052bc323d825522ce124037fc32fa402a11d80dcfc931711d96997b4ce9e6b220732163fcfb6f6ca57cf67350b06e70a8026d6142d6110b9a5006b10861216f4b15e2caede167540309ae8eb5e68fc3d2dac718f694fd299c294462beda21f83042774f7ad55fcf4ff26098682ecb51f950bd15d16bd90ff1f9db214a36c7ccb2b1c7c57bf3fe7f6d52fe509764b7eb7c770bf9e46f5bcd179da693bd0b84484d5df34a85321b467f22f32cd0f4ff4c9d28c4d300bdb18e17878125f2a1d9963a58aab9169744a1123b14b633a57f4dcd083fa92f87ec47c1556821b23db6da2878dcdef9d6abf9346825014182c98fbf957ae787727f15e34a42d59f7cdf40b31cc135f3155aab0dd435205e11e2e4314afb67ee873ad0da82e604b88908c6f570d1de018bc6e0ae639a08361d351408c6e001379f649aeb212595872784176c53ba49de501c0859e82fa1c585434c3e18e065488a72591ad07d16d801a7454583dafbaf30534cd9eec56da85b168507c44e45a68f576982cad823eb4bd01d7121bd1b2e937d2eb9ab33726d2908a5eaf8c950dbc990345e6a7dd2ed9e9dea6528f9d9e9322db9297c7e4becb989771a138742c476e58f992bac8a041e2cb0861b742341b4e446fb81863738c08ab8fe8bbe86b4df4934f075bec4b9bf115219887ce2b917c49eb3b7a2c2bfa654d22252e0a771945ccc3fa6943dd2f29c16b845b3f91aaa54148f4faf169745e8fdab530221dfa5bb07eb564e614b5308c610a8141a77e4a0b8d9aec6ef9e9c4a7901d13793114a7ce175f46e570759474edcb5421c17870008db2f2cd36d7b80d5a145cd122c0b11413540e7fdb565aea8ca1df6fcc05abd34429a5da4b8e05e805aee67d82185f5f7a6f319d9b06faf005fe237ad50549ff964ff0e12f56433bcc7ee50d01c0923a56aa2fbc7fbc3debbcdae4d141bd26fb195556e610d9a84178cd731b76ac409590ab9567ef846a409cc29964225a08a7129618ff5f0c883e006e844a26b3e507da61ff14c4eebd89e444d9ab902761c23756c3f0642e15083be6880fab75c5e6434e84b8aa0b0388eb9fcd6931818b9a1bb59e3c4d065a838ec452e04db193ca8b91b2200e62680cc9111b61b9a0bab71b6e8b4c246cf24635fa6f4b07055b2472715db1617d5b9edb30c7c88337faab8f285aed1945bab7c4141c866a5dc19af4988211977e473271abb76c8cfdf5548580ed0d8cc89add8fd60f7b82ff152f76b021247cf3ed2cd8ac222f1ace8b6d80257adb76bfee3d8ec5eef29e09330dc1e0c70ad773fe3ce4a30fa5ca4c0577e00a7a0518c2110d623f132125e331bc009319b3fcf5554c84844b85a783ec4c188983dbd07bd5b1e947d0c04fccf3e7f715897b97b2aedc04830a1c139209f2b440ffed98fee8cfe2f82d76a03a4ff2f4c35714d9d56ed0d2d38d34f04647470f53bebcbaa2a2a4c869ccd6fad3e01692beb3c8d8456192f6fdc73898aa162917d6b3d291ebec5b31663235249b10d4af5bd983ca9132475e1f1408bff35e6e5437cd970508a46409a64785ad638d0ef0162c563e8663451669323e58c47b0a9931e8029c1a7bb93de5d0071964cadcd923939094348c10f771a86bc576102a4807b7f76ec8f807bac7678ce186dea8091164725821a461a53e7da551f085e4c549b20df06033ab54ecd1dc1661be3c892412bbf51f27a850238892c149ab3f5adfa073e5b4deae522359a805e39370aa8de44495b58272ebd4cc206fc633f27d683043ae1d541c0250a6c7b9a589a4ec30e5c02c06070dc480014c94b40b443d7f5301fb09c05cb83f7142a014430ae7115a1a82eb6f0ba389a58aedde92309ab91ed629f1bc25e47a96a709130a766729a7faa49c31a3a7329429b6121c199498ca3211aecd55954a5c4ce5af27a624dbabf4b227be6cb60260b0c926ea9bd0a0243c230994054ede927ee562525870536fe1671598af0f0eae924b795a3dfaeef2805dc92d38e16d74e17475038d7a123411263b0928fd3dae6b6120226e1392036d8eb5f849f8de017a60ff72cd75b4d792536b921d1d8afe7e0e2e9c5e7af84b7d19dbfbe3dbdbeee1bc6e4b1faa54d35810eea3366515aeafacce3f4f1e48034c74804389c38fd3f442f727e03fb18142e5176b6f6270502752d229584e5d20083ce854508d62b99f1f0aba3d684b7135031ec1c9084b1bfb2f910f9210eaf3ef6d26bd608c705846002ff65fc3ece5262d3d6242950b12b0dc73804b08c2ca67e03b485a99ad325d11c39f5c915de2aa2c209bfbfd59518d329b1ed645452c9412a770551de1aaedadee99b8375d695eaca34e1c33180cd1305bc73feb81bf089236e61c55250951a821653efcec6e37b2f13e2b53a4277d3b13f116c76cd52227a08ce4006541d432b4f9ca0715d9581f50f243288a415add50cb2c59198deb0d9b8e83e178dff50d1e0e79a2236ab8286cd08cd47838e7179db0f582040a861ba89239b47c820d45399a4ea12827eddc61b42f5bb34ced97708f5c5a3d7cfaf683eeb37d9775758133eb045edc6ee849114b5353e93f8b21ebfeaa4a8f35f8da25b266a086c41ef8c2faf923f8b71886ad5ef56234c3bb2fe20ed170b707ab9e042e7a310d43222531182ea865c76b2e1fc3545675012d1011a187971802851ab4f630f48825532733ae19ad9282b4f57db7b6b3c2cba9b416bd990643ced4b4c72c16a7379955df715566dd60f79cd22fb4d377d3711a82dbf9f9a835644fe07e074a9101463389e48ac40c970bf3ce83e6e5c61bb78b118cfe26bd471c50e7cad8ecb262780a048a656edbbd0d81640ec572ff1aefd645ba8a808d332ac646fe527a9f9e71e7a6f1c49a2d3d301ddab452b5bb206c9b091cf5675f9b4f570c725448caccbdec84d8463b0b643d6122971a3d2e3e9bd04659466a32038f48a8e0a4fb06b629410910713061c30a127ef7dc82b7f7fee2eb56ea3d245fe9cb606141798e4621550ea47ea781b5a1017c786b1fcc69b0b6351f710e6ff06e9676aa6f852a90f22d962736167b202b00e89a436719c3a9ca58d534cd5293a15f005fabaa4d2192d0c4698a9aaba69a7b7d6256d90d772c2eaeb406506907ead2c3fcb43486e2d1776003da455f5a5e1f7acd310ce4fb7491d4e88676bf3db83737c818bd34f811eefff168fb717a14f5ccfc9a48c3eecfa4ae115fae19a7a371b6c05e2a47794e2fbbb5e6920d40653f7839fb25e0089a9935a2d6f63a8a9ec57a967ab6a95304d9db2b40a317e9fe368c20d5326c3b2c5bce789876dea874182c676bee7b9452c547592bbb7debfe09836b66a88155970367c5f65b0e2449e211c233d5a1886b899b48f38ca4e7519238ac7f9a89adc7420263291ea069d7e054722a002eb937a63fd0d2cbfea7160dbf0cd0c052c2a363e1da2f612ef7fb5a6406fd9c03d43d72b437ba754588262fa77b2f8b7efebafe79e2093776cf6af6044a20518844d3cc27a79358488369e22f60ed04c7eef7d4390d57e4faee8f926d2da3c90ce8c4f43ce8ed85eaee72d21ac4d206d5ff05b0358f4e511291e8ed3b01a95475c84a2096a6e0c7b90a747e0525e220c20fc337d696c1a9c20864ba364cb811938a71862e2eee3536e43830ddb30f3d7411a459ffa9a599f61a3112f1d023fd0a9310f1dd060fa98143d31c326ed27c1631b4affb37f9c26313ed02e3133246fcc0ebf4004b237b592b22a9aa193567dca9818fb75dc8e665faa1e8fb07718c741317f0d264425bf97e3e4f7ecfff0820f19807a6a266c720515a87c88da56dfdfdc112818fa795113dd9f2da5c655db93caed1a2897a8e1daae84ffe242800c2f20779915f978d75e2590f95d229d56855349fb93cecc2937e77f86c615615fa61b32b659a686b806b9251339ab712c3c2f0e4bfcc075b0eb64635634da2e8a9c7ae5cf2d465c9fdd29ce0d1c2ff01483c3fb2a0f70c943f7ad1c2c05ddf0e5ad786660c57d393dfd81592bc79f18367d7f1dc60a2079fae5493d98241d7963d460b93f93693d1929a105f046087b565dc500fe4311173f35f01c1eb64f3218c05a31abd7f0e737b97e4ec35bfe3cbeb5ba29ca10011a8fc0fa466bed9d9cbc30e93e71a52e6cd177743b7b07b13790b0735866f11a1e256a47db9cc5a84e0d7e62148622a0734fb8846a0f18b5988b5283ee13f42a5731f9ce03f559d9b24f35bd1ea851e6fd3f48238fc3cfbd9505601f3d9e53b540aabb65cdf0e4ba6d844280f670258c16f213092be7e447d96c592226f4f800c4b85bbef01fd0a90fd44aea8d3cf67895c4659234110e1f4cf832ebad1616c5f9a3d3ee6ddafaf70870498fb4eb539aa2fc523cc6390b1ff73af37e6b42344c5121450d7d1ccd390333f40bdd92be2dab3abc148fcdefd7f87d16b4f0081b1e4fe29e494faa70af7c51a663aedb27a3aa6fa86fb5cfc95e6f19fba4421c86fba2a25441a9e257a1ae6ff3a4794d4d342a57d0cf1f7ba8d3468d4c121371e017d53dc65e5350ad2e808a0e853bb9f0146fb2928ec25d109dd831ffdf2fc19fd382c1fb49c6258055918f504c62c86ca87d3041239136332dc5fb0aabf796f829ce8e51d4a615c134a0b8b0b6fc4990b4ffd29f6946260a901e220433c6825ad6daffb816f58acf22c60565f66147fe98819383692e7ec4ccc7790820a27ad0d0790a0c0932f287d1a83451f9dd010cc9eebfe303a764b1d6344c932db967c47acbf2d7766d0bff0e9d092d5041b31d3a7cfaa00c369e2bed7ea2162992614c792decd0026cef72adc2cb8ca9406429854ad920b7e2520356a28d12616d5ae33d9c38aa4c452194b36d3ff3e3f1bf42a9d9763aa88f02026f4a4ff57f5be4183cf6b10c81aee8ad5fa12df2263ea86d218d1ccf7008a399260c094e3e698ef7ea8777242a01b942d6c8601834c287f40e90ea552cfbac350b2d5ba0dd22467ecc4e722a2e7bcc6b666ed46224b9f861749b2e7b51416629b67eb3b54ba8f3411ef08b7c9ad8c9180dad11c5e5ab9bb2cbb1a8610986171dd7d6410d3f87a1f4c4057d6c6fb7d47bf06f63eceee0b729315235dfec8fb5e70fb6f9994cdeaa4ca8d5231c8369a232ae2aec25bbc32108bc84b3d3fde1df1cd8d264c59e0ded24dbfb31c5355ef950184739869fad205fc82336d91994230c5e800121785089299088a47b0867fc236d0219395839bf5281f023c2681258a9e581cf04bbd9e63415627ba13621f88ffe8bbeb5bcfda3ea75b79887ad0b4014fb788e2bba0e8a3c3ebfd4129c3988afb19d5403600e7e39b4d52f0638a9dcc49b583413a9491f6c583bf5d2b983d3f574f8b8323be6ba38806dd3d29e27f1f0a10380fbd06744b41618d5062a71f3c78c3706d838a2e0f7a27c4d84af2c144476f69f12e2e86bdb5cb1af7648884330b64b5f87ae4515ccf87dcf6ccde2815c5a3edd9ad73e06345d42c5c0b46a638761657ab8665f51c3f1750afccc33772c3a4fb6cebb9102b39f491df15deba7a1be91e744bfd7164acbf1f641fd7bd3cda27897bb41a83efa2b9ae501f60b5edf90d29852fdb61abccbfde82e294e047c765063cc51caee1a56d9a284ae100376c92f347f744dc92d079de01d29ff4e039882aa3a790bdf35b8c2eea4b48243ad58b93e8d0ffd47d078bc889047274a8d05182901160573a7ebb825d6dcf91d21b52f0798658ac8240111cef75868102394fd662c5475be7e15510f556c47c71ca3bedb531494351ce0d83f92f5260855dc892a766180805a38c0d5bb12a0e7ead6b5aa5d921652d7673f6c67bd1f9d975cca97407bc978d4baca50a952fd7c20d0c3384148c4222da578a23c6c7c61fbaee3fc193f0d4b071b636558aec419bd72d7598b20abffdb61981e4216f0e72ddbf52cb0ee6a56aeb3db92582b225156770f51ce59dba34c8a39534e0151a6fcc4721a416d24829a99e5fd37c0c598cf7a78a29d920a7cd8306b5ae331fe2818be446e3d7a51e871d1f2a56256ce39ab2357bcb27de70aa6fb391560999318b95641ee95ab7d3759e619147094894b14756d37c84fb9e300bec4c601444901a5cbbb5fc3c214efad7eca0df993fe862d64689ac249eb445ca21b3f9b1432d3eadd52411da0650e2cb508103c115cda884f6ce29c95eda1b0187a328c3254d7d0391aeb1610c2f51fa6dc12e70daefe3052f4cfa7f55318897632de1895ee03d83f59eab10cef6bfd338e17fff070470438409e4c021cb22b9946e49143eb259fd19578862f75195eea33b89267f42567a608ca9a891d7da520c89cc685c90e777b2cabdcb6cbba2be33187ce4b3eb32b7b065fe232bdc467b872cfe04b2eb3977c6657e2191ea5eb1d8e5f0d25be1775b8a7a052c0c79b72e0185ec6fc3f6a10e6914a1b6e0de2ad1b266ce4f6cd6cda3645b6f33d21786733434ddeb90ec654229346c5858f0fc928a2f8738370fa995570bb85885f7d92676284336702e1e63e4241454a2f4681b4087d9211a32e3cb6b08a8154793c623b96ff2c8072188087151f58958ccc319a0cd92fe969bde63d6bffb26c956d911db8e60ab5179850cec60cd9ba644172dfe51ae924d3078f0a149fe94569d874a161dbc69ebcaaf02b1b85c8a4cec59192e01392d29db6aab2c951d314d0e9a53856e49357842e216ff00b786025cad953be24d456a35658f24cff3b046651bfb595ed0eda6b8f630ef20b68abcb1e54a55f63ee65751b16234ef031d059e67d06e8e4c875db8bb942840a3c7704ba2523c136ac4ce0c3090f796f872c65bb0d1d2cf9fe73ef6a1a0a40db742b5c8b3b8771c0465125086b43b06aefa158a0f846348803716064ff24047666a831cc2981058cd08f548392d382fc74e619a2a645b348080345a2e1e0b0a8bcac405c55a7e313faa9bc26dd5f279d577569ea4bfe71678b144bc5dc7bcb70487aa33e5d3c0b3abcd994d2db5506427e0b5258003fa761957787d1fc4b75a5c1512eb6cce436aa0b1d975f31393834aa82620f335663bb89b5c0a3ac234809ed49fc93d05143d5ce463ee1a6b554642c20088dd101f6f9779f805516bdc02f4f4183b05f1525c039ec47ab11704123e95e7440da037f20e5d079e34c910934ce08d50c6d75af66c25972804b95e4badc21a52ea6b1cf8950d0272134cd791887b2f35ce995881e650e76500a76196fb5b11fca2d805cf758a8250f6f6a6cea7c17dc1f325c9bfecd55ed41dd5326d40aba3977c005ac43c9a9220e10cfe210cfca5b67c8f87d2d03d7ad23a11531f9ea410d6294a84a077613f5be5704662af7edd293564d1b084de8438c607709a0d24f4d6c91890d5880c3a559aa032d752c06330d88a9809a97146483c101e54ac7f706bc1e382db1da813f0f9c428efaa294f72cfb90f5ec8466c160e11f38e38387f8a6b6901d039069882cd3a0ad88bd9ed5ece1f407871b9a3e54dd5adb7d0912a9fc47f86664850eb4af1381f5951a387b52f5fc1e686fa896402a5eada48c9aa11c48db663574626402c43416128da5532c90ac501ce0e365c51d78631328894252993dfe5218abd4280146e80f7a9865322dd92bcd6e3cdc19ac7766233cc7c7fd518eb91b5a531240f0c2a796415c9cc0ed288ada4a3ee8f537f744c1b9dabdc1aa751296fad304fd750bc4f4a03a53797226e8654e6ed28b05f9062137b1cc817a5613901f1dd70e5ae9b9665990623d6c47afe0565a1ebb80e214140c832c2e89eda9658a2e2783ef4f06020b7c742d21a45fd2d39726ffca8d4fc5b1621264a1b7f18cf6908e22ee79bd878b965e0647599548e6fe64b94e298e7f9f24c8144941dd42070ab1f5f92cc4cb9090824adf868fd549759e1fff516b1e17baf683b82be583f831e2b5370dba24b757992e36f3dd64452f6cd5f8f7adf1b17246a6a9d24c7e8790509e1f0509d939606c3e4f7c82fe4cb3d0fc1174f93a38b8edf28e3561708598bde8b502995a37aa7cdc6348992fa1a06a18cef8b94895b1ac2583de216c699ac581338d612bd0ccd9777120e554e411ded7ac70ee90f46bace0ebe8655285d1cd89c60a146321eb26015ce9a9484d96474d8ff6264f68d48f8dde22c1871d37bb7f2230747e06bdae0440cd5089ee2ee8f66e921a541f1bd2f91d2a463bda794362767945aa3b01b5c38d1ee256de90c9f4d47c78ecb5f093eea7653ac52e92a7a49488996c247bb4414ce4f374c2492770cd50143058a1a8899382e32b26d17c4ba8b241168973df5985ccfb531dda9fc215499da9b3219a08359fe4258130016530c807e0dde51046c42bacad837ef8ba0f2814a2b36f8860bb8110cddc53441b7c900d080d9f23ee46d028079001a70b75871b5f53a8d9a297b5aaabadf47d99d6e95f0d5e2a9720fc507ed72bfd55b564cd5d33b05834717220790e6649407a98822f486d4686f4b4f4608af05fc8de0ff99c89216aaf031841cf0cfb00cf247eec27ea51c4318eb96630df1fc1e6680e9c4c772a6fa2285986f323a5952e1fb52b171912e596b29ad110da7a2d02c65225395054c0337ccd84cf609936b8b4ceb0477599093152ab116877386d30036879f5df306d64f8dfdd5ed49a68a2517eedf8ec36318566343fa3dcb99fd840fd668317c3113fb228eebb7e073329dcee2e16a03b1451b2d172e3aa15169f53068bf49be1976ea2daa25306b640f8dc43e282f40f0e156f9aea2f3b0eeaae3cd85fdb86a706269b874404ebbb35ba80b43f50251768094452a5c47aa732387a02f9b3b890e79057a8451eba3b1c2f560fe1ae06ad13e3afd4b086fa50bc0620fd8c4d84fc8d05fe944004f53a110931c4853ccc8f36b447b987cbc67d4cab5d8d83406c3dc9b66383f235fffbf8ae3b5e03499818c66410f17ed1d758d4a6989c215e8458072385516d0493fae8c37850429929c8ae1276e1be42c6e9b5b73c4575e311f4709461b1ab29d5a4ae024c125c1ecc6e16f06aab09a11075dfe5eb8eb797419104dde88a3c92f7e906ae267785b8950d94c382fda3313088901b75f52c7e161e0baefe5204e53334a6272aa04713ed9d04575a2b2d6588afacf6c3193accb9aa59bcd1d08c6f9b340854377ecd4dbd97fd106b7d66cc19f8720dc25da2828f440dba9bbb359f95bfb5b6a8474bc0f2ea43570ced0afecd2ff38c0022e139fb8e0f1e3a1ef60eeb995c79f960aadb7045efec09c45b31ff359ae3f9391708c7fe3dff86682afab0b2cfa2609fe0ecc4533e039d99cfe7c101d7060eed377aa0fe5835f45a50eba531a5dca4950662135a955240bc9cfe2a0b0a06477c4ae7312fc3e5a2aa72dcbfb11283c172289f106601e0fc48475789dbb0228275fb85d281113eeb3d9e1f70c1f8f0f581b31210c8f05d8792552a9267a1306579f8c9c2232c57e1d754d5aaffb9d1553f0fd0f64476f3eab53ca6efc0374f670a119f21029159dc2546f46298a88881b99cfa4084b774517770d8faa38b9f22162247e183d631df08dd2ddc5f6732af7fc884fa1d3f6921211d31bbc59bd95dc3d6721497adbfd0c578a3242e1a7a111283828cf5c050d7d82ff0bdca0477cb03200220f6bf0642db16913b469822943c74c3d439b849ceb143e00a2a58142fca2b0e8837e87c79005c7557a6943b8f170d3d0a1157679c256f6aa046ad1647cde93b4ed3fd40466d093f49280f0b71255c80546871b679487ff966b67cd30fc26645d92985095d403b91731f071b4c20ab82d93ac8371a20ced9f0756de160100940546a1272642eb19502e17b4a516cb97094a1d0a8b3c9c8221ca080aff22a10b72d2d9fccfa37f3fec030a7d3b533c14d7c43f4079c4de2a221fe844340b6bd715279eee5b1391351d66ed7f6101ebd8095bc5027b8e5ff86ac7b4f1e294fc83eaaf8f525e9ecf2ac2a3bcb72417c59fab89c364b3235ff02d797575aaca9b482649875ffa0b7fdf9ac6a35760dfe9f2c82fa1da19ca807d90d8d8a3db399608d68d67a9b06715bb72877ce6a4484c424d766f449463fb99f119870940a28d2231b28cabfc09f2ccbf2ffd6658464b2dc151ff5b7aa86a8b53499b5d0406d7842402602fd2ca2ce4864ebc03e9f9d1389c06ed7814ecff58c27514c62920275de88ae6e1cbc0df31e272f44de597dcaed77b0d947018ddb0b163823cf60c8c1a1a7b45d0e816aef7b0856e78955c0183e82bff7e614d9a6813f1ccd9fab23b9ba29780243f3e24262d43e09f4085ca5f324d0c42f7ea51c742dd2d2914d111a019f1c41d4a445c66e768586e7ba1a652fea0598714d0dfc167db95c314a76c43a1bcbb3278c9557c25170d05f67f0cd91c13acd34566aac3282ece0a75c81d172def5b865ae94f3f1a436ecd4107a49017219a792c8b080293b68964b4f1c1a3f06a43fcd3eca5d26f91c813df0b23ccea8309bef98f12f1bd10f071ef155706e3a4184fcff6d64446a3ebfe28ae76002edfac45c63ba7978112e4df86759886680a0ec33002bbf643ea3fa229cf6102a08fe7b55168e1aea534aab1169a070d20aad6898f604c22f394a7a969453eead72377534f04b788032d6d63373f9c95ccad56c7b85b4a81b707ac5275435df80eeb857a440187ef34b37cc4343aab1560345bfaf63c480fea486d4bec97f5da6c65b2496fe09b36690c9ec64f94c8a4c41fbb7d546ec29f5772430e00bcb7a5bb5070b6ce13af5cc8348ffac808edb418daf3ef4fb7430d00043c9bd9552413066043455f163374ea4cb2377440afe36b75a4e21535f6c2d2b03391c94e5a35fe0cb8f7a10864b7a8e015f448176c61de487fda78033e360c6f95d18bbef8f5eb6c84461d9fa2f52b8af9e65c4cff16d4ba60907b35e0e06cc1c5aed38818414a5d276a5043096cfc35fde3312a991b152574904148d67939bd9e00d96a7adbe361978c5f4808de1d9c579f4aaef37e5cff8bf426c52e20d675afb8271fd8c290e21aa9a37ba7f4275fb5b77e705e5a5b93357bc4a9c2fb6642e4f3ce2025c71a2bbbe332321c3a43feace5e11b620d605d0c4c0400ca9cfc05b61b8ff26280417dedfc5277b91f157954d79f32fe50bf2b976b424c523dc165a64239e854aecf54f73c37f58c8039f2e3e960ce0df77c19633a7c01c9815979f8e1ae43d562224c7bb88160dbc0c2cf30a8c0656e4bb0bed1d993005a239d5e135e43d8700de8aae866673cb7a47b57206306c77d391763f393f2d7fc4b4aefa038b136d48ad7885ec7c903a64ac07a6e251cf90e2b4f9c40c859c5084e958b4a9ba6d794d501db89c39e265b3795a8449724c57e7531f6adbfc6d38c9cdb8f7412237edf036975e834aa3e5490bd81437d9c38b38be47dad0cfba08a607cf9fee0aeac6db50bc5eb0c701195f71a846eec2a4aa94239805d85a75fb6520537cb5d5daa4a1e9769656721e35255869bbb1faad3e8bb545c4319b640107e0e2887a8dad0706a80ddbff0a14240666726558a7d8b2147a59ad17b33eb1993560fc86591920aedaf577588eb919ed47ea98f1e8fe629047acfbea4970a0a8ff38a79a9493c5783fbd393b7f021e380b03a840a8996f408fa38a11b7ece3f426a21a0ae74213bd07c308b85398f249e5dec0b63ddbacf66ed4c3a015126e31520213267da41d12fd6a20b93f482089cb72d9a3333e1998a4771c4a9a113b82a3556339fbff6abb58bbd9d06844ac8c09ebfa5b27b3fc3f1560971a6928e871e1b4cfb6c647e4047161cb4ff4ca452f5e47d59cdaa52d3b048cc95f623c9a8d1556d2e5ea05c4561a247f7b453caba3cd70798b51adb9402a1343ff3933d002e660a32bafd210906a24e77c082e3d67b6f6302159a829e0a3c51f5d1b43a5e1a0935f0ff36c85db4d29eb18543b6bac6684d5d7428f511e3d3d1ce7fe085ecb5f30413e733447116ef1049c1deebb657d8f39d6a9119ca5ad9277571dd0c0db4bad59c445abbc0db2733cab1436ad5271bb66d7e8803507691e537ee18c5adb6302829efd40df905679aaac52c8f3a205218202441de54e84ead95c0a34fe053498d713b376bf6e0670928e61b857cce6bc1f216943aaa5194aa64fcdb2c791b3599072b2a49a551ad38c00421974118a747464ab3edfa8c4e10c9189b3414577421fd00514a0f36e008196b70e26e7a611ce18fecf41c8261290cad87ee76bd5badf562ecce218fc76024a3a8138bb0485788faf8fc0fbb5479f238fa6bb2895d09bfda4424ea400bf77aecaba2e8ccd89a584452212a06361c9bb531740bfe5105c7c716de0498df17fbe708c4a89b799010fbe9496f607df4b2ab49c879abb6ffef6a9378b21c1ff76a39bc77b5c997711159d75f6a80707a928059a40dd2f0ec2b98a121c938c7d59037136e9c7dc85742f1c86ee1f72a087c9ddc240573a3ee5de0710a2654a6f0350632236abf10dfa9ab5512288a229757cc090b5010c35ca44374dadc212d44df8ae78fdafa64284845737c552b602716a2d9800d394810e75d96d32265f1de4e43a1721ee17e9e39d8bce952ba2b749c78639b3060061e9e0e7d44410347ebf40f1abf7ce3f08a31320326107ed264afd805532f00246f7d9d320c44b16b22cc1b7f2b56dc1e0911d88465901f7e5bb4c735239c76fc670dbe7aa095f513d398ae8284d3dee68aca0b186fae281ba25652e621f06fce14b34419dbd17e0cbb7cc80591ce7d460a5505ab0037ab0ec8bd21087db86e0483092fc58ad0928360d5cdcc4921c22738dd29390541829376e4dfcbd624011a84bc6ad555a8c62bbb82ae1cdc0078c201d91c6302482b743a097de93a39e736d32f20fcb26326497d3d2c1df5513d268d958e5fce06510db990a54534606bf05cecad01fe6f083fc46405c19416fbe0d5a9fbe14ed114258aae74053ff633ab97e461d402b22cdb7ccc75cf7083ccae17b9d51a9f1983bbd7fd9453ebe78dbb01bb5a641516a3892c64e68147280a885c48d44e5ddb0cf7f6fda7b9ec74d9f61c89d8ea6eb850c9087e1d54d931238563b5350d071b00b532d7d3e1731b2a30ffe9348e9111f409f0a4bbd3eabf9ce4a2160d9e8a2e2825b1b31c8d80908461111e8e9079ab72120f23c398978d758698ffc18b1bc058afcde6809573a3e9aacc84cdc8dddc4b7e9bf08eb892f55fca36ce5fb397dd06a872fa3da4f3e4ecf971fd24ae4640ffac8828bc42c33714a550065e6150abe556644b208856d0f3dc5288a539615cf712ba20a225f09f6c24e70fc4f2e7fad7e15f5e58b6351a4e6b90424b7f10233a527df4f24ee867b4aec8ebd525f212788fcdfe6f65c7badd4e938274036a7363108b91fb7a799c02fa4e25754f4d369fdd9350303d8e01d62031c4dbf37b0278cb47de25f150c6304634327f9e9179bc1432b7e41118ba0bd5e87510f49611d5feb9e09a31965254e0026fa75920c13eace5060a671df0e3b3dd81189e1ef1b42a05499a79c9ccc903e2c640af7c7faff47d8a3c1872b1885afaaac5724a6df1d3fc5f798e774eb4d8840af8d7085baa97b4ec729967406ee7fa0f02aeac5864348e0e342d93489877ab13a0c4595977835ea7d38dad12414e230117c8c2b876b2fd1864acf0f04366d4bd926fec1c1dfad60fff1897c1fbff92824310168b901a61fe7a5b4f3dba88d8393bb23640f2e4203f0fc29cdbee1035b78bf0479ed293213801b3d8d7dfa8d26eb3badc930cd8facc30839e239fc70e749229c9400a2f7d789da55780270f5c61a77b418a1471b313008f91d139aeb6c04c305f94def637826361d03c60d750b01df31a678dbc8ded799dd6a3885e0fc81cfbd6c2b78b78e314e1e13aec5d6b54ede4bc4ff99f54b3aaffc67708812df9408d2d5d698b32baff75797c7d08e5c4774383a628c018cdcb2b17fcf81a735b2f9d4fdfbb1f97af915b3d91dd826a109984d5befce2e7b5bcceef8137b43b4565859662cc5e56cf2ad2d6f675f4578c03e279fd9f9a492cb0eebcd30318437ef0868404ab2a2e113e4cb1f36782b1616592159ff230901fb14c4a650c10d8ae40ee359afff28e7b97c347f779cee0bb3dd011aa138ad4f5b0e822a2f393f5a9768c648940c0823c7261bdca8d046430f4c145ee3d5108ef003fa6231a6a7421e7d221cb1c8140a0d8b68351659fb89489cee8d532225533edb11c13394ab63d32d75265c3995b9b44c09e798541c3deb152eb0b34d199a2f8e02d2bc58173269205f314baf5c200e24205518b5909bcb50628a5afb58d360008846e32bbd2edec77f824946b2293760a2c0e5e6ab643d2c7e61cee3c469e27fad46427802ff2006e84e30e0122d70bf76f1af43d988b05e1ac396601af514a8494fa1570789ca9ff4efb453723e1310f1f917e92d37abf50abed361cd762293b1174e73fb6b86701e71211257b13ff2773b089318e8b3413ab222176a07fae5658a350cad61671338b55a835631bab43f8e95eaea3388a303a2938303b0bfdf01706f94d591326207e8a6149544c09a66a2e2a032701606d0b576f1a22af63567217295b14d69912d159f0914a6617845445c94373853eb59152ac04bbb43bcdfc0d01641bb391a02e1c32951ed8cdaa3c8aea978a23c2d4ad262c245208331c9de7da165d8240b22ba09834bdc419dad6b262ad7cf2d55548c525edf3fc592c8c7580f7609f61ad563e2a40b734b8cc03dfb743a7c964f764336c347b6f1423f4b2176cd1d493ae3493e86610d00043a3d2e8551e2b2cae00a477552a41bd7cc222a27ed38bd5ed60b643f915d7d68a76b33487eeae64828fcc2a44020750be3e96ab6b6cc338f6cdff28701f44201b1bd35510942a6b14a8fb767ab179a84f8619f036aeab544ba9e63e0430ca36fd58457f109247d05fbfa0a02f3649902fc0e18cc6737a1b5aa6573738eaaa77b2954ae2b7f85c561ab8812dc0a278c4f39ab1f333aed59d1e3e0951721294e97977dab4cad215c2dd279f9d4706ae47cfb061cdb33570a7e6694e286a9ce642eb0befc0864d6e6561f632f5197b32affacac26bd6b706923070620f90732ea8cb2fac87138872a80099da81e98481ee157f29fa1598a28a5f2931226e0290c92f4bfed19ec85c26540d18118e064fae509e31f8cfb508831129b309ab7c24266f67ef6c440daa5aa2b98aa653ce16ce213b1617672aa5ff95c930fd459946ec83b6b7d5ed71f582db1bd4da36dd245054a4e3bd79e0979297c22b9c2b7dc37bf8901206f672b3410958dc5839a287afa209fd0951846eacf97c3a1bdaa024a474815b4e481898c6a7c16be4025b5ca37537311b95172246d768dfadeecd2b1053e3411324e0d1146c5c04223a4ac4b6f9687481c1276201224eb1b24a9a2ffd71148ac14148649926ef0da05dc31c633319fcab61021204c4c59d08f8f18d7d35bf4ca9d02230007a68b48e58155424c8030d2823b342225ca5f28338f7fde9a9fe39aaa695da1022765d5e96012b0de696ede05941e812680f4b38d077f39c367ee682c8b56d999eb630f60048c48ad34160b07d4e0b0dd36ac7889567e58895101ee1795f4b8c00b9dacd3258db0012e52d76a0d233065c418062fbb227de81d559191982c025d0b5747a1a44769f94fd3e903d7d63ee02c2e5f34215345f5736371318dfcf75a7459983e0a97230dd77c547a7e0e4578fc19f6d0cf55f4e116c60b0eaca9eb6b561bd8a97543bc85b47e9e42a4c7f82e9a5414c14023344a6250682bf99bce4b779a552331ecb8d63ef1aed751777ef8ddc92251754c62b3b055bbd555226f13253645cd4458c8a31d820d8a51060d4eef0bb00c6e49d8efb97a0309b48e1b3ad99da90acf37c937440f36a35e66c0874b5ab962cfaa89dc7530b42a4799688ef15c5a6d87828279ae9255fe822c68c933a16f3a92b82e8b8f3de78c039903a8e3695f95073904a120539cac80777eed147c1ccc61ae8d06dd3ab60b7ac1f94c3d7d0c5d97ada8c23d253a35cd37478e25e9b8b177b4edcd963818f77657a7a952ceb89d6eab7a1d7996cb6e48cc40a7e2ecf3edf78e80b16edd17a4e3190b0dd3b888ff3a3ae1f7f928984f8f723ace5081c3ebfa22a3fd7ab360c154e46f9f0bb129b425a3c1a05f1e98362de8a8144ab5405c396faa978a4e1fb88451f7878d8343a9c46270b7b6079a47150d8acdceffa4dc6095bae292a3749c6e87aef23ace1bb9d03798b6d5e837ed3d593098d30f240afa84f8c4b0128381a29b8e4db98d45a1f109b8900cd6533c710838b532ccbad9d412c89eb1e6b26220e9d04d7027c93954cdd610d5fe89bf854c598863704207ec81830c00f82b8f99c017083de4c8d36fd9de2e6f6f80321bacbf45668a5fb7747967032d9dff764fb199c1dcb129a10d60ee258c232caaf8bba66659a94b3cc53bf4affee4bb7ad49603e36a75dd46bfe435346141e47c4cbd0e359e14b2afc9d9a794c8698f28072eba5784b4e115432e26fa0449607500879171240fd52d7911ac9b4c5f12913b2435cb50b8488a32af59103481088f370bd9072a187a1270a59b827785d26f44d0429b3c5fc71a2a515e5a44a233e64df5218a43c4a78fc8752aee72aa7a7e6ce861c0430d4949603c1118277b1e0dd6b877b5f000ed1f37ee6d1bbdd0ca8d69e6a6038316e16245417eff31556b7f56835b00ef645fa43fd6fee7e0d2ad15605b9fdad86b30bf8a7b0ccc0b84445452264ee7854dbc2cbfdb60a1f4c69370b09dd43c4162ac69173e4433a6bc5526dab704794e4aaa6ccfed7f27dc9c2a2c90d69dcbdf381337e9864563659eac5fd0ce28c27bdde8f5c8593b74fa297df7b19b268352f6704e9de2566bac86dc02cde99827d129743cb43766539ee8a4896988689e4671806d179b3626388f96d7e74ea563c559ea89b44a8ad330bd419152abb642152ee59f859ceb308db63d42273932da1e8320c1112eaf4c8c1910498f4df43f7a9dd15c1aa4f84147e4c289749982b2a159c451d6ca9f389c66ddcb29ab441e39315b4f33fe9a4ea2973eaf2616ab85b1c0f3b926a3f20bac64b5b6d29d779d6010b58577240b392a7dc53718790cda65e6b1153874dede3a19ed9f3d146d3f0e2668063ed567ded73e29bd34b2c86a32808217005fcdc87f7b14f1104c3e5ad710f3d54066144e38f7d0a1d8e4a0dd43b9cba1e393319da604ccc4dcdb8e6d59f3c9ac9c8de075ff02e56dec05447147d1f8d94883db17a881c8566212bba775081f0a0ba90fb44fab085cce45824565d910ed142bf31c68bb6dc8c6725864cff6c5b7c0ad3f6b41b54e8b06b2a32d90e2adf901693787a30c0d941b7fcfffcb8fd4a9401eaf65e4414e4470e0ef2e0bd6b2c2d43c726da441acb9557a4808da386e707119d19ae2e6718a0c2a92345c388cd172357c0104316ca047038b87d163e20fcedf218ec099a805751c40d86966cdcf5294649c9c6e3fd2f86a1017e8e4501f0f343db33004af08cf2df9434bcb3f10341e52a6a5bdecfe20efdd8b9dc1b63b34b9bfc05c5c056ed8b84b43374f1b27b9f6e9d6cd4b811fab8968ac9f5d77f8c505cb9dcc0a063d8412fe0aa039497d148899d4e56c9e89f2a74d212eeeffa338952c4dd3716e2b191f4c8b60caf90a601acf4c7d2c8a5f74f28523fe3e0374d1d3e619455fd664a726294fa617e6b4c903b4cb339c469ffd17fbeda6ce2a9b29e513bf74798896eab76537b966c16a436746b95ce1d6818479b9b13979778e9cbfe9e32ad70ab561e92bdb72eb5ec62644918616f938081fb424b2dba625fa27d7dd823bf25f83ce9302997e0f52080475c1b2a519818c7b205b45e405207ea090f1eee51b78ace5f45c92a54dc00055e7b9a81f75f16fe332f68ffe40faa70c0d3d6507bde3b3d1190942c46a71622cd226dd109c212704fa45770b296afdd1045bf99ad6d37f63388d8471dfbfc036e0604e187dcd4670135436cda8dff5d7e10eff8bb386b59c349577961605081546dcbe4d451bcf7120daa8dc2084bc383fa7346debefdc323c304bbd30876c02180228276c31c0ef02ab2b54e7c0941f3703f297ea961c679285b87e78385f179617e3f70470051199878f99654480f952b940fe4695e2ae31593e2702010c17a3e0e065284a190fbe213dc85fc7e35f0693a3cc0140346dd86a03445e7a02c24ace97d0967a878bba7adcf01edc14372439d87655e173c5bd9665a48f4a72bdff9e26c9fd4a86172735c54e6f76f61ae08c4ebfc2f487b6f267ccd9e11480c47212a51c9b0e623744f1e3ae131339ff47ef7f2fcc2ae4f8eb3f012561576c8b8b742d1d8c75c253309e659fe1eeaf7a0f0d6488d7df9f937ffc3932cd899ff0a2bdd73d21d0b426784e7b154ae002beb85d803188763d5a904a15b092504f43c71a90c6843e8f4a4f0f0f2fd786e0453600647a67f7d099e886ec01bdda64755b8afe71246bcd85a08d4426537d824d7f0ca49ae749162549d265d143a9a866efc2f79024c1c2a28841c1045a8bf4d7c13d16b615766165522c2a7ab7845fa06bce9e354ba5bd0fa6f0ffb0c6aab9d0799637f36e390ebfd2ab8b259b128f0af382d346d5994d7045e6bde011a2f63be0cd59bef101417aa320c034cab33c0c09f8c87b8c292ce147b459a3c1f37b1007ae1ef84bfdfdc34b18ae21939dd6f020e2cf4dcdf41cd75ab3f64dd8e0642e1e2882fc147dc15d006deaaaf4ac097e3c9fb71ecbc2c883487eeb8bf4f8bf2fbd48dad44efea48b3fde48c2bd1801001a610c1cc24438d40c6cd056f9f56d8775aacb56ae3ea89770760937aa87e87b5b56070cddaacb20bc8c2c7ad1bf65a966dfb7035145b047951f44a878fe5fcac634342b872c1491db43eb24733d207ec2c167120e5f8bb7454bc7d22d85577482dd14c877ef8c1fa541544a6e4d292c2fddb589fa1fddb8f0bdeb6c8857d980e0726cd9c13627a360aed12b393dd971603daa72699be7be3666b57b533f744a566202cef91af6eec2231c04fc2e544df377603f0e0949f15b00af25867cead77718ca002c12af2f80639c7211fea30fb5a535d5ddcc6a8ff15158b8428d071672980a8cf77a2f7f7870411d9d02c9e5b00f5cba641b6fa82cf731c5abd5a1d221666885262895d388aa83065b5d6ff6feca36b56283529769ec4d04d8a8c52eff06b1c76c11c93d056cbc307fd81c6f9d306c25183e7dba1525cca4f08a51425a7de677a38d3f4e3a866048fa2b8b99372219279c18e807e554531108b6beb1092927dfe1a0ccc9160bc1e303c0aca3bba897bb8ce010297637a913cc6be3791f8d0fa37f5230348e35f9b43453ffa7c03f430720472f0d774e3cbce424d892ff815628679811ab15b9cffcd0b1e4cc4fea888f81b12c1ea041a7d457c8ffb918342d92abd0fbe1de2d914f8d958892b14b7a26a0878293e8e0603265ad68113eee34364541864baad05c1c4eec3dac96a4c88e88dc278e89bbb1c0399ecd586098c8861651e35fe0d0e4c265d3e58ce20df3c574401e65c1a53fc62a856e854664ed4fb54eeaf4a64f1e7f280206c11944d6cb51ed9e51c7faa84fce8323d295b7c11f62c943b5b2faa25297359da888d22b8d94bdae04d202553f77b2ba45c5d989f645966c3a4f04e05c3b608998fd5f938e52fe34c44ef164c869111d56b034b80821685372477e45f91fccadba33f62b7bfa5a7d25bf1dcecc2a37b96ef9fe2abafa4e84d3b8168da23bc9bb939b15a7ee38c5d15d12459c75f0757e2f9fe3dc5c1ef7753e39fcebfd6bab4355e4330c96d77ca2c1faa147007affec798824166386f75d3a145eb0539491580ba3bdd974b6b7540f58f84b9b63e6377c8959b004d91f9e54caa5423bac39f8fab1838922371fb9b5c99412e60614682d20dc9b48c839bbb2409e28c72de757f93af6332f5cea3e3241e4d44738c11a61a2eb398c0175db15891c2ee920d7624c06e5c4c2b22abd8fa19f729123a436012f3aa07905164b9d08c08c6dcbfc76c16c60233bc061f4e5bf8782168e9aa0833a1003ecd8c509c8ab820189518d989609a9d2e811e9fa0ba71f7fa3e9c35a4d811d2c418054d6f1bf63a58b199a9d0a2c70965f101df486d08a202994be8861098bb00ad3a360a14b75eb38f869e030efd7a7aa47e84246333fb5a19c9df4bf96be9aa922c824543466d457caa514f54b754ffe629120ab12154a3ae7be4ae5a0d7928123931290a914f780a1f6f5ce500cbbbcf0d7f39576e33e4b205042f4cd8ced39669fccb9763a0202c4da05c4fdece1eecac2b1893fb677382bf70f0cb7bb459b5604711173aa13c464e252316514a89fbac89b11c181ebb8825760a5532840d0e0d64bf0f0a25f5a7675681457a026f40044332e91026d0c6ea93483e1ece3aa5804adc3874643c897ebb280b5880fcc0dd11757cc8269491f1a18627faec432d0123e6e184a3eb99235a8657cc068387db86a1640ebf4c1c810f6715d2ca116e143b321f2cd15597447318819208a701325482ea4c8f9751a846365eb64937371d268557f95c60a131318cff8f177aeb121f6cd58d9f6d36057f4025d1b9621b512026517b09fcc167cdce25c6fcb23b5082125b7a620c05aec1a666793e0234ddfe262c48c2838a49c90b05501e6eb1417425cb2c2e7a3078e72e2b86bffe344f3f4d9c9e3a6cd0e9f5b32bdc8bc82832ae1af7c0ea5f878d3fd83e069a98bcac4beb087e55fbf14daf462b3ab229b7ade5d37d90d5b7e0d28abcd0d38585b8695900801a1d75811c2b8e0deecb90e8635a67defea83bfa0570ffbeaf45feac3c7e74349f1022250e932943da0e232789a46f6eddbd3aee5cf4e9122b0bc340b2e070007e5ea365770b29dc29fd82fd8236f8467df09e583e7c65d895e0bffdf193e70891b2ea0370e3b222369b8d99a6e9190fe999f7a5ba41c381b86694aee7b3eae7b4776e371e5fd357b1a8091a1240834e9b0c42e230a7f56565ab4093ac5e22c1eaa970132d0481e3e7e234d330064340c6891fe77010a06d42a3b72b37400cb742afc573971009d7af5a56e8b5aff99154038f9dfe87e5f0dcda1ab3790b04f3c1e6696aaa61801cf24c96fdcbb281c9fe49dc386e66c0cca4eeb5e338a22d3ea4f874d2a1a76a25db64f72e50f482bb594dfa90b884aca9ee83395ce3c566b7a00e166204af2c777b7403efdb4d747d277992b8c841b5ba76fae0294dbf8f65990766ed47f0d23767248effa9da6bf5d52882c0ab668b4de0f5d8c7ad60cbb641c426138bcfbc2b7d444331ec0225a2b09f2e0768651f56fa5c4cc87aa84a586c2f911b267167b3eb5fa2f80092e8348f65144f8a777ca24cfd39f248ec85fd903f3c87be5beaa09e9338f2f98a4ae88e7571cc16b174d7c901da64b9eb9d1a63820dbbdbcff6aed50cf1597117cb8458d825e0ada4de50a9c87f503105df53f9071de20cf54febed9423b557c1aa28f83719d069d3de9b3cc1514d25e0949be0e43f30ba233f050be9f295813e75355862ffa1a37132a3f9dccfef9e14d72b44f6beadd477442f035ef9a0e04c3ba61845f058cfdb91d02e53e07d60ffba6e35667b8ed868a265a1d4d29315d91bdda63d501c8aa36be92a356ea947c2d2a609a3f14097d71be56fe02d44171b01673445a6c9e49a0b060c207659eeefc959127d01fbddf5f268235d1f68d196bbd4cdcc21b9f58df5c7ae4d51e02cc9ef356967a164ef45ba1706395e789653d88908a15c6cc792ad722e179572126cc6d30ddbd30e334895929a1d96082db60dcd4ab8ca06772ab136c256e161b5683be01a68370e430ba4a54b457193b60b85147c1fe1ea52cb1243b8b5459b3198b213b8ea8786891c16377eee96f6a5491c68a3b197183dc0fb9e6f7b3a4d7c108ed029609c0b0bdb8557503bcb93da9205af171196827c0a44cf587994d7e2e85cd76a869cebbe286636ec63da685b4f35c167403c1a1125433e0ec60021735a5e98320a450bb4a155143328b16e7a599754495d324c46a9dc1694423ecc0f15ca51b1d3fe74dc720662340616325f01c5fe2d683a089a1a52b0841aac9012b5856c213e7e4c991a2974a2b7907043b39845ec72fb05af3accfe526270df8fbdb41d39f262656434f939c4bc0eaafc8134cce23061fdcf59951cbb46b860460c7d7c92cdbb2343a9890a8606ab91b1de3b25edb5ab0a45aef9a1dd7995d7ded82a1aa865687de0af4d566aa0aeb0ad3d94854699708be3ed8e22c1846d5becbb11f95249843f7126a7a8cbb04a4c18a685ed0aff2eaa8b1a597619b86622faa8018e4cb2ebfdb7eeb1e9c69c32418b0e565a0a8b581006d54e4006d75e310fb0e0a603bc1129a5d613bfd3383e104a17ad42944515e0c5f4834f7fe88f4645084aaeccc42431854f8ddc0fd501bd963feaa8056553bcaf727a8ad883e635c0b8e5a2c1aee1e779f7bc1ec753790e9a5a33ac61b6c5541a5dc163a1c03b92d817c9afb972008335133f0fa5e6d4398065cf012c111656508f9ef8c0238f163b40f9a8bd089c419a649621676f13e663a6e9af5b7565b27fe2740b8f4f2b13201ffe815c45004be3ec4030e5b20d459710ef5ed14d21368ef89ea4e94f7317ddc35746eacef93df1bf4a7d6ee25694fa073046bf15c94ed7ee3fd70528b712508ba0033e0ee40e50cefe61676c7a61f36c641dca9692051824011841f856e3711c968c996324919380dbc0d540efe81f382267065fa8020495bae8e5d638cddfd6f69f1c51f7077073d83df07822008822008be836076dc82eb640ec32f7416ec867fb5fd54d87d190abb2f7bd8bd8f4bfedd7befaf258c31c6163f8973f694064c26437416cc6af1ad0edfca54980c8569d9c3ec7fda7ef671b67fed7f4190dec37b9cf2917571535580d2f8277685ef2f3b87aff4a226ea2103564ac39789b0311541990c98f8a326ea21c2c497c9809572586631ddd9652c99201982a459e217cb0c881f822fea9002a82943b82b70dadf5b4d8170e334872f045f03e19fdb9aaaacb2e05f5365d3028427988a3edcece012bcf47cb1675f61f097b72c5dd1430ce6efcb60597a0b87e5fd717eef2bcd2ebd2563d5fb39df52597a6bbd39efbc51db733fef90092042c8c1cef6fbfc9f3ea338f193dfce4eb3bf9fe11dd85f8ae6b524933037e9a569ee1a5018d91ebb45dbaa01051156b55818910218d0e007135489023bcd3dc361b6687b6ccfc54ef0ec6cc26cf184f3fe0af30fa3296d620dff89bc6edd4d97c7c503739d8b55b5beecfbe4f7b7c64e0435763ceccaeefb9967671d14b85bd8eca60c3e592a511898bd963b83bb86123f72ab861232ab7e3855893bcce9f74a2821ab716ed1f67c9f49f052e06ef11f52bef530cd7349fbd6445e14a787d986f3ed36dbf8791b8378c6eb85b88d1fcf3ec7e119a6611ad2c6ef389c911ce739cf156dfc48f8162125256d7fecb708dfdaad6dc7d7ee6c3ba762199a56b757d1de1779a50dc08c948f90afe45e3e42ee65a48c846f18865b2c95d61d140877b87a60e775c7ceae717bd5e11bfccf33135394f041d2cde27421b7c1f5f91ebffbedfa7ce90c771b5c1f7fecdf0ed7dfdf6b73d533b0bf778d73d585c48d1db7eed81f7e4c817007896eddd317ef778514bd54ddb74aa46009d54d65f6ceb6ffff3d8eb7beef2b7d699377d43248be27bfef537ddf774594fd5dc1dbdf7705d1feae38dadff77d39ffa755f9fb70beac8e6507ceb7af7127038bafeef5d58dff718f1b1f976f447e997e36d286b391bfe32f99f6507ee97b207ffc1d30d394f16aa955bcc24feaefe1b438ed01c9fd1ec21fffa6374adf83f8258c9f2c8de4cff0f16b42625cc2cf92f16abaf1a3b0f1dab2f18b8dffff53bfff74d9cd2becdb543543e9c5bf51b2df433aa63b60375d75e46dff860fe444b14bc5abfbbf8aacf351569053fcd2758d79b5b919da85129c61fa60aa5a1de878072478efc52079ef3bf9f81350e2f2f77a961efc2bc32ef141f38dc637d331680757c1f12d4c14c537c5ef80f9dd1f1b7c52fc5223d32572157663d8b583afc00741710757c107c17ff055f04ff051332d008a57e0e92a98760049fe0ee027dfd30ef897a9ea7bf1867f99aabeb400e3975cabbe2fc9c77fa37c7ff271a89a013ff937fc4b525b7c6b70da4be4e097348a57e08ef3ca5c053f4c6fcc55f03d70de3b0ba990963c591704eccaff5b6536044a7bb53d9cae2d7bb5bd2b93c5bdc9b0b4d9c4ffc4e24a395d595a2bb3ad51b8b66ccfcf6387f0571923f175d801871d7a3be8d05bc920ac6af71a2e31db0107b237ee8cc30ee088830e3b9cf61549e0cf80b2055be2875597202a4913b5615c5a96204a75f0956333e83eb9615fd685035ef983600b08ba80e00b08c280200a04532018038224c0c10937d05003d9e2f202834ac5a09f49e3dcc1551d9706573dade1c9f68fc15b770757ddeeae6cff1b700ab0253e20c29c34c1aeeccee97a030d76af7647c30d250d35dc90f1cb76394ffb86afc30edeba36074e9a10fe6706ddefd15083affcaf134e1cdc15beff0ef66571d0e2ecb5b8bcc0a052660ce1356b94dbda9eefcdef5a37615526afe3fc816179f397ca4f934e9225d3da810d3e8945db73af9bf2bbf93d298303febe74bd319cae3629a73e7a90847d3fdb1771e71ae5be668d6bb19bf297bff4c9e08083b7f07bafd793c0755998ff9a6f8f276cd86a97b03d0d7ad203abda7dd3a0273fb03e765f7063195a956dcddf4102224a34d98980064d10c1eca3d8d5421072451801921230d9c12c145ac84036041938610823d05972e4a4063458a2085558f128c6f76160685ce383e98a350d4c104efc2b0c0a3ef825f043f04be0db50084c739a4d2bc579378ccd20fe2c8172632c1e63cfd9e29c31c638e77cb18cc6cd39ff06be235f1e4b9073fe72ce4860d92de2bc6f419cdadfcf709c3de77c6dccfe52dc04f83d28fef7a5328ee2989cfac4f7478130e18be8526a194ff2549a4cd3549ec873144517517c114518514489624a146344119511c519519c31e10f5bf9d7f0c127c330fc2f05f3ccc6d9d5efc1fc7d38e7ec3065ce39e79d1b30e2408516591322548802dad2552fb7c3782b4cdf8abfcad8f867e3d529635d285ef963f24bf34da7c78fda57cb870f7384b3c6e9aaa3583cd3552ca1e80cecf2d2af6809858d6b6cf07f9f4f667bddd492a2b607cb9ce9fa809386b12a8a83499f303a98ba3c7728b558ead860c619d8259c7bd8e05f70756d2f4f18cf5805185a644d86d8f8c3f8739a25a0c2ceaedee79d17b4c2cf97a182f8210e36cbbe378657f7af118ffd356fed1eb97aaf11239cab4d0233e0ad55edc15b2b0dee378645f13cedef9c1a955e0757efe3805d34947a34b87aef0cec72c01358f0c0084c8070014c8581113c84184112232002ec3e4b86e8798b4b16d1eecc87e77b01aec22333553c8277f68a31c663907d7b6464adb5b6fc147d8c31a8deb48832979bcd8b4b0d8cb51635933aca7db86d6bbedb912b5c6e6c5afe6603df912f5f714a759967b46d4a65db5e313b8f1e14ff08e4797174f46de03bf2d98e8a6c743b082ce7fdf5ab6d8b3106c006be235f8fcf06be231f005832ae205577c6da20647006bf100cadb522bed65a8cdb16dff0aa8631c618045d3026c796922c735111d26996482793798a600dd74ce0fd81249eca1b042d97eb89f10bce16971718147aba0ae69822a4322efafcc594f7057876e69c7346917067645c3543a3da248dbf1192f7bdfd4f17c0575786abbfda26398d2109270ddec2a90a3578cb53a3ef555fdd4f79b4acde57b12b066b7b0c15d6185b0557efcb70f5c6d8f755192ae4fc77e78d5dc5a9328410907adc6027821db629b524340142248a2a5cc9790ac5d2487e699ade3e0c6fad2aecfb56c57f6a1cabe23f69d5aaf84d9ac6aaf84d8d5a18abe227f5694babe22f69d166ab620ce26cf0695098b3fcbe9c53a3968fd1e2a50e64483e30f9a1031dc06e123c7ab2dced0ad10f60f7ed7df1bec5b9a7e31ee8920a2952e1187453fec0502c95252a8eb6fd71acd91efb6469a2a7898ad3be2ddaf62ded131244cbfb9bd91ef4a469a1c28508e7fad5605029544c4c0ccc8b4b4c4ccb191313738a31993131313ba215f2ba48231402374eb119842dc6b16d9f95c30f14cb5c04c33bc5b246d3b341ce129cd8b169cd61b7edaf227a9e258c59e54f660d9afde2f2d272bebcbcbcbc581953c9c6db1ff83b60f82d988e0f829b7600896a06fffb37fcaff83b60e90df271da03f9b5149d1656faf03f93f9a6d2dfb85f2a85690fe1e337994ca6d34cfd4b4dfe28fadfc8eff8f383e98df2c9b407fff22ffe1bf7311298ee805f7c51fcfb3744500453d6e7690fdff7f7a63dccf8efc7f3bf21354042102d98c5623017986d51c1e902b3b0fb57c0208b0d8ca400064caa80ddd9fe7e061e334c7c171fff574a7bb838bcfafebefbdfef3dcdf87b31fdfeeaf0eafb3e9e7bb804c635c2bfe95a82fb3a883fdfcf3ee8ffa51667ebf91d638c33ce4a7ceb5dbfd730f29773063fe7efeebcefc95d1e40e26fedf7f7b60871fadb9ddd5dc84540a6d7aa1f07b6ffb75d5fc079d021ee6b7dbed781eedcc3f6770ae02db4f0d8be290fe0eb10f777098037882fe09eafcd260ae00de29b777cd76570713a6fcda01c8c7fe7773e6767e773c88fe32ad6f935ffbbaad2e0f4c7396455fdd3ce373b9b76b6d9d9dcb966e772679a9dc99d553b8f3bcfec5cda5966e717edeb7b54b873cccee0cea99dbf9d513b67989d7fc53bfffab2f3bb7d859f7f6dd9d965db97f8f94ffb92f99caeeae72755ad3e86e146c557d576fbfdbdeea4a8a893a34f575f86c59d32d2ef247a93e9a6e0bfca80f1165661e3fc38a758c6c67191eabfb1a9a151cdc8a0312954765c9526fb9ef961f2bfb8e46fc97fe63fe537e537cbfc64fe518bfada9efca176db931fd45fc63ab744449985ac0f5ce08317943ef832f9d69561f6c5175cbd5f0057efc710e56480ab17075f5d52879bc2f8fee04de1134bef207883708238bc8f7f0dde5ac71bbcb55e60d4a0f5a121eef0dda401ee30a580074a9fedf16f7f62aa0adf6e158dbbc334db1e4f6b7075bb4923ef6f7fe90dae5ebb1980830ede0acbed0f9a30581fb8c0072ec82a21fcfe1228f70d764a0dee8ae105ec92f1f7d5fbe77d14e933526e9c71baeaa0c2f716069d03fef06bdc2dc45425745ffc1af7451d54b8c08e9d4f1857fdcae92f04b46d7ff1143b70c34dc141b0fd3f9a7dbdb6ff02ee6a8bb05adb84ed33b0ab94ae628ae21f531745100475f8e4e9fdc11a769d7f82eff23b6039ce6ff91ba777393d98de38bfe55b4ef31d2c7af057f0087c13785a3328bbeac3356538f7981ab53ca8412345d805ce5ac02270e6aa3f38dbfe60cc1f94f97f48fe5f92ffa9fff4e7679300e58f5f8e60f83a949bbcc0dd35c8b47c50afac0dfe38d61004e8e195ce5b42b2ef09db12fac1aafea2789e28faedac3b7bfd62db3f46b368b6c71fd5ac9466e968560daffc67340b46b38a5cf597d12c22aefa979a35b33dfe26cd03f8e5932e344f0decca3fd53c48d8957f8ee661b78011f578186a929979243cf0a0e344bd0e74c3bc0e71a79e02778b1df33c48d857cbfbf3e0c0be5cde9fe706f6f5f2fe3c4beceb7b7f9e23ec2bbf3f8f0decebf4fe3c46d8d7f9fe3c37fbc2efcf5303fb32bd3f0f0dec0b7d7f9e19d897ccfbf328b1af99f7e729c2be60de9f4706f6857a7f9e24f6957a7f1e9b7dc5ac20fb26dbdfa6bff2ec60fbf3e09c85f4fd491cfdc16af47d1a6d6dcf8eb6f647b5e3b3e6e0e88ccf53fe5e5c62f6c5d118169342c1ccc8a0261cedb098140a06475fd88b3692b1603aefa28d6432603adfa2bf9c1a61d39ffa02e736fd495f00dda6d44827b556006bcdbedf8305b3f667bd015a65f6357f865b1879cb1c6d61381a84b9600db13efea0d6716e21b6ffd0132c215be72d1610abf2b0cb878af5b1e2a487e5f4c1c2090ffb10db2cd91221d8fea4f6d9d91eff51fb94b40fcef6f88bdae7667bfc8598982294f3968f14ab0ebd20ca50cd5b3e50ac8a049f1c017ad8e5c3c4ae7ef059b2fdfd8564def231c2aa2edbfe3861eac36bc1c963dbfe5acfc0abfb7f43b650625d9a51622d92bbc43a14cbd40a02300350fe9063a9078618823cdf8b55c630bf168d61996cc66d7b8044e3770921405b91ee0868b338abbd82bbf615f336e7f5e3bcfdf756cddbf79db7d0b7ef53bc75f3f69de72dd5dbf72adefab7ef3d6fcdbc7d6c1f1379cbe6ed631a76b978fbb808bbd4b78f6fd8b57afb18875d690fe7b66ddbc735eb6a61e6630516b2ed6320b6e5d37bbf625d3588537af6b10cbb76de3e9ed997ccdbd2c638d61523c9d515c6a6d996874bba931807914fe69ccda0f2c9affc4cdeb8b33d38c87c120475514e3cdb630699469e19546563d58b6610153c951e77a219743e592ab510e15c4f481bff48ba3c59962f4f9ae53d4d938720304b90697cf254de734a100f35f23e9d9e3c4b7bda93c9b6b85992e36db1d65a5b12654c63cef6e0d77693a449db93e6c97bc97bcabc35836a7e86cba84cfa6e9224cb1666d8c70a9f5e0d3becba71135b986d71ca2e461276cdd08b9144f4e2755e6ba29cd74f5e2a4e1209de165b87ffddd68401dd9e8eb9171a49ea75748f872181f91c8d04f55af7789846c962501e564563aea232bcc22f16cde430499265796a8b712e5292244ffa9ada9a4a52db536666266826e8fefdd2de54153a5451c5ad6643a1bb958b1c3d2020e5d0d99e5c131a912223352044c90125c7111096408184638757bc2a5736763169a4364d9a0357c4b9da29bb33e640f8536d9bb20b433348f5a159831455289824504441878eae0f9ec9343799bfb189a9b9a5d2d5a7c0a437f45d0b283c283d1cb21a72b68768af272db23e21d91efcaaa48d7f26cbc63f748425091b3f9aaeb60918fc5ec79c4ecea86a52245444b6304365668a5a9895178a9436cae1ed55c5c1c3d1c32b9cc381f238da58c8d77472f4909221db8ddb8d253770de9af9197a37a6b789a9a1c9534ce92a56396d0f628f023fc5217bc95a90d91e9b74f5295362d2d5ab54a94957bf728526cde92946122a237bc94e31925c5ccca0fc2f6528547355e8081524a5fa186c78552b224243ca02831631c4f44a2686233110f90a3fcdaf282de65751a8865736bc12ba092d71d224cd3198c93024c1a085bb724cf174f52b59b268e15a3826dae98a89f00ffc034d72ae3ebd1c65e693a34a7f86a35055543fc3499bb4a7c3e570dc70e06ca2cdf6e0a8e13082a328014909d02246a424c90f22342884e8706ee06e3489f26426c52143d1c4a03ff3f867e8a5fac6121d3328e675cc1a79cffc0d72aa70e4bc2553736313a660501fa6ab8582948241d91ecc5cdca439682f781bbff6e1d91e7ca28f3283641e65d6c85bf564aa6cc2f6abd5a33c6c6b8623ac3ac36dc8e633f4708ea128065a0c426298c1d083e10a0c48306499e1882746f6cd5b3114b12afe273f36fe982744e816aa09d95c1552e264c9c69fd3553469a0f64c0a43520d39fb33ea2c1e55658d5903b5513b04596e0837e53d67fec60c4255aa99b76690ea67b82e436db78502c785ce81cb21a373dc6c8feda816cb419443f663e62a8e963d4cc3e43022470c91f349941b4b7c854a6fdc9cd4846a424742366fa91e7f0e9ab7681e7f0e229e23675f321f93ae3ea5ca15eb30e9ea596a6098225639af3491b34de86ad2d536b1d3d1a43024bd2e47f7b871e7ea3865e357f17aafdbf81ff7b98d9fa4295bf4bd2538499c1b37540e5c8e25396ea8ce31cb212407911c4543367ce3865d398cf80abf0341c9698170245a2870e470e8700cd9b00bc7942aa22acd41b39dabeaf637db837f86de0c57dc8571e454b5dbc6afaad9367ed2a7fcb42573ca94364a1fa58d5c3c8ec691c32b9cbac001c5cdae4971e85c06e7aa92b9d0e34e25c3ae93ac68e3186de393ca054e0e8e27bec24faae56e55a6524ba315bd8ce05c6d15b207c86c1501284da60c4ef3269346de3332355ab77bc1433af1d02b1b7f0c4d152a53f494296d94a393a3b3dbab6d82b7f1af28d9c6bfd243a91edae1157e177ac88657f8553d1483845d43b826629070ec681c361a871257f1d3681c371ac70f57f1ab348e99c62144e3407940d164c7bc8583895565d885230b2a936d5cdbab8a166dfc3afa468ebe71c32bfc38fa460eaff0d7e81b3339ecba1125ca948d67721bbf69d240379ae2902539ad931a0e26a0d8603bb129cc70bb3ef8f1e378e22df4f1e3d0794be6f1e388e2ad99c78f23675faac73f43cc5b358f7f062277cdd09bc1665f348ffad5a7fcaf5ee5e657bf62f3ab678979db842dcaad09dbc63f430fbb7210f115fe29a87415ab7cba9e576ed215b54957db03d9c631e9aaeed542e96dfc33168a5c94dbc66f3269a0764d9a83663bd79c1d8d7e41e69842be559f35aa9a19751bff9ab38bedf5d473523bed6c0ffe992a1bbf0c6fe3474f5336fe196ef72465e3c751ecd542b96dfc248c941e61f418050065d6e3939f32468f4e6c0f7e1c6d1d681d7b1b7f4a1bb97894364a1fc6453aeaf00abfd6b287a5e9c8c32bfce40ae54d4a52b150bee8dbebb5f0e96b4933a738723138d7991d14b98d7f66875de39331cac6bfcef0367e72061039da00954420d58c0c1a13822f2e405ffe70cb79baff6277cbdd276dcd7bb7a8afd61696dbf8c79c7dddc7a5bb6f6a6d8fbd32eeb0710634212dce4aded667539106a2dbbe987d6127f69a93ecf5b4a9cdbe69c6cd0097aec331fbc26fb3ef7b147779155ff94f9952a5ca952bfb7a962cfbba167b3db5d8376d21e274ddfe2f759e92f3be679b7d69ecf966db93bf59b6d94411fb8b67fe9ce6f03daa4f50f0cd393dbdf5a535ec3e4f47e7f7d865ebaddd5cb6bbb5a4a3b3348a2b9abf0f04c350144ba5718ce2a4316bdc6d531a57bd144da8abdf97ae0bd8d8f51981924f3a5d4f977349db5fd7d385b8b6fd753d1da8735d4ff7e9743d5dd6dd743d9daea7d395f07f34dbe30f82e0263dbfe8bddbf60fb33ff8edb6ff07e6108b7e72e25c3f23f73bf29698d3b502dbfd33e2ea77f4f97f354cb33d5feadfd167e433b2ef06d375011bbf91aff61de9ece344bd6573f6f57bdb6aa2c045ceb3bbd98db9ea57767fa0e0a2e062f11cedbcb39895b2437d6331e761f1dcc5e2391a2e1ac10bdc48c5d81baf54016d23d29885fcc009c80f6ccf28263f3ba71f0be21c93c6dec864877aec8dbdb1c704b455016dac7dff6328263ffba61f0be263a0ed05ee05d298df8e2315637896aee2711ced1e1fc6da970ee493a49fe0ccdf8fe96a77357eb6f8333cfcc417b41734fb12c72f8d8f4d1aac2da6d6f68cf7eef005edfbfba40c4992a93dc7153544268f332d01bbdb39e474b5bb9f3d22b14bbfa28684ac3da6373bdb6382731d6f76f635bedfab57bb63ed319d81bf74b3e3e1ee75dce19c8aa97d810452212dce3a1393c1b9ebbefd7b415b956b7b5c3f8dabbe73d5a79039e78c730af252b08aab38e015dbffdbb13f50d308a179f00a9a9dc35fcd22346a764e5f74414eb007eec0243bd4e00ebbc4dd09ee364804f35f6d97c1edd52cb2fdd7d515471c155802236ee770d313c6559a1d83cdc3ddeb8b59a466dff445677bfc839c6ba8db1e8ae5af3a8cb87d3fb4af99d80ff97b7ffc9f6cdfbf2b38f1dff5cb57876fb6fdf1cdf2cdae1255107db31ffca8db4e839373ce0bd8d6f684f893a182b7ee27b32df173fe6c4baf5621c60fe7fd35860c571d8a0dfa971361b0f20d7292f9b38e176059aefa876929c9f6f87b09d69c24860c15ee4d75f8663be72b816fb659aec260ab6c6c61c070178dafb04bf4958b2b3aeabe1ce0d0b8ea337ce577e7be0baeba8bd7f9f5fe8c175cfc7d179fc37d9c9fe12f78ebfabdd9f7daec7b6bf6bd34fbaaf61df79dd9b7b4afcc0ef78dd917dc37b5efb72f6adf8bb7dbd7f7b7655f977dfffeb52ff0ef9ff615f3375d55fd82c6c17917bc85f3f7310ece93b79ce1382e521857bd445df5576770aeaced2c5c0c6fad5627c3c59f383f03e7fd5fc049f14984e4a638aeba8b14860339ef0cceb5b5b2705cf0d62a2306164e3f9c54ff8d4d0d8d6a46068d49a1605eaec7aa28d9f7bcefd272ff3cdd37992539de2fdd1741fd69bf8fafcd065bf4d6ce2d35015afb81a1087e5f0ec11014f3dbfc65f3c6c5e60d8b2b8d64b92a35f62c039ac70143170c8660f83370a845518761f8321930fc81a1687b46b2fc7676fc7d9f499a4a7b1d7f0ee64c96ca5ca619d8f9450b2b811430e132a7397c20a8b221289aca130c164f18db933dd9933d4bd17eb6b92486a60c0fc179734e4572bb586b4d3232219859a0c16aa9de5e554c851500fe1c1d5485fda16281f08f31bcc21f9a337c30350de2d91ffc6ee45c7f6a2b2c5901b74212b6357444e9c515966cfc2be4b04b4d622104d6c5aa82851876b1782cccbcf5436321886dfd08b142ce6585dc0a397085dc0a391668b0da4d81b5831d3d71522b096181235d46f0be6c2bd86ccf4fcd5bdfbf70afdccbf612c5711c4f403700c20125017403a05c2b04ad586bd60ad2a2bd8e8070404900e55a2168c55ab35610a01c500e28079403ca01e55ab4d7d1eb28a7979365e3cfe9e520954afa5ed028254b923c5399cfe92be1933e8b57828e6924f44de7341331a992a8d2ba9c2ae8277d163aa691d0b79c662246c7523aa663b1984ac7b42ea70a9a530515932a89612a93676a78bca2196de62bfcb1b3e6cac65fc3abe995e07cf29f244f1c8de4fcac79c8e4bbc08e50544caa2486238b77a55785677b6c50b14b4cb1f1a34533540c93f0a746ba9c633672ae333a168f55c55dfad799291bff8c6e66e7adef49b22ccd1adf9e79999c5bdececc681e6670342a0816859a0215848d51bd9451aa28654b15818a49956a52b79927343b1dfd73e42bfc5303655028542a954aa1d2d5a784eaa16a52542f759b7932450accd3a4334f54e9eaa39e251893b9a3853a888af5a972baa8a30e4a72550b5763b2d58c917e196d94be1371ae306230623eb31e4d36a315fd80119379d30c9a79d3ac91b7a9b50ed7367e514866f17e56f0431bba0d1d11932a8921f853f3a15b4caa2486a0f61735892729ebf66a77504483466347d390d120721a3157f1ab2e3a284bd095a05e501557a94c91cd3488677b8838d71f7d8b712bfdbaaa6dfc2b1a76dd3cfe551176d93c96f90aff2c46936dbc9a2dd938c7629bb5fba1fd0821fed4d42dd424168f354548ba8ce0d0edfa3c7122b27e6aea16ac29c29f1af95373f9a98d3f35f0a7e63fb56fe886df2c5d74281d26dae2f390f7eaa27329b58d9aeda1d91e6ce3882dda3686581b40ac90bd73024a4e2c627233c2567b1b1da4242d829cb0c5c6bf9a1fd8f84d2f3ec4b95a266657b6f8ab65c2c8c60fc30cc34083a1c85b2735091cbf2f7f1af5af650fc3f91c51c84dc19c62f2cc29ac9a12856cb367323215996ca6224a6248baa84c379727d70785410423e62a09ce205e5095a09eb7be29370573777d78de62ed5c35a7b02d5614319f9ab2f19b3dec62f14c46d6f5b302531176fdd04c366f0ddd4c45d8d6d011a92fa5abcf8be9aa86e9fa64baa22e664f959a3dd36de36fd136a6d8d8d988e23674b627e7f2e4a6003b327737051b502c2b8a277be72d1b4eac8adf7cd4e5c95ee2898d3f26ddd9880925d99e15c8b0cb860f76e5440b212cac8af3d92b8b5762f1445ec8e215d9f849166fc8c6efc2e289281dc4ab627bf0c38e6e0a4154581f1c54459a83a3f2fcf5a7b69f60d93e53f3896ed4462e9e3c7f5a5ac85499b591cde7681c91e6ada19b0b615b434758b508bbd4242c8575b1aab03bec62f1f04aec79eb87e6a215b6f5238455c95f7d5c7e555b7e454fb108460c69e387d136ccd84d81b5bb3e43474cd9f8b10d2956cd666ce32fb58d22db83ff45db90d91efc6a1276d928625755d0583cecb201c4ae8458e2c70fcd5b367c5815a7ab8f938ddf255d5526fb8dd8f85bd2154db2f19fe97ada258ea8491bcfb60e78b18ddfe675500faff07f3a08c983b2d81efcacdd4d214809d6c7ea80091bffcada6d6c4a6dcc6ccf10e7fa53d3316ab607bf8eb6382db6f8eb8f928dffa7865dfff87f6c26ae09aa8508912277e9cfd1412e66109806f18a9cab399b9942dca51f3f1983a35d3c293353ea68fd393a75f1a5b6d9af732c065375102fe88aab41484149260d9f3da641bda273356b3ae06dfce691bbf09b4bc45f4d251b3f1943833d458382a179a1b93457460c2df8c5d098eec32c2c6ba37f1725bde2dcce9f12d9621a82faf579a3f10daff2db688cc3ab0cda9a2877a81c024723ce5249220423eeeefbb707a2956dbfd4b32fd45b9efd8ff611f196ccdbff8abc05f3f63f233a6f536fff53f2ddfeedcddbff86d8144ceb27c4b65958d5ff03625b39c95559d1e7030d0b2cfb936d2b54aceb8b7d33fb2adf7ee6d957588455a748b1adcfe6ea1151b6fd0cc5b6be9babfe9f1276e5bfe6dcb69f9958d7875bf3926d3f1b615b9f25df7ed6d9d7f8f633cebe4a6fc5b7df8e08c9f93d1e66f31738b7ead79d6dcdb7ef3785d3a738f645f3f6d51c9b82eaedd1795ffb6ca198100f513c65a8798407a8d4ede62dd5920f00b62b6630144b235992e054bd692ab1d6d99f367261d21710774c6a74c3c2b192c0426265c14afa09c14fec67f61324c6c4e70f6d17850b2d73c3c26117cb871a0b570467b2704058381f2c1c2b092c245616aca49f10fcc47e82fccc7e68db5ff5a7538975ce3eb5914ebf8768a3d11e2c984e9a948484d4dbf1f0b67b0a96aee05cc5b33c4bac5d6c0da650a8a963a2a814a8cb5db15285ca0eca1327a7cad4d2620619e96f29b1d6bb461bdd3c8d36526923990abbf97f93a679d484aab9d127ab489191da110d11b41e91215666dbbf265d775029d3a87d76395c152a53a4e89c346192571e9b8d54b5265d5c4ad91137a1248470424e08e57651c86432d97d21d911b6352484bd796b88e649d8d6101116e7ada122579db0aea118d81c760dd5f06a2714c57aa22f039f5c17b0afcd26400fbb583e6c4762d2153d79d0dbfe77488821da101143454331187a6208d43ab68926db9b78cbf4fe433947615d7324952ab1a6394282f3a278088a6e142db14e01212353628d024245435362edf23a9a48e77b8830f57bb060386fa393d3614247b7c36327b6f3c38e6c27889dd94ed10e11e74ecd070b4ad53c33b002f0c7d13c35b03f492c907f4a87538f32bd3567f8603a3fa8948e8ecea9a3d3c13aa60ea8b3b3b3b3b3b3b3b3b36362e5b820696a6a6a4aac5bb6e6e929742f1522a5a544a445690cd25a7a4b8f38e51477623d85e6e9de8eee9dd2f5d4bd54889496129116a531486be911e92dc5353630313fc36dcaa749a2c9a2265653448dade6889a5b8d1235b81a5dcd1356f5cf353b5114cf1345ff55966b1579a7f3cdb7343435b59a585813ab89d9535513ab29a2c6567344cdad46891a5ccd1335ba9a5be2dd8248323b226315f9325d5943503055a52bcbc769e2380c507f631680c729fd1bb346dea99b12ebd3b6d148507f6a1e52af43dc3ce838f7ccc37c4e121212f1a993ff6319715be2aa1f71fa21286fa7051659b0f4a84c91f233302a94e651e2aa29755f70aea71f3992f34bac4d39e8ccd120280d6502cda14fa03a540a7487f6502bacea2f8a278a22c57c6841c6f66789bd2292581f7f19cda3e4e6ea121c5ee55c7de2aa6e77938a19da0d4d71574ecaa3c46dcc2030083a43692812280db5a134b4086502cda14fa03a540a74875a81f61e45dafe29db0dd724a752a284e347e6feb451ce9fdac885c9c58bed658a17de8b152fbd1726bc20c1c4607858d55f3c4f30329466c96e49b68be2afe2e64132c2faf47878b5c32b9e283c3a9e1c4f131e5c8ce6b9d99e23b6f324b13c4aaceaaffa7699f2d85e70bed8764ee9fa67bab28aa4e68b0d95822fb697295e782f56bcf45e98f082041383e1a1c2c876cecd74515dea12eb9275c4fa98feea1829e2838506c407d3b8fe4eb5d63a69893529f371b3d72fa64d3a2b8f4d343a5d78ed343dce937686e394587fa98d296762c2a43bf138c54e3f9c64a7204eb353d18988140a35f1a966a37994f8e9b3ea4f20f2c9c4842967d26193ce34e950930e65d2a54cbadc89c79553cc5b3e564e3f5439c9bce543e514c4ee34c32e1f2827229e9c8abce5e3e43cd5b6bfea8e269c32c70c32d2f97c6a23fda566d96c4fccf6b88ee96d72164a362b89f5a1663404880f9f24a49d0f1659b0f476e6e1d181f5b9e19ae494d8feb6d4825347df9c9cf2a6c42b4d51ea8d428cb49188b1688c815d8d353cde7c3cc2aafe31d469c499f09fe6a3255e698a526f1462a48d448c45630cc6da781b8f10c1743d73baa27b2df550e9faa83fa5ebce5e4b3dd9a85947ac4fcdf61cc12879c12eb23dfea1f641b23d468a60a16d7f54baeea4d2f57da8d29bae624f97bb62a50a951d94274eac7a9a9aa706b66706d6c7a664d4361b6bbc6f5e07d53c4b5cc5e5f0ca6fde9a347c762ae5b9b9e0345d20a7c9668f2ef48d46f1caa4a35362ed3b585f6bed8b45d280fbd3463a6fa61ac5ab9ba62f4aac2d8f125ff9f3d88e9c6b56cb1db34669ab529b3da361f4bb7a5f46973a46c6fadc3709f1108a79abc5aa304aac7b36d953620d4347e7e4fb3ef83cdbd4d7f660fd6237f1619bf05ec8e28524d5876dc2dbfe2f24bd90c58a5562bdda2d0069a1e7020f17623b2d0069a1b7fd5d88b9c043fd790d7921b5f0430b329bd1f657f7ca63c35add3aaf212fa4eddf82ac851f7602507edac8c59fda28e7b33652dd57e50015014ae2b164b6e715c4be66cef26157feb69d7da4a8086dc8f6180b888c154bea1541b4593e1ca1c5f6c1c2226d1f2bd6878aadb273549a8707d6c7df85e6b1a5359a27a7799ed81eff1dcda3e37162fbe7882aa02234a0a4edff9a798b003d7f05b12d02586161b4d1cec768a39d34258015b6c5538455bdc5633bb189d2d490a1cc0c4ccc28964afd6d1d9dcabb248e31303332a690ac51a1a6cdbe8fcf2f35de25718c81999189414bedbb248e3130a5bedbc4274a13923568ce8e064dda4826c2d29799d131da284d8d74d207d313dc3e5478b4bda23c36bcf27fcd73c32bff1bcd83c32b7f1d9386cd46a53e2a19648cd26b276bdbcf316bd8ec92d1697ad4af3cb6196d5d155f475bbc2a81afb5c52bd55fbd663295faa19db70c45615bd696e9697bee0c57efc7e8155d7fc549b1d618ab0c1ba3c41a67934025d6e96e9558ff7fda284d4f8df5cdfe7472ac8fa86d368e59a3b44d29d6369b44a1c45ab5c95789f5ccfeb491fe531be9e854c42b9bf44ca1c45a667f59c42bac6336b9428935cc265928b17ed9a73672f19f3622c2f91e222ce773cedbe4246f0de93c67615b434f5835865d423cbc2ac2b68498b0366f09e5fc08db1a7a81bd796ba8e6aa12d6450024d8ea7dacf3cd2cc75f8ac02ef0e6d2e32f69221e2791c70e2f36f8e58cb3ca845fd41676b5ba1de8c42bd15bab8dbf1dd83d06a4dbbfaed45df9afeaf833caf4ba4e6d5f251c8a24097a49fcbe9cbf2f67f0f3a74df87b8830f2474d24930123bf87081b4df0cb5b92fa3c472d1361e5939aa8870c58799e1863b7a409bfc52edb62959a8557f74d4db65833d613376ef2964e6232931f0996f86e8cd3352d9d20f8a48fd792a6fc8e929a0809f8e4a7ae0bbc2b165e79f8e593a4b63012bc2e7b572b7857e3f760c1c8371fe32ddaab8aefcf7a95ac055a4b3fa39973f69c73ced792a6324453ac6136a8333996b4b63d4f6a11afb03e77c9ac416e305d35cbe24e9b2c95a25983dc38156d8f5e59fbd6207726f7a7cb0d8a61cba863e797ed3a07abcb3b443fff7357e9122111af263f4d6efb6436ad18d85f2a96a21db7a8730ef5bdd8e66c2aed729734ea2b5f6170e88e8312389258f7ec511321c9f849cc6463006c9f6d41500c0a5fbcf9aa1250770ee07f4f9ef8c9cf0c2a3dd6e193f72c5d15cf92bea6d0cf16cd52e8aa58d2a7abe25b53e867af6a50881ffcb594eaa0eefb2098965f49dbfc256dc1519f684882a3167de5598873cddffbfed215c7cea9b8da276824c6b6fd6fd6319a9c299e7dddf70702443c73503a25e164c4e403538f314565fbdb6c1b532062ea623b73b0fded2909dbdf9e4c3ed8fed6d463fb5bb306dbdf7ad63092385333fbbabd523904249718b3188ffc2fefd7b294bad8ca21dbff924b6cff3b66b1fdef78b4fd6f2908dbffe2ac7172e08fc2958000452442a4b088d8c2c333b1040498bad84424b6bf876191edef600fb6bfe7ac6998a048208ff05392a9c0b2fdb1e37e05796c7f1ca62eb64fc9f6c7998aed8ff309b63ffeb286c1c1146125b0278130452e520b0fc44a6cffec49db3ffb91ed9f33d678675d2271ae2e369d7d5d20f8b0fd5f62f6f5b9d85ea06cffaf85771f08dbfffb707a7fd8fe5f0ead949d9f0615f0af2d3905b158e617edeb7efe9219945d5a78db1fd348ed9bbad85670de5f5d6ca59209a72a71e3fb31b6d24d4d712f2f7fdf87ad1974b23dfe2a2b068c7befbd38b5f3fb15e74b7b0725ce9565656c16769da23f8e2a8a63ba9e282aa6ebabe9cadaabcdbdf0f7f2763e33cc0e4a9ca71306d5e1b3ed7bb2af6f0994c65d27eafed1f67dec97879ab12b064dfd7aaaacea78e52d944c691fbb6357fe2adb726155ff771ffb2adf1f00f665be7f0f0cfb22df9fe7c54ab5afd2fbefd8974e0e8e8b54db57cbbb7cead718a95f5b2ca4de9ffcbe9d42c5ccc02e719f72de25311c4993599e8e8279095d5af4c579dfbb4de89be897e458bac0b9c10ff505d00da646688ab240dfa7f4f9a5366b70c76822243985534be4b43ff7615c84425a9cf50ec1fb50302fe86357cddb57593164cc70e105eca279fb05c02ed5db2771341112f47b3c6ce749d6368d18a9b90b07d5a9dfd12e68683411924b44852f0d08dca56dfcaa203e4a802588ac04484170418c089224c8912045820c09022448ac04580081db38ecc2c961d7ebb04be70ac13e6eb30b840f23b002446c043d206e402401e20810458018020410207c8c206904587cdc7cdc7ce07ce47ce8b0eb268b3f6497c8767dd8f216311916322ab22419cf87cdc7111f457c0cf101c4870f1f3ec8906456886c4436a21b118e28b7056ee3df11db21db31db41db416447d10e233b6a3b8e76d876dcb61062e3df31e42b5da21bc322e9c63c90f465c9798089078e7800e781da13929e80e509569e40e509529e00e5094e9e707b42122c92367e0d246d20b601d906664a906dfc3a723a743a763a783aaae8e8e9b8a2034947161d491688659962e3d741051c7bc8001270493a706011663a7c54008b0e590590b2e0b2189125499623598a6419920548965812b040026ee39f006e02b909e826b02bc26ca5ad456b6d3d5a6dab92f5b62e59716bae082fd8f8d723360552052a02aab90a74046403ba012d715587dd810a19900d4889bb5e537c85b1eb658b218ae789ca3ecc568a1d04a040c00808e820702b826cb38ae083152cac60b162c50a152b52ace4ac30a142b6f137a0010d68405146e2d1367e1b7636f06ce8d9806443161b926cd0e286d80d4437c86e9861974a8a246cfc366011c592a9c3196d7a229a57fdd546403f9c0889a9ca6f613c3c1083a5bfd2e313f510613cc22db6d80286843c5f46ab725a009af4740292cd8064e1b7c4540757f1e380df862136f86003cd8698143a299c48c1440a23a44822c511298a483193c20710761b7f8e5d0e5e8e5eb973750aaf77e585a45f49af24d607bf0e74bf8a3069a4764e5fb6159cab05822c470d7f0e19ce31c3aecfa1ea3e87e2362efd6a8150b240908da6179ddf4613216180abf8497b4d37ad18d839bda1e6d2800481056d1644d2a5e5684c6846d092d08ed08ad086d064341f6e90dcce61178e0ebb7e7783f0b0ebe6346590a1c5e484cd268392d3e9458622198cc85054030d27bbc40f1968435286980ced86704ecc9cf0e1840f4d60d1049626ac3441a5095d134e6cd06c14d9a8d9f8317b399788d988d9208269999dab75924548c8c5c50c3abdcb480214906a34cedb689d5fe9b77955bf662f22af22232f1a90ac8857129b02f9f6359ea725de3279cb2c69b04bf5f85f332824e11876bd6c46df28400a76e0af40b2217243e886d80de1a3089621644590726f0823864832c491218a0c3164082043c48a60918214ecb0ebe6e5054626861758b1dc0b24a0580c26318ec4c0c5a8c5488a8125869518546248890125869318b7184958b18d9f1563c958339edac6ff02e945124f8c878847c6f38367c6238487c653c4c363e3e7f1c1a6403e0ccaac51dae5f7e4173ede61f8997fc3d0fccc172d3e10ad14cdd285329de12a9130fcdd8bde8b232f80bca8bd98bde0bd90f202ca0b272f98bc30e2459217452f86e4f47292f46ce3ff1def7b7fe5913e8bb74caf85b74a2d7b2b36feb762532051a85449864032d4a2f8863afc183368b67108246463a01fae923365d646aab7d14033209a03a9806458086f5dd74bc9fab2ddf46553e53ef7baf77183e56537488f7b233ec91ff9223fe4817cec060b954aa54aa56a3e6513867fa9385fd0305477340a591c08bf8d4621c9d5afd144af9803852890ecd533b269c9dc704d724f745176bc2436fe17139b02f96a8a42167f49514042e1c585b34a8990e4cf5a853095a1c2a97c98b1a28acdf454375512d5115511d5101510958f99a4192ca9546a2773de8fb1f918d30019c6e36e014b9f445fb45da36bde46bfb246210b0a49aee29a14052d7c65ee9714052415a080b45720d90b2975b1cbe66b5e4f5eba5794d7ee35e5c57bf5b04bf56262e37f397911c1ffa2e19cb25a6ef6277f0a958ad9574b4ed7542a954aa580a450282c2db7165c4bae05bcaa32eb981add72b5d1aae5a8a506e3d27438ec4a73d865a3c3ae1a1facdc14c42e919e7db9bcebc64a72a4c8102037053e922e112c34ddc67f693aecbac91ae7899c4246081511ba0915d9974be8848a13294ea03871e28489139b93234d90367e1790b00b4941b120d9cc8c19547e4ccc88a322c6ac51dae693f77c99e124aa439ab7d144403f7c854da0d9f9b2bd94bc6ede8af99a9408c9fdab69cc142d8b501a6ba44b212db3165a4bd109e534e2d49db716598b0f27162796d3ca49e59472e64e2665d1c65f1695424a9abb70fe9e2faf32837218bebc35836e6a4a59f9c326e5718384bf948567d646352a304b1923999047481c592393482ca415920a298584423a216f649230b6f187b15016cec02c60120d0a483bebf0af36b2790b2443218bbb889084298fbb05ace6f1a38054a375de46ffa33aff8ece59e9976d09ee95f39749c367cba4af5b0ace15d4814f8050401d1805dc8153401e5805ec91364032b3c6b85f5e9cc8b9de1c78037160eec3e2a3f2257d3cd0061e018b80434020a00fd0870fe9b322e207fa013f908f9b039201fd009a010901a20111f156f9f8818ab08be65bfe6b962cc1b90b475f9bf4a5c457f86dcca097f46513e25cafeddabcf5f2f8af12276b4a1a17178746d7e8283d0520292029474c0149143044013605d0a4f4a4509122450a14294ea430916284949a9422364a6fe3bfd1bb8174230901b11c9d12d5463434e9cb865737dc4be76a14578d56296ad228ed570e05e76a9dc8ddb871e3c68d2ade3aa3dcb871801b078812254a942851a24479c289dcc62f830c32ec9435fae6714c1aab8d3e2953a2660d1b977fd1a54daec81725aa8d703eeb97ed65a35fb857ee35a35f535ebcd7cda451da32e96b37e47421875dd0b9b0c3ae9ac7ef02cf852ade3a1fbf0b3d17ae78cbf498fcd5369962e377818a4d817cfc2ef8b02e6b0780c5baac7541f60340b22f9777e15846a849fe085ae41cb27108e4d424b6711258945ac06dfc2de0b00be7f1b7906b41875d3a8fbf851dc953da689ddfd1fa6bf4cd936a29078608e30646087e303256cdc070183230d0181817060c1830acca327dbf83f3a836fa8fd1463a298a57f953da28fdab8d7252d9c3705217df0caff2eb1405a3fdfae47fd1f9f12abf8bce37db93bf45679dedc96fa33f1a5ee5afd15f115ee53ff577e46afe93fe6caee637e94f89abf94dfddd4afd2d71353f8dfe54facbe1557ef27bc1ceff1db13ef947fdd56c4ffe925ed5351bb133946fc4dd214e3b508f00124d845ae7bfd38ba9fc84784be6bd35d372baa823b963f3e982ec1f21be1fdbfee7c3b67e689fccbe60defe40f1c5b0c861c159b951f9b14971fdd4f00aab5bd81556b311b6c5e2b98a6d8ed5d14448f2f77818ceeb9cd7c1a290eb23d25c1585b0aa58844529ec4adce195d87355b4c2c74755ff51f4a78664c6ae0ff973d276b3b6b5af4b44247397760f6d1347434736d08b868a868c84b8092143428668eed2bfcada68f5a486e1070c32186236b4b091e46a16a42b3ddbc3bb791c1d4db4f33d4498fa395a86c2d454e77bb060fa551b56ac8f1055b60d2a56e86875a5837a3384b01d169cabcd818d480e9a6cfc301b86dd60b8ef33837e8ec0129ceb8f2880a4d7fa75f47f8e76f1a4aa89d4f47bb06039aff32b2c5901b742122be45808010b3116662c0409a54ba854aa5494a67ada31442302400020001316002028140c07c5e2f140d053e10714800d79a05c58502308b3240c741432861843882100000066444866a6090080a80ae005ada8063790e3ef938fa72a7b25d10b4841c4a076ff7f9eaac0855cdb8c6e2261d1c814507a15fa9901a9139e05252aedce0e1495fe189fe4a6d87b45d373933bbdbfd800a18dfc55d3a18b04bacf7ef038650ca315d5f8849e4a4e5908b57d1c2ba1f76b5d4f5015cbf599704c4cb821b79473e18b1282441d95aad788ff4c2a585a2fb64df1585e2cd4917a3bfdfd112c44925c838731371dc4b9f3d62b5ac2f704615ca08460475eb0a5d6bd12602f30d6101b0e0cff54a8d5ab265137cef139cd7daadc66b931054a7b505c834c15e837c2c94c9682a69b097c286df453351a46e7eba262682ab3bf03c01e4723fb087c2c43ccdc5d4d4b3f8e4be80dec3f910246a0179666643a241e48e7ea6dc088c362f467e3849831a8a604378fdc0b43e81cd3e309016dbfe1ca0c8c8ec901bb7122ecc7217d8c3043c6180e6ddbaf3d395ff5ff25cb53f678eca1b3c32f0965f1bef198c5b071e16b97f157914f617435db3dfde9146b4ee063ab78352dfc152c88e07e30f878b6c0c20b1706b01856ada74343a4329e090ea45da803e3c8cf4a4c14a55b65b503788e1253704c22919677523d4f134c1a680267156543657b071ab02016733f941f22f5ee440861a1752f4f1581700122784797c7aab633d6f202381bf73bdd31562b4b2df3e019b050b9ee0080d1542c1a580497d2345674d8917f87b93cfaaabfdadf01ffd831ecd9b2f153c6f25ef352d484493c0c7a1d397f1613f24aca88b4f45a40f7998868b080e019aab671d351649f2c9e6b5e5d543e89783a3bbf7107c568c7be16b3e360d5dbc2579e22f22ad3ae2c952ff0cb0e1a075efc75c76fc1417bd42ae6fa9c68479f69758dec3691afef22e34696f7f525b7f4e800267bf4c2d4b5f1b082d5fe2b60d25df433c101f2ef35a64032ae642cd126e767aaba076fb48b3fe6cb1fcac77462690014157a88f012d878f0c4dc200015fd13509b2e671620b351e07ade541da3e52e43223fad7cc131144d25671c149e855f870df711b3500b1ace0c99aec27f3e4cc506fa522316bf46eceff03cc1e6114186869b09def2aa6a3c6e612e35fed8fd4473a3fbe46c0ab24a5104068de681f3c55154da49fad5b9cf76e9122a386834c703b1dda370af5b0ac25fb69cd737b7b034c7fcc98b069a083008fd48cac2c9c825e1b362afa95961d35c93666d6cd0c354324645afe39b985caac78b7a072513682cec178e0dfc6c8a1e90c9ec4f6cea2811f43a61be8ed5a1ba9cd2b164c53dbf0782a1dbbf35c2ed58087541c009b840a6f0267b17f9ae501a212ee9645695e4ad950b73ca834b3c4a08c9aa572570ad3ddfe9f58c037e2f769b5ba7a9422d5d53a8471ba006ab7e41152513503d221b2485d8147fcc9026201b7599324a666eb5f237dec11cf8463249285246cea3937521afb354f7fa8757cc0ad16298b286ccbc510e937c27aeeb2611338caf810eb550fc824866b4e6faaa88900ded9949103ff15d91ab5b584151a53bab84e1accfd639110d9d933558b14f430d30992bf7a63d0232c169d473a635f1fe85816ee7310db9865f9c5d95abd288f4df6a9b8e3c045c0521136deaf998b87f7e6bdd1ec97a04f0b6bce611dcb70efe30880ba2d9bb91dfd913bf8a42d584eae854fcd408f3623294a6ae2f044d3be8933b9d392a7d93a441202a10d47800066603a31a08942fd51ca0300f766e76f15cb2b2cc6e275f9f8ddb1c82c01e93a63360680788d3e347b02fc4992e11b2ac8227e936df4041d7437f2e8eb60f0d3447b76a0a43ea05b474e10d7b502acdfb8b93ee180ee164b1675e44d14547dfd0a13b11dcaa462e08ae49da64671dc9ebc08e5efc17d5bc1af9fce9e00e5aa1d791bd2787987b1b32574f903c4fea95afefa5e0738698c59709588417039041a23a7824d80a62bd2a719a329bf4c3fb9feab81549868cade5656a4942bc8df0d912979acd99631156ab6c7b457c4c0294366007eae8d1a5cccab6276f8ec7351bbad0ab0c9e092b6661e7e712891c58491ca2b17354b36486383894437504065df621b2c834e9b2a290e31d7efca14fca1d5942df2f64ceb2dfc48ffc68a74d31d41a899c16f92675dcfdc409c013817d441c0b8ae5c02654fe755405f0c3d35a8ef5609265220baac205d723984ea6a4dbc4385be6f092a1f40cbf7a887c78879167aa193ac0fa1855a1f5d821dcce61fb18ec422baad4184246e3ba54c702ac6a117c00a077c65b4ebc172c5bfe1a19a76cf0cf3c87594450ec94f95eb3b7853e49c6cad42883ec9488786e4a3cfb979d91c0ec54146360b7191ee174262b6fc0ab77e77f84776684efa53ea886bb24df183c135aea2a4d0bdf6816ec24f0b048781a2d88302963c2713f7f9f42cb5f86db3ad6984f401c252841dd883da3c6fa77f9b6857ba9d0e1d7a2e5cc0b75bbba06e8cf98454813f85bc2a70e9315cde3c759cee1396a68ac8c780ed6703611f18c960d633d67e3184fef645a224fcd71a30812ce513537f6d25c73781bc6cd36a8213ee8e8e0981bdf0c3ac40b480000bd3f8a3e6c85b627a9eb70cd48a9331e647b5dd35059f1b81d0b4433af73a4863b9a1bc7e57eaeadad21f6ae9774e4372ce5ceb7c3aee7c16bea65267f73b0db8c84ccd423f3eaae54496cbd88e4f76b10af0eb48601d8173b830ae60640bcaa6f9331b19dd296c86a9891b6574500d36e816173598bf218e356eb7e59239a325e5cce79bfac66e803efb1aad6cc086f92955076c5d1627b5268b72293be456a672f5288859281fe26ece76045de292ca9e3c108af8da9d68015c9bd52dbf45f6da96af5255b5a37f956d35f63ba0577765f2d85059db0fd1a8f2394d9ff2791d7cfb4284ba584fd9581b51a628269a5d58da2fae68eafeefa272ef7a59d7f45d0f2d6f8cf337af748e47a311965c952b13c67b0b2d6cc2bac94a9eb30a1cba6cc96978ee3a995e481e7613c0512879e418193fc41a8c9cd736356e15aacc89704d70a0c41cd88350a1366cb58a38e75caa4f7c136fa4d5bc9d488ba381559316c08beb548ce7c072e82803675b2b1bec9e471e9d3184523f669b09f4286569604df6ea0338149ed24970a87b71b7b4a3d6b8866059e68fe05a868bce564ef2eb1fa12ee5efddcd374a501ccbfb912854aa4f5f4f1dea0c053829c48971c5b6c780e25a4fdcf822d6c28f70c14e92d3b79ff5bb5b54b65e13bc2ee3c081ea8af43bb896813ee32f2e2c822b731a156025bace8684a968ae5398395b526f34223a4a0c882c3580131e78a7bb80e200fe775c9b9eeb8c11fab851229cef3bed78a036c89e14571a74f07935a18cd5a2397052b733976de38b91c5cc1a177606594259bac928e8e60ce407e288530539a69e4a97aba07fbf687a6b78e42d30092b8c2357634045389052f534e6f00833e8c9f0daaad9131892329b7dc4b721c2745e8ac445ef8474f447777a48278b1ee9ddc09adc6c63e6eb007cb4930ba43f11949b8cc6b854065882ea900dd89c3b5edca55eab252637b657475b61e3fb1546bf84347afbba82877da7d2a7aa56e22f8128411e9b89e60fe4feff6d67612a6c96655421d36b774efa6329c8d63fc4c52abb03cd504e0357037d638e17531ea0dbb665c87cb0ece07cb4aa9aee16c18a2eb01a07d9c1146db94df6db8cd899378325b974d50bfc73ef46dd5ce1b1515158816e4a4e62ca6ad74c0f5d81e9a78e5ad6eabac84ed975842a307de9649e16f692218bd34e8399ce2ff45fd471b7b64ee635085f6b29b07b9259465efd229e97bef8a25ef954cb234ffe486da0249de58dfe20b19543ea661cfcb62f180a92541d02c4c4e0bc00a6db1677212caca922f5185e0b6e275cb07ea806223a254c7f2f86df071743b20245a68748cb15c83e65d57090cab9aa35b71a22c79570a88316e892c577799a4af256ab1cc4d34408cd8da89cb300c9adb524e076806d172e1d30e9a1f8a6de80798cae93fb4a7f60552e0066e14e320261b6ecf0d874e2d8f2a486caf02c1b63f53fcae0542acc7a65a14764a48bd666aa09a3058933bb8effee31b588847e2b256fbf62813d7284e5d2e4cddda3f8733f6451032dc59ff6957cc9ea7658137ec8e78a5f52a9f9ab5756b6a1d8a3caab0dbccdb2941afddd11ccdc4e0a5336f488308f91874141b4e5179f2a22ad6bb0bb93cd81b82af49ef95b1e6046be9e8805827b3fc20c1378a378facd27d2889634095d848ee3dfaab62aacbe3acd4916b70d06b2f2ea6e45217fa4974a8a0d7bed1c59842b4ba9985d5d5994514df4f3c5500c0106e09975473596abb01fc2c9850bfdb40e1983d7bc67a18150099eb71a175b22e6e46d1e2d77177aeb814f6b08f19f2d050ae0506e670c5d3c7ae190d34733fcaed73a912901648ad901a34218caf7d243e43d1a8c093750ba43de72a7c29f7df93681665e413fac18e93679548b18c814b01c7dc5326f78a94f49b51c529614a063a3efb4a903090ee3d5ce35c5106351e3d8024cd299321520da5c092a155c9059f558eb677d66b1971de0cb9ed904786e06d0652a184b9abaa91a5a1334873d5de07e578a55afcbc0abe292d799d51a5277a401ddd8d8c1cb97f81685e9ec322f7a3a0b72b661f2b4689dea30ccccea97406486d9091063b1fc835e264ec3154b513e899956367c80de159c2067046f7ee7f7259e19a3f3800c4ce0e7a96d414202d3a73429543431dee9c8e7e04ac4b30071453f73b4c2db506d11b4a9fcf35fb040ce8442315d5a782516b429962733228def004ab3fddc54d03bdd5771a776b229a014acaffdf654b8fd792657ad6655eba672bc4ae66a1d33995903e85b9186bc6c1a993df9e5db195d607559e001449bd65458fc4c180895f6da3e49c47434380745776e516a383de927bc6bb3a313e507e7a9e5e0703ad7fbc30db5c1c899ba3120ad78284f7304167e4f0875705d3039020658c01803f7ee42763d3ab3785e9304bb41ba83643aebdd9a76649e4eff6391b365ba385d3d05bdd5954a0791943c35f2a9ba6c9190e0f42eb75668953451944528cf09454426534ab98b25692feca94c36234b364e9bbdcb5fd53a476e2c97314981e3090751677a4292d618dc6377845503c774d2b871a821a5d9037fc4f8c6fd742be43039dc5a9ac174275c86350afcdeff39b538e04b599621b7400b7ed4705a3443f66b49706d6d69085aced2311c49c1c7e0c5abea27fda3866fbf37d2687feb923b9645a1303f8aa3b902efb7037df88667a1007ae6ee369c893239eb9f1ccc5d3f2c24bc902baea8a8efe7b9df3fef92f031381e9d5a0b995ae9cb4cc9ab929f743d6faf44f227ae86d8d16b20de9c50f613294e219b7f9bd7bdd3374f4da678e1b5c554d6c40fefbb6f4993d36818b557e57bc353168e2bbc295d70c12b0bcab8cac24d799088303df4e74131393fcbfbd73a3af04f4aeab0f4f37fd75603d4fdc4189591c32ab465bea432782aa0557f5547a6ebfb9a754aac270971aad0c786a605fc7d6d3e50f032df10ee8173131d132452675ffdb586c5e4efc62e912ea2cbd80fe3638046f1fcf2526ba361d447769fcb762de6d1cdff67dca5a33e61adb73364b3a33d665adea016ad3f156d50a1ec2590d9b15dff21b47ded97032c52efa6a33c923f9443a41238e16c2ee24244df1e69c2e3325ebd05a0c66d5d0d2d8a8d61d28655ab5fbd938235e1d9c1c846e36eb865ec9a3d69af23e9e404f89e7be3f967b454fc18f46e3a552da9777032e5cdf537984cd0c913b9822875ab088c0ac04ab72e5d34a744623025963b3d26a4818e90ede0aa75ae3c0552e0489dc1fc56283b4d8de73c3b0e844d74b07354955d1f5e8f77249c99ded81b429cf28f1ef57efbee34d58b1628478d0f022fce822dd27c2ab49fec9e01f8ef27815bc2e80cacab3d65b0818d222cb7d2e37afd8b8867be73aa3657340db7f03c847eff958a3d12038c41d2f5d7f063ba98632f8fa8c23e61335ae0e577d30b7d117d55f8996c54ca0e62708a991100bfc99709526350c42263914979160fed9dce69163ebb8a97a3e7c0960f62548c8ed8f2f4f878a9f917c311f88b3f812bfcf1cc82398ac15410752336efad46f3c23c5242ea1efe64d161fe71c3a333cd92e73464a2d4bb7cb42d9aefaa368e9a30865917756a826e3f79548de43e019507f233acc9ef3fe83e702713a85ac97ff41730c79e499ab5f2f2e663db99afa649a2eb52e552b5d523857a799b67e072167a9f9f156019d4dd0c81c24cc6335f68e8dc4716080587d64d764be27c958266289e220572e5774c0be688375ee12569ccfab52f92aba117a4d69243e9e010e3d1cd86c1556f1ce435c5b25f4421056ea114d049818d67272403d189042871d99d282d491b50e53aa2d41595b2ba7c2d27f76837211f76a6dbd53cdd7f12dbfe5645ed7e0a2aa6df7eedc7e3ee7d766ff35df146b73cbffd482fefd2bdbd1da0248abca963ed888c8e9a09246a5066039f00330c6a53d2665fe2468e88aba9971cbbe866ce436e9283654aa93208bd382a62b3c84da587877c735e38731d21ec99ba3ba8cdd45f541cc358c495dfd941c475cde0ff6f4f34ad95691c9899f0ee9c4dbf5658d23656d6b1e9ec08d58c95ad6b312abf7e374d34be9d1738531729c69973b06683e28204e4056d894847586d39b0c2bcb76a4f74c8085e191be1f1838079da016f6d58a535c6fe00bba76fe914213593af69bd155f05ddfa90640d7d9c7ea78e49185e6022a7b35f9eee3418e7b5ffdfb67f30924e3ae437a970de37c169b24d16d25815731cdf915dc74c4e441d92941c9a761a4c490a9ad3e74d5957a0d6250ed2a0fbc896612731bd87558b5d3b41bc8dc9a8608906c3d34ea49f537b150ee67299a7b42e2d6f066b18d5502bc6165adc73aaa44da3bf16d82f083a1f18e8b64970c80dcac6ca03e30ee0769fbca3c29abb68d2164a1b09d536091f44aad67f40f202bd95f52d0ebe0eab40fe25689ff5cbbc6da9ee1afce7d06e0073e96642ff61d4f1cabd15896870a4054356b73c245f638158165879c90d41b1c30e6a60ca843aadb17ecedf184c7a07cdc1503c0758342d2d08763144ffb2f7f9ba3eb7b1e1eef2f06ecf5ab199ac06b062009703fa494d2295e0d6ed42a5b5d7b79a07490db691743b11418b4adde28ecb9f368293506c0bfab3b1f6be767ac7d1813dc4aecd512cceadbedf7acd321409eff13ede58dd85b4bbee12bbdfdcaeb509e5b0945a1cd1e57547186ab541664d5925ac676bcee7bc3403238f058d9cc5cf2de8255f4134e03fbc4cc05e12cca892413a101b3ba34ed726268727a322a087a46cdb654865b0c64ac11e9648e56450c5b855c6c3ae694fa75ae14370b2370a62a1dff230716dfcc8079ba0c468f42626cc7e02144e334825c79d7dafedd8826a7ba74a320f0e149f30aee5e1bcb6d52a932a93772da518909dd76749d94f3ac54f26fe39e38f8b219c201ed2c2613969dde70c6ebde2f0e3aec35fc9b71ab682a45601c7920b44a10c9523afd008849ce1973c539491de348bad6775fe98079180bb23be391e676ed421e645438532422bf2359a7564063f843afa224ea4cfa8395671bd386e20674a44f41259c02aa10554028d560f146281216f818ca6c8cccf998075c1b55278e24fb1b8719affdcffd25f5b9e802c43ef00fdd36a4506a72d0f9d0918c3dd35705a65ef93b69b6bce7535defc86122ad9fc81fe8db7ca6e27897f04bd923603e0c52ce2f399d8fe8c295892a53ab1baa407184cd4995a1a00fde350c110a4032b862c5ba8203fe5a1cf495877195c4fd2c7a3b96ad71a92370ef75b83331cd4b70295ff39dd257a8e0bf7cf32d08a6c19522291a5c66b3a2cadbee2e3f597ae9cbfbd9ec97a5804c13c210fd590ca8699d45d10b0aa58c4319bd2572c4e2f70555785b83d779009e243264a6c60f0cd329f68bba19b3c8d53cf1059404a978dc740948206b905990ba163993a8bb2718c3939206903e165a88cb57d88d64366207be9aded0a800d23b71bee733041f26ff1be2d88839f61610c3304dc1f71dfc364f77db9d12da4047ece4d503463641964e17b319fbec325987c9686eb31d4469137b7d13f78e3d40f7115ffeeef02172cf2034eca62bcb6761184d8c50b591195678998bc5b456473435cbc50c1d09245076efd008c3010d24e72196a263f8736255455cb7f5025605f8b376823939bf421e27cbc017f8c598260d9c407e2c469d088f7b425fc9ff3207b1692b627494af959cc7187c6901fd1b15c30d7b59af8c409466514f0a3050acf811d18dec2265e40c66403e31663576e2687db1d5b591185c2558956b8cf896083a7432d9c85e7150a222dd4f6aa7a525f7c8048d1d77f4bb3936b7daa0e5bcde0a0ed7fecc641c1ad75f8bdf991bf9b1b456a5a99f6b413766a79117998c37dff81e43b3dbfc329e78fc50f240772cf78ad21d101ae3fc3e4dba1c55604601b9fcd27604a0b9cc7e2d1951b6301eeb58e4ddc27309d6a6dc9f153e18fbc7d2d75aaeaa9f5745fe20dfb761a25f3e34bc5c85fd6407e4194dc5d6733c2432bfffb2dbfc5c0b722fe04dd31d232e5fbeb720f1e8b6ab6471daf3f0c9fbdc1c29db3234f890518cb06b4fff3c8c0ec841dbddb866e140662d39896b5135852e00f5764022734daeff0582ec1e7bdb60b9e5ad39417886c0a817c6ab2eca5ebcc7c477a2e480afe999de22b37316dabcae6fe4bb2907b8013ecf848db801df53a5ef3130345293cc0c40ede94dc5553a314cf863d5de369330706e65e45dfd6ad2e1d880f45b8e971a335ec9777979cb3857044a240a190eb3595c78e2ce80c81095bd2e88c432ea6cfb074f8cb2cac692b272c7b5fa5fb8d0cd6a6f65edba713e11df41ef78803f09f54263cfb77aeba48c7414bb77d1a07faae9014bd7a2b01130b652e9689f2b0b803b152e0b664e1c926be77d1227461125aee5ee8773ca448c78c620d33f6cc4de389180e48ee548a05836636a028d517c2fba661a2eb4d5e7b7cfe5dedec59ab33b08fd88a12b7ff1ddc2e6d7c6fb06c7394115819d6d430b5f6245890bb69b0a954ca58a5ad07099973042977ab821907f0a50447616271cc879cf70bc4ad13bad694deb52c7e0a11b9c1cae7776701b42a58152a0f16ac8292f4265e358aa5cda432dd236cf34c40a62467bff5b0002a60fea286b41c190d5e0ed15a6cac7180bec1359ebe8fb78cde3d7d77792f4979b5f1184b844f6b68b1a3521f09b1c9102f41046f2123eedf2be94678a085a3736e29c429d11c7a0431c15a9dbf67a9317f72a4f9bf4691c7682412a090ba91116539a46d85d021f599586675fbab9e77db20810590684a7047139f433a71384a8200c8b2823df5559c82f01e2884373dee7192747414866fccad9105ee114e28e478dcc4f8ea974017ddea413d71840eddfd090acbd7269e5aecfdda2abe21030edada580b13f3f7d86fea8ec160454454e51c9cd65cde014625bd84d77386d063c59a6f822d3625d4566feea401f5c5ccb64a613ee489fb2674a3187345ca0c11925bbae48052216869e460ec18fb65091eb0994bbad82a358aa38cfd52b7d3d6388eafd6025ac0e3416bcefe9b6935c681f57ea558f0118f9261ecf3f445e2cd0c56be0c7e48b980bf85425e87fe22a704f5c1ebeb586635704a82dffa314ddb1d6d29c07227416486284d42c42af53e3a7a2e38b4d5ff1433362b15f053b9b0ae37bc7e2e4f113debe4e3ed2333b32a58035001843ffd9dcc43f28228068695b53f1d9f9d850c72079ef0274f0d9cc4b2babd011fff8969c0718345b959483b2e6b1c4df8eb7e52daffc65aa6e3e80f4ed9fb2f135a1d51be649b6dca2766148d11a9f21fbfb3ab7f53f0e27b66a99d9a6ff4bb93cb10c4e88e8dae276a0bbc69d4e10b5641d313ed139f9970af8321d05405490eabe5cfb274f538d6e303149c7fe1689ceff8684dece109d9fa1f661cb2657f24e986fda21d03cacf710724bda32df8eb75bd051e23da6911c126919320185bed2c4e2064aed29c72256882699bc364cc79bce5d9d363988674e6bcc892a7b328c5c99f61093d3a6a30d74810480052501279917701109228e0cd6a199527859dc6b7a4a3f24c5190d39918436c7548e106060efbbb0085cbbd8654fdeadd1a48956bb3ae2c9f656534739b10e857d2758773e5a69c27575b7da0c759eb0d48654a5ab6721074548c3ff004268b391ddfd47cd6f7a1a981c9ebfde7bd7f5feeeb7be402009a1678bd5aa3cea753bbac6278e0eef1bc934fb796c2707239e300a9dfba9bbd6f790c02c50b2f2ec8cc3f24fa0af65cfd3aa4e7f169284554498af257b187f15d76a0f4f478318ca0b30a30522ab2a4211b5baa2f73d4f908a7b802f2b1585449c3afd97234d339a778fccb9bce13dce3bf859294e4434fa039101944347ce31e89c7ed5d1df41275afd29262cbe4ae5bac7148c70561b9757a3ee7afc97a768007406c6972506dc24b8f51032ad81e523f2091b1e9778354e4b8058cdeb737441b0ce6afdd7c77c415d9628ce9783403c2e284ac0a57049ef1c7045094cdf7cae2d78e57d873238e7e0ac1fb0ba24ed27c01dc0f7cf4feaf8e94d37189ef2ecdd86d5c3a1ca3cd4016be18c8cb11f4a859f95c21309587210910b1cc39f6674a47749c5f877ed575e326baf4c9f82af0e02f7d83bded2a5b81803b320ff02ffa119b89b160191f6714c1429e524a0ad0192e7d41843ebdaa51c0f03f9981163f3867527b737c998cbc0f4d648d3a6cdd531e3b916c626f03f8f453b534680cbda1929547d084041f83f08da9ce34c193a1caf3fb92b7e93807a721840f14c7486aa8aa5826b4697c44e75a873377280c45191febe323c45f23e62c665075d0e0dae94c4670086f43f81cf5db6c2c57c19df78032412754a93f819da9c84992edf3c0468dd18038a12e7e474eb98fdb6a59c332094e59c210a5a305dbd70481d5ca1f5028521b45db3e09bc829f5660ba595bf2993003ec83e29da9ed80997955a73d2b5e8472c7e9c29b3653b6e74ddc357ed6426fb8a147f9be09ee58666fc975ea32d5a6b4bcef19c13ca59ddbb746d905b7f0bca0bc992d34a047c4bba504499a65a46f3502d4df57a3e41402ffcb671b1ba6cd9c4454ef010580306da4e3daa2d4612233edbb56b190218d96a5371b974a4d734f62617afc70f014969d9d962ed0f74584cd7b847c6d732a580f7f30e16a5389ba59d4e8a7835a83b55b042077cb1e16b91dec0d64423476830c7ee487a5c0d8a2496b6e58c2789cb75968228e9ea106449b2237539d96a54c78fcd897e37c096f449d01ce0607e983e8027504fd1f745e12dcc61e7ef69ca004ab71ac474d9723ee856fb6bd436acbd31882afa386ecf14112c7fd9a3d92cd7be0c492cd7ddeab975355cae7d7432f09710e02af336c660048d08aba3fe8d85eae3bf3dc3d68efd76ea85ed2cedfc942b39d026091cc58f879a729c4dd6a07280091f80d80976966bd5a4c87b7260c2c34c7d65c442f1efbc6672e3c625257f581a435c8f901f8215281c20622aa29020e6c7214e5220439dd582a7071da0835d89598c6e9587cee4071f1577fa1454c001bf5081eafba184e59031cfe496e8bc06829905ecea5111e1389105b81b7b41ac1cfccabd607931c8cd59e79913805719dc31fe624d7eb2867b3d179cea8e2e7b3a39746fd65ce266d226f49390ef6479984c73f6481ec5140220fd2c13e6fae9b54773f15b01298ac4b1175cc24c850ad9aaa07b6a7b7f0ced4e9b9ac0d6219daa2d5b4615d142dedf13c1d4525be3efb1b3b049cd8081585bfd2e4627cc5476503c348d0b44a06ec44d5533669d8929d90aabfc8d503479161cd20bc805edb2ec400227c91fb2d5c20d00462c8eee81fc71a11cff26b4fe9b56a7d3679006cb83af625246f442f31ff4541a05bc2d2e66a7cf6a598eb6defcc3180bd5481be42c732f68163a327002b823d719964d5e9265ab4b7105b2e0ad0073d5c8881581fc3b0bbcb23f8d49de348b5d4c38a8f71d44d2272c91ed3c6e05d21fd0ba48efd5435e6e534ae06a4c73e0bef41b7b6431f3eb48aec5cf483f9844d8a53a39bdee255968434ae42d4c3888fb268ff432121643dc22b2af2bd5c283b8132befe03a1dbe4eee0bf3543d826c4f01c911f6be112b7f8f5467d5f4a97a86a1416a3afb01db018eaea013b8ebf9c67b8e7e3ff5396c16e38a450f3c437fced4ea7cadafb532c8259e841955a31c7fd624b3b42879f3e21ab941d4d886d51cc5bfc89434d5e5a4c68cafbf1547e3abad92b2a8f6b1d1ae1e785e0d71a9e4a59bf4899acc16128bb8800f64890b4c01801b9433f5acb02b6898b65755d4e2276af7a05945903482101d47efc4abef3220679d36cfc37caa1d3f19cb40b549912a1ae0a1078ce3d4bd34d3461a00e8e10d7707f83e0357f1ad77d4b6208c17994803f0286793abd031496c3ebdc86d6f4f7d5ac5d63e04eb81df557e2456e814b4fb2c26fe1299626b6acb9a370c31b6449cfae2a8b1820ea2ab5a37dab022d0db155746c351d24275b8e310b0081081051763a08f19932f36d3f53c730ccd4cf56192ab4db6a8f41d24f944d58ddc863a0575845300bb6891ff075b60818fdc1b81ada6b31396843ba7475c8235f229fe113ad4e4ec81c66184953c1ddca38ade9407a0cb523f7316c470613e7d7fbbbc2f970475c62861837c104ba4a5e471ab55c64367db9a02e77390a3b3f345a3de0ad33ee813e3241ec99cc4d30f10471b4b07a34f6c6ea3ebd1e9333371e4dda1d1a33fb08addec2ccb5941c1958a553b80a8b92c55b14c4c06336bb7577d2fd15f7e3f43f47ad149d5885bef80bf2389b19beab278b91acc55c6054f9eb6fbe4d184a878a7b40c5eca14dff1084e776f86025219c6ae7b37cd7909d43d3730bc1e05622d6acb3cc78d0b3057a9cac5dfd01f57c5d310492b6c25ea76162d82e418dbdb73c734f6179deff6a86cbe9990b9683eba462e3c479f6f624c42b7300a0f8056dee5c9c8905d070b9d6a73701ec86cf28fa1e063cdac46be8f033921efef453a924352e73ef9117073c4e4acde4b733684618ff24195e046527084412e028653330921948d9a586ba954691d8bcb234b9d23a79ad8daf0335e904a2dac6f1520e5222df2ebf6716a7dbd34f221534c6eb659ebe19b2235f488624fb9c946fbfc90cd64090d08d9a99ba9ae161968c85bf4de3fefbfc136ddb960db956533643dd786e1ec270e553c78b427f31dc22c70f5b057a7cb05f1204886bd5e70d07deb52add219d73c58968397b3ac5f75ce841c2e28a11c6b78db4b2d668f106c44606233a55e3dbc40ba6cb420e455223d5026661907e396bf8a55345cd84ebe06e7fbaa149be4ca3414cb80c90d2bae4330e383b43d9c2bd47d1e949103b180c2133555e3867c1febf20967dc38412a605cbbf00ba899105c18a44354ae8e014c429d5718c39824581261905d8cce15d8558c462cb10fd276c564cacd44c94527954c0fc03c295a9f919b0e400e964441d7a798a59b4ae67c8cf3eb65e1aafbf1b99973117f9fe2c0963ca3ef1eefca9e38fbd71e16b66b25ccab2e69b5945ad9cd217f3f3e076a26b96fda5c575bd4ef0c2d7c0cc898f4e0b9b4484aa6e1661e5215af40e858b1ba413da027b31e86d823e2d16276c74d2f4c118492b56bb9725796b0cf7a6da47ca51c61a063cc00e101ef06e12aedee179b9e7f405f2a9bb407e5a5e08aa75afd4d2cc2da745e87d5d50655e0dd6b7826e094985805af4bbc3e1d68a726543b1aaeaf6e44aa7d8621223848053edba4fb0f363dfce42f44f9703c62980faee43aa85463acc8c5a230b1e0ed9c127e67a7678255edee3c9d9201262984a6551ad21a2895a5e002a52d5de1bb330754a7b66ff10d0da9967df9c44d5cdec2d260ae8e4d23cca6ab990d39ddfd88843f0faacaf86d84931ee45d4418d26ad37091a4d67d923dae6632fe48e3f1e96f99928dce1a646ab65c809296d11a59e4023b447220f54cb4a806b10e300da72f75d1e9c9017462ca14da0f89d6d5365ed8f8141ddf8ba691db83a0ebe3f98bf7bb40315bdc68576d77279cca314321e4925009de93ac863d731d2c1cd7d6c15f70c87da48336f2cf4c4bde3494a39f28fdeb686b5362010ae90f37696f84eb5529e70a260b2288208498f03d782ead02ee75e521c15daa443c8acf1e105e80d52d39ea578a8318eaac6ab66070d23717639339ce6aee58a22004d23e0fc5d2a2eb76bad6a6d1a211586027f27bc98e9fe6ea924b10033e377f4010442dc6024211f075012df1deff01ba4f1cca335969e084da653a867c089d6bd5f18ca961d0978c22cea228198a9aaef2e6a615891137572f622568f1d9516b4491f24b61c47f048cf0ce80e0017ba1a2f0af40695d74d5040a8f11f2ac46e8dbfc4ed0d2837b5311feed0d01e78dc3d3ccfc98d523d4fb0fbaf50dc83ea72805ab7b83cdde3c030db8bf7b5e68541e4f496b8f7044f7a2ddab01ad789efb0ac17a2aa789a089e84fd59d1fb0ebcab16477b160ff035bb824fb0aa8c8e87a60e6526be53ad91bdddc7c98d67c45f8601ad449e41acf935e23e70bf05b409a5897d84f912af99ad2f8a1b52546cccb2f44d9cadf192b1ab791981c548b1c87d47ed76d3bd492c1dec5c813fb0725bd70b2cded3cdb6e6468a0ef448ec1add1e4624e2060bc3a744ab65603170bf3748008f0e57c96820230d03d2a21008132242000294346aa6ceec78712d7a4613723e9b21c358e92376acda8fe469fc457cfcf9d12bf0d666269a628c93db4edae9369d64df35271dbedc95232e7d7b88593750009bc8e3fbc73ddfdb9ab7cfd54f2c533209c9663dfddad1399718b62a4e1a9ae3700b6bb2b7fb141ac3917e76f43e15b38345fa9213232d30d2ed19a90c0017ce88e647c23158a0dae8fb34b2bbec3e41024c45643dd9acc7505f1588497438563b057538ac8a073e4900376c0622f9446a4019805d80581653b36ee34b2b1755a88c8d2bcd19f4d4338b8723ac02d3d81a660cc1e0746b871c359abb74a30085ba09118ca809cd93dae75095bda4a1edc7410bde453cb94ef7bfb84ae049f55ea69bc31f5b6d7317adf73e7f61afb0a3b762f7c603b90b6bac2f1d0af77c359079f13609328dedafebd1514ab891de88f309614f96f0b890ee91c7a6be278da7413e7ccb5af5cd8dc6866f452ec8251560705da1112f6b93a9501aecc2a1f918f65f631a6406784912f5244fe680042d207944d87207405ca3864a6ae56cdae0b51220b16af30d905f11d790095a3ce5e7283ec0f7a96050d95cff900100e15d160d363990217e1c012321126169613b1eef2f3343d0a660f0c62b2ed74d0b3be62aba6d502f9331109318001b2482c303adfab2d4742bdeff02595c10190bd03ba36f11e5214deb9441a92e272cd0c4e448a94bad776d25b6c9f414829b0da6701b0a2db41d3a55b24706506da6352d065b4a52b3b55f68dfba604772aa56e9b1a655523b58969329b240b6f93b4bbe4f112ce01e5b6c835ae6f8ef0643ee7b062a414794c9e13a4ecf57c4cad640a4194dddda450b90d1ea6163cc66eee84f70ff6319d49b3175a7df424608e29b8bc0946abc6f80519060a35bdfbfc24e12a997de674c047f90c8522ddd110c4011328db48e22b4d061ab50576251e3af588e730d179f8f34031bee749f148b6beb33788290d0b7d36a93563f13fa4dfea5c197a1e6742f036064a8d66ed51484259aa20ce06b4bc3740bc419fd192e066005d1475dac20dcab72c72d6dd1f8d35bd43ffeb213a2bb002f920f05a003eebb57d57c7722eabd5bf08d316ac1852c62d828a990d88ed2d1e9725d088c78e1d29c3ef3a673f6c9cd662cf923c486ddbb545b2f04565614a811534d1930197113ef1878ed5393d38798be56181090bb2ae7e602c97e3390f50071a432852e89c45e5e4d1ad2954b0829041f3e3d5624cc8f2cb79ed849aaa2190993e86e2df9b01e914ea02bf6e445da4b33b07b876e8e8447dd66e04fa3f857e5aa62e14767bf15785340e03f6932ea0423c6de11ba483ba3ac3c5448642dca1259000044b494f91e526b1f6580c30ec829d66093f7d6edab6ac35da51d90efe28aaeda28bc3a24771c795b9e6c7f8aa469d828cd3667b4e20d31e7040d84830777927fe6606e92d2e82f55a641b8bbb4a5cb2d30cc259a8180d435d27fafa087429806fc181c1b580cc6a5265b4c24063ec033bde883165dd940cb98e9352b567b48667d2fe0ad3bf1f06ac9ce21ecaed45468051c9e68649b98b184ad105d9d9ad1b9988c8336895575ce91d6dac8fe144615490da0a27845114415666bf6ee9d6c9130c7703dfe3efed16eb51cc41834619a3ae4d4cc99b6c39f06a885b47e84923a62d29aa8ec0a8610588954b13d0e91c2a108f5f0d2fd4f5c3164ac93b591a4f88552bbb71eb524e4d6cb0b32e339d7660db92d82fb6ee3e49d2206b4f06a047a8133b20ca08eab8df71bf95f6829d4b14a5cff3f266a024fc191ef0a0beb5af1f60c48eb9f51f131f359108431d0882cefd503b53ca7e2f64062dc2d847e4ee9712880ad278d722de22f52cccdc917c083ff10af98fc25e990ede1441caabeb0430538e949726ce60ccb6236d3b2204a1f141750d3b7f1a63dd3c03d70655bf714533c79e8f3c86acf66fe765b17ba34bd6dd7e43fa9ed13ba62f75d1c60edaf59c16532450a3bf7630e77843bc4467cf98add38ed5045413a666a476662b0b1b8e880405cf133b08d57d46000af3e3855692d311ac185fc3c9eace1f10876b9f3d953b5ba320120003c7150aea8c44673b2803eae240be108e71d7199e41158ebf2d33494eb8c98efd69ea0e2dadcab55a89bb0ae1ef9f301a86b4fb10257d0230d7478de2c7eac62bdfa221feed4fd7805eb0ab5e935c9629dbaf76fba3ae83df22f3ac7ac7d40fcdb5495269d6681c5abe0f5cabe9b86c6e757b5ba4e05a533c0abd3715097887d2e54a572b238b910db716ce93471cd0f04ab4f2d6eb49930b6726363c8ab005c54b817b7c08d6464c28ba6a9617f804fd2aef45d8ec7890afb84d613f6a14fed287631915b4bf61654676d35c9c9885dc104e910ebad57989880dcf343e96b4fa1df847207138067ce7d251467b71eb4ca8ac6aade200cd6034d889b3356043d05b8898d14b24de0953ee3055dda9fef0a48c27bc4d562e87d8e7410faa3f355aa3452671af12167d98af205a2fb11e9b550e30582b8d874b30e5c908835f309b547e61876ca8c6817f43e2aabea6db3addc2d67bbfb0ea004499006646cba22da5ed0cc4cb004885ea6986c68aabf54e7c4a7eda9747a99db10c60d097a12e5d250f0fe24f8dfffed7bef906c0a8c46fcdb6166be859a64ba643c4efd0ae3b270b9c848979216af49f39b9a65b03c97876690e57cdfd9ca129619be6cc020084e1531ae654decaa91dccea4d7a296b729fc4cca23977d0cfcc5c144cc80802bd19cee9e8bc1a645684bda37c4e8e208e578113041a6b10270ff56967feb0c89135828d0cb44167273576c2a765ee115ec0759be8e4fe238a4cfcc534cde848f5871a87e9b374d41c26fa7fa2b35036849673a05488acec683cc4b9ab90521527a95d50685e3aa3dcc4e84d128061d0c49282339c2ce528547004d22b2684a5061f45fb18b2d0c5a33b01e09aa51bfd1636e17d779a5eed37961e3cf3eefae1dd3c5056065091e3c165a2089e9e10f1fd2a95bf8948a41ebac1c419f894702994d8762e07c2b16fa2b6cfa01b434c64286ae1f7d2285f2f88aac8edfbd69261641d7d883dd5914860520d8f33763658f44853633dbc48acee2fc9d75ad8a57bed40c6321772741606c84cfc76883702607d3f0986e799280142014b146dccf44151146b1e9c0466fa1a1730d6c3aada2ae981395196f2f0c654f7732e5b4b9e2cea8bead039a4258128543c2a21e26b6707c42255003e3881207f251b13e93da01346a0c29ca0151e0ef67aeaf329ee3589534b496700a9f6e305bf7c949d3d46a78049165f9af53e37e4f4ba615c3c7fc0ce78ecdd379a25ea40a4381e549d4670f42ea1da0232843e1f58d2a2487cb37df714d001d4ecf1b7c7113766475a16c6bf3e64e1a9ea0d9ae7b127f43484d377b52a8018ab7915d8c72116b15d733ca5cf58d33f62042cfc4955835a0e0c5f971801f79416eb6b4297778310e68f78765b795cea4d4e6ce4866600a9f24f8408eacc5ee474f62be1172842900e9d3488bc62de8a9f8e366aaf5fef6e759df2d4225e67832faef5f9c7c2622c57aca406554b0fdb83ff190697dc7da459f66c56350249fe07af4419dc035e30146052106f7f8decd46cacfc4abef3b9600a8067cb1089d17af92157b0778ea83d550d18786e73774a4378cea16acee28fe22eb04e5d31298f2252a1bcb7bcd01cde2b355894efd6a9dfe8ec5c05da30b209b6fb261a3d1a63d4e4127400471ba8d83b6451fb84834c37fd6dca0114cc4037ba8f81e829132c5e006db88f60f12ae4602502395c299b91bb0297fead99610dbb39e0e4edaae966002957443dcc89a1bc1c1ff3f740f14243593bd707aa3843c53e108d6289189aec4724a1c8c631ec6acd50fc0c6f52352c35f1f106c58756f831bd11371f9416c49b7dd278dd8ac4d79b0dbb1a5ac1f712432e3de0f32493877c0b0a98ccf1e77168057737a8f4e15054094e380059a1c9c97a63bc44df825059a97e22bf6ee5d7b472714738f3e6b7ae196a12fe1ee932148d78a8c09ffecf27b50cb5849779497dc04819a40aab94a1c6274c05c23f54f9a2060e2bdda4657a033dd72e8f3e100955ab1c886c962b2a38d19730b0700e0f943550e3ad693445e042d33e1667050fa99f6e66c04499365d895030ed4b6976edcbb144030e97a5f46f33f7c5b1a86cdd1dc71cf06e711179e5fc992d7415ac954086e7943a7a95754ab74ab64d8ce012a1f894599205685fddf029b5793b1a69bf2a98dc66ed0223263cd4df6fb71ae30b1791ba0b5af77e3b1bc13f2000dcc022f4d76ceac868d5b337c535efee6103b79f9c37fb70d3ef04eab9afd56571a5f6a59add0e626f7b14376aaeb40b212f1b8b09e5f8e99861a1f69a7a80bdc262608415597a8801bae0fa1ab3d80b4386a56ff5b03a90ef8d993f9839ec48ef9c2860a227f32420ff5d05c7a53ceea6d24b7b1ce68794e66db4ee9ceee68e8f5c36709f1eef761c5c15d4a767e5d75baf921f70fb2743d50fd49a88ea5c2ee17dcbc358ca335235513458066723299cb82c4f80b0e143e53a5f32c405f42a968a5348c89deda1ad27beae3112c99517d1526858da8460ea06b412ecbd4c11989ec04601021b8afadb0ff06f737381667088b09ff01115808d23091afef3d3c9afe76a08b8eac8c3fb836bc3a5f0df7f4fe152a969e6c3dd520cd8f4fb816eb9a34181382f8ff0d5699708613f116fb21c4d0fa19798d51869fe1e63d205449ee97703615a7d7b336452cc5aebedafcfe2fd5879caaf87c42ee736605ccd6fd8ded96307aa95e67d1e37d98ecd4488672e1cec854268b816a530fa55291eea7c63130f0944fc3b9a25329245d8b5fd0da452f53fce45bfa62f2d0cd642b1a13f4d1e0b7146bc262fa4bf9b144dd1776199b83341c6deecca186ff6b645d40f622dcb443bb9d4a5258c3fc76bb9784d2ad4b463f2307941009ba854552d6d88a4e27abfbcebba8b5377f6f9f7e3d7f800978e53930498b3ebd7c0d1f927b41bd9a28cd6cc2ced660bf9e02c207c02bcb89c26d0c06eb5b26412623d1232e577ce66e068b9b77c446783edd8ae314341c8ba66e7122592813b2e0332c12c48a1125c00c5808f794f87497c762686137c7ed6206d7ac3f71585f0bfa19951a005a04b0deb95d17098829bc56583168ce5896d2da47d5c2a78468eee1ab4c287ab550959c0afd689b4292e8323d54e98e02fe01d8ed8656e1162aee56c5c9a48e0a0f57dfcd64f0802ee4cedfcdd2df4489fbc1cf145a060de2111118ab3066636aa4cf6bf92a3596c2fb853c0812ed43c6f8babda3431b7af0462d87205bc31c4658f25403e540c658599cc0c019803b2007ac7ab59381c938d411d0772de08d2527444bd23762ded5b3f919b5b72f0109230e232a7905e38cf253153e5efecd217fc112d7999b432b378ba13ea5488285aa1d563033a09ef09cc11691faf733d1457fbc1efaf4d62ebfbd103a205fa805b9b435e87070de9479420f082a804c9bb0f609d8b49d2eb1fb222d1b6f49f8359195a9d8a5ca91518ac3b987ac4565d2fa6d265065b3b72f6d99129518928a30ab327e747105ea8ee3118d1df78221cf650206da1b1638e729495503b9649f5429043694c12cdc7780c2a8ae285b0a0e6c43ed1207e5363f0c6137afdd5bd93a2e67b520f56c9994a221e66855a436e88db043dad92618d01c239b95f409ffe71d0183bfab0c935b31ca56726b7c6f4aa91b256026f0a606fc9d925f575d00a2683104ab6dd3c9f2979b4837885561bb029d5824131bcf5d7ea3b39e69ea5992d37eb29e22ccb19a92513685f312d3393dba7222742f831d564f6a6ef6d14dd3bafef22330423026f18d7cc6ccf0227726c8640fc5b3cee3b9e05a3bc1539025686f49e3d8107eed3220aeb712703d9d2fbb24e06b0abb829262ae32bfe3ad70cf5a69e0f73f6a60232044efb61a1f8a23bd566c4378198313898ced634258f9a658d68fc86a124877ae1892e3761a820144e51cf8dd69b72872caa0f1c5b897b0d8d99e3f4d7fe201b053ce7e3f064b8df01db34624cf74a8dcc990f745d145f8fc7b0c350319b6722b8ca6fa09a4b5440679a2e41b616684126d3cc52678950749dd861134d634c0ecb36da01430147c3598a8dca53cd1d66efdb82e6c499a26e3828495a0f4b35e22490fb36f348c85bb7e2ac21381b988eb5007288c1170fb1419385dc655f2f8b1521003aae4066b94a967bdfc4a4e61f622a206ecd1c942c1fc5144515bcf88544ab45acc107a8d905841396e8fe798ac4b6881a0ff500b6380591d32804bcb21842d7d01409c945c13fbce8e6cd59f7d6eeebe0075a5084ed260e6ff70a99ffb16f2243724b954e8555b819a0cdc99c21dba944f4f04e049c980399655c17135288a6069c4b07f493fca7278662cef76ec4682e309fbd9fe991a5e51d44fde60ad67ce85b0383867fa667992ebb00f9274f30fc266d36e3bf98a94ca93bcff5a3995f66d1f75376af0c96c2db91f0d5f64f97f07a75ad4e3322793647f8ff8b93ea3528cfb97d434736474dd301d986504616cad955f3dd008dfbe901549584faf37d46429538993896c08563559adb7e3f6c6af2aa9ee890fa427b6ec79a5d63d0132284210692f60e3b3727c5636bbb35e18bcd6399e865ce397e522cc8e8fbc166fd1558121ac1e665a9f7cdc9f2f324b614ebb9cc2c62da88e0dc74a317f5753f3017ae241e1bf9852344a2f90a033f78d7da97df58566d9fc6830cec340ffbeaeac7231b7e7d0f4c7566a64755192a9ae50de61017c2bdc0320a9d8e231f8a4b7b61e160dc8d21807ae864688e248a66c7ac6443f207194e4044aa31325362c533fdcf006a663e6a27408100ba8bc1a367e67ad5349207f60e3f7955177802c8e139488018b80eff239de565839af3a56c5e4b7caa790223eec2a1ebfdf1f1e329a1ca66da529ce3940e0a32fe4fe6296e814a2d3997f1f3a4cd175c44e5a473276393dbfed4061d59075692d7715480deb942b87498212a5605c2795923b596d6bc45838238c68fc82da07af26b85394e0c0b410681dc500bc6e60a682ca8c508d139c2f3758b12bd1f0163ca631df6aeac400035922b0777a83d45673e03539381401f6db26487e0d047c306a8b2d037a954ffc2f3fc205718466e598ba1683607707cb5e04c93c46467835ac20c9775dabd192dccd0051ed342095fe0600a077358de7a722186615581f730e3d3323d418b57a22b5729843c641910bc451f88b4c774041a66e46750e4df0ac9900bf26cd3533e2cfd4587f8a2a5d455ec0b2b8b4970ed9c43fb617551c5216f5b5899017c1305b9325e15d5ef45e18f3fc18192754586893b8ceacf3fdfc49761a7f8b1b49622a2fab9bbc5af2b63c6abbf8edbc294c013fe4c0ef36fe7e3009350860dae03cc19933d3a1a5030a750a31c195df33aa09103429b3d639d48a1e90f3ece6e914a05e13314fdd21e976b539783fd333f74cf89178de016172a605e984629976355d1dc1a20f77f7b7ab8a20240beff483a63214a1e1e98f4ca19dbbb0b591f3322030c1ad425da2b84e41a1963e3d59ed67abef364dd34b97b7c8cdba3d1b5bb8809e5432607be9858cc5000f37411871b44d86100535054155771f8603fe93ad713432f791a51278f4f7cabe925544d03f63dd7faa63257850debe1d06a265231e7f163e35f7f1619022de86720f55e564d2c513a806d2ed035d029c4fcfa4cb09bc24eed5dcee3206406986bac74d77c5a6105798f74fb26796672a4eba607ac8a483ec6e000815baa523d0432220110f330c4b6cf1854ba3af63e346310014f365ae11b49c6683a4575d062454a09650b27924eef23d9a83ae0933834af5fb37dc094a87d0481e78e48b057fc0fee4a171c70975d0c8d231427ff7d4ec3d57b2f7bfac9a84bd678a459eba0f0e5a7a6831d3c2103b8880c78168163e9bd285e3d01042eaf20c1f12ec8245df1f2d1163546e6dcecb26677c071056050a13fce24b65957a26f62d911509c2037ecde39a661db4418c4e1848524220755ace87196e831a0b9eef3790f4421f4d389761ac67e94626702a9ac9c815f00420ef1c41c1d9766effd8d263358ac450626bde404bf2a25df83f615fad8e5ebf0152b4d77a7d72ea0ec9f1dbcd7e4b035389325d5735f997819e7e38bfbd7d5bf8c165b21b7e48c5b567b6a1933137b0d6f2bba032382767a44047ea0d57d51f3cb93e65fae1582f915b35dc4e16c4d36b5da8af2d8ec13014ef2da28a2b044afddff6d958d96c61fb49f848b61ff2d207c650c171f85405b80f22060f0940301cb77801a35fb26c389afb42cb22b081a6ee48a6bc1ce94dc44ab30cdf64871b23f0e91048bfb195467454cbf25acee40d31bbe291ced925b0b5e046b89abb2d65c3dacd5aa80b5fe6ab7d6050f89d728aff7c355059f24d662850ec52a6ca389d935b8de2ef5760a92cb6712cc82f2eef9beacb86f03095df087f6ba941dfa39eaeb04314a80ca44a528c31ab6434fb7db4885aa9bc767863adf60ba5b994568310a9ea94af8b7317c7ebebece7e83ee6bd408320160b05093e74e6393ca30a315f7ed1f10b7ef8fbfcbc223a0995ea0f99437c8c666ffa2d4d8296233da017d9c41e3fde467acedfb286a5e662da1f26d0e049fad95ade3af2597779f6c6105241c503e3074e314c5c73b8a8b5c1478b9d8202536cd7896d860737c7ed6514cebeba912e50eb92f935ec4ae5721008177f1bb672abba05203549270c3b50221c04fb4fcd95d697e29ede07050bd416fb6c18b9991fab95a304c356bd627c5f6e75587b3e102ceacb8756b9000a5f2ac07659faf0aa8b8e4a850f42de3e6cb23232516a55e02e09e23cdc33394daf4b1773f908bc7415edc046ad4e99e5c5aec0fe416a63c7c14aaaf9e70b20fb9affc3a7b01c883e4be24fbd1f3ec7721fa4ab5989eb0a81c373db88a416ff6c44de8a345c9308bd96f46566ea24d39b9d966862df196bd207f1db920e625a8e1708960374e0ddc8ada576a1a58e21bd464a5557294813bf05320883e25dd470972061622951312ca0dcecc259ab1f255de1a36309435ffd9bd8c0f6bc96495b2767e394397bdf41e3bb9b65813295d73bc6c6e064f62407b6626d2f5d7a06d4b4853a85b22ed78951597467b14f3dec9a366cd1f2652a816933ff5135de9e1b1bd776000a4c5c065c919e69f8a1451578e2597f9d31de9d5c28b59a67aa5c7b9f787b14a83e56e6502086fcfc7e030baaeeaf77e385130fba36471260627dfec7acb7efd493c244218586e8a02a70419281e3e66c640abe33e70de9a02f70d93e564092c3b8c5c5ccc08b369ff84ba012c1324c7d4defd372fd67bf22101bee4b44e2b1a34384855dbf78b7cafb84d6737c16b30c5c3a8e413569a9808eec8f21bb02b3b29c206e4d40b7dff778e1f4e3dec07e55a2d490b75f3aefc158509621167867b5e8c82588fd77ab96486276386c79f9c20b534de85e7dc791eef284f4e68a6bf0c2ac6b60cfbe5dfe04fc1f11924270c9e30d46d42b519e005fd6524b305acc5c71a173cb33c0a00b2e51d31cb0eca2d8e57a151ca08cdb86a0c835247db38d65fe6e644dfbb2bbaaba8c1a60bd7fd54f954565445283ef880e3b89a56c286493238499c4f06f1e6a80822f60a1ee62123d57b460d5d051aaf43b0d7fa6201edfb6b3d8418b223453e751d189ebf3ab2e30537f905b38ee8888da084354369d229129d353261f88924638f4a38c4b0deaeea41dae793a90ff7a13d9ef412b385a0239539ea8f0b717d0f61129dbd1c33575734820b02f91008b1731088c0d26e0a380a5d62de4d88239ed324c186d6d8cc74bf1a99044d1908da73848d06519790328775977bb20f2bf3c65dc922731c159f9fd0537a4d0e64c5095649536e31210fb59214819ea1f019ae526d6c0ac96b3d8b393df3dac1039aebbc23a982c2760acec46c39b044b34fc56cdfeccb1aad71f670a00dc4aeefb8be7357f4fe4d39775192b0efcc916baa32e2e869b26f048d0fc1e2eef9450165a6c75cc47f432160aa91ba28629f6687050a95b04a0ce80309899d45f07064ee385289ac6c1f93946dc559554af0ff3794d3ffc093ad475c68aae8e0a81cca109418bd9b3f931a1c5629e9fced89ecc82a181160ac752f52be2bb26a7511fbc3a6713e5e09537a90541fa7990966fab30366074ad5f2626c3e23fa3991c1814d22d3f08bc86ede4ee3407dc4f8b49e4341c2d576b3b0a22e5be4d39f576636db5e135dcd2e0a76aafea76da7fbcb5a92903474f2283f71b6690a8ac1532caba5910debd352c53c770990bfa9e34f5f8aa2a7d03062ab3b3acbc22871ed761966d6b37a2986198b144f529bdd92aab62eb5a61115a54f9d319369f2aa9ab368e03abcd7dad309022adbf37bd3cf929edb0f6b5ece56b348937ecc82eb885ee18076131ed7342d335b34a11301577decce110f6616c318caf04df7d0705588db9df94770ac72da2a103fb7078f8131b022d72afcb60bc4e6e9d02b6a1876cac46ff4f740dc7bc36619d5d7886533f183a1f3778ca346a9ede306dc8eaccc59d0b3957bce032ef25a25d248f9bfe67ac62263a3600762bac95598a9ad94ad4eabcfb7e4e6b8c5e586355dba032bd82ad77b37759d64a2df9eed09f72f743c33c9b747b95360e6d0af2d532d00bd95bde24d825c0726250762bbcc9199e85b818c9a596b76c8616597bc7de015215dac5d75cbf42ca1951bc015725e22e7a9b4731d027fddf8f43f62567e60fb94b83903d82ff2ada8287bb62c44cf8058d29ac1edac4edc80abddbd79d8f95ee7344a79fe5e21ec0fa0972ccff7bfe15b212a83633e47b248ab0b5a7d58a58ed85bb168a8a608e1a2eab5c31aaa707b0ed0e46e98cded76b0a6ad9b3870c5338a26c28a0dc2ecb0050a79dfcd8e5bf9a0b4c4dd3416fd8224ba0698eb50ab228a6ae5154d44067755055746ef885825d18bfab1667f6919db8a8c1f9fd7cc2114d2852b859526269b37ae347fd680a7340843b81a913a4268253cf52034dadd3f19d86bdb517a34aea43788895e8de5424047e3ca1dfbcae8e609db430648235718d724d3ced9b44d46d295744ccae15e55985ec04a8d6dc78cd9bdd6ca0a464e799faf4a005d064bdb8de22a707f5fb8f2e811109728e5f5e9cfb532b5bb1c42c4965a18bbef7e310a366295451bbed300b3b05cc46352e3e0459af6419ce037c15bc9e5042310f34af3c666e50194e8463536eecda4bdac4254d78ac2dfccac1755366f5eae4f4ed6b9a3602286f0e5f1290b646094322c9b4c6e349637219d047a6dcc0ac962a8231889435018f593d8487623f5c2cd0746883917e628c95dd74d2b6a030ea26e98b21cf6c2e81b35a1510720116b979a13f4a0b46a21a123bb1c3d545a90bfe074eafd2c3c8cba1a7ed9e561ff12e4c90cb38dd3466aeef1843a579073bb0ef32f590a26d168fa6434cd489758511915ac74c40af494630fc11aeafd0d7e549c663f88f9c159a3d440ea83f4f6b034404ad87e2510e7496d4f6f1e6b6cd8f604e8a2844cacdd5b09591032b6436cfb3aeaf62b968d9d7b68a6be4071b2c9b7bd7a01a9ca0239ca1a391823f5c2f487d420cdbbe72ae73e44458d55a0084bcfb7a217eb497c7062c5a749af029d730a2c1bddf601faa0dc3c27a2e3fd1c900f7a7b2adfc86dbd9d40c08e5f2938c6d9980527487736fc9b0d591f239a22660d05f759511e3269985b8c373f5182fef04f2a0e68d75a3f83ab33f3f2cbe4a0b8b918f666316606a276e43d86a6fb214362b94b93a0e80cbb8f24b62beea0ff341c97bbbda588ef8ecb862a2e72e046bd0b2a435c43e44af8e4bfd2cd1e4f0f181a44b09b0a03af9d8441bacc2436adde585fae83a95cf360594a58a59b2d55e6ec944a95481318527ce25e2067e4d2ad127c12d0abeb386bf2f45a53f02cca91d80e738f9e441b293ad36a06f649eb83b314a705c2cfd77ac567c535855bd1adc29b8eddfdf0cbe4b5d1dc6773b274a246c0d91522f82c5bd59dc934c3ca681ada78ddeea1372913d5e000d043b5d31929980df4b427a5ae4cf34c1974fda279153fc9957d6a263c1e04d692cbc4008974f4679547283a5f9cbc9cb3ced86cb7fb9dad5249a17c1c4c326aaee4400acfeca479c604f43bc32e162041f155f1655dfec3752ebe401ba4d70b8191ef01da8f6a50d392d7d3b2a1db0996b829a100c999d714bc053e38d71b237d27830f2b4f1b308a4e0d7f74f534f0d2b177b032c22425879f4dc92d3f4cfe6b293e4f0caa17dcd41958b5591c851d132550e0171ee4dfde4b20df7719b510e7c17bb85151660715dc19e9ef1749251c3d39156bc8c382af62d526005d6f5cde903a6c0a912b232c6690028090b890c10222f35c091d4921b5c649ff6058b85dc2781e912cabd04522615bba96bd7ae65ba30ae1f0e4e558fee30911fe3e81b708533f6d6fe79d021054236e41f1ad3880f5887d08234e73b57ac85a4ba155141fb1968e83b59cbb7a1d4c6030c1242b38d93ba71879aad5072bc6926a2b373f14eafe8f39b840126b2945d324601d9b453ef499beab30e07d15df340ca587fbd44f826af7b36c9544aff3d710906ad898cff9865e90fd094d766b4ce24be157e6042b8a9c415148c3fcc56384974ba4318c1103742d3faf49e4c818a5f082fbba7ad88856e72eb40bca4e40d895a4ff3848c6db3b54d21cc4fe623136c50ad3b238889170ff6dab32d43ec81cbbe71bcd40b3a878a520cfdf9cdd5f78d5f947b02687832cf10af55b50312cae3ec49c4dbbc3dcd13c53d3ddf165fdf4688a76c8312d902ddd99fd83a5d3636148a5f6c9d1d0d11abe5df93feff72111778c00afc08877106d6ff4382179ffa4414166fe704df70afe239277074b7aff63d7f94919c0a78601bc4b78755f4bf80d4003daed099844445c04988e94076579ef4c543219c528cfef166f7bf167a0c6f64c16589c3170072f53ec6a9f76a24e8418850e0161a9c06ae4517125aab4ef8173e99f04bf89e47ea782350122430b1f338cc312aee90568565e8d9f3620577b042a55ab16da258966ade93d9c9849fc4dd53b3fedc0555ddf7913b574264b08b164f4c8d3ca2b1ff5c71c3f7843cc100c709e6bb01a05972bda9f7b6745649f5e5c9f5842101e1ffd3498dd1803c1427260ec99eb002a3970a81bf3b155a969de3901a569a775d53cd0ea42bf55fa7264fabfa08dba46920a4aa3544e51d2f87f4628a3f607729a9e22bad0442a0c481ffe82f9ec5fdf763fe715cdaf5bd94e4f53901defe3fc8ce4b6ac955aa0985503cb8f55a213702ba0f9a85308f4e2118085f8e4c51b8c9523b319126275e7d61c0da9e416236ad0e227ceb420105129380e51ec3bd1c4f7609374ae5cf1201e03293d1b5fe829357add367907f1eee4c0cb5240c83256089e0cfcf0b8ac25d14fd7bbf7b633bfff6ab01d45a8ce488c8e65860e3846b6211f0064a35e9e3efd9a2610e6174d624028ebe9456ff2c2d22427d6a4a2b01b7b84afb424507281289f4f25ff89bba4dfd924666dfcbb38776dcdfebd74de44214da767d60691a2776dd0c962a534b08d22aaab85786dfa5c096b06a4b66a363c650813127d417d19946a40a936f3ebf28dae4d8f20c0da148b2c42e5a82c46946a6378b6feeb29304e5104f24cefdf49450fdbed742473ee86e03d490b2ace0f3187b35d8a2472e657647845d8e96c67b8229f0c1eae1d0a8a1ede500f6bcb6a8ec3ceb613eae1225474dc28e9035fb99d118f4953fa1f3d36502fd0fa194dd2f8873c88f6c5f96b6a18cebcb445336d2a3dab672bc9c98bcb4ef1886efc9f7a74e85473eacba0345ee898d288fc9de0159446d8494a7399fcb71ce0839a1d1f8d237c127ac5bb369d3d7dd88f20c2aab8f172b030c122d2c65d5e5ef2bd7f3a883def528d8041b641478c41a0374764442b54a21bd63a9be2ad66674369a102878ca4dedd1641b6cc6201decef325041759a3242f03e1a67c8e87ee5f6a3eba5b23df87a14a271d6bfabf16220b3d5a53a10409d1561025af5cc474e822549747069d7515e2fa979aa5ab2495c68f2a4025b30140408949c860d4d0992047a02677ccee3fdc947ae32674406eba80b9893780068f7dcbb94f9f11bc16f45e580039cc5cfbc8fb90765c62b16b4e0d38b309a920d453524353cff600bda37e6c2cc25797f8c40051d143e5fc085a12c71050951837e95755fd3fe06089bbada309529d032cf0c55dab30c649d5b37595d9cc4ce29352950d47c32afa4a6b1d05523a880ba28dc90d4f1533f1c592145a1eed11bd016008824923fec167cd527213dac81442890e05cd68e510e3a656262b53c2d04c1c2c88276518931173b9c9302912f5c3420ce71643317032bf05ad31bde5a662876475f315e001ead667d9b89b75252e4d82d7586749ec1904f4a1744e88cb3e6779184ce7ec8fb8cb20c1c461a7ae42065272fc1db214e4c4f270ac7512590e759c2f01b64151553fa9c32c08b949e2bea6566d84c6c0925a6a044cc464b411b620dc5af5c0a9757f981390cfa5e410e11ac73243929999f252713579d72d77305f069a7fe123ee9f69b0a42b16c64151fe9f599d2bcb0d1dca66f0023c49039aa342885a20942a6e0e483f3ca9d02cef032820e134e33aaebb4a88dfd59291f3974ffe4c3fe8fd82e8e11fb59eedeb59704e360c187001f17c00f0a685c43502bed0e2097d8ed67b2de4009d2c920e7d037ef15fcc767777f79652a6940266085c08b2081f8dd12b34466334466334b6f3b990f597ab602e97aebffa51a8bffdf257577f5d7f6f714f6edb9356f356e6de026f27d697a396d45612e744f2fb369134993491aca9c944d2c646d471c9eaaf9953a378ca7f0a51159895eb5fafc4ae572c6e04de2ad6d792fa026f46ea0764e1b10d3963e5f53c53924d97e51ed99db33e0f7f4fcd39031bc59c607937477d3cd67013725414310a86e7b56577197840fbe76d910cc1ed6dba0e1edb9025d6754ecbea268583d5399934050bd6fd90842cdf70d815f194773f8e722fb1e6129afb1666e237b51a474d9087ab1aa7699cc6695ac833065af59eac39e1f947ff513ae6cc74ae06a888e3020de9b7767958614954d9d5755133679b2854577a29d5e1c137565872bb3ab4c67270008f6dc898d89dfcecf44e0a05e604a6275eaabca8c0c549cb1a94522118283027303df152e5450577bebb38b9f3bd658d3bdf65e81282eeb463581f4a5490ac905ac06178452d41760ceb43890a9215520b68adf9e2cbf2b93c2a5e10fd826e02815f7c593e9747c50ba266345adcc95de160b089d169703ed469c15de160b08991693778d084b21f78b9b5d1c6832694fd60d3b61916dc596f308d681d94b1a0de40868d3b619966dcf91cd322c2e2813d3ab00ccad03494b91dd36272674c8b6f66ebcefe981b133b15416bad2215a98b7e7d7faf7dd29a699bf82b1782c736a4691554657278753f774e46cd6ed53261c908a7e69fc2120fac2ae960a49482d20fbc637f7ea908ef947e7e0905bc03fefc920fbc43faf9a51e78e7fbf9a51fdef17e7e8907dee17e7eb79a3933cc1291d20ebcb3fdfcd290920ebcf3f2f34b27e01dd3cf2fe5c03b303fbfb4e29d989fdb34c93c1933bfc47202c888a7afb9f196e65d68be048aef81c05eee4921084e971395d0bc37bf996702e4745f689e877bfecd3073b845f294c584ddab83d281d185c137f36bc20ee62fcc3fc984dc2d90a64b763744223fba889d192d62778615bb324a6237856fe693c48e0c50ec74f089dd187c33df13673ab113836f38b193c2377313bb1c885d14bec9ee29eca4706abe4cd89dc1a9997567b0259adfbd664ecf2976afee35734aabd2aa7b9556ddabb4cab26965d06ee6dae59f99f8d2c4ea7a69f5329f2cadee0cbadd6f5ac17827c42906762d1356bb875a7be85e24247439cc10c72d0dcd9c17a399f237fd9486eeebfadf98ff977c096987de3c1d4142c28b5169e8253653533cb5b2fea1f3e54a8b2fb1299e62b46655af3ba37c8a5b9f7b12b1cd0b02b11101c28aaebf4b0f20102e4414c775219a39323f33e52f03749de8bacc0a563f7b526655ffeb6a88a33a88cabc53b9d6218eaa62fd71144d132e3d045d52e6c7854866355355a471adea6f3f7c236a2f565d655a2833c4532eb33ac2f69332ab1e329355b3aa49786c43cebcaebfd72f31a794eb5cc8ceafe90aec89d15e73815d675170237d25daef6520a771cf209d3c85cae59fb0560288cb3f59cd061697dfbbe09d6d021d71f9bbc53b1aff0ce4a90919346484886902a3064c122629e0f56fdaa7262a47332eecabd1f4c45c4f060d514688ebdd93314daeffd6c1a8e130496c2629d75fdb366b29a522e9af72e845042b5ab9ac5c562eab15d1ca05a4efb980fdf2f231c8095917b27d67bedac4758b8615a2d484a40629099ee23dd9d204c5f1f5c4dc2ee65934ae3fed9f9c15e2fa3b2d35b95e496a9092f09607b9cb85bcf4a18eb591affcc7590ed4e54cf50ff5ab891ad6452fac17d60beb85f5c27a615d7f17980bcc05e6027381c15c5c2e2e17978b2ba6cba4803fdf141e10bc225a89ae6b500ac7813fd71fdc9a45bf29aeffa77940b8fe9d695e11d7bbecd8cc69d64cf503995add32b53ac8d46a97a9d542a6d6f57f89f5176df6148b5dff9772e6e86ca51d3abd1e75c997f2747221abbd0bd9ed69ee93eb5c12b825b6339a0dae7bb2359784ebef69dc93dc12d79fb9336ab3cadb37be6c63695814e149ef626b517b7266a56171fd3b916b58b36eb890a574e622713d8a469f9c5921a1456118cde742964f7787e983aceed0fc3233ab195c7f9e59f1cd14b69f9c595d8fb9332f159ec851f9522b054c797968fd1abe1496ac44dabb704f43eeb7ad659eeca65c4a068f7169477429951eba9f4b5b5c97a8be7260603335640446c1c46a13a827abd0a5cf9c9302adae4b7a8f14d6546167624065c60836737004cd54cc5538841cc608acc24105a31c84851e139cf247859e124ef9e3a082551e128c722157792d4731c13b27bcbfb704efa0f0fe1e13deb1797f6f09ef98f0fe9e12bc13bebf2703de8901effcfb7b41bc93e3fd3d253882660e8e72a692e01d1cefefc180774a787f2f09efd4bcbf8784f702ef08afc53b34387004a5f0a4e9925e2b8527633c9713200571c810223823ea75bcbf77820a6fb3c2a3b0c29b10aef039e87f08027be98b21084e978a4a5650f2731a87a49ec90f20a73b73e3699e823c4a56c0517a0947d91a6986d9ca5ff047c5a41072b770fa1586a82012f91105b11e9d20d62c36624d820962c5c237fea258d908c5dac68b15097ce39f43ac3f3a634a24f2230eb11e816ffc819c2e15eb1a7ce32588550db15ea109eb8db0a6518d508bd0a8b0aec129ff14c29a85530e6354b374ef5f631d8e32069e87e3d6d8ccf15a9cf227bd562cc65ecb6b6980fe5fd26bc5b442182c14c6886f3c66058b69392a2609cc555c8ff0523126c83e89a3f45a5d7abdc0b63ce9b5665a7ce3a798ab668531d5970c86e3b9857c4f2169ba648d91b68ceb1f1392a5db893f1a2624b75bdf1492f6d67f09c9bfb58ae4e94a6d0949d425618cc81214a3eb62ada22485e7e195280591549bf29044b630e5e5e1648d59576521395dfe0579cd9f60cf566bcc7a2dbe8181ad8961f114fd8d3ea9c8a50f1eb9f43f2497be97e4d2ef965cfa9cd1a54fce185dffe9468ea2a4100cbfd00bc9bfdb7721892271ee26923557aebfe6b5ae8b374cd7adda1697fefc4d8cd52a1edb644f0ae096243f897279fa36f2572e9e70dd96cb5c385183cbe0cca94d9c208b28725083064746f2742b16411471ebd32d7ce0e2d6ff5cc5c2adb73e6ae6d0f1d69694235130c1821ee020cb5845f2a35c58bed473b6b1ffa39b13cb57e6f2163eb8ae77190b2332b824b54ff4f713eb2a20f4fad3dbdf5eae56ab4bef14691240ef7c7aa708a4af8bd4a61b8bbe4c3d46c1daeb956cac48d24b5b98451b47f1b36ff143d16d7b79b810da7d84a35e0787ab8c3cba3f116d7408f47c22da385fc8d8208f7509cc80001e257d89c0870d3530a1e9c1556e3f57b92d7e63fd79ab4886e0646748e3001eb799a242c6e7713ecd44f617c6af57ee538ae7ef951ae080be1aa5947a6fa4f9578877b3bc8edb3c2ddcd833eaa84f45e04e4e511a02eece5b6be5a7e19ddef5bc8edaa376ea020e8e0074747c4e9b7f1d28d4e6979f9a6a4eb4d6ae5dce24f5f93baf867dbdf931d1be863f7ad066542d41bdb3fb4143d7f7b8eec135a7b2af9dd8d281963b411e9a0678df3d043c11025c4b0b2c0e6cb43d175d21a390d15fcbb87008f75d38a4fb19922d482c0e6c7481cccb2ccc6f19689885a4cf0413d0c2d5de9b2069137938e75a9665734e2dcb26a76959a679edc2e399c38449f634fcd1a3d2d09bd89ce24270fd390725f0c304079dab0120f36a8fba42c6ed69c8b38a646f4f84090e3a17c864a15988904b49bf3e0e26e0e566ef7925692208fc66fd9332994ee710ed93c2f49338a8d487a7191d1dae00ddb748b20fa4e0e092ec279e3c11e55d1f7c63454c8c6d6155f65c804d8763e09cee9d1f8663a0a4cccce9441f9ef277d6a2c5985761b3d00708b63bdf03ac9aa20bee8caa190934d0db3a92b6559087f2ce0b47c50af087d9675cf7a753c7fcdb86930a67744c3770a62f7519e7f2eb70db4c390d362da3d30387b8d4615438d3c2e17cb766cabb35737ccc94ffb6597be258b77ccc1c18b0e86205650cd610d7bfd3b1a29de47125ea28e69d188feb48f3b5b9090bba7d3d7d399c93879a78fada8c66d9f4ce36124d0f2e8893f609d25ac11f3cd9d3ef6a1b5767a6c4d37ac86a55a47f7e80f88805715004da056ab801b4610b2720815a499aa8895ef5ecd64bc3d924b08180661f6956b3bc8e823cd4eb201a1ce5bf6d1c8f997252e7eacc1415b69fd4e19daeb33199ec0d777e5f7eba7d261770703cf0074f3f3579cf7786afe434534aba771a58a753070a45bf0ffcc1a37df69f13e0e7c7eeb9863bbf2b9d4abaf7bc1a4ebfdefcb2906fa51df42581597b8637534aaae20682edda9cc4040d39a2ebcda6fefc0a6a5d8f7a2b6806dee956c7ae5767c75a4774cccbeb65b4bd04625d4fab2ca0664dd8f5b68c05c4845121eaba1ea73575fd5c8f51b07575bdeea321cd7cee6eb72d7dcfebcf75f14ed3262e057b626ec3a84c20bc742c629d46ab8f9801cad32afe68caab8de348f4e90b91c73664d73e69cdb48debbc0f24956c8bcb8b092646e6347383a6a68415acb5a2ae1a9a1b3327191c394a68d5172c06c6f4e2d292e36b5a2db644fa908695c5c0cfcb62d7bf0bc51b2cad8c759c269a30f337fac5976f2c136c4e17763917ecfa6bae2938970c33df4c61fba98b7762ba15cc10a7d9d6d180a5961798f074a306070aa10927a88052e166c787f395b0f29607b9cb85bc8c0dbd8860d3b5f2d76ab55aad9c08561433aaa1b9317372b95c2e97cc2ac6c60553ccc857fee32c1aeba117510c56966559962c168bc5624d98cb5b2e97cbe5f22077b990973e1403539665599a582c168bf5e2e272b95cae16155e78297ba85f4d04eb22168bc562b1262c366146bef21f6739508b65b1582c16b843e5d2ac0da85b1dd4ae1acab22ccb9255b2582c16ab87fa45042b02bfb22ccbd263752de4b4d4c046bda2b192559665d940ddeaa076b550c7959b4ac7e2cc9cbae9d8b2b668ac0614eaff74b2762bb2b1131bf54f6dd5566bd3682ca3b14a6394c6268de9c050ba5e5bb3fa8989ea27929b2792db4913c9d3ff0b055e970206d2656666664749e1ed8031741c4762be99d3eb9e57561ab92ac68d5c3565b078ce36a4c83cb221611d06ca946094674059d0348253fe32e11c8253fe9912ac9a4230ca835c35598e3262ba60b6602299454c164c2226d01c8277b29993b9e65cc154c13c328598414c205c1e682699495cffd9aa992b73d55aab8c8c8c0cd5ae4cc5f243b222d911f70ab34c2c899aacd2e49d0fba07b6335ab7b0079655b839401e1cfaa88d2c1708fdbe5b68c104c05c2a830adacc6e5c077b5097fac604a5f1218f6d48d2eae5aad31c82c272b232fde5823673dc68a67cb3a747b911e982d1cc019f78ca3fca6aca4f159615f0ca6c5d07b178934b7a439674461d16111c6262c91a33baee4d9e94349f87c75c99ab85f58aa75cac3126284988d8ed5c305659fa56ae49a9d36c9bf1c052cb4b8e98d38d1a9b1ca1092814502bdc00e0a3a13116be163e8fe2db942b9ec47370965c2870aac06982f3e4f27babaf784e0d8d05e643605e04e647905ce69a784eb3584f58515853585558562e7f977dc473ba2c1b49d949ca5e5242515671f92fe0391d9b29ffcd8abd72c232e416b9fccdaac155d94ff928a727969bb08eb739d5f8cbf472c1bdf3d74cf97b3838383838ae15979edc484fda7bfa495d5e89047ed3e372944dcab22c71b08eb0582c5609598d0b0a97cbe5a2590d59ad56abd5f5bf81420d3017cecb74717070bc09e3c06f7a37b86da66c52966579621d61b1582c992ec60585cbe572e978b9cd62b158ac9235613580ff316c32cc6318c3b8c9dac06f7a309b662a9b946559beb08eb0582c96cb84cd2a1336611336611376fd5b5898a1cbedb22ccb92c562b158accd4b6d7adcd6a265b66c52966559621d61b1582cd6f527bd503b46cb2ebd2eb92eb72ebbd43a964d8fdb485907964dcab22ccbebffe978abd56ad158c7621deb58d6adcec9ea5e73c9ea019567b28522cb70acd65a966d2265cb297efaccc335516b91b3ec0a8f86deec7aa5d72dd1c8d0f78acc374c008f419e191868bed016ab9548608cc97edee771de81dd8d13478a316d9acd2a7df9e9476cee0319530018e7e3b24dd37a60fb515da488ad199d9f839bf3c0f6973a15b21aaf32b5df41131d3b7770f246a3a3544c6944b6eb46c5f6ec42bfe4b6751766fb29a5949e28a594ceffb2df5cf565a21148beceb39ee7dd079a86406d1b69db4e762369996da92d7ec6375f4c2624b6bf8d3041017374d5a3dfb6514a29a594523a9b929452fa1ba8912a9d2e277f691813c8c31ca594cac0ebde38d2663f06b3ac5efeccda2d44cd54dda8cb9481cbc00c0a333b7e72bb9452bb7d7c439e7027addec2766b1f372399e9465574fa05e2979963d09e528d02f1cb74ce9ecccc94c7e42cd471fd75b88a2733f30bc8538625b7cb2ff670cddbb88ad2b018859f7ddc9a694f6659964d8d4e20d4a7d8761d6cd39b29a5d46b69d95c409ef03bc25f897bd14cb48fd879b259ccf7c1803c7cdab2cd51a7cb4fa9cc3cf90cd390c6bba489b3002b9e67d4e2982e0b17e606cef5bc0f24954c97a6849be37a2dd69648a03575770ba0bb7dd2ea93d60c260c35ae24ea737e6f343d6ab4eb655abdfedb47238376f9dd4fce7973e73f0070590452affd91a1705dfc01a45e9afebedc6693dd1f402a4d5fee0ab92eb614eb644cbf2cba14fb83de1b18c6efa4bfbbcf072f77bdeeeee1ddcdaed728af0d6d55703e86757577de83fd3ef04746b29ee402f11290a597c5222ff6604d2d46585d207ed9512cbad83d580e2c4291a36cbe8d8596b0e57a9f077e4eaa744e12c99bb9cf856b3b904fc8add90c33c5ef61b70b8de21bfe7e7f21d7eb500395fe08eab75491678a2f0ae68635bc1e9dde942bc9ebef3eef6e773b0fe7ed401ab81ca9f8f99c02845e17697a906e6ff82e3bca4dee2cce1bbe53b65d6ffb368e7fbacd931e720331a88c417cbe263e2116686144144678d058400c01d1841363101f4f899189bfcf16c5939149bf50c4c8cf28f8b30d7594137dee522cb70fef95267dd87cf762d2f7d0c51b4e977ac8d79f030cbb1a9837f02092304292d1c7e50c36fa8b1b7021c418c4c76669c148dfc7fe40c40b27c0d0466431c610a38fcd418ad17d54a377a33c9e3941f806486805d10f12c467be8f43918312237d1fc781d01082b060640ce2a3ed30529189bf8fb6c3384526fd0cf098e2d8600da1d1eb8f0b83b46b49942b462273e46e817d00c40a561d84112744f4480b88202f46aff6008b1543fc45d00f461a0e14a3cf0b912f5143090e46260309465ce842589cacc62e048095d1e38a5852e467ec429b2e46affbb8b05f50061531af0830e8c2e8fbb890b18831011bbb90c68cd1037710031abbd0868cd1237d5cd842fc200156fab870660757786164ec421642959189a218fd8c5d583262f45ab6a0b246cbe5e342766244cc68ec42fe4116a3c72f261c222b8afa45e4c74847161b25a38d20aa0e518c8090b5102c8882888e2cb4208c58d99c20c952c46d01450c225d105a64f19c14d1a20636687c01c410ac917b2136688cdd0b193bfa42116307e1a134889831fa684f08d9db2f1481c37df78591a2d147eba10623c7c51522a88c3e9b1231468e4bdf66aa797833d4d021800602a2046c98297f21a38b61e753cf81e528768a1e86654751510433e53ec4209c059120158c3e538d91898761fb858cee856dd1545251c52539c6a52bcaf50742d3835ed2e7d21733ed0a27ac70011a5434af728220bbb51a46564a0cb164005310191ab91732f64a043ebcb09de599ef79cc37dac9069a3d0d6f385ded7d0c28398c41b8f7692382a0c1c8a4be90d1eb422e14c91b4e977ee6917ee9e3849d484343d771a1484303c7bd9051c8c86376d96f210e7d353a6a9d268ac0513ec0b0e40d0cbb953efd7a473f0d0ddd7bef89415a064b80b11a3b5a040d4e0dc41442301ab99016418371f3347e820229446317d2eca00440a317473f8e640545436317d6287123a85c518e5d580213276388172c9c170f84c62ee431004d60abb1a3a181fbee3b31480980464e14327a5ae5c07639a14468ec429a30466feb01cc6089a2910b3f2246af9248219739860536347296d50fad91bf8423c6129e18b9ae0b798362b9caf532b28071047fb1c48a35e6d785383a2fcb55eecb6d564b0b32462e64c1c8e8d5af0b1f8503cb552ef95d68c3d31796ab5cae7249cb25197d5eda68a17c62c8d8a594239863218c2443deb731c98a2e8ac62ef4ca18b558a307e518443363f431293176cf8541322c420475ddfb645af49065ecb2686307e5c8af29ae148dfc640915c0c62ee28321108d5d8803c5e8691be9f5c512abb10b6b7a18bdcf064404b5c61c8cfcb663f016dee10bf2a03364881fbe5ad1d8e4b6e397f93de69bfe2e9c49b87668e2357221c883ce90217e3cd2d78541bc35066bf4216531726110f662f4612723f75d18a4bdf06115c4c75323568edcfbb00da068317222135a24850951601939d12508c370003406f1d921258bd5c8bd0f8e0b8c8c9c388568cda0086ce4c22f8dd17bf9ba300853810236facc1f46f617489396350c7b2452c8ddf8c68a184580462ef4bc183df69a797a974a1787ce72e95396094f6a2e0cc829efeeeeee6eeb4b4e331b4769a5b48a9ba3289dd3a66075c9cffd0536b446288d2a369f69fd03d04f3645eb28d30f3c00518d8cd02210993ef09b65e1297b136f51640a0a72e848bfe679a76f5b4ff55fca4515695c1d46fa9fe7f0482ffd93df6073e95b47b50d2c5fd2e6d0295a1377198b308a5cd2be76032145728075310410b44081194ed8b8a2040600c90bac58020d2fc0204269884de1b21336806e76998bd5104a745c927421848e131b5cb9eca48b58002e3be9a206b77f8ab8cab67f1dbb59f65cf7f804793631ec7361df4972bd1a42a9480299970b839c61691a46d3551ca57d5fbf99f68ed2faa78b384ad34a66d8fadaf39845da077115f7daf74a7b8efb06793891ed873e6c4b90f5efa73f4320a1d534ad6486dd9edcaea6bdc955d96b57d3be868ea1aff636b8aaaff637f8f880f5cb4ebaa82243d7ff000ee0317b2ca292b17dcc9c1aaecc307318d0032233b0083a72851142a8381aa2e585145c6031a4e728e628be3fc3cc098113493481a4850412548cce0317508c8932ae60838791d308c20aa6c052c4103cc4467f04cc9c03f4f062a275841ff0200813084b6ed5478d71fb601c57f1b6f94ca1bca2d9ae6ddc23315b5a6bd125edfe47fdecbb74951bb516acf236e69cb30bf9663e79303719461d0ef368854367b9f3957ccf85dd434840b95e3aca9bd4aa853da5897aa85f6db0ca003c0cc0aa28d7a17419f29c74d24a9947b955dacc83071f808d8a5c457a79db8aabc8d9ba2deee2f67ba9d9c017601e734839535e9665e925aabbbb9b38ca8d8cbae4613f2e5165d83893c8751c54e7f811773defab4fa2a0dac49749778c40114bef98a94a491c6755210405f5d69dd37a92eb481ce51c345b462ce9a597ae6a98bb9e4c71558b4bae371972551422d1838aac5ca773d239ab0c957ce39fe8a553e11b9813b9d1cc71346a7c0c46f9d0f4d824e240309a29b0249765e94f269da1372967ce6ccd56395bb3b5ba24971d648587b3fb3792b7a1a893b8101340935594db532ed3e91293f0dafeccee67a6b44352c8d3e66e28da759b823c99e6accc591df27b0c32c053d03b98db16e91d2cfa8fa7a077b4bfb3d89d7e0dfb69e85b05a2db7b8e90b8ca5fc5cf97c1f9f44dae02427df22780cbf0d886e4b6ece99c74cec9d5298f8dc3d43bfc49142e3f4a651dd544d99c59ad278b83daa600321e8e72aff3be7e1bd2f39f7867be0618e59f62950d3697ceb08a3effa8ff83bef6f4e5aa6e392a0c563512dbb6fde66d9bb76d36937dec907cd225ed0fb6b7cddae962c19096ad3b8b5892be8a664e8fdd9524acf16435fa53a399d3b1151097242760d880b55a11c166ce8412058c264533875fabd5e85f63d56868e6c4e08513e5cb68e67812aa60ad56ab550ea3cb6b882aabd13f83d5a05506445f75557f660e8fdeba247d159542aea0ac55599388ad210e41562b1ce6d1736df1680d957cdf8545d79ffb440dd840e5d2184f5f71943f9785d40a2d0a29d14cc19060952bc1280f729412b48aab281546810df01114e917fa385160c98ed1d7acd9cf99cdeed8d6852177b956abd58aa56e3f0b309c24300147b983f33be4fc89bb3c886fdc0496a42fee877760b8fed3072b0147b9771a9cf2e7b896969999580f96befce52a92893c28c8833c48023a5c200abdff1ce0e3870047b9026a9db3ba6aceefb2c9b355d65a7a8e8a5a8ef21910e028efc6e2aacaee432d2d2d2e3a6cb8a5e7a88af62d608fa9fdbc541375b61087d902f25091878b8e8e293381f5b90bf389244e9b401eed3dfaddfa22ca04f25411878b232bf70b7df460be2c642eb2ace60cd9bd653cf6eb9dbcee1b35ec2147f5936ed241ddbae148aebf57430a8568e65030281ad7494ac6755086f963ebb73879b0408ef2e799432cc945b7633367dbac3d9d624531faa2afaeb3b6664ecbfb76b24fbe0d33a745e4222fc2c137f43b89d895a398ab3d6b156ba55728117df14df8f1cc7122966b4bcf91951dac07f10ebd8cc5134c2ecf2196a4b5a5274b1147f1f520578109e8a3dbef410e05aa3e8b4abee7e1d53bd67da991abbedf367bfa2fecfb71b70470017d74ebd3d714067b7c515e33c7833ce5ef290f7ad597cb5b4001c2253de83a7728bee9e7609d2fa088d79699695c086dbbbb728af6cc2534f9a71496e91a5e5b66e7c1b6bd79a8555847c8b4ece23432c4839b28b18d4775985507ca9de0042e39e44033577365e39a593ea7a07f969edf2d4ee122c9ed02c9e5028a27976bb0bcc59095eb61400047310ce00806187454052840010a407bf4e8d143e8010f78c00382de6e274b010a5080022ed65097421e5bc0f2164353ae97812f031960b0e788d573c4ba19007b8e8eb4a8f2ff66f550bf9aa86137a892f0424e125a682100389e437d03385876b080e5e646870a55a250ff4c658d8d0e0ea8d0466a8536524801059b18ec74b276db489c13b971cf0ed8b061c2096c84e1e300fa81f970e14042093990404363b71bdb69894ba8ab7097ab845cc52d0f879391cc8c110c8cc9c58ff4906d3b9dfea75cefc7e76b58211eb5ed347417b0e708c85540495c453609c46f3f0d7b8e921cc1b6c8fdfe2d1dfa1247cd7f015d0dcbc3c59e232047f1e5eb957a8e58b7e7a8e539ec409ee32e4fcde7db7374e47a6d7b8e5a8ee2eb19bd59e63d47496ad8738404e4e93962b94ac8e54b02d95b7a8e8ab8eb1e1d71145f1efe8109d0b264c972b424ec3962398aaf2f7115e9ad3b5baee2bb4d9c99f37f3af9b4d34b0ab83ce66e1cbfd3525aab0b3a1ef30d6b59a5db36bd399b1afe2a25b95fb146b02e04cb62158b60c9cf6327d3b70d2c8b69d8346ccc92b84dcb4876cbb26de3b8aed3c1e3a198371e0a92b49213c192dbc69df7dc4a6d794c9de7eedf0792d85adb1de71e739bd6755957e9ec3a6fd2ecd20e583851c408b02b2bf67c08d6bf0509cbb02b04db5eb985c5cdbd7edd4e6ec566977cce5a4c8eaaa28da3bcb3dc1f0d13c29c734e1336227074603872020a29a052bdbafcbe06e5d88d81376bb2797254adb5d65a6badde3b6aad75f6cc4c339ba2aace2fa3737394cabfceda35066dddfae7d8b6eb3ebf0baf5bb64b3d9a77ff78f5b3fa55f4d6c1abb57a15d999374709a9ed355cfa1cf657d16b05529b78dee62aee27c2f637d7d0f20de7f0e9df39fc728bdc536c8d8cd66d983fdfc0b006f8183910fac77fe045d6647aa13dbd72ad956ba5b492b5f61479fbec889f20fa38f4c9ef76adb5d6169a5edff3e6d3f7108adee174fa0c7a873fa52268a1da428ef2596bad4fa5e0428c1f4ae9b76dcfac5d8ec32eb26def7335ee22f5297d06b56f0619d03ef40efeec69c89f85fdd33be86bb47de81d5404f569d8454252080edaadf5039f52a8644d9606410b11cd8800100000f315402030140e88c5c2d1308be240dc0314000d718c406258469247035194e3480c624829630c2180183032323220520400801b8bd2c15a53d89e60383529765d30971de8868638ff50b6e4dcabbe5f6b21f632394fc874e3ce2eea251c46826f05c025575940e01b7bb0d4f3856dc7b69e1cac6c460369b83fea55fdb193f85c5cec44dc439b19eceabb32cc31873450659f03f104bf344981678453e88260ad3e031406b50f1894840645571e4f34f44e9a41f65b25d2a0fa26bd4f658a76780d7d62e8d5ade133353429e4aa410d85b12a595563f8f81f3f54950bc244b62bc1360d533b781712a54766a5f7404e7eacdfa5745d9c4ca12f9add0c2b70a3a063f9240a0f540b846928078b77b738ee7e8bf2964966ef183a629511e15f66c25605e10a4986ac77ea63fe2003ef81b2f526227ab436b99b41cd229cae3061ba4458929555d0ce0627e0746048b6feab548712bc0a8e76e4b709ef8173b20443bf74d2c9fa1f63281c5a7f9cb617618e28c6f7e6b1486da0614d5f48b5652f6261cf27a1670d14b6999684519ed28349ad50c62c83cab5618e43016ec4035b8e33a91a25fe79ac7535f419fa4f4528c20cfdb88450484f5d9221177284d639971086291e9b77030c010509575700d2c066666d67167676b3ddf07002d5ad6565cfdf8a6445d8311206612a042e3f8e298625085c85a156015fb7be06a0d3b6329c9b4d95d1eb56e45eb76db8ca06b89edd0e56b5fe6671b4a7856d037623ea635a83430b60e421ab15aaf6ae6d050a401c1bc5c100efaa408b786016b3aafa9cc92a0ebc68db5607c9dc860652238c1cfec579ee6d39e34bdde46e4ff74ee4503da3b26937d5fced2ca5a49d5bf4343e9aebf83a8f3c4128a6f3cf2238efd65998fe1c62db08445dfa07cec33d4c805b32733766207d19f41053ead90369f9d7dd1693edbb7b5fd5d909b71193c8bf684b010cdae1a6c481b10934016e98231d2f012a04c8b354245f31d51f72aa35e24acd4bdc4de68d676f1134362b5533964508709979dbf49db5f9c12d2cd9b287beb8b3237ec94419b46ec753b45c648ab3b0e65090f85ac1d55313871a4a82775ebaddc393a6b3ebbc2276e723359411c6b130047a42d7e78dd25c778b56866bb6149163a1404f4c039ac0b4ab3f0b2077fe89a175b4bd6061e61a494b6426e9a48f352280073aa1ee8cc840c4043fac11c0221444cf3d84194d5b83947126c0ab194b7707d03722ee21e9c4857e3741d37e3bd707c1c0a58f107c2cb15d2ddc70912ea152c2891d10e820b5b5b5658057fe677cb2652ab60df67c4061580c8b7e385ca26859e9b1cdc9d373be839a7a9c51692f1973273187040f73578801f50643689084e84effa484828f9602de1b5a23c0ff1ca8d5d270123ae93c66c064f0bfe11692cd5a4cc300d1c82de32c5c5a722c908bed78356e56691219f7ab4383f93a99bea41d50855ff05b8f6f593cda15faa93965714673546e1cad364ff76373fc2dd0c6bd153db065c8631811c0ac4dc194ed8dcfe36e2686500284b1faee4c7a0688041dff1c5ffb2a1431f4727fbb4cd99c2393e0dd083dbd88caf43a130fbc27940a00fb44c595faeacc24c15df3c02de1dbb7177f10a640a1569f034a5788ca4eba1c20f6193f138fe9cb322288675fdf206704030c6e4f606b7e7bcc08b2ad11c8017e07f36ef7b0d35b35f51eee29d5e88afd8c60b28292c569b4212509258cf8dcf70d38454fec68ce852aef73a1ac5631b0ed21478fa98b22d267ab42c64f6293fff04860f4c8e3e5093e3e886325c37e183dece544176f8ada0b7a8c7b54ba4e290a9ebbe808be66c4be5f8fccbeb157c25a445cb40b453c995e110fa20cb8e91931005fd198f9b532ceba8a340bce584e1af3487c28fdfd3cf44e05d541083d62d3a11a5472ee5d6296d0fac09b98a969b55db2622f881081130fa0d31bc3a90eda4ae805f2863e6fd93f189560978d37eb9b6a525034ab0f4afead4bf682be8c7af314be5b0df0c7dc5b696ce922900d782e7710f8872d6e697a973581e701f5929644c279421abc903c97158d876911e36b4e087998303c56a1969661b0edac595f88cc87ff9f15f399776db15e0bfcb242f65bf1081083f98730f0e99b60ca09aba2ea5d493200f3a55d46428b2302f2ed1f33730c7979455b6873be40a1d463b3920c477e43a2f8b64b71c5c4749f0d5b69d9de25b83afcfaf01a7433f737a19f606fff42f38397a4d0ebdb47fc0d2f4d1a396be6ce5100cbc9be60bd0a15cae2bac37f391a3a4f4cd8314ce6e5c24798bb4c8b70870894b53fb0d0f839ea7a1408b8237259b480a29f78fe7a18c9cbd0931f6edd43cc9030d365bbac79a4d292ca285b471c9ad32543695073da09349f781b42e36d4320da2b48377214ebae0169c680fb0917f8270a990398b63ed79749f8d8beb80315a8c3a012bf7bf7564a18f481ab71f3ba71dad56f2802d114f8ac07227de08c206c88c3a70e66fb0111f788221d985387d8f7fb6fcd916f190abcc973407fec03f7774a093543a7aae7560acae1bfcdf634648c45675c55311fac738eaf8104708cbd805caf5f218275c599b564fc00c0377ad97635b92c89d7e282477694fa44fae993b4eab9c67f34cc2b6cccccdc4cc4c558badc1343933a2ecb7a79ea65c4a24fcb069c112fe83b50e0c77f59e9e07cda9f3fb22d5f013aab2f83c4335b47c5b8de010537c0beb134b54506eb1b01f00c6e6fcb397e8a7f6c667799ef577512408ece8c171bf75768006c662304d160dd184b2573365172f1f9cf332edf5938190c0e6ac2e06c85b81f7688b457ce4db895164dff88e44547ca0927c0ce1f8cd166628334b60c60b309c62ddf826ff5af6329318d47a80011694ac27ddd0c83adfb896255ab957e4194eb750f45deebda9762812d3826e41828dc1108c810b209f7cf42c84ce19d0a8f4957888317825b7db318ae7a0503e0106b44dd35eb35d931b86cdf2474adb5e9dbcd89c1d99398caf79fb5f138405290ebdc33b288dc9d493f67e2037696a6aa941c24e2048c25ada5f4e6c319ba7d34a625f8e1aed128f5e0ce4abf111a02963b9f7313d2fa540555fbb07f23c7bf16c18f3dddacdf6b434a4e08896aff2f01ae59792fdffeeacad630ff415f30c322e9a49d6a4a61fec3eafcbf984c08775960e318b383d927ae444a3eb944c0ca915f9dc0d85e1ad084219665dd17ce9b77c69a8e68a95b2c5a8f69b88b284787d0e8008b1d2e43f9d85e2f3528a6023aea387bbad717758e4d6fc2731833007a44e501be67e8a6a994948832dee12a4f0c14fdb51ce4cf811d3314476aefc57652169b6be2b503fc22fa7a608d857960c6420c618d2700dc43a9c60f64d3901baac139f0b525e46c1636c144aab16789fadc642a7f95a764ec2eaf3450a5d8941d1071ecdf4565c981b3c8c34df8d06d1f489678a2ff9f56a115e0761aac60d118d577f292d49c9d124ee11269a56883e38bf767eca5ced7d774798bed9ce7b53c716e4e419a39db79fd603770e477e41aca2acf40b3654e9834c41424850e1b7b22887402c69b93a7bbe63333cba02f16db07eec08c4a2357e98c610865589f80713b3993aae87e5c590f2e655e97d6db5b7698b942f01d00c32c44f20790673d424c1831217f48643f94eb63679a31201da172117bb3d844b8da17d65d2703867d6c1bbbc8a3a621818ec20a5b1bff5af3c0a626832a6df00f41ff784512d52d3d88a02a228327d3c98418e913526f6de77ada6eef6996ef3551cd79b47fc7595c7f488e4249d77c286afb98de65089fd3df9c7bdf22c20dc49ddf16735f6ca7490ceec342995be142ba961bf6de98cfe49d04b635ac053fba82a86f623a5d10a362ea64fac8a1cea973f6b4c884b0fc5d4e9572d819638dba58e1b1ecdacc7e09c602f06bf2a6db6bb6a206253f04cf57950495ceb3d6508d8358004225fc4eac04377c34a9f1e3d4e22e34d2e362ac0926cdbfc00bfe4263660c7023bae04b8c439f3c9e84502dd6337c2e99cb9210f11a0b2c9121ab5b7e9bf808b550b5dd4edc5326915bfe88567a7458fa4a1e33b855467fdf4e2cb8704cd1d2846e442248b9e8d72f2235bc86262532b9468fea39cff3cbb9b42380a7c3424790ca95f5a2e7e8c487f3b500f2af5823b9c149130eaa44b7e00f0876a21cfa5da2341e8aec8e21f7672fc017ec651be18cbdf41e5b1b177d896f5bae786abfc40bdc31a0f57db08aa701d6223e9f4839e115fd5986bc5e1d887417a297de387e65cb462dcdb9986a298ff20fa4ee09a3a11f80552ba2f643ba91e0b227e3f2fb49733485146dfcc98f1845d2b2b69e86b500418312b6f642400ac94be5dc74b93d68af2fe29e95922df3190713217a17e7a32742de74c6f5256b40385186034244f35ace6543c422663cf3f4b36830b7abb34e0cdbe21ba459192ca40405b742f796ea91f936b447093d19b707e989f4f5ad7b5cc96fdc02046d9c1c26911176e06aaf3fe9751c14240042128aa04451ac1aacf5e142d931b31c89f25a1296c0882e361454aabf988f8491f1bf18e748f01153332ca096b9dbc7e190ad2797ab1ae9c0ed492886f351d9ea92cad1a6a75fc902c55dc90d7040c45fc01f1e3257a85898715f61d029f64a9918584ce08b281cae95d98e5d6f29c62df9e03f56f78f0270c7bbbb34853a90300c4c6c11c38b9f8dd8c4ace00a125d7a93e0e724513e9e2be5a51bd81237d7f89c671d15051f718b44bb0606d9b027e60dbbd41b4b2ef5235e05429bc89fdbbd30350600e73a7b5e900b618020d1843af56a2f06428d9023882dc2d7c1aefe411ed34152291b6c4248c69fcbfe03dbcd7e65080c77a41bf71fa17f461df2a2f56075b35f6981c055e906e72ba34252ac7583b320f05dfa14fd24ade159c3596071c9d457fad385d6a3c54d2e6504868bf29b1eae58d4cf2789010442c07b33dec41192ab43d6cb9cd718f46c5d6072183ff998ecd1fec7e7ea8296c3461f9fd2028f5be9cd1cab6f5480917e7141c833a8bdf230258a08b84d725425a160e9bb2555968e24b140bde9677adbd1485cad12a38654167ccad1c9fe00162d0dd9294d70f2d99d522332996fbb530610a74b3a479b7e5de50b14572537f829d72fb295f81cd8220d3dda2a653fdcb0ca14a846fdacc0623ca6a4acad50e85899672a7eacc376c9715a9b30133bfac3f89915fbbf4caaa9de90c84dc97712b8c0d5dced65a936a4f3474e596084a7f740805ad49c34ee15a855633d97f8b5aa49e96cf3e49c99b7372e7d24eac0da9e7808ab6f1e07105d45a949de7609b11ae55448b4e261d5d2b083b7a5ee0029f89cad2fa5e24f3016883eb3e68283a367dea1858ca9abf530567bec1734dd6ae2673ee252d985f9dd443e10a91515071d644006e5babd640be00e643cb385bde63567bf2a8428f85383cfdad9817f21fe9a13d08b3e640937e1403f3359b0385085b28daba619467c658306471538a80b5669c832c9b8256b72be3d857880b343043d0d2db11a477e9e0ceabb4e5faeb2cc3739d78c25f7da1dbc23311464b94568775c480329a705d94decc897ade4fb935ebda38c6f36361ee8554e6be729691822ccc622ff813c2613602ed40ec9dc10386b4e5d61992871595d7be22d5dce87b6ed20b1c4c0aa8286e72b7e0491ed13d5e17894a541ae7a9d24de2986fb7d6b77886fcb0c0e60e51075dfcb9510d4aa19073b5b461e787968a34f5acf0f3ae4cceb9c15447762f0ed22f6c7b97b22f2130edd147c3e350fbf888f894b071710752debd73566b72251562300c0556a6f19c4655db333cadf51503b13a6cbfd77d5c4ca1561e40d2cb39c52ba96156e4bd995867e74196604a2576a4f1c547771c0ad6172bf6618b283c3cc3303c231b98b3c0e8b81e5c96007296e467a467009a3316129cf5014ee148ca25bdccbeb6e136469a32cfa294d8ddb8351125c2a0726fa1b37ecaad1ecd791424f81f6042ab1a404947c51fd86b27a4b84db52581278235f11e39aeaecbb6f1b9bdb4a84e8d8582aa6a95b9d2674250e5128da56aa168b740d40eb52ec178063584f07d4b4c20edd16681951bb14361ac5407889b90d8a417d1aa61d6f22067407e5f77f1d03b268f0bc0355e7905d701710c612296aef5ccb93963791e3571374d2860516b17375297c94f3541ab74b290b7aba73a2a08d04aede13b8719b3df4588521cd478ea46df321068a12dbd2c2edf31a2b1854cf9462029b1f44ce879deb5098a598756de6e3f6ed870e23a4d3b1e70f845330ac1f8796e8156847315e2e3b631461b0d6195bb21a85890c7f8020e0e3f883accc8fb8b5857bd434ea941a8bb17ed6ef130f565a950e4f0f796a900236b51d5da37f7dcc0fb1a515f74f697553c08ab11c1d150d583b143cf725478f53a8e8d5ee2e1542a718b1221fa7e4b8044ada52e3618f4c1055c3782581138499681853f4b2ef951255960cfe4bcf18c5c03cd96d07b11bd4c7c064604687d65efde82e3ac457d45091c30dea2dc0177d2411dc80df10af4666ea372012f9f64142ddb036c0377510f28cea19c9d63c7fcf4074dccb89f000258abeebc1542a405e3adb0011d66c12a089118c12b101c8c8a3dd9a215b6930b975b3b478a258862f8e90a7164d922f830167ddce7b719cb8c7d603c5cbdbc4a5188adc6e195ecaf0e96cda633a2d55b68a7633becdc1f1179dc9c8bcf04bc3e4f30e802735663df40b6d130ca12ac2369e923c378ecb521c4d249fba0326145b41853183a8ad96a44e3b559dd6f208a0dadbf4ea754de93a693fda8e5bbee0ce9ae803fa3a9ea8daba4d30622558c55d8a9fcfabb6658d9b8e602df04f4f14fdaf002deb80773793217885343a82add9027002cd54bae71532cd26680a5f58e1b6f1b175d8c63b20ca61498dad6d0de47b75a35759437d47d9844af5f6f2f0ebf2ba004efaa5c5c6a96beda1a4c8d12f2686be0263f57344320484a094bbb3f150e5040d72086fb8be6fc671d6fd000363c0f81bc16598a21df29fa427a35419bb74addbc8fce23e9a50993eca8b91c62da26384af255c329dc952f4ee19600a2fbfb26117e6905179d0f2d03c1369bc767cc142f1c37a135d2f7d81f9f7c7b383ef58057150872757af9f7ff88b163e25325a165830b2b4cb24ac6f480cd52d926a74b97bfe5a967fd0e068ddd2b3af2b005a0f37b1f4d0d68b027e3aafce77f21e72300da037a9a0ec93871409c9fcddc187419a179e6b4848b5c877380c2d1e1604ed0be7992fa3d970d7cae68e50e8005cef855853ba99a00ff6d82f54bd6472181db2c67f93bf24aae94a0ac6f19b858385a19107e9017f6fb1627c10328137e35a5564cca72c2fecb8ec712ac1da2cfe608335c88bffd77d04cb110afb093d9bc9c9a7998325ac7871a79455b6cec1efa84783beadab249f24c2a6832a593e971f83f039c9c2e7d2e8eb7a735313c84bba6998c018801af55beb0646e10f62e7590a0d96927943c2a2523ba4b1ce3b98e3bf8b7d6853112dce5445460f704d215a724f82628a0d21fda3c01b6fed4091d1ddc6146ed2ed35bbb43ea29822c79cd68e86f7d4c59d9700a58f406e91724cf3e690412bc64cf50b1336823fa23cd03e9e1c83a3e6335ba1b1cd7cab1bbed525e34c090dff41bdab811b33525ef97ab56840ca05380775a67a7f7714958c2958e17df4333990328eecb20a90104b40c849bf54fa16dab01b4a67ec660b55ec286a8a620fc10dfe70a4769baa93ffc4ec7e478e2d4febee73a5331053bb61051b3495539088f4a85fab05730e768ac84afb29f31e7e41538304f5d2087ab7726233b2855a4a4bc6fcafaeddb7ec50ea32485b736bc841c2972a3cad6dd33e9be1ce28f5476bb23877f1be96d70f6a1e1aadaa7ab0be420a95defdea346e7750de39c5f3018f2159979a470144678100d3e524bc63f6a8698eddd347360e2de3a00ffbb6452a63b72063808e0360b58566bc614dedbe607cc6ed944c718c1f61a7b92bd64dd64220732587b16832a0c5277509080ae556e403a547c4a2d2f139ebfe86d855e565969d7aa1713d018030bd32e612236b1593e0ee578a7c59a6d357b4cdcab24c4f23dace751534d4ba1262881bc2ccddb78e6f4488b3c4f5cbc3eff07a1f1daabcd88d459fe2cdba9635a3c66e60a07aa7854f8fcc16046228385b0c71e3c686ca4ce0426d36087499b07b9648a704f367eea21fbf42b19028ade4bb14e6797e78c21ecd196599fc265cabae260e3b3d7f9ad5c1c07d492f314315e79a46b1be51b41a1fa6b1458986b52e2de290a16d30fb8e207319272ca1c03e3853c72ed388362c5945e4c8bc80d0ff52a6863b06ac5a516eb64818a36ffc7f8865882c741f6813fe9c0a06b9912852bb68382723c94a16eec2e034779741e3d5c311b999384d95a97f0aa8c669e0ae6e1ad984736129df45852be34370e2ffb2051108acaae633e3b30364fe644f48366e2b1e78cdb953e3424b7f375f98ed8ef4896429182f08cd75cf38e1134fa6cf896300e5e3700c1b6cd5c6d2868a92fd51c04826e105f8f8c547a00613c16fe8a89aa3b44653624c9bd83a526c90a1df06dc4934277955b2c0110ced503b186e7ed20a6272f0993eef5144a64ce2285d341cf378c2a76a00b17f19892765a04729aab1a703e2416560652b665cd30cc6f588405e68210f191ce51279e11d3ae87c33ccc669b2acb09e6ac9346286759152fbad33f7c333b3a1365f9d5a135e8c5fa63e776bf59e27eb661f5fe1f70ffcb855c4750cfd97eb919cd4486fe054381a0cf7ea1eb31bee8e110d27f235953892628b1f950bc3eac0b405c1749de88e602b8f14e8f66b767da483ac33714f289e12a2bbb1ceb4b87d6cba269f63912de941837b4bcf9b1f275768612fcadd4b20024b0a19be106f2b4fa8ee7dbd56ccea5d31ed2345e39312252700f7712a74c958a0e1d46974a43a44ad3f5daa8bd56bf8cc670a75dc8890c89c51116ae0bf23c7b3827b132375c43ff0c746b2324ee4a6351498a80489cf431b88696f4c0c48814c67608401d2692956b6f3a037e4520cd4d9731a6feee167c0f5a361a55063808d351045306b557523e561c0606b1888c72a5037aa9ca63e3ff2aa837957f966f67f1c3ca77e9957825a3b01fa34b34285f55035b8caa1023cb7f03f22934e1bfc18901da9c174cf1a5c169f3bf1aca053c69a648c45eaba094e7d67e8d48e885e4c903e67a18b75d2e3365784a3874a4b537169de08a2cde340a624da22f308d4f0ad27645408b511ce9780fe279d6bce043f29036b361237b3fd8e9565376cb707ab31973bdeaa614ebf9444e4688a1dafcf64acb3081eccc732c985dbaef3b45801ba5f55ade3cce2acd501f988322c30cc6d8dc9108147cf3f69c55cd91ef092b9f511974166243d3b2dd696052547ab6c916246cbd28cecca51f2abf835a29b0a73be3997d0a4eb0425b4342f6e5838945bb9d9cae1abab354aac255d1ac884b936764ba6d9d3ddbdff53709da1bfd7442714857356b7637accbd61871bccf4cf0601f9da23dceba3c4f4008820a170fb723b70ef57c7c48c6b4dba9de0b2957182fb78586f96271af0ac3536f115bbe814df5857d29e01781f5abbff51ee3d00632640d5e2b3c8bb65ae4725ded76c00b3e4c10233a7d6caba2da20643c553b22c1e04a197a36a21ddb8ac7d51ed11a6cdd41387be1b89f0f22570aa06c2d90c2a329656300e1e0c450a5fab2fc86a1bfab658ef212736c61cd05e71fc955d1014cda4c6db12992171c2e7c27165d8c05902e830b804a070504afd19cc252a35557d121d238235f44c3e97bfac014c2bb25b6aec71aa64ce416d8eba8a72e87837eaf48487c477b09202f314229fdeadc6fb5bed75d8a964c6038f478a8a1c8cba851bdbefdf0f61cee09662a76d05a6c878453026903fe1cfd0fb85e059f24a0c48d0d856c76c64222a24df918b17b5b468074ac1b948acd9e2275a1827da1d4be1bb3d0f9351803e16641da53fa38cf484bd8e40e92597ac43128608db88cb4e6f78fe2c934dac2b0aea6a832da1d5808b1bb6b365c80be6a504a17943da167121e41a0c584c920da457ce05bb40dc58689533d7eeab9cd79c6210734865f4de4d813905d1b9de3c4d1c35c1c38470bc4095ee5f0a881a9f15a55cbbb1de78730877cc549e2b1c29520a899b144c0014e1b3eb5f6615d23182e0b8cd176c4471665543031668627328ec56fa4bfc45197b134703a830cad9ca2082f80868d9f5fe5e64872c94c899a32e763e5bf09da789bc46f6108e4bc4aa64ee744834302b5a4790a1d2582fabc4491d0ffe10d84969aa87428a3c6d2254941aecc290f6153453fc71f532399adc90dfc87030b9816b9a95f0994d036c5e184864932df8364e5e3fe192250f6285e60e4c9bc0c58ba30c1b82943b63a9ce192bc8ce58e11427f435e1047d907ca0769e675ce052c7e02e80cdf08144b5cde0a6b0572f3509f8c2751a6b488ba3339c0c904774a507519972bc2ec63f99a94bd17ac7ac04bd6a305c37cd08f72bce1f25e04a95ca3849c9c5f5ab5813e50c8deb2e08f4d3534445341ea198b58ab8a9f59570ce7f69b7aa3441a18b5ac0271d629193018b9ae9c806154a23480ae622c693ab0814644785fdfbd3752a5b0da9201ba41048c798b5a4278fd3088f03a57715357ba91d163f4a74268bf8ec71adea06502a66595c2451826da0e2b0cd9c9b112cdf055acfe4f0c245f44906fc385602f25eae74dcf256b6a930c921a114c2d173affe3e9208b869515017859d69d249203e7b5b816948426e108438c3d8eb73b97ce82c0104a218c4ca9c40ad4c393980e0413d78212d04620c27628d1e0fe9ad5b44e25c8c106dfe0ba499489c1cbf71d01402cfa18544021568e52bf2a35352a1ce2c818131d01b02e0f079ea1b359ebc8856ecc38569df6160a2c4e628f57780f7894d94bef5c108bb4580f9582a08dab00048cae09df632d3f5a39e74b96ec96ce0864050d9bdca9012b902dd2761a07bbb0b78b82be03631d86d591507e3768b000f1328fcfebe4787011dd0f5eee72393a6681e403d285aa5f13cbba0a8139bb98d798838c955fed8cf0b95181130496fcb0b7317b90f92b30025fc8b04296dfe91a631855e9eb691c04c2556341b783a246844d4084b83edcc8148262e4a7a78cbe242778355abd78c7156ab3775773c8836e20f4d18354fb2596829bdecb498d198635574d499b298bb08a5c8de845e63c7542a4e7380d5c754d458065661b125a91044df653c749546c039bc75e24f06a6515d5ed90d507064a9a7a048317b044d502615eecc08db55e69dfd5fd57b1c9a26f65c5a805326a386f1b794114952ccf71d08b08070f5ac2297534030ee5a258bc4b6dda9514706a1e21b71c16b54893269faf78618a3d2ee2259348da77f6e8df2911fdb6affa023bda9d508c176d3833e858f508d1fdc40c143f6b41f7eba8376ac1bb0cd591b28b98ed33f0eeca067c9bc6bb48cdc00bf543fc6a2bc4dab83be31c8cc5b242705c48be197ef78a020b2b3bd15b13570e333cddcc05fb1a490d246e390320f574f619c8ec2b4374400f567e3c4080d3f3319701819b155d2b75b0a4ddae82b4295dde9aa4058dad84b0bcf15e95da257a98d231051a86d1e54ef8b00f89add00a5642e6ba909e6007c4513acd4804a2242f7cc3cf0cf0441e706942dfe6d6fea3f95589c5fdc9e66e06ed3be75b9cfbdb555fd9aa7172654554ee16f7eb260d1c385331c2abd8885bfd3f7b4344fd1977c3922e4a7d1cf4bae0cbbcfdd42c85272baee91d52c108631a8571705d98cb199e18feea77dcbf9b07c0c83463c829eb6fe69a864ca16bbff566a760d57e3f207911306a60bf228e752397158444e10139aa5cc399658033e386898facb1abc9b69347c04fa99f09b2a789fa4df9435424ea43125bb9559d4a6bf675d8f28f080bda66d2c7f39767a29dcff823848de191e8dc39178ae3dd2279c344ba3baa808f584aa9962917f227e73a28aef080ff885100ededa27a40335db860fe6486ded453a45b662d9bffbeb8f6e1b7889ad3e94dc6a851b417b7c751f1d3c43db096a6a417e060171d98282ee5563450445e287bb75d7be28073e121f7930176a11e8a447062fd6b8f01fe09fe9b983012760d371bcb63024ec35247894ac1bf150d8222246ef4554f3c773b76d8599fc5ba19fb8cdf1b8a3514749fb70035963360ba0e44a9277fd626ac1c79651c03d5f53d7b038885d90fc463212dc2c66b956304f0ebd7fd5680dd38cf2b99c9c4b741b0b984c0095dd7a75827478a456940dc8c2461c9924ffc1ee3ffcc0a373ed8a002fdf4cc71b076a942d9778ccb03e1d427ba53d97b9d5d947975e982e6a2cd36f0666a3fe0a0498c3747cd5695d1be069789eb197b4b8696a9e305d6963f5e8a8da003f036fe950b31aff9f813786dd64669048f2c5c2f9604055f600cb315c679a33163831935dbf5e18b08e75f5521f629460468cd75bee7e4e85e5f3fabdccd22a58c1cd06aa45732d4e90cc64821fa237bb7e606bcd2fb3455f70cdf111dd1441a7f68cc340cbd1a385929e7fd99314f58c4a5e087fd278fd36b83dfa4f8046f868c2bba0ba971be25f7df9679db2bc8f1afa9255c7713203ce106c9cb7a437d32d57bc79ce5c47519ca83402d4ca90a982418c297e98f6d8bf415c7c18477438b8518e6a385e920db4c941cc922e8af816fd30a2bc48d9d2dfec03c4704332a8bbdb1c930c9a303f0f2a240c00a8b320e4fbb43eed4cda0383c6a9b3ecf92a9a6a582085a67044893f1d2806e623ebb73e4cef531e2d49c50f2d9929e50af479a1dffcae975f0c4b86552fadc87d38595df96b64357189d1c4c071d6de90b0725c4d87226c5a8303839eea4e38c6ee84f31b675255a31ce90d1bf17f42a13a912c3d750ff7ddec3f861c805eb58c35e61c8c53f91b0210f9315e5291cdacee35bb48e120190278b4f2b04b160cc8bcf82efb2096295e1adc1529e649e868db0d32e7eee69be6031d365161fcd3889bf1df214663c718312217491a74edd480d46c6cb57d6244759b141b68db15585c3ec2cb383be1ecad54c26404833d43049cc0f55b9852bf0848232c2f6afc0623798e6755e7a944c23c4fc6331fead1a2b0af0e075214e8f7459e7e63318e891a67a4898d57731bf536634a7dead8bce5e62794f5bb6144ade1f6a6757a7b128b1282f49c7de74a6611b3161a372f74d3d01acf677adc97c8aa9bacfe8ee1f3b8c637386dbc0c1056e365c025cb9a533f846bb93dafba3b4c15d11965a14b54b43ef271d1052c31e31aae0ec8864106963d87aa8671d104f4eb99e54d8a3469ea2017e683cee52da66bd811ad3341b7e726b47962ccca6274ae23377e4fd3485a469d0da244b57273fed600dab5acc99688750f2bb90e990fbe878847773839a8232ec02f3a41ced9490ceb0d1c8f7a2f796ec14a58a747ea8cf731a09f1785798393421e549b37aa8f52d41b4e56b3ee61f9d1cb8f6068d8333289e8cc3b42f1d7979dc640249137b6a45f62f2a1188fcbdfaa5a2199cf4503b917898f6e2b48e13f42ad29e5ed528f35dba73c52b5ad9ac72404dfc0a87990bf702aa7acd855fb1380fe9cd13cf712553edb195b6d4eefe398018b64a9f115242a405805d377994852f743bd24e1483d3c0bed6edf01822ffac69770c348cf2dac48ba94ebcccb7df37680a7e8f1a5b4b89e053b8401ae2a8d64ca77e88cc986690f6c0556c749fddcf116741decd6cb932cf1e19ce3856354ac0b7da7dfcfd91680b05cb4a7aa206c7390b28937422f0d92060b3490ac7461605361947a5d92bac411ea774f90e57dc95c9f8ad4ce78a3f63fb0bdf7f5dde67b454141bd43e849aaf26f2716a8d3ef30ed4f684a890bb21923a22a0681aade1e99c1c6bab88db08186e865f60da9622e6eac28a612a9a6d2ec8f4b5a1dd1c5a129bdb866173ca882ae18a46cd387c81ad88cbcfc66fa916efc026912f95cf1204e70148b7461b50fbef7e73eca8bd5f14f5fa2d8efc9e344600c574188c60d23817c169e1de5bfeb13e262bb443ea5c564240ca68e19d72e27c2f5470393886a4a73083d8d7cc3fed9456c8c2b1ddc2a2c713b4d0fdf625ab65b3f92406832912d2b1a8c86820e1df3dcfaa38933b82a326f0a66ec94646bbd218c292e7815510ee27ff6ba34f7f81772b238c9e4382a664223a0caace3138aebf2099c442e90013b002b41e9a66a101c575a5d661095ed6442c8a49b7845e99e5cc617208d864425628df9c132f48ddde24359a0438bebb3960bd274f81e66115c4486669640471340ad8de592632ac2bdaec83fc4d353845f89749ad1ca811d41511ce7e0112e3215d55c6ee969c9fd4d430a74f5e5502aebe16613d09dceba1ac2ed13f3ed396c3226e84ac7dba8acb04e9f34a2d68024d5c11a19ac53d3101bfa7d5447d0877ffa7fc886b2c76aaba10b70f08391fdb1974ca7a6d2d9852fcf27c7e464b0e1ed4d06755dd98259db46c96de65195420013905304d6bef691051fc30e67fe5f8f03f85cdb9946093768ef33705f1a84925fdba41d79e20b59bca0f72677e6ba337ad4f5e4c426ec6b502a2e29362a3a75f56c822b81341dad3b4bb0a3d13c16b790bf1fbc3db8d2fe8158e44b9dc230cb8d7b685e4f8fa5acc7ec7fa98b61c6006eccd01f3ba857aad35977f026d19e7d2b76cc2fd9a0bc33e05a7694e62451682d423cb3fd50122f95101c3a93e46cd08a519d51f9e84cf7f6f406890d21471119269af90db7201a6ee7ecde1509e2d4dfaae856aac02bca4dc4345b24bc2b8743898fa26e4c15047e94aeca6a090f21f84d28810112ab6ac8b230cc6a2c6687ef86a34e23ece4ffb0f6e02678a866fb7028fc811a018a59282fda13a43bb185612e863f145496b646707dc8dcd07ed1201d9f766a906417fa42db15238cd7ecab2c25ac3cb2c31c942e8e8907ea59ee38316427387bc09ee7143dc2d56f7057e06e2a7c9734e66e41b8205151b888ef32070e30e291361e8791efcb8039e577d4dda9748c769718c4d98cbcd40616b66128f9368d686dbdd8e81c4b8ecb6568cc2c20372ba739d6bc21045d7ce1db18d7c033d8b18e90e28ec55d0070276a039920dc8ee6d3acc3ba0091b5245706722838d705a72725850b64059047aa6d80f45c025e638ff66fbeb9f1f9328a0343c1a0c34200b070b5c7c93dd6d06750d5f258437b94703345c344e940667645e0cb479fe21bbdf9826f2be63afe6c927408d7218438e0d216a058a28ab4e91c199fe35751c7d5ea02173043080fe31da4d5c0283d89cfe86c49b30cc81aa82ee1050345066de1ffc6d73292432dcf21845df1b0228e15b0661e9a24b7f926b2c7b4d4c34b1cdba2ff6f1b2aba91a08dd8035bc0fd3ffbf457101ccf94af4c14b1fcf5504458fa0c79be9f8311864ab2605dd9932861becf2d8b70423ba18b574ab486949c10b77bc01a00ea4fc0e5b0abf515342763ffb43c766fc93462a434d6501f693a8ccef3a1777d3a64c96ac60f1e0cb4227148117273e3fc8130ef9ee0d40820366ca022d97fad4a93631252ddd45d43a6b9478c1def660772df8bacb4bc040dc02639d375e94eba545f89012bf85130afa1957e5dccfc1d4554bfe4b0ebc306a47d0d7b0d1bea76026d894eaabf291235cb8eca0735f10ff0870565fb84f6078274623f15e55d83057083e166e67221101505c0ccdf2a684a2093e0728f3dfe5049acce466eef1ee543c815b32a2ee58f734088f0f7c3608a25cc512b99d914611af4c40d56654e12c1c4eefd55f942967fd8dccf522b15a7da63bd8dff9df132d0172c03d0d94abda1e5b3a9b895759626e2fc873e768daabb11dde425d51fcfb6714153a2bfc2a143234ea54dff2bc5c1912c436eb018aeb146f0a040eef25cb7e630a6f210f75e5c0c77139771fb97bdda86d728244557fa381b4d3b0a11bdd8e1a1990273c19a1bc04d2d310c1087d969832548facde7f8cef3a88fd998c4e6ebc1a983752bea799b459370ca7928f35b0ce38b5ff3134e8fc36681b2e4619932d43078cb75d07e123d1bc1e52da003992393e5231a4b9749b97c1d23e12d3c11abcb8df9788a9e56d3413ade5b0ef7a3466863f8db01a678d5c34082ce39bce0450374a1edcd3877550e309253074a33daa94e85f7cb01a040bc27c37fff2434bb025c9930250287ab929033be2837085ca7b5d7a508fe362a1f93687b21b661db06283e9859980bd9a9b1b599f7f29b75b33f954475dad64e21e548538725ab05361c5c8407826a0a0f37a8ca0e03e11634967d9e4c5b1815047aafbba65958882b21f834b05d616543c655e9fb57d1de4811b2c0a4d0e08360cda7fe4f15200f6a6e9d8cad7747d67c0a6a82a62f5cdde535c00544c4d14fb1b87afd1c3b8c7f37700285f63d0f358bfa2edd9dbc64c327a6ded5df0b5fc30c14069ae658d5a224063fb56280167615e1345fd67c0f423e029dbbc7d2fa96bc2ddd31172d43d719538ade45c8968f3893fbda05feb5d8f506b3d1d15b54bce3407c1b818a5119ec033ffdd3d0a6e9cb15778fd4ab3b22e151ff358a6b6dcc3b3901e09da013c3f0b0428c99bccf812b2223937febbf6f596651ffabfd38ac9d1c75799e1d19fe42a5524a20b76b417754f5c9257776ea21b96f4f23cb9c4c1eb84f21a47f2c784b36bd7b92dd0322ba01eafc98be11c7e53ada6a059c1c09a545014bb7a1ebe61420d7d307c8b38923aea82d85faa7e11eee8a9eece07876d961b4f4c307fb65438e2f7a7d45eb8b3f5b6cb899f95a9453a883e60203bb8c41b265389e0b97e1c4bb50dfe0c87aafbe4e572306e90b065c608f9858befe33716085e10d4749a8ea25750058e132ec54508f0118374b1c72d0eb95010070b313995e86a38a177199587f6c089ae225d1d280894751f69863323488830bbe6b52b8c40aaafd4cab456028540785ab27d77d52d56707591ea98c782e4f0951430da85875a1a86cc1f7c84ff389da2b4d39ef7b51316cd8fe7850370cb3cef7cd15e8c58b44cf6c7ee311dd701add84866bcb6a51099c9eccacdc405e0fe300ad4e3f8a127ae68516f4417ba18d0d5a058a0082f9d97acc82d2fdc8b8cb57eda1d86cc8cd74e8877642cb19f4c2882c0c395db676103c1d723fa7ab516e7634003cb1f1b1f24673e3c134cea6d31734e3f7b859ed04145f0a1b8619e8c90bfc1eabb7b12435521eff1cc8d9b7ccc6d4020261d3bb95e8b9fde5f5d0f835420b886b7aff3f480b2ed04d3aebdbd64e1e3d8dc1035fdfd1abb2fd3db149f62f81c9682fa5750dcaed421d73d23d685ada21e42dbdba3201632718ad13453e521df36f8a492455ca8f53129555854f2fa72c682738d028cc2610e99c250aeaea103fb4ac9383f41b49aa0eeabed8d1544f202bd32526c4e987139e777c9f068afc4adeda583f38ac1ccd046b719fb503fe66476b28adacd2b9a6748049657acdce97bf85bcef8585c3fedab2eedd3e91e63e1ddaf088c190c4e49832b169218c6f4b902640c663fff3a6803dde4f457a8775b96ab5bbcf489aba24ef0bc560fc0cbece6dada4fb688196daaaaa50b9e2a245728e0bc1f69ad383ea99b872a0d66f5b692e5d4e0b13caba57a1f4b09b8a4f6512a6f9c7798ff378ea8aa1e18fb470ee895875180c1e292949705f3707b718ffa0d2a2ba619116b99cc6b8d8eeed70eb662924457953f25e8758228a6caf21dc75721e35332b89f8a83da8f484fa28ca3bf360534d4ada2525263daa0e79c0611ecc491f54b6facf86046250d54e8ecffaddde358072dd28c10c5a1464ca02fd242482407e98dd404c722c534eedad11a8ab37c5a78a9f7b8b55c69b12337a6992100245cc4fd9036242d848f0bdef5287b2fbb7998b484eeb17db72cbd76d1b2c844e4be154c189d06db9ec3ef9c3aaed91286badd4a76524b36dc01c54c5609f60eb9bb962009675f790af799d67cf85e4ada06e575f51a931f25254499ae60dcf9fced9a43d86ce2b804611086fe1ee8484f5b04fe0310432c95ba128f19e0224dac6b8c92206040c9df113bebc4fb7cf0df1a20724eb7d486e106858451aa952a547b5e102dc4214ea667e7acbd6503f20d159204010a0e7a1c1d3bf5391369b379f3f3b671390192abfa0750099cf9f03b48150505d848028fb3807f991fc0b9d6b4463c9c6e4068c8ef4b702ca27525ebfca4151d3fc491e0959e26eafae0af589413ef5ad786075acd4b6a4a4b0c1d9e9aa2a705219510904bedc3c49888aa210724a86c1a728b35a90349e3b9d6398bf7398869617a656b316122920ed2df9e9206c5ba7df7af707f534d7b2ee4d6d27db5cc18d7c0990db68d129df5c33ee183789716a3758029c2587988d617ce4e7934aa0a2bceb30bfabd3438e074ddc32a0c0cfa8a3ec5d2214171f7c60c8efc98277e9400e41376df484e33d0c0c0d8b51404c21e2a5a8476d194fcfe6cbad1183057913ccb931b8f9a85ab04b0d20cdb5cfe4d58808046a0a36a787324342b0e4fc26fe85984fb8746b7f278d1085aa0d530ace413fb6beca6c8765fe123bf25c7a691309848266bf89ec53778460733b8a9c55e77615b1e004d028faa36e6153e896d60c4838e2185005ac24868b161c8928ec61eab9f1782122010c2d8a18a20bc8f082ebf0b9be7ce8a3d207ba7192c250f54b00d6be1a53d2b23ececcfe386106de970bd19574f50ff3d6181a5b3dbedd3e1fed10c176186a615c5882897c25422ffe693c0f096ea60217ea3ce3f7a4b431423ae7d81d566ccfef0ee93ebe27963e82f3e7f620e9f1b0c42f0ff2842c1e84d29fbdbc8a838cb60b4bbd3788186e902fb541d8c506c9be06b1506a108a1ceaab696013bc19244c65104764909d8f41222406f1854176097136d242a516724cb4fbe10b62dbda0b820abbcf205c107b8555b0b6e8b529bd9ff4415a783f5b1046aa59ef8ea79760e3e71524d4a8198976f98d9ccd054d96abad9a586a809e4e968151046cca7c119036b4deff28e1a9d0b3a07c44dfe0ca807417d79a426c65c56df3c5c49ad81478bd4fbcb3d0d9cd90df3b5e90df2b7c5454cedabb49ebdda6dfe9818061fecf3861ac0685a8db9e86436acc4936b1c5f39addee3a046e0b020ed6ba860bc3f34c5f119532b92e06badf0aea42ac1d2489a7d2056403dd9d2271f1154534bc3cb426daf3e0a86123183d4a49bbe4986705b4465d2f3afb738aa1d6781680b8b578ce8b033987cb8b63727148391ebbee25d75c621024a0b90f891c3fa13415aacf24cd05c22b5006aa77807f47a69a9f5b7e4f99606d3b3be0b63d4062cb95eb338871cdb5e10819f28ed6e3baf61d41739c7d78f44c108eca57866d8a6b20ec43fab528070bb5e3843e6f4f50c0574a51692ac62b314b34c95973c6cf0f23c9c0f1a58a96f0ec8b06b95dbea044df7b7b4b2d3532eddac972011539919e2398820cc1a9214069accd4f14510fe74cc7e13aceaa8285be2b384a764f30b567f2efd8b9a9f5dd2b5fafb33335f4cc92cde063f4b04c3b7c5c928b8a95db099a0b958898ad492e984217fae46fee7565072314afc4a89ff6ccf7a3c0aa8136e2a240a6cc4fdb0ae5713ca4cc07f90f74e8833335c7c98491e48195ba2b338a13b6d099018e2a0d4c80769c5540ef1561193c8755c9843dfcc6b7220f714ec341a50c0444b4656806e789bb018d60423359c42eae27939a95db4e0f934d9fe36457bef83eb2c5fa278913c8b1c8b1a06a7a97de1e4ba66e8674742c59368506592340949a255e5c5aa01d17d0b11870970c904e0d20225da024d1870c57dd08e9271fd2c5815ef4d814e3a467ade2471346f5d56923e301dad84f7ccc6f7845c15d1003323840bef217318f830e5c16949c9d46ef0119eb65c06b270df9be9c76bc4b04f497ea2580f76806ea6b99d115cc4b8082012b0f78a13730cae8276e3aef8505d61533053146775562118b92cbe2b1501ae89b4e54f4f76806f2d5783d22575a0ffbcebadedd95b8d7259e1672192dfb962e36b218637168412b74b0ca464017390636f2101a625625090bc9964dfbbaf450996ac1a611ae9024f0b0207a38923e942a0c89370dcd8e65c7bc97744e32fab0f3c0a1b9e0874177aa54b14b455348d60a422beca64a17dd1ecd83be0ebbd20275b82a356ce1e9df9d538562618d869babd4b8b0232c51943d6902e1eadf8f23558ed4f8df501bf4f1d33e849082f623ad040dc2a1682bd48ae7ac9859b2325490f591a307dfe99f680cdebee7df6a77ddd00d3f20d6b9a6fcb17908b0beb3133b8e23995990cdaa0048931ab776f44f04b0370d205dbe0958411f08102640a101576b0314c54fff9f282c6dca9862aa94c0eb3be9ca98a198fb8865f2dcd7a1ef23e12093820bf79189a29a67d3dd275562069ae8e4fdcbb410a6b2e2840430d695f697822e703e1fed26903f34e46f2896b8c842895683ec38617a49d1eca9290857c9d58d509fc0e0e4910c36970664331cac3712047e33a1cc33f99a4f2050f3c9741b6307cad507a62d9d9f1031af7270c9313f6c7883be82d72d27ddc1d596f0ac4823168b47b6960b2b5d2e9abefc780d7315b968efd530e82bc4758852c3c749dec0664e2813c71c6680068b2d61c31a2d6a00a254629b37a7ef9c7002531f9441aef8fd7ee4660d38bc8ba2f8909aeac31c06618cde36616b0014317124fa1cbec3b47349bf15d0ef6f4885b16cc8c10e66441463e18fd171399403ca795824b3d6fb5f515b1f84bf884c5eaf612c6d8b8dfa55604462e6b475807eb9429155b69af0d6b7eb2620bc631f9941ab7fa138134ead70350e1bfb8e2993e49dbadd24669fa83c6bc2f6a24b20e3e47cbc58d90709d6cd5e7bd57c76fbba7e7fdf738c98e693ce108a11bb984082b1601f6cfbfff08cde02ca5a30b928b7b0df7b64ad7fff8508484ea125b618e93cd03894b0a758201d5246995b9f644eb42b52a174b8e0ac3aa1ae6f6aa200e47d606f3ec9c27046a1543976f0c8473ac51cbe65e6ba0a804362b2fbc1d57468c8a111e7c5a79ce6391650cad680cfc25e3205c4c7beb705f77e2e5179f5cad3b5b5c7b1928251c444b60e9e4f3c1b25b0da712b8f8490202d6486202facd800e27c0510307c3487e6a8958ed32930a62a86191b1adca87ebf3e228029f32dc2f8fdbcc2f6f39a0f1566ce5b8007dd16275890f423afa5b902c33a88e71d101cefa4c385afe7dcbf08b19c2665e8ab33a070321bc917d78d0e14bb65b06c828ac6178df551c7b174834c6d6464f361443a267318ad09c4514f78b14d4f46e6286c38b4194879bd3e8be1c06e57d2c005f8b11b0e085582d49e0f20f46c481bf5f8df86db647d5ca45795034367e85e715bc8fe31b4362071481aa40c369fa40d9f457d211bf80d6850f2f216f137e03820b22902d14eea437985bdb227d99f1da97e3f996e0f337b413b1545c969d3f861e363e859260e89fef005cab316b6097bdf42e812bf399481c5227efb12e2cbc26b658bc32103063b3f7d29e1bb8afda4f67c290171cccb00fb0a7824e0205020f3cc03c20b28395a3b6e3134afd3f6aa628a290714d53c25931270d57d136803045072c4082769e6562dcd5bb2c190223c2d3954b9d0395d73de74ce4befd8cea908f99d6139c1b41eb44028ccfae5a8f80bfab4588ec8b5e7ff25a451b91c9403b36071e002f7d503ed298fdca32f9c3ce8713c818cc4da8494195eeab395d4c880bcd0a06a6976d4fc2dae8db66e5d74989096699662d1c4f539120106107f12248ca7fbe50e586abc12965c94e8448f0fa2c52f75e03582e9117a6590c1708464ec94389130d6d6053e0ad3b40dc6efdc074173614a7f108fa13207131dd638eae79d872c653e8d9b3cf1e3464cd4732f49c3548762095945962e06e45ed01043a8b5a8b1d3978ac70d3a56aca8260e232a9f178aecbe2be1441b377ec57f8330463854c845f83de87a6d2aaafb927580325197d545bc2c20da17dc71a313b3dc36c41f25172482520c6deb251db6bd82609861bcecb65c3aa488004ce4e1e6d506aa13f108a61aa07a233fcb1270b6e01c7533a0836fb9777a0abcffb8f9fba3c2ea5df8133eb86a2d0842e41d8f4085adbfac4333466aec9d6586be2fa1a8c099079a201f11810196903d7b817233f2af1a1e2e1a1a89407967009727117cb60e4fd738b6e9650e28da74e471a53906c1365507dada1845c71ad105846fe6158a75a37d7da012fa4e4468481f11d4fa7bcaa7e9d9c4538612c528a490b2f9b04783e46ae67e0a7e97b91fe13dd551dc17929e1a72a26a19ad9270bd550165e158f9a9aee8ef0e98ad3fec7e086a0cfabb14ed56602607ac4339de3018043b4dbd0862c5e530bdde6d8548a012d7e2e4afb6802a9ac15fd5a77784626c645b208879255717614a16ba60ba4ca343a1f404966ee86b6f724817b497e1091a15205454c06b8713ef5816ccb8754b540450fa493300bfddf6706a2283ecaf19ac5ec5d0855b4af2b8194c4205568c4512a507438402d857676cae66149678bc56a3e37ae3d054a5a1a0a9a47e81ffd00f168a4f12f71b13ca8381e574c8d00704a019882c3a8d6b1d718f85ce579ced04910cec28ee664f5c5a2e6eb7427f54d351005325e310ccb242438128500acb4bc52ba6933bfa816f134b74a99c24c85ac278c5e2d0f9bd3c5c24034a9c0356e3c2722328b0a468204678fc7cc69a59e4dc67431eb68711cda1cc72d5ed9506bb7cc24fbc698fea43edb4b205fef23d194762e1021349c8f6cc3bc44ee5e1780e14e4546ddb04246b31413d332ad19ba8bd2b1f6c357695cad13c00cbb60cb4e3405ceb989372c872281a8080f3368241fc4db14c03a17833f03219b4e31296066bc5001424afeea4003bca465278880c55d74e95b73d3ddca224373a564f47b88c6e50a582f7a873481cdd0305959c2f3271c4840ca35642d5d05110125621ef6beafa4076828efec21a7ac486ae2b1a968a49e9c5d51839394ac247d9872a4ae76ac2e9888bec01c6455eee8d8dccb88a36596b3118bd1d509e5245f64dd002e5ed0da53dfa0c3bbd1bc398537776e43d63780d8582be37681a2b71e84730f5bfeadf455c00bc8a076094c103c1de10a67ece63324eab38cfde4aa9b861b9ab0c688cf5b0f185325e8836b9c267f69ab1b042a9b31a4e38741833e38a1ee585d3d18088e78f3134128a06763689aa300397975a40f8791cec018401dc31df651285bbf12946dceb87d9bcbf090700f3ecd8a7fc9d47b8c553b3d00bad376ff7e5a0a3ba64b7b3c119c291182bf4279893c1548acf2c78f451b3addd7586c68c17ca492f4c54d06caf4c9164ce180c5be041397f8bed37de23300eb536b73ade474e47810206260bd26cc386edcf0073ed2cdafdc5295632cf2faace1304de4ed550f04665bfc53ef07d15f998c4e2907b656f6e3e4d91bcaa06b86c4e570584bb3b05886830063dc00f6d1676ca4b0af73f94ad075669925128beb32e5f8733bbc3fb8ed9c7732bc66f15a78ba583220f437c12746f02889d5659c5141bf87d0f11f40d6177a5b4f72f387a889ee0c8ff8699a0bfeff3483cb042ef45dbb00cead5d4a206fac3b703f87d6081509c180e51f56ef0ac03d0c66b21b49bb95404b866cab1eec3ad35044ee241d3864a8c059aa8d34e47370405f95933246a07a8eb093bd6db96c2f049f5901b27a757d18c2e1bdc41a385ff963a3435209dbf7d18e3064dd255262cc951e6b01f84304f975f414ea42ec1c4086641b9af09fca028cdcbe4b2625b27991b0f64043a6f0f603d87207e27b697c3896d09bcab284f88359d66b8bbe64258cc6962bfe51316ad50e19364c4775bcd70bd6e395fc1b3384ce901b888ac9cad09ae86e3d954a5e836b62c204a8306a48340bdc3b601d6e08724378994d2d3b8e718f2aa20513bf932c1d48c8ac11d12868804252e6948b81d4d47ae622273183a0b1d611e93ab5cdd8a76853b8311268e8991a17d7c97928d68b184156061c4e42b32213e60b6374a5f85a27c318b194c23c7cc1bf8ccfcc7342fb32651d8c37c17ab64190f82e2ee98c84faa70fb4289ae03acc2461219f1374cd01abec86eecd8a65600ad029592ecd8094a9f1b3651cd8e2bbe8ee94923e005820893432627f58f9afc9ba356837fec497799014d44124c23a41735d43619f8298db6a9dde5c8aacf3ed5a5671f0d9998106f48561a8468379a21ee9dc0c3eb810314db0241144672e2bdf3529cae83f525eb1aa280bfa6906507cc0bb08b1a1a740c29ca4b01c4cc046e6cbef02689bdeccc5224a813cdc13fb2b231964b59f70e9154db0dda54b70ccaa894082d96046105b2f0dd60dc25392a9ed51721a9bf29dfb77dd649e5f3862ffb79696afa0074d59ca94e47bde939553f8b2ccbb35bd859a2473925f5049b1034ae518c68f6472d2125a907d12fe144a810352c6f313c928a24569f884656d68b9049f571fc81f702bf2c6136674dc5823421a859bb6134712067a058c04ec39f650c0374d123ea03a3733d413feb89b8721d4d2b910687f80097f8e88d17a27593d42b4fc47dcae8e63ac1a76e532862273d1499d94a2ec9d9ee5ecd7364d9b85a93964485bc0a14a64ac6c06f646417e4f6a1d7fd88d49bcec31fe6924730bb99b041b3c943f8f3ac21f316e7ead56c5a94bf24875acb80aa6b279e76f1bf0924b7255b7ee7536aa85ca9dc996c8c037eb5ecf93a77c3251372de1f67919a7430de911de228778b795f8667de7960ece20d25ddf2a6f89b813454877cf6875d84f693d0f3dea5cba38f602d4bcaf96345e4f332ce8f4e2c94ccdf819256c149fe41d3d4959a41dc77c0b804d2fc5fa33c0775798768ecf9d37096fd134fd4c5f2426bd54abbab704f75f3dd9f1690784d0edbc9271d60e4ac291ba815d7b038b49d1f4aadf1430070c9eb5d7e83bc8aa516dfca8bc5234766f3368405141f4415318010972ed8235acbd8a1a16d4dcd0c26752d51745aa082f0ced1ad8b5f8a7e43d03b1169e91337bb3896b81ea207b2f67dcd990f2392af7401a83fac0d5e1ea478f9ec73232cdc3c5ef49492def2df2c1fbb0958ea78647436851d84420217ee5e2917b65d4cbeb399a220088a2a13d071c66f040cbe10391b776d6e192335bcc5b64c962171847b4178cbc7f8e73e3d08bf1e906e33a997249299890d97ae76753d2229a7c0757b09a07c8390e3b1045b0ca09aad57c32d757f18ee4d027203f4989b1fe65800bedc2d69dbe097131978c246f686a202e4f1c8f2d00076cd3bb0ff0d7352defd500d098fec102ac9b05135a009f35daab44a92f8ac435b635c179d0544cb306a171206d5ccede16b3ed6ab508524472e584933ca05e2cd80943bd72f49bf4f473bce0a1b76f08bf109102121514ddfe097cb1b7a2b3644f93d934f7276d48d34c2da9e930250455b735eb023b44ebb1b0501547dec03a65ef0b0c983a154fe17df02f0b76a24b0bb6a423d428502d48904daa25bba5b3052326e0e66b110ce6b490a4117847036c80c294a185a7abf5c6bc3b2331afbc55aab0ae15a6e6362dbb604ed632a81c51242300cc01cc2380456b7eefc0af55b0eb3edf68f0dfb90bf890f0db542f41ffbb6bbb67b4b29534a327d0ba20b950bde5ff97957a5e841f6047687ddadab4f304f2cc61c77fac4403db675c24a29c32af1c1507d90a014caa535a04fe6487b2885551f263a2a85be1c45554e91983a3c6392c2489ac4eddaa4c7daead28c75ea10f3a6bf796e2d629ab88bdb855ef51fc0d025eb3781f973bbd5aa24f9b6bdfb6804f3d34b648f1b04e7761eab0e31270b24023412c547ccc3bc91d1bfbc919887f125a09128db1b79f9d11b81f9987fd9d17d11a0ff91eb3f80e0ff78f9d1ff80f998c7d12f3f7a1f2f3ffa4df401f331b23e799d7f17138ebadb9f76ef3f80f492757b0f49be389dc83ebc42cb9c7d585106f2921880cd075bd2e9c33cb11773ece719037111805887aff04d63e12070a93f183ad734c13c8cd83d0ea4ea55ab57a47b039c4f5c81725dbefbcebd17d7cc4162ce259cbcbc8fa3bc641ffaa4c8837a6c77c21ce9d64838619ee6f4a03ef59339f6770db8a4f2ee7114a798c0a15e3a55f56a2389bedf88d6b3b1361509de8de472506b693c97c4b93fcf229eeb5fda192d91807666cbcaaa302f1101d292456ea02792a3436916449ff6964f7bcba7bdd5def2c16161b4e5bb2d6db9c4f6d8f72140970f3d6957b098eb65797a1c2de941d26a823cc63c7f3743951d80eeacb24349803babec90c4b52e47d1d24b3e8e8a294b97b53214e894070d82d38542bbc3da71fbfe343cb8e7e7795dded5ab104f8fed5adcb5c55fb60cd84e4c53326a4b7e00453f5e1ee6c7e86344aba47b97e77f097fb55a8964109cdb7d683581ee5dbe8bf1be903c72bf4fe1c5087048bd64088ed8ef6854e14275ed530ff5aa5b3f802e5708f5be8634ef8534dbf3f5bee3421a2b5e00fc0b3c6b4ffd0aa121cf83e05c9729d745b44a42a1ddb13b600d89d42e18806455d1729a904c1425915e5e68298201e65fde078c38bdf4227eef0347bb10207df5e8b5bdf6e7a3e14b0b7c192e3fbb68cb21f5da992de98c02d1a0eefedf69d4ec982bf1f125cee425a42bda9a26175d7997a4ae1c34308cfee57d8cfe45f4f1f230e2aa572f30bda4c754af1c5559302c98b0aabecaf296c35aa6ea135955b7f2b4ac65287833de9a266fa1e0e144c1f32713557dbce5289b85db52768d70fb693e1744d3a48536ba6d9b15e9f7fdfc727c626df5d895d563654d809969588eb2aecaea9e14b58ac598a70e7d8ab273a8729d0a2e759ffc8929135dd2bafc07af17efa5cbe8b265def2126c9a62d3d40f9b3953b80fbc9d1e558eb23cb8e0368f65d515dcfef073417459b4ab697ad2ae00e0b12dbdebbe7b92c48367e0cd5f9897be8e79a9f8d202ff764f0ea97713497e1bf8d2f7fec875fb6c7fe3a1aa1780245591f4d5e22ee9b1eb3bcc6cad5df154d5aa0520597daa0f96b83387facca6c8e2d227aa0fe753af78b353e719bb64affe57ddafd869f33227dca2ecb11fe627d8a75ef516f3547398659faaaa47187109dff8cfedefc2af029d7a79b7a5979068aad0064d93860397faedccb59510574381e50fff761ef6e5155c24aa3ed955e7304f96533ed832567db264ccf18bb009949ca009a91b444d5ea928343ce835c00a52a45d414332a7a6c36dca5a5d2674c53b3daa54ac8479d887b2e88af6545b6a2a1ef47a10208e6e99a3280fb3d4ef023ac48c3e91916e7f94ae08e0bd843315000efbd2d6cc9997aefc07902f495db75f856fc7fcb99d38e4a3a1b114e9b1bf23625dd6d5a779fb92d6d52b47d92c66a93f4b8f058365c968d992ddb7a74e374a5794ae6e1cc0009ffdee005e0a2f46804170eef7a1df1e01ef505c2d2040d2967709f8f230bf6d204822c188bf3d39929d1804e7d2df66f87678dfe3fad3c0f0f2307f819787112f30fae9250e8273ed739579bf85d5c705e008015f0eef11f0d1c0f0f2a3bf00ccc7bc1742a0470f071b0124bd25811efbab4ff5a957bce59db75c4acc48e671f4c8a18433e52d47551f99ead3aa3ef6c8131c7e984901a20b27aea85004e100888b2c53a400267c09bde52d87e2b22f47c17c3fa594be2cc0a93b7597d2b36280fff489bf651b5042162d7e80384211745043126210c60fb25cc901935edd559fdc59c8f118a45da7e3cd2fc776372aa567354da72fc7269232dcefe9938b1b684b2fd56b7becaa07f4253db62ddf13bf136df99f48922e694b232069cb99d333735ab81d22ddd04ffa350979d8b84e60defec088def2d6ad9f5859de02906c99ccb70d043b5113c256cb90caa72f07b5abb63d0bf0fc07b05eb2573b642e7d8ef5e83f807dc94e000ecd8e7af9eb659101f5926e4bb7408e9a63aca007af1828b1011251a6106e40842dbcc801119ca0223595d085104998d00209252c48f5db99a38eeca8c0065baa70e24a100fa9e6984c86b2a1cba22d59009274654b5bdad296568b87f6a7c796bdc86c2993bdfab45aad56abb9711d904bf393157453057263ab791f4c4c7db6ee35dca0bafc6c391422ba43b66b3914326423d17842ec0ba9df00ee49162e93282af45c4361ff74899d703b51ec73e24e1230c53df749c054e8fb1ba84ffc2e5a75dd11fe90f79f58c4c8f7a2f7be8891284642df35ced8a2e1ff7ea63a14fa1fde7fde874423a2ffdefb22458c84befb283e44ff79e18d1bb7f97d7c342cc21012fd6c1897fa77e8ef24d952fe49c054cdc75c2fd9ed1d1e9c54cd27015336328fa3bb8c1e9dc795f84e8fcd4e809ce2be74d9e8498fb98f93fe8a79d2619ccbd692dd7e2fbbe5b2a2ab3ac897f4d8dee337fc3c8e2685beb25e187a2efc7eb309676aa6fa49bf3a06ad44d7600a5867b7a609072f21cd83610a1f13a2f03021e95d421a3f0a679e3f7e1a3a11bd874e6c421e30d5bd4c68024ec97c4db8c303a6443fbf1ae8338d0d69ace84d01c986390f5ce83d70a93fc40a201d88dbcfbe6a02ec6c78299c99431f0177be01a64ef59597da7f00c23a55f41dbe8981511a107dc70b203ff88a4bfd2f33875f035ceeb00e679937fd2c042ef5cf58364d582c013213306e09d86ab9a5ee19017da5c5668ece6d89bebf638efa9e7e34307cdffd0fd17bcf6177197c1cdd556918b8e56039ea880f65b08ce0c94110403049f57bcb51164862c4195b28a1491344a4fa7de53da2908645a2ff11fa4e34f27de845df87de88a8634f7424f5f9e0fe7bfe2ff422b1c8f7a12f229a5f074d53bf7719aa00f4eee5559f42b350c8751e772bc77134fcf3fae0bea309674aabc04ceda0f0a44f219ca9ce43a6214d8f5068269c291472f4d831c11195cb8f5e269c29a6095f3e85107c14c2982785304f2374f99970f43221a75e1e0cfdf7610f8f35bdf40213e3f331d9b01898566f2b6817830c23c7b95bcb510e7978141f7c7046789d845451fc6f702c5e2c517d3c7a3c0dbf407f7e1afb47ae7da147ef5139f62a90390302646e6119279bc964fef295af9c8504849c7d974f07877c3517f9db56cb35a2c13dbc62251308c86834a241495f7910a7ea2d665204f3e0ab99ea21d173ffe3fb906824f4df73a291283e42224d0f8e1369e8773f53df1be1c4d07bff83fb8e7b8f7b23de877ea6443f53a1f778afdb1f72d84c799cafdad5ad1e6f00c9868526751edc053e843ff115af7809f7f8ca57be7226bec4572c8565a556fd934820e8b2e6e955f7348ba6060d0d4d0dda36e20ae50f16517bf1cb515ffc74f49d1e0077adce58e6445841ab55d8ef6f2af3b47d7feb609ea87bcc251b6679a3febe036e14cb34f56ba1973dfef428a32a20f699cf7ce633a02b332b6595db5336854bdc3b27dab05d2b36941ee994db0ebbed2f97e23dbe2a7960fdd297c3bff4e9e8be1d0b5eb77c00e72d4b5bb08c75e6bc19c26423cc93ffe755bcb8bdc46d268067dd450d731463314bfd5964f1b90cc6ed97e90092bef2974f71588f3299ec87c3d263c33898ac618ea54f6497b7ad5c72ce4a4771dfdfb37e2ee4159099956d9339a2b506cee051b9a418a75393ca6d1c73ec29bafd308cdab8d4df350be0e63d80f309205e37ee1340b86e3f04fac4a899b25fbbaa3d8e4e69a9f971e0a78b207cd0424b0c927ce007559cb0832766449105095440d9810833c400ba22d53d204122060e2f30820e56544d229429fefa3e8a14002865bf8ad34b5480f0b92ff4890a1001316780345ee6c90ad3c10ff334be0a70aae669f0909981f4323f2f4502d6980e20497bf87ecf1f9a392edef6fca2996343cf0fce1ceef95f664e275215e5e101e9ec01e5e913156778f91edd99d193357726e64915ee8c480609725f9e9fe4fbf2f3cb3112c91a9b1a363e14011023922aacf04272ccbf847cbf3e875c83e8bf7779efb5dfde7ee8b9ef9ec398903c725fc279eb57610da32a47d113f4f489240ae11fb25d26ac4343ac55f8a6bf4a51755063758a4a45ad629aacd41d541e84b507a1ad115659599f983754fee583c153b024a08e796be0335cd5a74797cb3ae01e970b8c611d5c1dcc9c9e3e51a62c2480be18561b354f562c364fd61f2dd46543a4b12ef5778c5b5daa8941611d1adfcf3398392188f9d1cbfccc934c03919170f9caadefbb273909d1734fb214f0434fb20d5ede3e290a01cc6f4ff20d280fd80aebd010a914be1169770a29ffcb71437746218429eead50f4572a33a706af4a7d9728ba2ac5cca941f4fd550733a7063066ff658aed6160a38ff9fefac4cca9210447ee8c486f304dfd3222cd629a42aa444861429a659afa5f423a0b2912a6898b693ac234f5bb84f4679afabd906e41b5c8c1edb74edcfe100eee34754ddcfe4a52175de2c3290ef3972b565d2eeaaa0670ad200047f98b69bbea0f424c70c5c2a14bfaabc2b6129c8950f8a68aac040f78062dc55de19b407d5fe1a380f7d0eca8ef5f456e5d0efdaef051d1655d06a0bbb9b5ea3146633762a7eaa23ca05850a0e997da95e5b12a9e895cbf73174912504dd80dc09b61318392753ccbbc71217841c44c07e770b1afabe6a5024c4d00d21775d11d90a4402f2ff5b7abace1d96cd623cf4a12494915bbb4d2e5958d0026afba984c5f0e27364fc1983a366c62cc1c1b4897fecca1355f691930a62ffab8e6bbf41c40a72f7a27361cab301c40ee1a91c6bfe6bfa5f4e97b1a176960a8f136de47cdbf48e37f2455432c12c5478daf118b44219dd4fc0ffec20654a852466e1055355f23de10be119caff145a2f8f8af2116a9f9178bd478177b905c15e4fef55d7425ee3c8c049c3ea118c5ffdfc6932fc44ff18555e36bbe564102d698cb7f4f55207defc90a631d2cdd5558878a343b44d23ee77d7fb5d2271a1ea2a74fc519bc17fdbcdb9f5cfae4f2354fda026ab9fd63796ed3b0d6ee738186df874297af5d886eb40675f91a2e9b8be84b7066dac6b70d1b366ac4eae3259b1cdfe7425f2a56d81920bfd715c081e09b7e2bba107c5300ee860727d674962ebbecb2cb2e3f183a55235618e59c0c598f7cc333d6f10384f3f695976b9a0ce051201a1e3cc3bc331bfeea52bf55dd1a846353612f33407ff5690aeb38c1a823a9fe2efbc436fec8255d0a1b07bacda47b9e00da780eba146816dff4a8f1387a879f71c6e5278f601d92af7f3a4462add22309c0ff9ae7afc7ce7fcd1bd1b9fd55b69533679301017989d68435c663d8bc8d275d060bdd9ab7f9186ade46a4a17f2435bd1483cddb1069a8782405a6687ed8781ba2112f037427803315856607fdfa54ec25343ce80c572406141f556aa6c02af60a09e8ed6822f8e608be4180e75f80dd2529108bdd846f7ae6a81adf35364d604c54bd71c3000628952ec9b390e4190a285c926733183a5543acb026d42b17d62319dcaa53c87c50b10082b9ca96d5bc8dcbd52e9b1aa725f561e54311d7653d569673e1587ebc080cc43397f96f0e5294cb0dcf839c092e172858a7c696f4e9084f9fe8bc3648405a469f9a1f35bb4e04c1f4b9343bfce953f1c89db7f3ea558aab6b30732a14d394c444552ab3d44f22c55cb2c25c5de7425f172b8c6fc600c90a8b317ddd56c2597856965d76b9ea13495d77492cc63aeea81a9befe7994d8d0fe0f27739ac245c49247179469bdc0672d9025a507afc02f4af7a47a7c0fcb504708ec104146051460ec6c0024b6a852f8c20a3074da820085470223944e4568f2e86b205a4dff130c0a561cc05018ea6a18b0176ec31e855ac8815e6618064050324b95557a553a7e555d227b2ae9ceafc35029215c63addedaf55fa143473a614b7df81409202b9e7d59807f169e2fa6bf218ac85bf9079a9652ef3ae414371cb764dd316ef8150b864bb825a3d7659c3d327925bb7d5272fcbb22c19e0d44569153446ab68578fdd276eb5132d856fa894769e1e95f4accbcd85c534b910bad0a205d9346d9a4fa9d573d15f3dc25cd2651c035af01c46df4558fd29611d6d5de2e7428fc339dcbe0bed8741625814838cae7df1e381001758e1e25a0a530248dda97bc7e0c6b3cec2797a5412faaac75a6bada9555623abb2d251e17f8d2e6dbaace9f2bb0cc5d9a504e03c0ba38d6dab018236e2ac055a6b1195558ba849dcbaea13adae399a41b7f0cd123a8637b9cee32a2047d57c3f8d39aa4664f049106cc57c89697226d8a980c2019f0baf2fc09adbe1f018f4c7f1e5e0a72fea6a2480f4d527579fa4d0b88c6ffa6dae0d47cd2a39904245cc074c989224652223490f5948d1840c9ed0f00111ba600115547ed8414a043e32e019e20726588d91ea77d9ec5461d54aa5b4ee347f399c0921739a6a394d15c65c2bd754e9b15d35edaab076f1ace461758f38f3194ccc4866860609851442dcc827856e219a307fee06660e0781810e4a20317c10a30b025cb1c41433a4f0a26709d7ab6dc539b1ab06e7c4a800d4b86ee0689cc46dd709c7db58c53c35ac336be64e8f1350310fab36307f36e07502fc74033d3610ead9ba894412dff47b89510198bcc33cace21980243761014b124cf86005115ff420f5c29432b818220b292d50e27a3569d406bad45a48ac2303dfd0100046d930494cdc0619a616b79902fc40dec5201b880292f3e7e2c4d027b286d6903b574b9f75acc894ffda4083b38a7536bee96796dbc0283e625371977ddcc061267c04bf60deb00a60a0649a520005ec4bb2921c2e03909570a3580abb62009238ec72b18ba7682c855d8e62251a2b61172b51721b67ac8157fba41a7e8575ac38e29bea57fc0abf5283b479a2dbf94c55ebb4614458878a23be69291855834b3eaac1283f824bce924d71840f16f386a91842a7a61388f0d8a896824b0df39813905e92633f31d8344d019b748bf504dce9133983aedd618a2eb2b87ff989cc1cfafd2398a85679f374afba052b7e598f2a47358ba5a271695cb2ebb39874036ecdb658d189a6a5472fb5b2141dcb9572bc72fbc7d2443912a3bbc6711347304bfddc0c621e88c066101122bca31171d4a8058d3070c43ace846f8e609473c1a57626d563d0d66a6dad12c01939689ab238eb3019f386bb60270871fb29cf668eea2a57accc9a00498ed5c0b79f68d83481a4bbb68de4264ec07a499ebd5ca6e17729ab1e568e80fe72f5c831d564009289e2294812c7541c53dd7e8e396a13fb8959eae766896c2c620d1b478d88164464f6e8538f3df6e8a37decb1472b971c6f939e745305b2eb445af24dd72070a9e650556c9d613d76155ab24ecbf8a6068151968bde4477b35cb04e0f316fba0821348b8769f27a56aba54fde6ddba63df51e8777a17be2907abd891f01fa6bfff3d3340eeb75bba461fee58bc0bcc08851e8dfa09920f52246f17ed52b47b56c8a4446407a5fde4bfeed496f010585f54a8fdf7721bba3eaec0e8bc140947af5a9aa4aabe5a9aa1ebd0e8916edf1527f8bb25095e912482c716b0b762b0d9cbcbc3fa5b445b9d5c34bfd3178a949f6a9bd82f11f9f79e979c92e175d59242c5f6fe688aeaf28f59e3e8973bdc7d13ce616a1bb955bafbc577ebbf9bdb440774f64990c4280e42c6fafa80b0633a757d384c544350fb3d42f2f9c4769af5ac6cb2d4a6a5dde42fcc025a7eccebe6ddce325ff262c56bd2e3294564bb5c32cc565577665974c7955956a87abc2892c5790614418404885c270c202278ab0c31448e0595aba635794a7b7cdbb19f81f05dae7b76f87d4cbef7d67044955b7779cb20f57569d81d726f5084ec19f64317bcb028261c9f026e0f7def3ec7eda15eb746255f1cd5655d6e5fe7aa2848b757c897913032ef57b1338d4f02076a7e50a2e874c3945e9b42207555890bae17b35917ab17553b5349e164e6dd20aa0dd5d764f9f6ca0a072c65758334774bb3e75d6addbd1c2f87bcfdefb7b3e015b3943fa92eab05f7f0b857c3f64bb334fb64ae647ff83f433a397f91fa397118bcc3c4946bce1f565c299228933d8af5fb70f7d902353ae2583689d02bcf9dd28ec94138874597f446d97cd8515fb0aacb960544b71a5556cbf3e6184d775c09d4f14618cf12a80734981626bb5b576cccf34e45c3d7c3816ab874bfddbb66d20e85e905bc9b55c7d22b5a00be51909d8ef5d9433678999139b3958668e9d62ea702abe616223c2d4e1a2b0d2284e4a973491636d2f8eb5bd5cd0ae15b92a1c8b1b82734d1387044704a7b24f6a4145f404b1c1609eb8d7d613a5c73fee3b97e99283e684793a639ea8161473492da86a41bcd1da2a8ee55242774199a655adb4528d56f7e9d39599638148245ba5b7682167509333a8e79519348366900c08be6c2fb055333232346cb8fbbfb440ed53f02cd7fa42ae09e7e28c9837e0e59c4c533f27c6d0a3c71dacaa556fc346c8a954cc6a61f9d1520a7d39442d882fa90569417d12c22f64c8763b8b79d33f84747b8b69d2ca685477a9427f39f83b5fb2953430ccfce87fccfc482c12c5c7e8657e7ae907e965c422a430a2d8c192d44824859cd0a28bd44c45d962a919166fdcc0c1518dfddd7da2b3caf5d744986701fdc9edb54de98f878deba293d16b8b396ace402b36962b3d220124b7f24ab338d2ab67db06e08d59801ec31d5598260f838c97869f56db3bfd43c36297b3e651f5b803a7e272e04ea0e27ce0217a001e83f607f0e5a83f0002d8ea6509547af5de7a0cb02da02776c5078beca7bc33ab64c553eb8dc742690bf0a9541c4bdb324d2cae499ff865e8f105bea1f2f22672f0f22555e860327d39ea9b0a50dd45fedc10b3d4ff048915b704c7e29926252b8ec5b1381607c5ab875c138ec55241e9539f4ea4b645db3273bcdaefb7cc0a7239cc05f682675bb92d6180ed354df592db2b0109d8963002664184d633736614b7df71608e0404d883a360ebe276184da8ac954137261babc7b900c90eda545ad0ed9f4e91c680e20543a4c856bd0a33c7bfaafe1b2f87fc9575048ed5a3571f575bb909119e391e141454bfb7ad9c49ae8a4bfd323ffa22cc2313ce94d33b22e2cfdc4e8fbd4de991f9e9f6da60bcbd186667d00c22324bf6d5e394ed554ffea22f47fdb657a3f82f8b1c0fa7721c801b6c7b71aa6d4a9fa6847c0aa8dd49058a206ebd330a15f45c242d1d5c978757c9b138ae19e055f7eaae008fc1d02be0cbc1bd0216e0ddf884bcfc90ed82e596c5447516dc0d9927cdbc1199273dc9a97a013e482ff346667ef446482ff324a7ca41e3ef63f433ef43e6493f3f1a176118fdccff18fd0c0a6291283e667ec83c49a4e19f291a621112184478a12535236e3040c206a9998a328e577b2d0b308bfa5eabbb8eeefdbff7d7f1bdbbbbfff6472e8ef69ebdffc2c621e6fb7b079898d009e689837918916428db944d26dc625ef2d24bc810f06e3998a6fe0d07f3667b85dbeb0774113b2636ac474e1576288f439c8ac7439c7b751fdba34fce42494775afee3abceb41c0f33e1e36eef7ad2a556557ed19edd990ea087d7dfe7684be8adfa346b363fbfa3ab6afa20ad3a4fd913bbf5a5fc7bc55540519b9fe525f8e4f74327a2e7422f33262975e6eaff2e525e901dddddb6b836d3192ff809e18438f1e7d0b90dc7a3895a3b6924bfd562cc592c56e87e759805bd973372fca6d8b0d09f354cb4d0c1e622bddd62c1b182d32b69eb20973b595d96b04e616324c14cf5c0bf0e5df464c9d17f8a6bf594d668e3675fa0adfcc9cfafd8d03a3b61c9bc3aff261eb2460b93a9d289ef11732b00e1587f04dbf16e4a52f18a599314bae6dadb65666a222328475b42d5a90a3b61ed7cc60d4260497fa9dc18eb3da16217ab42dda964d089edd1e31c6b8fd9e05a85dd515d6e9c1375c30aa9370c95f601d37c1ec2d7de5925dbaa05d4df49d69eac13a0dc6bc49b25d2d44903ec9a95e1b95b9bdeaf76f4d6c3998276ef3811233c4eb36379d5da4712a47359259eae754cd35a7ba2a6ef5d8a447d6347577f36d2dfdd363ab462a56a9aa30c7e2588e9add1cab395673ace6581c0e8c8bc1488e1552c1344389d2d515030149b94d5d559042b76edadbf7975756122e968b679496585c06561f56b65361641df7c175803b7f008ca22e1fbabaa5c720bea14d601c744e45bc1ae5af245c350cbea15b82baa472ddeef32a8db9587cc32d9e81abd6ca7229c128aa4459595489520bb0b29470d5baa24df8a6fec0a84a9bd0aa9a26308e08bab409eb5424f38686517338624473a0aafa435d510a344d14688645055659d5e5251a2c2a30567535a1b12ebde4aa9e79a99f73146c40b12e5540ee4882aaab71e05293314797af2890a3a081ec6590c43a347e307344395f05c2ccf1668e76c5ccd92a1655083367083962bea3f1328eaaa9f1d54b2f3996ebb20ac356e88fa700f3647d5af64867f5672fdfdb562b6c965ebe7ef712d219fd29fda74f33fa42cba6b3bf2eb20f4cc8311f7c0ae87227155818d7de19859230fc5b304b07f261a2284f1075e528da64967ab3e2d62aec22ff26334788e88d983942be23668e1017ea64e608f11ee68568f4c9cc11b2fde8fb690c668e10fb33df4f65307384841e85efa750668e10ee53f87e1a65e608e99ee6fb3b4efbf83b6e02a0724f112c8eb112e258b9a708560eb77a2c82613d961e63c2f1cc4b9cf7b0cd14cf5af5aa2df7712b5a8769524d13ebc08a9dfb7254a3804b8d648efd65cfab07560d7c86d7d3a3e6ea523f7d59e9b19fae401aebd1c7451ba8630e7dc7d9af1f815ac519f8ad48c3d96db3eea1ce698b7bda03187a9a10bcb07df72f7c088888c0c6ed44927f1369eacfdb69bf85a190ce71aba1c8d52850f334566356a45068931e7900a9ab890ac0ae56eea90eac1a0b32a23d3d5256cfa54c78cc1e5c66922a719bd62a8da24ab013b7690f65ad564b58874aa1f404b3d43cf404935907d3d42edfbcaebcd433871d0b97b9cc69a594faca7b9cb5528119c6d4f572980e9ab56ba300f938dae66bbe04a08be344ba025dfda265f79d0018e656b88fbf7a749f3ed1955b314fd40797c2a77015778206416d441a8493db4f9bccb19fc65cb127d3c4316082ca6ad092b924b7aa37bf1d1d4d7df18fa46c429afa357f24d5bdd808d5781bafbdf75ba52b0069ea03e0e7bfcdff081f00a2111b1fbe8d68248a0f1b1fbe911aff3f53b6c6ffc760e3c39fdf04b8afefc3e66b5e0b61b0d9441f352f8a456c7ccd17a9f136343cea6fbf8933705f7f8644c2e9a528f569b6b7f14752349b28c4478db7211601528199a281879c413f53e193cc53438cc2fd4cfd937356239c291b62c7c2b05f5ebf1e35be5d8eaa21da1d9dbf63e1c1ef2255027a29a38fc36dc299aaf16cc299226976d0e7a74fcb9a70a6c04bcb4a55000ab197a74ffc8caa112990971a65431b8a1ab15220206e7ab3e45f0334f24a5737852c723b292e97571627d21480366f23728c7b8570ea743500a86f43bd4604431b361bc05bdf26ac624be93baf7397ce4a23313c739b07bf76d5bccd9700c8653366a7ceff4b98d8d404a0bb3df2e9c41a54615e72d1b0fb5abb2a80134da2c26815b79fc6e6d85f2376297381425a308abbfc76d0ece8ea7722cd8eeeb9e74492fb4e64d9914bdf431a3217ecec87e6187a0f77c870c90c5cb7a2939ad0d73448a42900499651205a06b7e8961e1bc85f639754a8c800d63f5dd8483050b747e3762209409bafb1e97276d0ac99a2b8c3732365f349b6d4ce4e129c948dff0fc5245bcae6c92ec90a3b820d86f0c5113ce068319ca9309c29f690747f6cc2af3eb8fd36aeb8fd352a106e7f0703550252b1673d963dee00764f763901b2fbea332b450108a3a263e9b1fbe4a2939aa7405deaa7406510adb4e451d1fb0b2eb8d4619ffaa756b9fd5d571376ca43e62c401cc68c693aea610aee3f7be4f955588d735fbd72d50760646328401609d0d5d45885d53c3b2a8525ac70410bc6e881072aa919c60cca1d902044154b6ce9998b6ffaeb4f85d5272aac2c4b2dfdd36539eb138cbf0002c017a068e4d1b03e314d504c139569aa52a3a8524c53ff4c585188ddfe14a6b8958adb3f3281cd9ba0fa3c4d386f0ae1bc28dc51386fcc57035fff38da5100d200a4c730881140ea277e11522fbfd7237dd61dd2f7f3f9ae344a04d2a314d09db1b84f0d8acb749790851c1f9fcf8775be20f6bef021324d403c304d23f0bef0668e22e7ec4b0274b695728b75aaf805d12f885b4590f5003aa55dbdd6ca20a5946ed66ed66a4d341e4d157a4145f88258c72363de38caebe26bc2ed1779b369ca5203d0436fe53eee43f2791f1ff6c1623717bec23e2e3e9a943e91deea6aad3e41e993ab4ffe9a4ae5adaa11506b3273f83573c41b377ca0a4512211932ef5bb965c1193295a6836602144b9fd03cd88dbdfe978a0bbdb5a6dad3a1e8394325931e1664c56170b30744986c2e4b6c8c5805a39c602a471c15e16f9ca85b92443619f2a20e9cd180990bca1f5895b6880037050ef562f65bd07681e043e091cb95d277e287a896e3060e6f868619e2c20f658ad40d29b79334f4ba32c962ef557d1ca56000aa13d1cc557bac4585c9e7d1ce5227289a4cc1c4fcb34d9609ebc24ccb1bf8a446fe6f2172de9d326aefa64454f8b37eb910620c93e325ec096a3b5a7631950a9d702ad5e03dc7a0ef82470a4c3f11cf215b11ab593644c45a99f039f918aa2e57c2e702256a3a26cdf2f6262cbc0d1d67e4abe906f0b2db4f0d5dfc23ebccd1c8d7df0fd6c051be1f63311a64e65a0ffbeefbfcefbbeeebdefebbe133f253d7a40dde702507f3978dab07114e096db3fb341d3e46979212da4bdff747859a6a9df132d16d354039f719db8bc3773948bc8db0682246fe6cd40927d58674bd7bdd73df8e5e8ec1042fd168ba933e74d4814c2328ba54fdcf667e668ff9c4882a4cbb547983af51bc83405a161888b08e68da6d2549a4a53c2d545db51b968aa93d3ee9ef928827dcd344842375520993dc4711caf9c59641e7e07997b2ad578a6666aa6481b22b8d1d13b225e0ae2e1619a7abad4dc038fac1f6ebf0301e40f99871cfca2a66995528d52ca57500e02bf6e933cc5b99475a95ddfbc81086371a1eed41d76a3d334bae93003b6853acc78752e285064503e1d66b8a8c8f115fcea13d3e7de4b1df89729d5a856352ac30680a0be4bec1636def8588fa11a528f5c6343eaac11b98106bee967d80d8c622934b1a5a06186d10101e42ec93247f16a25e395cc0597cb2b2852a4f0ab47660e7d3acc90d2e3bc52a4c09c5f3acc80f915d0a7b8a8c30c1877faf83bf6dc0ab0be0a304d0a14d6f8759801a54f0c654a4b6914afbad42e3b852dcc863acc78b9a0d84f8719505a3dceeba22cea30034a8ff3f2f4785d0790c46166666619f35ce6e993fb78b44bcc405adbc8a09b2a90da488b8989d162626246b5d65a24e62bedbaefaacc0c5763626266b81a131323a359ab590b96336699b05334424e714e461f13cec4c88822cff31c66cc039181c5c0642ac93e4ecce3e84dd3364d8b7112f323999066241619bd8ce87f24e522ba60676de86d88768fa3ada68920df3808e3c1e83c60540140eac5849df24f87e85adba34301d8058c8220e60fac57adadd636f357814e01f9626ab56ab55a6b2d7566eb07183d295e068c9e248597674b8d7ef4a4cde8452b521d258df6337f24152313f27db94d76cffd26aa7b66a9ff138944af853e4635f411132333e3458fe732532ea290ec20602105c99870a64694d6eadeb675b4f3686262b45ab55a3d09a0fdce3dd076959953a398a8eee91ddc7672458759ea9e7602c44b2dba3161a7fa0b70147dec19354ddb346dd3b45aab1ddddd2da9d6aa6d5a1db9a3e155d1e3680ed41ee6cb217a8d0bfb7633de4c38123d8e9609394523a4f131e18ecccf7c9646582466fb1e32802ea06a9a9030195301fd32e10bcc775d0a1e7fdf736837191a3396c60c0d1a4fa241e367421ad20c8d297daacf7196e32cf71d450a5eb77e0772efd1fb7d396a4fe9911c7b68e83b1462349890e4332e3f21156a1c5af334ae52e65aab68b28ecbfc7cd0a2301b10f39f8a79d2e6ce98276ddc9edfc3eef08ccbef2196e14cc5f4b5d65a6ba7b07a381513f26ca9989890555ee299a646018f2af0e1907598a69669618924b194cc1f497532e1e8252f35cd8c38f2d3f0a390c6c7cc8f7e46c4a1611661e854ccc78834c0fcc9f1365b666b7f7e40700febb4ea36cb6ad03e3168222eab47ab55abd55afbdf97c38aaab63d830c64269a595614fe4f14c5b9f1ccd24c59b19aa579c94dc7a21ae672806b4311dff47b6096fac1200388f7788ff7dc9e5ab5da3c3af6fb5b499f9cff37201cd277369e77352c6703f64906eaddec6c78f3d3718475b7ed39fc5e0b45b09903def0cb415f268c4902b81989098bc488beaff4497b2a3ed647ccccc7fc91d428a491118bc8fce88fa4445f3813f2ccd3103926d2d8e7d9cb84343e68bcccd310d947a4b13f233250909768ac0843a7645e46e4f20b906cd89cc1bc00cb9e50ef00043273ac112ec936bc184d08b32e7f57c3491683ccf27ac39e682878f491e207241b0604198442df01c9be02e4de79f02b404e24493018ccdad79e6c2b568b791cad855d0548c788b34b40464791bac43f8e3837a648f379e90a0c61bdd2c9200e08f4c4419b72085040021b6b868119abfa1360a496719c357a279a533483f9dd1776aa8a18f357a9ed18eb585102e00cb5d23109b08a814e41b791cc1b0e2307ea31d0ccd9c265804f801107023df689027394406facc7f94ad6067b61a06db6cd806c300e010a48a0c77e90964d011c2fd977b14a977d1adb72190306e6d8e29b7e1cc7004f0c78ec1ee2135d0c008f3c401c5b619fea5edd196c29dc0b68e6f497c3bf732c4057ed3090af66a97f56b9fdbea551dff7096643dc995fe98bda60b3d44fd202fe38966d0a58c5ca0c13b5cd66538c399b4e98b31c6edbef18ec48eeeb96300857b9af4fced90cf583d0b0fdf6dd93f681f4b8bd7d72ceb69fc1d2e07d6f1b08fa6a929e57aba87e95069183b6703ac1b5d200a4c70eb2c18004e1be1c95bb93ca4f12ee76271515eb92be0265be83055872777e3ada4a8fb3474dec2ab1aece1c945be9d21413e53ccc2a3838a55218a280c2cb0be731238030d2f4218033290ce47c49069a7cc3e236db66db6cc6ac6d034112e97f1c7998c55e3d16e38e6d2c2c6ca53901cc62c5d023ebb01c356795cd0aeb0a0b8ba8ba57771190974aa84d9b93f4a0a36298f307dfb8bb804517b03af5ea5ebd567772ceee6c06a19c6d403f3e9f3e7d7a0c4096bbbd85d2d6e2139ba617af86cd9aa627b408e006f352e3b0c267b1582c1af6a5de65f418d4e3161e9eda3cb5bfb7749f9c631debd8b6bd281cab74325e4d513aead6cce9d6cce147f9922ef5a39c493f993acec3bcf1a165703b6c56f3804e9d0820f360897901560192db6c9bcd1cb602f4f721807c99dc253d6e33efb93a5c0820b9b1602b5ba54fadf9e3588074636d2e2b3dd64a2bfd1e47d38e7d1d8bb1ae6c20e947caba9b38c3a922c929b9fd130685e54c6a15b955d7397660672986b00e9331c7e020efd16373dd3b17de775a907b88db7a9ce3b8ad0b1e75776b415a10a80569646841cc46665ee68d907ef4e4d6d3a327bd11999f7923a327fdcccbbc0fd28f7ee665fec78c282346f121ca88518254182061834f1ba3fe0a5347db326ffa51324f8233e4a348a4b0392c67e0ffbe3e39defa7d90f17212c0efbfc7d15f38ef935a50c76e995fb0b11758e79b5f5c9eb14f51579952bd7479d1f62abbfa6fe5cc1175e7a4c07130c13ce9304fdc3b104f3a0b6eff247da78b550f8c060addc8aba55b494519f8865379894bb2c59648b2c1b629e64d3f135b1554609a195ad096056be19a702eee555de4585564209ef548b2ae056966c058a78a7d65039aa62ca6690363de6c5a8811841e3f5e601d2a6a5b7afc6054073aa06dc9326d66152f04a107739621266aebf19e257a90d8fcc9ed772413c5a950a5bbc079285d872dcbe4c0205d326e3ff7f6ba5bcc5132e0f6ea719ba291314bfd1b129e1e04607b6d2f9c7164c1ab95a1037d4506ef00a35a8a2d5b6efa8abe32b99081b52dacf3828f1e7b6b4d930bccd89e4c203619dca65bcf3435f53a06b550f4332be9bb1690e4589b3b8af424b7f5f44948ddb62da6a999346afbe95293466d5abad45fc5a895a854add347490e99a211010000200053140000200c0806044242b160aa48d20714000c79a25274601d09b424c7614a19630c32c600010001110101b46d009401a9289029aa0195708f1d7f7b927cbeee8e4ae9eb2d6ca9efa9a83add693a86a9bde55f678bdd31941a89a927c38a6210e8af6e425497613ee59e92db84426b1242680030877a559ed27464824cf454b88e95d2411a4d05eb4010249f904a9a9258d48cbb0179366a6d5670163fbacc17ff732ce3f08ec9a68f01c177b3362d6d88922ad83f017bfad9e4a0d0bbc62a6324be0b4062f98f818aa022261532dc57948a45d90eac9333061de7017a764dd574634a1066f19c7fb974e7c02df3036e3c18080b1c39d483557c3c14ab3419965d55a21ce85d65f9f74375587ef3a337e2cf6ccf1bbda5953ac941c48962f24691fe1bbaf8a2cfef65ea7e1cf492ee01d2b6d85cf1ca7884ff775736b77b41f1450cc6a010d4c73cdedecb50b5bbe9cfdd866e3d12f240b3adba77e6e64cacc9b21235ba47bceadd260be05f45016dbc6db9bad54494e0bf42fc2dffb4e65fc143d2944135a4f431964b7ec6304b9348cb04b714a4991d677c70759d6bba11c7fccd4252d63bd6f8ae5c4f9c82e463ba5855905e508b777b467c976ada9f462f44a6f955c52b149067c317d0bdf0218b447661756ebb409bffb565b05a5bb5ab603af118a0da5e144f2e699319cdc65615334c887a69fb852f5f083bced94dd68fd4e8adcc5288135afe5a4b08e05f0269d8ba91fe0c7f75fea251c9f43c5ff42a59c0b68655b1d84a6505b35f42989379b1819c98c5a7109925a1b2f1e4b34c79734ca22aaae30f67d2b6dccde1f6f94e43060dde26212cb8c3fdcd89199dae209a55cfca2f2b8b88846bb0be56f4f84e7aaef8dd37689f63e36e7cfaadf295ac2f578b3ebe6fda7d6e6a15c2be7168523237eb8d150c4acd73647ee05788c32d114147a2f62acb8f5e3c22f2d49a80c1493cbd9aa13ac827f9668d2d44e1650d05aa6bd4edece8a163426960ca2a36acd5219e9b3518132d7f3e1266d3078b9860bb290d946d9929c60524b089bf244f93fd01167129263c4977ad85beb1664be171d8bdf989c710784cda856e988340ba9e45411988cfd3cdbc3ff48b97c92226782b90d26abafcd600ab12f429fcb812f84da1c5582f05a7a008b1a64d8f898bd6586365d0c47e057a9090df435dd771ab6bac2cbb855101b480ebdb61d8184bd48f5fe4b493493ec037648a53bc572289e1b21996aa88fc94c0689407a272acee85655c050d616c3033ab64652853590c31c09ec1f25206cfee9c26b36fe81b7a08db50b0d662a516e0842b380cb44d52783883a51f3d84903f858d3708814e85f70d5b43dd822d40bb155ab26e36a28a24908a34520c30ca9d5d59d6dd4d7a132bf9c435d336b8f75b145364854c2b5003e26392c65ad662df20cd402e8f213d8e104fe037c5914a46602298256418d62317dd48713267597c5c2a9e95d98e084a946f22a48d294dc73cee56902c865e134fb1d6f5f481d2105987c29088278813600404de3b7e902912e7a56bcedf4e33b97dc87b6c3931150109e26a9a117712d8e0fcb44bfc2117e90c49e24815f04ce8bfd8b11d1e7b9c7a6736f6b2139ceae4fc05cf82fa37c6a74a668e2b44378552661d0747e3fef689e5d58890d6c8b08a35465ff44284bc85e453e31efeb414fcd255c877c56a6accf368c82134c9ecaadaed5323b80699e185819146401d51b23606bc563b2871addcb5986030900285785a48810b03a0600bd74c1aa0e5f461e0fb15d87c2933b88de7c54d666e80c7cd2eeb342f36f3f74f0b17e30daf6fb27b2fc95e1542fe704534204e731dd553e7acbc545ab263ee02446553612185a41ce5d2bccb35d36976075fccddd306be846a8204184a9a9ab1caff3c4ae7feaa560c280b5e0abad8e72c85258f12cbe9fb2d6a4cae54cdb2682c4a170bfe475106f8c86bccf8098b1ac2f184e23cc817c55c11336e99a69f6c5f7b26d299d61033c10e2cf104fe27681a1f6076021b1a4eac9b38063622f25fffc3215bfb8a7a6629908dca65b000c40d5fdebc8c307038fc7ea82d309e49e288b5288396610bceaa325205255fb0b547938f21dab95e7209ebcff632835b3c8e9ad79c2e78b69c72587416794212bbc17347558d3cc383dcac5aa45072fbbab7013283d46fecc7818e224188e81dcf15b6fc94ba271904231d543098215746f650a244478005f7eb7e90af820e69e215122d4ee7a7fa6faba9ec94848be9b32b56bfd4e7fba9b3fee47752b6edcfafdd685186262bf9dd4de9e04c4acbdbb4e4009161bae165325b0e9343bce191fec2937a6d34878837aec815cbb2b56cee444d6fae3e204036f2882bd0e66ebba8ae209c48d82e3d123423401218c6a234f69228d6fa1d2205373aad8cbe579cbb13d17ab6fbe4e2ad2fe3ed695cd717be922d166f11215e83258a1d55d061130ef94f37baac27541380091a4c582f273b452219690407068266005b962a45af53247595b1c736f5ed291259c04e347335f6ac932c24925dcba38b79669859c872b834466452a84c18be23c137bdaaf2e5ad9001dc188bc3280c49fd46069d00261222a1e0e0df95caa9af1cfae591ccd496b5c044b299cd20bbcf50218d009e180dd2a0eeaef604d741f9a957d71513c9398b8dc1c61896fe590bfe70800d498a40de685254abaaf7582a14e5c191da8632e091ff06976b03fbdc707d21ddbae978f0c007a05ec179cb52c0ddfeebed8ce9321642f2c5caafb350ca22f52adf4fb4c1464ba92acfa85a1410ea2273cbd8e77c53fa1eb30b84a7043632ad68aa59cd4a34ded78445e2b8d38644571b349f5764927e88d38b13532aaafefc85b77d0bc9709724522639b3ed35cb64ef22de555afee6e57a42dc4e49ecca228ff2de9d3c213a370c419fe89e2c536bf5b876ccd3af70d9a9c9305411b082a2e579c08e31b79a420e57f85cc26262772767ae432bc27a612776d5171b8c5685681896c0080c7fddd7daf8567c92783dd7507400168a173d4ece41ead0cb9a1e8040a9e4fb552c51da142a179fae6d6b82536bc5c25699bc674bbf6651db720feaf662709bb7960f115c9ad6c5b9b37bb849005a76289cba8ca372f78d5bf17d53eafe1803122db86766bd35ecd8846d873dc58dc8705aa7da081d09d5a5d53962f5dfd414e408a7752094415c0e88490908dcacfa914c00e145f09c6aa6b44834a1c8adafb90e28d5acd874777e38f464e34689d5699dcde85138128498704dc79d981675780479b800d06330553ab2964eef7574951475b681ba1435ea175d8ae9f025e6e90339dd38cb143b9a3997228444fc3b59937888214b801dd2720a981ea81437ee2550d78d9f2eb7c221a3f251d7aa29eb1e72d4443698a617eddec97cbfd64ed0eabf4f31c18c916c6f5dfac1b0f23d550bc8ec672e6df7f76be4c886de70b9012db1ad4a890fc2fd543715476a6055be749a1fd52f2d2b3d3287d47cbb1b13df7733d4e6b5ec63916b0895f29791508c2b50489e3cc084d7da5a62fb7df3a8c3924ce0bea6515244b8d6edb67be8c6830ccadd111af74c40f03eb4bf0283b220921fb1350e711f08d0ab17d6b30d370ec34980db326b2e078bdf3e1585e874cae77b4797d36495bb809183026738a95b385500118bdb3fb45cc3069cffe1254c9db2894db38c760289d636ea8a88aec4379aa1fa2eec53f04084b2a2a7d85ca41d2d0a1f92a82782526e664357d6074e783d211f453688a683ab5c6225287676201e5c60fef982ae4fa26648a8c0cf6e98817c5238d5da79e727b3b6203ff81eac4cf108996ad2e8507c0bec93373e2723bfde2373fe8588e61aa70c1a789973e923ff5422e9bd1618cdbddd6b64a71ab969933931cabce0848f3b680b570ec2d2bd5f6805d1ab67e39b1447c0a06487c56e48041f4b5f4d6d979f479831a3f7c1f8e61835fd928603599cc9c0b06055af88bbc8844e1e6c8f72d1e7838a385ece92970f64d5d8b3d0c644a8eb28879560e19c83102113ca5acd283f6fa816d9478708f5a74e440040de8fe26436c0f3fb75bc97c36a7f39114414ceb78bd952a994baaba231e11e1b898201f612d629c0514ab5a0b82b1e3d7e6604ccad98797749946684c32245e3d6bd7afa49400a92e0ac2b97ce1f2c186714aa1a3a61b320c9332cc04eb92f76a259deabd42d628b5a6eb1ce1de51fbf9cd5e88aadb4ab076f1e38ccc894fd8a79f537e683e8260eaea963437069dd8bee9314dc4bfd6e008ec9af35283a287e43a1d25a547715b35b5fe287de065809fc425d2316e2b917fdbc5135fc9cac5354343d2c3324190dac6a12dbf42a126e8b1da02d63b87d4f53de9467c8b82da12a0b12c6fac9cedae63f7037a2a76c3e81679952966717a0354f119aac5ad2a88adab502e068131d3dd534cd0e03fab92e2cb3065cbe194d5a4ef32109969e43a69d99376741970a7c121ce80fe009c0129878e29549177a0bf2686dc0e9abf2cf3b33e8fa731a6df35d879ece44745fbefff868c444030a9a9544e1ab84a365284e0dba1e89e983983fd28d5deb2cf3b0eed278956094448acbcb5de5ad8440420cfc33eca0bc971057abc188bb06e432a00fca857138a21f3cee03bf9404ba7834c03ce54efaef1ce91d7d7803eae38ac30093a1db4cdb496adcb05a592ffae479ba162c9b600dbe744681b0ddb8991377842a49335f08dba54f5f68f29e60217e4a1c02ee6709560ff54b8406585545aa7274d029639edf47ebd4c7a503a9ddc8949f849554edb0816b868dafacab0f07ea4c6ed6d78c0dc516e9140f5dfb6e719ecef21f880db73e08093bfbaee0dc6341da87e5834c13b48238db730929c43ec10502ad095c282ab7692a7ebbbaf7e9c7f378e371c5c6174c858d7786c8012a9c61c33b3eb860c759ec9bc211115f77cbc8eea44e31f9f303221302785530c16a3ae0b9dea4fc5759b561d00db3183f29afc2d1869e99d87995d34651502b25a62203d7efeba9a4880ef7211e5d198dc6630798968070292d2fc435310c27fe2c7629f736ab93ac334e82b22907c9569703de4a014650e654375c46a20da32ee25df616a7da4b7a3c0f60b3fe98ab79c4e3ad77226b86901218448b76254dd6a1b7e543c12a0b862b8681eb8ea0e68f8caae5d200f021e62757de02484dcb3e03ef973cf8b9d8fdf47dca6b121dc077723071cea2655ca5478f94e6891c77e3f10554e559a234ee1148c6e2f6349884d6c54d34f6025ec45523b26b1816b1cfaaf67a7902babaa4aa73e3322df5da04e5adbcde21c065b6f8ae0bd6f0f9a2a636859477821ab6cae744b6245320451617a635d7ce634508d2e44a6a778dd98ab61e2bdebf762f827d6daf4961f2b8083a9a863897e1d5bb662489db8d645f4391ec4ccaf1619744c3c4c89098eb0f6a50ec0d2c6a44ff671da3104b40b70eb3cd5dd44b7752ed84ad17d0d4980851c449e4be94f55f343a0e772e9b09584c2f12a2fd696240becbf642778fd886630bcd0f325647f5dc288041220e1c68e5d4df73e521621df0e9cb896ea3d531733a1eb43c61a61f3fbea00d738820a4e426b4569c9cbe4a6ebe914a176cf70afe50b0459a49c9400d230e5848460e57d4c379e2d42ebfd567dfe3695c2fa3f4dfed750316649e850c6542911e9379f653b60f51d66d630689bc4a68687c7b7eaecb5e141d7efb2c0f05373c85a257686241717751afd494760e7b8a34a935879a34f817079c391e74c0fc6b66b999d075b531ec249122590488d56d7f876f33b549b54e0a6f6c327508974643e02b7901b4f1e36f10cd46d428b95c6d12950e222bed08df3fbf86d20fcba1b504844ee759b0e3ca463c4f99b532d6a31a5915fc2e54a4208c3a4d72d49bdc1facf0b6bbf08e03ce4d07f6e5538f2b682a284ec162dbfc8b55327ec40331635b40f9a0cf9cca068e4105dfbe286143f7fb33f48cd3fd4483eeb6fb322e89ac2de593c57cde1be6745c1eaf4e1396d15169c4ae3ecc887e240db9ae0e4e35b5e215a9974cd543cbb046a3a3680346403275d7d5f2d2f0841d13af034f3f54dd981fb6f194e72dc0cb1df5461b472a788ddac8095a2d3667ca4bb84a43c91d4d2443742ee4cea4dbddc2a879b27385ee58403298d7d041e4ee904ebdcb9b9caf411fcfa78241623d717327588c3d1a67782d80ef5a75e559a824d621bbc4c84a8e6ace9197e95294295f4f66d01f7b1e32cc5b38be121de168aab078066db07734ca271bd3579dea39961ed5f1d0ee25ffe85242a66b450a21e4a544b8786cd5725f5acb4d8b5ed4c6232f0cdf75332abada46eb2cadec84cc543c54d31579d79ee8888fa212bd9f53e91eff9ca1c7390afb101129f4046e0480a7d1ae64c682b8b14c41318b2ac8db6168dd5c583ef10419da6677c15b880eb6d5cf91e93c4f62f6323e6e1b2e8c6ec4f001990a34191d986c366f4a9f6196f7c15173b187b3c72c9d799aa66ecc20efb0b4d76074d267dda478e140eb191115bef03faf5b39ce5a3ffc73ebc77683b6df3ab8f901234c557db2ad2595aba62579fc203650b04bdc8d277830156ea02370b2645df878df4bae00a1bb65137805f7fc237ad08fd19a4fdbdfdbebe0fa69b81dfab3993b5a69765b405f3e23ff0e39d1a0bb48279f27d37221b7fedfee9f1fcb326fbb44c50ce84ac61c435120cb41fc8402b00872d6fd27b0650e0a92e074c014869c6580bf5e4d4cf4755ad292322ced4d7cbfcb09285a76048d066947a23d4337fcb1cc4de14d953bb1bba1696c043b9c536a8950eafb853984f5036c18a0294112c2163e83c769e80748366cce9c17ef3a9114a2cff35268a33639e24f8ac35a2ec47bf0b106928784c2aec371ff94191d7ee808010bd87b390ee897689758a2d3ff3ccfcb849e12549f3859c92811a8ea2196f8ade731e74599dd7aba9284a4714e870c0aaeea8da4d1bb5fc15dfb430fceb40f5d61faf548377221120b1eb5af8a60c5ec84701e118a1804c355571cc4d3a314c38862b4217a802082b14fe5b51d9215b40392edf27f02f334110926bf317e759dc62f1aea88f9cb9508280aac9e1c9db8f376dc3df476214d724323b55418525125f441f692ba92f80b5fcb76aacb81610204f292fd9647f3bc918bb72685b5f9b29e9563da56f53be0b0f6f1b9948d120bb38a6fe79eef30887c9af47ffaeae811aa5a25933377ea90dd97d0aae98283cfbe1c16efb5f3171f08b7496481b538a079e3ed6bd0df5a72467288764d38dd7dbdb3cb19c8a255c41e8074eed084d7cf5c5a541873f5afb5cc1aabd0756420eabeb2804f8c6ccf0ae64a5f72dde4e73c6338cc2cf9859e369599971739b76996fdae4494b2489d7e4734808ddaf007c1a9087f0988c1b1fde12647a5c671637e5dbb9683bdad5edec0b7fb37a9b00fa2ba6140542d09f60d8cd5e812ceac5e3e141442fb061541170e8742112f3e6bebc6f48784005050cbeaa683bd961bbc849b2b405d9aeccc1fd281b39d317527065609da7add61d466339dd31f520c752c8743a6c2cd574d20fd48260a4d0d7c3877a41adf25dc096ceb31416cc5d9fb4b546d26520fda27ee49bc158e308012562b6106b56966844efe5f9f8f40d56bcf1f1094e2f8788bc7cd77ecb3e109d63c971ee9f817d8e3844b4f59865e7a420f5d2ca924663a49e35e6809fce938e6e2bbe5096cf654c3096b4c4fb9a087eeb865cecd5b7baa0a349659e8d3e7405391ac9965f2e425930504b0b75f54605d038582e03d8e888c667c06b4dd2f5b0320d535b7f2555bb94ec36acaece52c090d557a6dad1da4513ca1961da8f01b7358076e99b430b99639f203203ead61d7b8feec3b9ce54455118f13c19830d66ca8e78d6b272248af7fed1131c98ed9bc94142e488891c480d9bb40e33cc96e9db2b7a25e3689690ed3d19d8a7049305c46172fc44173f6bc94eac4e8c1e4563fb38161107348e2a2a42602902b5450b50ea8f5b44fedc2360c4c71ba1c356445d076d7c77d03c52fa1575c31614e3e762ba57c351a2e758f133429f2ffac0ab4680a7a66eff4dd74430d76b63c14387b99219e50a5e95c9202344fd0294664a48ba09ed4357d5378781af9b84fc282b07110d37e16dc5823325a169b12be827318e76a01b1bd1f281e6cbee7976c5fea660c685f0eb58a580f097170cc9d2a63497ad74888f58dfe9c21353b98b317657df36e213a5009f43ea992c2736d7e1e9be33ef4a7d51d434af7e7bef7046bf64099ed536c6d8eb6587e4d83c19d67acb686e3ecd0fe798729a5373923c41e71ba553887a1c6a1185f60aeb29d11db8bd01f30f37ca40dc0754315596edfd5a61c2c7688c585d939372073d204a9123bfab6c5c0790d73b2164a90ebcd69ea20631d34cad019e42918536d9fbf32c46d11516f4dec521399616688c8a67cda280f29198428166481d08cfb227aa69d643c187020adae1e4693421703ec0f8421a94952a337f7d7e6076416e41de25df29dff2a518475704d9ec4b7d38c17f4f9d6203de87352b9a55f83a998f640d3a1b25217f5870f07305de27b43fd91070491793ef9870c94064c36e22e1a6fd9953d35a11dac6542083ca3c6d3a0eee3ec0e169b05e8c3c43c97b9242126490731326e81c6e2fa685e9a90b2841805285c19d683a0d39ea918d6e686aef6aaf1c3204743f5f3c2f9050c48d8be1d897783107db2076e39e327b75e2740787f00d1bc035dd18170251bdada8b1ddcc24130cb70cb3b22d8321cf44edcb9919241d969c8d7219abc5de0e4a4e37b698bd1d5037c0e5cfd146083c06d646d33a47781c82d66686d4b633caeb37d759ba340f5ef60c964e6d9e43815535403ab225e23915743e8c064264cce64949fdb22d0120af61e7fda27453282c11ce06eb531d5880eb9cd118157f9b62179c4d2800d005e5d1bb21521101568cd3670f75f2f833c166600e552e1cac29fb2876981b89fc99e5b27c9abac0368c20bdc9e818105d0e2d284cfeebbd49158ed1b30d214614a10ef290cb76edd97dae64711a02017550988079ae3377ee0c59b4afa0b4b72919fa176d82b4194557b8173c5f36e8760bec712babf45cc52ecabb94d717b1ce0f41727528f3e86cd3d6c381420ffcf088c12742cd9d5fde182e1e0e0c668ace0cfd4ba42ab29efe73857d69fc99ec4ff3d479cb76d82a8e8c3a4ac093a0cdba834fbf5528a8fb52d52678af014267e4f98feb38f3a87126c2bf90fe6e71a313084b7b2761b3223040b8b98646082f76d696cf758a683029573d546aa52807b83dd3b57116d992067c37cebb2b37bbb080d7d634cc741c9fd05c78fa2a89b2945fa2436ade1cc494edd2dc03a752fd01db153870722be02cca3905b8db7f4e512a16950940d73e28cd0150242bdc2b75d61477d2722c60ab7c66053cb5605bc3ad9eb35757cbf00a6970048662a68716cfcc6a58bd07bcb74f192a72201006105b68d637b420f78d93a042e61b44f876680b0dd95622274b96e15e7a816ae8dc6c1236c87d7aa97700e62788497280a3c67417c975697b088a2193cf0d68c379f2f91ec558f05454bb969dc3c310c13cd82276a2f39c07e92a51ac37c0b34683fc4540fa9641017a36184c78f363aa7e025c3fdeca6f86c6884a6eb91324589c4c3e82c1d5099bdf0db171fc8ac9b7aca53dbaaa728ff373cb3f1271c60649d18947478a3faf171459e6d9e29ae30efd1881ba11ad4b40e1382e6f6e40f61295a234108405ab7a7f86110ab2034acbe5aaaa438dbae106024fce4f7f7786db9ed7f2b3c84af715450ba54b00af6f142d9e1cb10635ca29045721ac32e1086de566cb4508c415963c68a63fd02dcadc0052edbcb65fe1a0365cd7d20a625275d774f52fb3e41537415596972ed4ee028dda7c0b175ff4dca5a1409d64f0c4574c2b0149c1a5db78c3a525d8cd40e96d93b724d20850ba3d3bd4cd6bed1e7e0cc488e998ef95bc198b6952747849d27e5dbc206f6c010aa46c96692c53a012e295c3938899cdf8c8af255fe97f2fc023f386d48502a8671736be7c57cd3eaf1af960f15279a5018e0f08f5f202658625ee1edd4d9abe0bc59ab7e83889240d911775e9ec63acdb22b098c8d45e7536a71fbe09ae770f4d59be80f168942bb49fce5d6836f90ebc2d5b54f99906a83c259fbefaccd67b6375fee1023080b9b549c91ca77c6af4d39ce843051c4a1cd31d10b6bcc1a8f268e6851c9814e7c687436864572986c2fbd3b5b1f116dda4b17d4a1b4a378091ea3b3ac70b3d299369fa57922879a49009b08b651b8fa71e9680e2f560091a165853b9b43d716229038a0372da5769d00d02b0b1479cecb043bb301cc7bded7a187011802547f4309b63067f791d1113395b9b9b99da6fbcbec1bb24fa2478971e05ba967ab5272d427b581e8a413e98a17a06fe87a6a5cfe5aabd7a71401f6be04af3372cae7010757f9bf277de808220650aa45f62ea993a3000d4a3d0d6618187612e920077142d950bbf2510a35a54d5dd9d207868c5f0dda431b72852510bfae94a80ab9dca41203ec23ab44888a7ac11f516e8bea7b0299bb981f163f11ce2f8a046be61778416731f62913f5cf50af76b62c8090b9d6779e4df4ae2a04bff09f800905334b81cde80e8e9a8c4f7dd30b0c87c341c3d7c12803474a830dc447b59be4acf61be1383e0588c182e29cc1c3432c869d0e254159ce84c607f4336c7043a47ae6f0462d9797bbbc293f32bc03d7cd2059547db335cdf6f745daff71e70f20efd91b5cedf7cfc05787c77be77bb2d904f7e97d167bf1d83c975a5bee6fe303d598080a333b7d40db10873d5cc68b9beb34a3b7ccb91ef03ff6979b8e1ebf5834b83d91c594ab7326b8cf2b399fce014d0a83125216901d24d1a5e0c33e2ebe79501fc88b39e3982f765350268ee12580bbb5a559cadd8da0374942bfde13222398426cfcd7b7abc8646325b6028c1e667e39596d7e5a2712a3213fcae6920d07a7593fde33138aa021ef3a9ca9f59f0ee1ff165f5052f004e2eafeacf1d610454fcfbe43c5945a294e0726d9a678b7eecee95ed0f51bbac5ec7f017c30268b95ccb146f2a995b16b8415235319d824924384ed11bd4d75eea3db5a8cc08c22d9327fe28b99bcf13a5dfa370210a1e09666b7db2e1056b3a654c684661cc7bae30986f92c203108260466275cc693c230485cf769c0d2b11ab04dd1dd7f3b590363105bc3f17883d049ed119e736aa1101fad9288803fda692fd8241249d4d80914b300af2a1ecd231c7dbe365cd9aa36aadbdfa94dd937c641d5a367de1917dc6f9a0f43d3b9779af3379d7a196cdc11d9d37cb75ecc8c208a7dbff091fa0293a334d7513d907f747d68e321ae7e4d7b12171cedb109df699867857bb4a71a4dd02c9645159f8269aff7661ce40df43b013145ecd5259d83f5b6099f6a28357e1286c0e758680a30986c8b774afb28d4128e6ee7d7377c5d9f60ad1f3205c30fba2ab27606d40a194e301243db9cfcacae740c432061c5b2262f2860500eed8496e4ef84d94b02559f47f8204c5282ebb7482b413805d94857ceafa087143f95dc05581dd91967465383f06e375ebc30f00979fb27023ae876ec5675ad66a3b05d16b096d7392579f6f846a6491c5a9c4cc4fda4f31bfad20fca0de449cd60a2f03dbb5478bd63627b9c60f6f88edc00d512481a49a5ba39cd9ae08ced7764605a0bebfa29073c517adc8e9a13c047e69572be7863dca8b8964ecaf73320ef0e9fff82bef62020c9d35500f644f43522f583f1c6c1f3960f8116d00250f7262e70688847d2f0294509ba6d20a8558d382279765aecc9bdb516fc7a8bb965eb916eef6350a3d4e75acd3ab237483dcdfeefadba5fae57f12490997e4c5029b60f013c663257fd032b765d4131061fc6dd5e0a65e6822a79e077e965671c3daf3364d70ccd386fa0e1be5d97b313e0e6d41e8b0d988f413566abc72614c4bc2a5a6e0b19ba421e4949982001ce69475c00951b9f47bcb671ec865e07e9f61c5d6a7b06df818293df556f7211e414830abf29629e541138aa642b3cd3f21e519011de041b17bb229f14b2aeba02f2f7a99d2f95b5fca350fd647715ebbd09906c90d8b4f6e22e27cef90870542f29e30b3c82345957bd6a5e7c1583a766b284ea86d38f634143f065890cb02219772272ce8ad748f049f9f65903d497f41b6ce7be5fd86a7ebfb4b7f87e19417a8282388559b6d1b535bdb46d34c5ad4f08ef53cd9c1d33f5f77916bbe92681b5c0f8fc9a12940a05c394170418d8cd79f481faf1411bc8d80010ee332d58760a88f56ccfa3da69c44bd853634b58d4de50a2b315999c737bd4e3a03b5f959498583abfa140e70c4d77b646ec339af6645e8adbf608a92c9a73a08efda6961951bb607662d75d4a4bae1e3657e076d95a6a2cbd984ecde5216d1febf9dafb59c8bb8e0e5bcaa4b65fceb61ccf7958fb16d48c3764744419116811fca9c8059862d1824ab299e59e12021a3c94cc4127d02a2f774a8e54e0a5d92e5f078b5fe2e9fed4d561ca15f3da8e86b260be74e3b577a5948e43fe899e70928d0c61fc833d7c86a5d557e7f7f55a0d1193c6a01e5163ca0ffb7b5eb13d6a935ceeaf5f7724e3e2c37a3dcd38333e35c6c59b926f89310a6ce5e92d3d5f0e168db06efab8705b71357ef23082b1fd643eb0defdb968c32d1c8963599f696884b86985637def91e09e524cfe27ae23d9a34130264079c1187a491f7c405d025ce487fd4a0bbaa8befcb885c7e5d0118eb6a772a290a7cda53d4a9b70006f5f14e56437cddc36b795a5585e4e125bc8fee6b1554a581c53abcfdfe2d0ab2fc841add4c7f022484cf397ce0b59a618985ec55ce8a7481942ba7179d941c61c0fb318690429541bd085f69811f013b99e09de910771e423f6cdb49802b4a94e57c0a005fcea1c50db0ff64b5233e7ba73b8c9552947cef4ae819ff5c05b71417178f2f4cd99ed95c4c67428b0eb41dc7c58aa3772a2befbaeec057a0e9851309e65a73ec4d35e53e4df7d512cfca2b1caecafa787c844a3957fb5985555664e6ddad152f79c51d903f565902517b6c16669c757e5deb80f3a11ad5bc7ff6f20490f73879b4809938d914a175de0b465eba62d4a693b5dd68a365d03ba73ba5d453fa68ea6aad08619f068c7bcae2c333e995c737814e34d98bdf1070162287208b54a50918b33f7610961c1fcdf8f2986091f8e339f85239505cc4af8dfc8fa8aed5bda423032007d2d1a2752f4f085e0f02673f02a5d0b6a6413fd92a00bbae0b499b5ccc019bb2e9d7d279a71b372e8b8126589d67cae21f61d50a368ddaf7c83daf77689eaec74de7787a9aa533458a6505c40ba66458e9e1c94894090db16ed97d82afba63f17b8e75633cd9471e2d646932cff8bca8c773b0b43f8a7ac0458d9f7efd17c3b8a40298e6fc70576d583972defd116c1ed9cc5b27440e17634e6c0d7f281aa523677827b70d2e927433ee2073a00a0cb4e7dcefa83668af4bbdfb8143919f59d88478191776bdc8d32b2577a58800b9edc0b3a4efb39d337cda2c1eeb0b7b8d61c8bebf4365d076a781210a1695cd54d980100b457e9f1e4da3fa2f3d23b145880e7e637d3f80cf0a7fe7e72191a6e3879dbaa06bbda593a961c7876548da1953f81cd66757a52db28c5b338ca208a71b226dae5f337a0987f5bce2c78a10681b61eaad4dc2de3045fc84b60ea4932c36dff9cbd363d5ce1265022a53e6de38ac02f2fc00a53532cec663d09d31b414873542c762e4ecafb617976b785c4a860e829671e6f029576933f2c7ab304118d997611e781e4be4dadba2dbc4f5b8930efaa4840a62838a6a8a0f10575362d94c4578ffc9a91fc5ee1013b45e26504327e088e38596557e7b3481fdc0da616f0b4c124e56c089908d3dfc2402daea27ab0fd56b2195dabb27508c331dc538137c42014dcbc3d4310dcf9b8a331e91d0ddfcb2218ad514e8a2a50953a2e87a06448746ef98addbf5f43c2150dd9514ba83d4e4a737c947e181caac7782525226516d9b99cd7a51cd90cb588a0995b4941e72fb263f118d918b37e4b4f530123c503be875fd4c8549d6fff46f9d6dc1f534165009ca6b2fab080c2287d9b996f2cd0dc9f6c8a07476e2c1a8e4fc9e489abf968ced81f18007cec76e49df515fd01f93f65be6f91901c301906fe4dac66bec0ab149ca85295db7e9e989212aef119471e2c758037d948d576f6ab9ca5f022bc8e5d1b4d11fb37044b9616dc140d9005a05e736965d5a63b331fd12609d787aa8e7d9806fc32b4bd3e565c10e615a28c1c0fe3764502c8130d2020bb7dcac0d41017db4e4bc4fee457f9688e37917c3c7ee6dabc3003d26ed055fec36ac0e99c2c9159bb4d14691afcc8b089058d18382bd3f68a739f8308ecc99bb4f1e14d3af8c3aebf27c9232f1a24c7bc17fd3d615f4cd24d45af951924455b750afa60c063c5ab28f6421ba9906aaa421a90b55990c2de3af16074adcd4ece91f76d01e143531b48f4b9932580e29a5c8b9c4e052b2101035af488dcd4864f431cd8014b72dfebbf908a0d88cfbe5977faa2888c0fbcce4edef11fe86bb9d8cadfefd3c5d0f820c4e2bccf50f3c74cc584b84396e0541bc0f4c82fca1dc17887ff0153bcf7ffda159cd6c6cbb8bdea62f5f09344816f13339f5241ae17589d8b87999c0bd86cd4b4567a933d766cd8bb581511e7d444676a83a21ca747553649a8f079d4459ada7b67abebbd815accc11080b01b3f42b528dff80c923fc0d173e514662b6f4b68d34d8a02217b9339504dacddfc88f4e7cfcfc84afcb3eb075e950300600bfd611a23ebf2a69fd835a6ff9cc5f0158b02733ec9d8d537a936278f71b1edf13e33f80145cc9faf3f3e099e77dac0d85a02f1a932b6da7ae64367d9fb0ae57ed0bedb9b0c0f7b2cbefe29fd30405646c9ad6f6ca354a41f0a10e73366e69a9dc474bce1a53b8540f3c37ae4e043dec51f58c4d9853861b21f165fb04c95d27c98b10d497975c3cb59124781c5fabd90101c8427cc0f983cfb4d37813e38722a57c4fd0d069bc2082baf157d6e4d8a7692bc51865e269082ca7fa1f0a3be1afefa50515776953f854aff5f57b54e107a2925cb9a8960ba33f68e6bb3ce07b51dc9387fd6d84e93ed6eadf84cc4d62e6b1e7efa26767263ab4e41080b89a274c9cbaeb4ab2576a75a9a6832984dad1da705e1082c871aae64d93e044e653e9625a42c7e73cbd838165bb897b1104ded80956e5bf7b18c880064a5b4f793ab91c2f83b9dc3ef1ca4bb94dd84bae46848a114d87cf91510316dda96800e9f4aa5c2b10a613b0cfeb6e769fd8cb165b5bc2d2f51ed8b404754952887e565c8a34ab49743c60d96eda23cca8328d416748e1d7254d3e2098787c9d2b057bbae475857ae7f09d597d9d80dc5281ab77838361264e34d1ba9ea3287074487fde80c5ed535470bcf115c09596c67711832a0199f197f55ac72847e0c92efe6564d314f34700597cbc89afe36cad4343009bcb0dc047d1e4b0b75a4137846cfd72f64aff92b0d076a8a4fc7d4416540afd207a45580fe6f25d35934d07370224cc8a70967d59effae738d31834dd6be8ed28e85f76df0d9898207287bff1f83106b85f00fb327aa7654e83d1f1638be1dfc4e4cfe06d326624a256ef72540fe049d2c16aceb5de0af9c2ada93235db44ec2f199b23a3017c134a62a10d41828f50840a30d0bbff90caa86ff93b6491e395c52b06b1c6df28d227b5429629bc153c56ee4a751aa8012a020282114a1e514ab4059907329a3b4e3185a7a539d200421261891a6449bb46e2cd423322e1a94432f37ffdcd9d13cf26423492106440977c8d410bcf3a50884ca3e373292c89b7a68640894dd371a75ebfcb95df9845a7880788b54a8136207ebecfbca413e9900bdec6f5fb3896118ec4d62542bfb82cdedf3bf4f2db4a1d642e007f0723ccab016ef286386c37f723478c517261ede549a027a09da95eb25465be89956f169e89fe15dd11819cbd79ed70b1ac7d75bd14df8f11f09f0b8dbcd3cf851e15c708526846a3956296d96e95a702d90c1925e75d314cbe84154cab84cb320271923a74aa4076786e346b9983a605a42684e8c7b10029a72ce7259d38c6cfbaceb6521988d6362bcb60fac9ee6589ad57ad632a88e19e8f8d99badb7f7adcfd09791f64434d880e833188c304681a29bf58683da571aad5ddebd4334534733717ea391873d36521528732e32946f4bcd9d924cc3b051d235c7519fe31dab9a70e5ea2912d36a0d127935f8d1dc02d7c8bdda291dd50cea4728b0cb58e73049e31667384f820ec57bcab0bb88227d32786b2d861688d8bfc548804ee6226c50763e0d6cb84bb8828b14f5e78caa596b0b1168177fb0de60949ed52d5e15369046aca713afeeb0f6ec47fa6a7ef9c36f5d09b0194797a65f799aad5188a0b8dac6441659bf10c3eca5adc13b717ebf32fe7f06a508f0004c5c663675eb897192cccc0536f261c22223a41364d80a57b0e868dce3f48217632c965407d04af0c740604882aa2b224849be14a3ed35855a504200ffd1619a459a680d414d3b8243f1c83eb495bb8d625072baee2ae093f2a79ae5d5226ed97e52a9176e21953502b6e8b83d94ec78c5cd0aebb6efcddb551e4ee992368f626187f49956d77d624231fff7c3e80017f4432267050b6822295461540a6259476719a53f1cb636489fb50d1356dc739909405711dcbb60322402d25642ba134e24b10c20800e7025df19717155ccb6fa5daa940bb988e6219c2f2928b1aaee9c2d317e3d5fb767c0c82cbc2b4efee16e17984eb0240723fae9911451305520018e3f4fa7cd999a2a4a5e8905974073f990219e126294bfe8b49de3b461ee1910fb80716dc856b98e37477a5b6b4221c5706d26f2a7d955a5b2611ec8193da577240a5aa3449b3a4b57aa2b77648b10356066ab6393905220bd9332aba5bf692be4bc00d71f050f1730c97e203338495f4c6c3d6952c497e1edb37006067cf94bf21737c40192bf6508ecae7372a9217df7087a296bf811da075cfbc6ec71a5780e458b7bc5d32e62a28f0970872583a920a93787dfd6179a1d72afaeb5d96b935b8bb053cf0e6fa18d4462bd9ae7621eb47161f3f1590bdb530bb4b78581278881a91e61c0e91889131b03bfc2b409703c703c5f57767491ed2e8c9eb6c1e7cceaa96b146628902e26b132e7f496d781c687793ca878aa415d3398b9926e7f527c0faa9bc5179725045fa73602cbb028806097e61bf3adbb7380c8f723c402d9390603aa79554d1572d0be434154074e79d5442dd1c0f3cf0181400b16e169f44c5fcb6950200e2a9eb2d08591af44b06be1e27c083d3e0e425a5db915df9678cc3212893b121ccf8961082f7c0bbf552c9d85741f242293c9681329d29c6d3d6095e1cc8292b2c8dd4ba4ca8c044411360f81f7fe2d975c8ab1e41d67de62c401ab08f6108a0daaa09a9b455a31705ccf43cdc56a583ab7c1f935cf75baafc4b5fcdadac0f813feb6c48df98a33516de9b3344c0287a6ad49d7de1a13b57c0289cb76ea7e6ed39dc19053ba7081d1c750f590c7109b508f2f22fae4ac701b6a766c991201617c9c7aecd5e6ad14debc57997afe4b0df38e8b954cd8c4ccb30b43fc2fd8ca438a081496e7e7675f1d93e4d9193d10b1906a65866a916cde34367fcff0c4f8056a97c3e3fe0a7cefe98a1c22025e41a316a728d2e4c6142989ebb203aaf1899451fa2081e2182d9929f03446a817452129adc8a2f8db70cff744f68f278e4d2b6980c854d9f290f4be00602cc431de2d153cf28cf50823f5465491344eff62f79c822b460f23ff8a7db2953e051ad99fb9c5da6f8af4a5698645415fe7e1d65cfacfd44a4989358a135b8f08ac335c1a87cd41e912575852d95df09bc469e24c976cb287c618b5674238413dd9791010c7dd5940ee7182ddf73f20763d1f5fd8d21a00e61622f9cff3617686b22a9bdcc14b08d5b2fb691a98bdee5588655df67281e9d95cc83920eb1c0c2aa535af8d6f0cd097239490da3d0af7e3ef3ba9e9b71d37b677262d24d3157c6cfe20d0da51978ad5005236e8d27311c0283af985994dfd38aeb1029ab3f66af6c34ffea292c812b8864114853271283cc97a63fc3334e0ceb1bc05b546443163f32499b409133de7f27bef111c83dae0615a2f47a9400506795903a4b031cb473089f22a8d03f530e5901c590e4a2eb1978e2f5e08940edfb13b82bcb39d76b41296499471553abd5bd894f63012559da1bd83dd8954ef801f1655843aaa35a1a17416b6bd8b9e5f789e8c6a55c04baa9f0a167e35e1e08d53418c03a7d4291590fb0b28a0133136328cb1e6d638bedb3488e2f9ae99987727a698b29a0197693302eff8174126c900f6e7ea6139af60c484d76043b70cf06e5588a397c3b930c3c0f1625a97bdaaf0c1e04b05742322386ea08707bf4067d30bb83286f54044a40b32a9ac0c9ef7f6efe9ba214983a7a950b4ec382ba93dcee089f759b113287336c76395b5e07f69e2927bc43975c74c0400294ce50e69d0a63e673d8b4d692aeb9e00e4a4b03b5685e24eabb01bcdb4a40161a267f104120d58e1f55c3b22f229208de8d29e7ed13d47fbd0d68948a485b77556f41d2745e98334cb06f0c7e9d5deaa1f16835fb15013ee66ed8c9784708611b6531505f3598cd505ffb471e6a73a5a8566d53f0c02851922b039213f61ab4b63e6f7bbe55910ce623541dbcd4305edaad5919008507917d2c433b5d8d3d4aa80ab975194388f5522e8c9fd2d043b6d8d046f20a10c51f31c6946d4748e26f9108f78c38b5fb3b11e112229f486f103908871520a88d9c05a58c9ebade2dec5fc911e21ba9ac9f294e65bd9b5497b5609ac28ca66eb1a40e878d63fa8a00fdfb74add68eb29a79d3f4e7cc8c105f1a8476ee507ef5864aee2a5a2d8928aca7ea56a4294c0052655cc8f215170f8f7dd0607b15894421c166c68960b95706dedb30c9252aad94ac002c6ac3ef0d73f3041e1acd42c2c8143e79ef0a5849ff6d067fa798ae103fd39d173b6957627d10984363506d875a3c1b00248668337368f152e0bdc5191f937e22f0fc9349b315e97457859056f69431e80680c05274bacc1d2c19f49013a8442c128faee64b9065875f8f571cc9e0164ba7e3a606324e8a14b8379aff68b569ff4336dae7ae29ceb73d00dd1dbc81953855c58a62b6fef709eb8076241ea616111f400d9f400fe332dd4d20b9b5179d88a82eff0b1a5269e39bc9b850140c21042d13019982ae7d31ad13db299e2e78ef2dbdac634ccbdf1a510e87e71294a0c39895d515ae703b73bf84f06deec5e752032cc054533928e874833d864dfea1c75998a73d48f000d7ac705456c262294beb557d57cde94cb7d3e82f5837343dd05bee6ccf39694cfdb0a782b05dc93bdac3448a446626cf40a04002c26bb118097f298e9aa60820405b9d4ef6fafd5707b68671cd65d12db432af5d45e5fdd4388d96d710124a2001be2c11b4f0a32d979489b782146704e9a7ec95a279d27062452ca7444f6d5ea46df4bc90edad99f7b3af9ea9e4eaeda3b653a1b099653815bfe1d2f593316bfdab0469b93129ac21b9825fa3010c74dc7c36aaf3d5d3deeb31a8ec912b426ac75e424a6098d0439cd674273749c8599d01e8d33452634e0e24c5e71a08062e3240a678cd89806fbb0a479a895f4f16c4a95ae0313b93892a6f703f5bbfd7696b92ac06135a0ee91a821d270ac205737044b48aef1451e6525f68c5e2024756a1633d6d2cac3c66e244be3debd9c1949381524ebf8915d8b3405de8a7d2bc1c573188c267749d71a6f045c67c00cc57acc55148ea7059ab254eb14c08766238c4a588ab09f95caeeefb1fa555aed759b7fb62c5faabf23d8860e68f3d1450ff0a83832d4c5402203345ea761896f490ed24b58c228d4af11a1250bb88542ef0c305ae6325debf07e8d8a074cdbb56a7fdf1b7f655e1f0bbda2a5dbed64ec787767bbd7a192218e202383b3a736040170e83e891ada255d5ba1f9e39214817601bac645cfdb598dd84202c455c90f491a6b10cadd268e6b6183b62bb0f0c81c1b4ed2e2064316fd191f181fde8fda82cd61a1d27e03a052f125ee6177ee5abdab4558c8f4e57e2d4afbff0e7ff686cf4248163ad2e4a47dc6104f99d2e3a97eff62e34b74e6dfc47f7418b097601686e43c52293810174e8c858926d3259adcb75eda3168100af1baaea16be08266665b48ed99aaca244640494b8818f01d767485fd1eda8a4b8eaeb5083f4380989f6c2f9bb6c3f8925f0e845d3b24b97685cb69c8845ffd3e4b1a6eb302d91d07d7a4f503eb00ad69b75e417c565f9b47a3292ec1fcfabd2e288a80f6703eb834631d424f3168456c8ddd535d184cd668787c418225fdfb9c2c1edc069b882d2fd03e4bb5a9b85362ce88f520468b0235b448f638b90ed991a9523d4e6ff00b15554c0e4c505b4a6dbce95e27f42469bdb476e740a5da3189aa567c55c92d05da2f4c1a0adf3b5d977d083c1aeb6df926c95567180a5e25e6d1954158b31adeeaca0e0b7392a5535a964e72c069ee44186f1065b10d65fb74e196df29f867cf75f79a5a067022195e1ca007a846db44af3deec3f0106c9ca05e54479d7c2cbfda54efdc31f85eaf66a5cab7425f5b61c14bb00fc707a645da69ee4674c545a85c82661074183f1cd807ff8a9ac46ad117310aeebf27d511bfba6018333008c91518e6a001d5b54b34fce77c71b67ca13c8f50e931de97a21c31999ac5538f8984e8515e309af9fde1a566d591390a469f5f1d2bf5a4b1099192450d53c18ea8a89d48d2675fc886b83b2afc0b4256788a013bb34a6969ffc7927f25cb2ca7e09b5d8eb78d84756e61da475795f4d8e1d3338cd441be9badc1c9ac5f8c86998adfa3c2283b32024ec65c601bacc5055a0f07ba4b07099ebd5121490e068c85020585e413ae6c31bac8584f7006a90813fa5090995b091b8a5c0a909a645c8c80c37d494ed21a1c1a8ec271b260cdcfab0d90611482c1ae74a4c62b379227ca9f10fb8786205b1a6ea7d941e059bff0cd7ab998a9e7269909df92e85d0652a7eec2f3d6c44d3935fe2c8bcaa1be65c4acfa6f5290ad6f5472260cda8eba1b93c9fc933f87025ee30af54df1dc6184aa4b001719d9161db9af2de8ac6a4b8b9dc2828d8bda133742766a5347920f298ba13a089e749b70322024fe5bf2b0e53d0ba59a328dcee58abc744149196369a802405060453d29f90463855619b2e257562e3a0ea96b11774122a0c22bce42c4c11bb50fcb3c20fdf7f2ea8327ecad0f0f427e466cd7a265455b6b9c2239868c7cf69ff94001ed633850263cffd0499c44fa958ce9959451fb991a3365c34237a02ec1fe7a58b31caab0ee4a722eda265a1f34207561cf3d34982c3b0a6afca838c9cb279d357c2025a5a9c6148084d1f9a50cf4275d0cd1586ef585d1dd852a31a3016a8c955fcac3e2993f0e1cf9fb9743cd45dde50badf9eb96a41f1650faa5f67a3b79f91405b2d55e66df296b8c017e40b6153df61f626bbd6d5ba7e8d6c52cb77dfab46cd6779f52b8c0d2ca1154004be817ec8185d865784c7c81e9dc5def47e9df7a5481d0b8f2ac990442d3a8367176db6c6aa730ad842fdd493194233961863290f3634af42cb51b56a812300db443290e23c6d0285c8a1eb0a9e870ac4391f470ed0c6b5b8a4ec95640b3821a02ef537dcf7ba6a4f6701d5810203521effa5dbdabdf3f7bc03579ef4828a7356259b3875ab691ac23ba6b12f11c1c4dd6ab24b61a0f0406f64d012e521d0904f0d553beed5231eb8fb66c6f1aa5a3f3445eff814e098357c300d98f9f996b50768dc73d81ed6e2f433243298aab37131bcaf3aa89d7a4e3cc60fd3c80192d3ba459d5f663a41f7ab17303f1d5efed2bdfe3c7b3e184fd60a843e71475d664aa657ea8374c90b4c8129ed138ac348745827000e3020aa45e6f39ed9141a9e7cd8c8ea2050bec39602e5a5ff79d5f848318d5cab3758a0b16d81bf8782c1b54408881dad9b74a4c23d6e44ecf6799f2b89a249269c6784f3010147fdf1f1a2900b13c6fcd743390a7f52ef4705e0d31598e03779532c7d9a4f47fde703db69fb3e73e0a852a906184714c39a2c3079ba528609ac01e65e21549bebaaa726cf520c7bdb43f24b0067e2f8a01d68ea839d298930b4cd4451a9cb9f6dabb9c0b62b76a285a06e448215bac4cf409823be1be59c7b6534348f97554a1abefedba010de3488617dce12a3f9b9d470f8dd2e1b9b7db67bd9dad1ff2f86c254aa6bc71f8bb672232d0d9b7a286e4d2166ac5bc7247273632225f6e11d29620b4e342ac706fc08d7db36dc3a58fd0e25c37a96ece6ef2f14f5bde88bcc3e1b13880ddcc90b9d6daa1083c3faf5d70c5c12e667a34e2e2f1ae59f1431f99604a3b23f67c8eaff6bd834c7f4be683d5a0ea9613aeb1a415c993cfd4120da3fe06d8632d20007fbf4f352bb03dc3e33b69c5a568ec40b727fae661633ece8216af0892df8076914491f39fa3f2139dc988898a6d9af3e3c1f959d455672c59a850218531189aa93a79c5e4177402d84c53b9e7e92695f811b18683273291ca13fc6313c6f3105245bf485836313016f2ff43ff96788455af64739ac3a1cfb2228149f664b33078ff82e4758b5b6de6da75f19b21ee5509b9b1e51af1d3b02fc2ec91d4f5a66d3a23e7d7aacba41cf894de57006859c4a0f771824cb1fc336fa5c5e6d38a75d22b455f2cd097814fb6fbde7d2f4e77e20f2993523b0e23b7fabe5b2eaedb51a05327439af89837018f52fbe6861a16665f25c41e72a5f1c2b4ec2c83e4ab29b6be316c3a52b82d4cc2abc33816892ff746711fe8a107e93a59c2fc9fcf2f3f7443aa748070a8a8576f66aae94a3b0ef5a4557eed4ce9ecee40827f577216d4187a551d9b7fedf4a91087db60e836150c994550c8b95eb74afcbe607c744b06496ee64c7514fa7d791d5fe9dd51d78312db1aabe722e92d944d3d249752f8117dd7d592c2a0b3f44fbb7b885b06f5355de47961d4942208871c71956af4e8cdb9327b7012548abca628b2372d2134f82bc2b20df1c52acbeed3caa0769ed3ae8c7c6130654ca29fdfeeaa82ffad3507e40af95376fcb9d438440a9be758b0c0b1b873762a97f1b9a31b1cec31c3c979ea5cdb99a45b0fc602e3e7adfd64f2c05059a50c98b5be04992e3e8e7418e389d17a628066658b2e6e21384ade1025ca9efe121c4072c70b2c0d71023252592ba0390cca29c309b135626a9facfaa669fb4be131e0d7f25ad77717313d035cc4d6506a4a6833a36b6abf12297b3cac89c2ca54d33677621beeb4628f0de67041616271bb9991d7765c51b4525902daa616917e3023651587341ea6bbbbcc0aab631cb8ae89aca443027b2dda67cab1ea47c88772357930f3ae1cbe161f7f92a68478fd30cc93a3e14f7ef88af88aa3478ede48661aba241970b92e847ef9825ea251ef5c7dcb7004fd15385241e2a0a633f9faa1e6ce3206e50f04b9872fa6cb8cb810598a41b791df2908269edf3de9af8e317acb2865e17614bac237a036828722fd5c02e0c51dfb6e998b10ad179ac76329c8fc1144f7c24bc1382ab247c20a79d189a65b8e4afb4caa662dfa0f3a4b8bdd27a0e4f05357921c9dab5830bdc98a38ab5233368152411879229b82d4c676a094092f50e859505c60a015820e7d2100bba79359c8c56cd6133f07dda8eeb465cacfd0031dae43cddc1e2ffc667b3808f2a4f305146a67c2fdb49082b60535e05b9118b1e00da51637a261b192233f029edf37c7f3612b48bc499e9f3eebcc1cf08ce480319e7368087b72be0426581708bd27d657688af2e73194d46c7be2b99bc0111405c165bcc20b91ac059774926ffb910cbb9643490f225139b440797515bdc6b71e3fc595b275498422aba7ba8b7d6168009716c70ca0238c1005bc03aa2265b396b512c6d49fbc406eb9d690a5da3780ab6111e27aeab3bcb126a0ff9734a4ddc0fbc90d41d080014fa914aeb76cd48f166e8222f6cd71cf4e6ef2bec8539731564d83713c6a95705bed4b9fb665e9fe355c757a8a4d22fa7594437c2bdf282bac74772402bf73c25bad705560506288fd4a429888aabf0f1df6bf0030a45d05c19f5593fb569f5b6a7fa5793aa4f60f50c9bb80a3f46530b2400b2b9427f59467eb1ba7d030b21bb488402a4eef12f42ef1cedc808b61b73549120b44349bc0b376ebd340d8b92f665c1f54ac145c763ca4d3368cb17dce1f8a555e4223994bdb5d60dba41455224cc81d4e8300e5c653e6fe988aa51e9f78d0d9d6e31277f5453c07af7880a2dd27ec9ebf2b1d8c02bbbfc00fe1cf5700cebf701505264ef16e1d3a174d2956b33b31cdee30907898e3bebdb7e7a115af3d11c7438d154c5a9a6ee7833a3d7a7c402108474bc23ed1485ab347d76c4a28eacd4c0faa97f0f00812b8a14fbd16b00ffe41d874f4f8d36e57150fdd270eef0f120af5b85c4173a152a45854e2d99d2af377ef40c57412e965df392460673748c553458ce6c496a4fb5ed2b0ff3091cc2997577fcad85fd76a484d2db2dd74c5da79d9dcaab317e03b19326788819c5c22d5086e1e8b4bb297ba45ed9d32ec4c5a4cbc36e59f145e426366f4acf0c0a707c72752e2569333d58881b867bf4d4bba4bf81cf896e6603b09dd892e36bc6e3b6492ebc9909dd6d5126249d61beca044cd904b6d24954796c22e1d56d1fa0ff212e8b601f00c72ff820957a55a0ae37a62538a541d93f71e010d07dfe3165bd0387cf8b7620797bcdadc7845549b108e0888768581291b20f45bfa7e9d2afb543354764fe1dbb13e43920f8b04607827959d46a35943629ab869d9a6c3c08b5c300424c605cdf515f451c0cc5435767413835841017f6a0e90d081c83f4209bccbcd671018a539ce55bf344ae65c8ec946830edec57831a576dba2a3a01a1496d290597a7c7b0538fc8e7030b10b85cf002194bf672916db2b5bb6b312e5a3b168287a87d45aadb4c5aa61e2cb86990ff29a8effe3859d3d45af17ae3a89beb3a365febc558305b195c2e0c20e476acf85264c4f07e98542ab0013057f2e211833ec8eb99ecf04b1fff2d063fa7d6431301876959350f0183ebbed7dbee108aad5dad34c3515b0007c488531b3e293ecd0b1390363598ea7dd8b749ae3eb14271f178353d20884d60a143a722e3a53e2931e2dd16e2e62eadd6ec444ac9bab46b5c786037b6669ff9d28a405cd889b2884a6974e452617f639d18eda0093fe2d4ca790a7fd2b6456b3cee2ca725474f4a58523d13922bf294d007e15a61a705964ff117f79496abc085e48570c8601bd89b5f585336013a50eee5e911f8044abd9f27707db28d093d7a2e8c59dc24041c76f039fa31d9c6705b853e36530f5f4c389aef084b58043f141141104d4d77a6403a562c7cb5c9184c7cb04bec343281822196d10b272dabc89d151e04c07082736bf2cf0343b385b5612b96ea0713d8dfd64332c67c4c17c29e1fd1d25bc0ed4f65e4d48078596da8e07b692a111e589739de10abf0e8250284286adae9afd3dfd4243854e066bf961d3222a1c53c50bd7385a8ab62f6a7571353ddb806682e882887a41edebcec6d3126f0f90395c0540ca61ab30e07a69c4ad253cdaaacab97fdf31b4fcf43c349f3d1c2c9f2874ed7019a352c5fe2a936d6f25551a45006d45c8bd96cff227d5ecafd91fde4d280eeb38be89327314164181a639017fc50be09ce8eca90f787fcf7f46110d3232c9f6047a107994f1a780b4e2c7136564cf440b374b8f9b79d048f521c0ff680192c23036d00f0363246bc689cc44fb49bf6d847b4bb64469fbbabe761dc5b6e8b08c3a848dc01a7854d749161c31423d80e4dfa601d5e34aa939506c794441150496df81c0621a2acd0c9954289db30b439a0105ad3028590617a5127638edc04ecbf620f1937e5bee447de83d8ef55e1614dbea7b0781027ad222ec0e6a23d05378663f247fae114c656829a800d40fc9fa79e8000fb4680de846cad7511b19619094f65ea4c7394ca925656f6ec0af2695d843815ded69c8a260ea95d9239eea076ae8070149e64281461afea2724b68a54b7def78c407bf534045dbfc52088ef428f7308199c245642b034742c0b688186459fd4e0af4943dae79e5f2471c3f38d8f78fecd62c761af0d8f5750042e17250ee3ff89f3e88979595374d36cf253937711c85dd27930d666ec17f179c3d4a43df7e94c9ae16658edc15902ce52db3fe31a742ccbb846c0458be4b994af8935b76991392ba7ef3f3a1bd4cdf57c05880dddc84c8c7f5ec72ee2fd35af4ce23cca1c9f3b1bc76bd72ef4ea7ce0dcf840e76e63e9df0cc90e90f946dde9961a4465ef0f5af50a4634a7bd973b46aad4669327253c1b22b0ba040f8b9066c407e6ce611bb7df79c2809bae885b699620b5530a12d586ffe60cc3f8fc393a81aae08e568cba0518fc967def7655a4dff915d826b582e5d36d6150958243b33b5fae836c35364fc4984e2701e2a7e2518df20ff85227594aec7ba9a8c63f3faa7b6adae221cd43bb329f74f6553a650c8f1d53704807645264c8ec97138a57d2da3b5baaf8fceca022ce3305a1f074e7f59b5bb51aeb2482ffd7c60ca74ae2394566b75bd3ddd9b3e67992959d8a78610d9c69ff139abab8702f493bb1221f0133758dfc1b6933445be008085389587400c1fc708955131516e6bf20a1fc21cf12366c22cd991d592da5e4b87bdebb30930b6884d40d2fad44009ec2ed878354cc2444951b08555556aa321f175774b33d0229a617d0733e5e5ec5a3f7f9d8a393be4f07ef8656f54f23eb0c6ed8a93bc03378d73e1b673c25fef9e4ad2392ca2b3d82872b14bfcead917e3229e667390c0f914772c691f54a8a26ca71bfebeb15b77040aceea74587e564f415400fbed994bd425e553a341702377ce6acb179d83390242b4e857af317a6296bcdf37345eed8d0211f29959a0244e98c08e1f4d321a30a1b3fe2ca5f23274b1a9e0dbe8148bcbc70e77f80894bb2b5d85eb1e2d4dcca3c7a99234ddcb316f1450ef5aa6d8d813d8deb6fdbee8ca1cd8ef560938e82500ce832b85950fb8ce18bfe7fbf637d5e558d1e25220322a0366a4f7f3c641831097251c1e06fbf7cbb4afe24fdbe44b74d13362c94a2a516aeca7a7a09c420a90cb9ebed02d03da3e05421e046d8f80909a65b17450d0d9ab0064b8b6d933fcdfc8ea385f515e0c84b7891f5e8cbe07802f3540737b93cec8cf262c8c95660dfdf88a7665ac64f099f53e913ed303f8874195dec7ed951343a5793241cad228253619cbd5f77383a937dab0b0739d1b5e47b44427ba3dbd8cfc9adc970e258d6cfa0c18fac4ee53c4af0f70d3fd478e9ddf5c2933adb9731228b07556b6a6ce1f9893436574d090463c4eedd811a5bb286e0e704b054a281113d2cc2293b74cc6ebcc58ab8c69e5ba7e027129c01910b99b190f6430d35268775039f2b16f7e455108e1a9d4b926d160e98a5c06d0d3168ba2dd38dca4ca2b5f27530f495387f91b0badf75dae385865525c30b9a48506242ca927c4da648160fe8184c625a1b7417898fd695a9bc5ba74df15f913b3283af11926cc2de153c93030ff63c2f58f810c0fd74ef629415e9c40a46cb86f39b36fcc695c223098c0c36324c483419c9d3d40082a1ef34eec6790dc6c4daa91c8ab0be0285af9955b3561638ea78b0f0386a683278b211368569693f87107e055c767c8d86a81b5e6bd9759759e4fe69bcc807bed7c6c09b16bd030a2923d3b3d1f6cb2b9b9db59d254a4249e4fd05d2392c6484834ee1457f8fea1223ff558c8684a12d020d385f8371edafdfd68403a00fc0f35e576c09dc4c7acf98eb66f6ee0c60fe635eb39f9061d61ef7237eb0f4afe3b481cfc301fb649c2c822f840eb6296d7c30f5d3e7d300c1b4d62afd2d190703d4453ab03c801eece12fe06a473677124a10ce0643b77e7daba8ed24d9075c60285bf5245f5d6c1afe20d45567dd0859f58b520985ab99f072a6b07c945e8e283ff31c835cd025c3248efa35a9dc0f42febfced9a145c86112d4bbc109791f960563e1529922bd2a5b22b4d6a8d1b38721ea636f8638d4696cd79a05b1fe9567f4a814b0b56f399f2216a184b5e4ad98a3cd3132f1f73d47fb94b4b33d0c1423e2ff9a67cd4c6ac96228216f736a8c2449b0c7f4d5cbad87c5801a1eceaffc1eeebc3216d12d7cf73b7605d60ba1cc54c1c29e139a46ab958f8af05b40ef019518e92bc007f53731479348100b4a42f5beaa2a07cf11d0d31fdd6b420273c5506ae9faf0b0d0f1319f63aad9194a175db516078ab8563cab5ba9d284a6ff62d3bdd0b7f83ea6768c04f577519a9480778d270fb9d327d1be684a4cafc8240857acdb809f8974b1ab0fe80383bf1135fb1e1bf219c9266699f1a89bc6145cb6de0e79e4e8c117988fbcad12a6ce7bae69f05ad42c71a3fa8dbd1a76003d07396f4da368236ba747f41ed6f49c73f42c99dc660e7fcdbb2d37602950e3b7c8e3ca21ead6ca1bec4ec4305960c11aef7f66b6b31d8340c2056b370e0e70b7981c6b0c51557c522e0f3fb0bef30363fa769e781004d21716fea19852a617345cf8737f7af7dc5f45168e51469a394d5ae4f6002d84a149a109999759c2535a015445c47476cdc74626dc0d3bd740717a0544d247f409e80eb689ea7f5d6a30453da9b16e489f353f9062415d486f07f7761f07230157d4cf82a654859908cbf56081e72332d74cdcbd6437c7c0651538663ea30a2274cb08e22081308e5087d41d79fe91ac0e2a0aa0dac8cb5251982610a204e202497d4f481a54a5e6f862527511fbabba9971cc2076551d261da02790f8736f1cf8abd0152600790476300011364d5a155f7587ebe57ac74a0443f565bde257210046384be0cb600577350ebc952570b76380bb56f462e8a53fddebf8e9072cd24abf54411dca11c6e1ee8c321fd27c2d9c70d564c55be6b01019ef8cf5c7799246098082d02ed1cb4c6d2488cad85be001a3e478017143deb077906df5fee2f1732f07d6818691d9e86921b8ad71d37061508b5ac096e15059ee3ad22104e38c0e33e4fd1797e4bf40da9448f04b2ae7e338c939d49cc885430de3967e81ad4335d922431e9024559cd805f31883ddb668792c95ee065f284b228eda991881b30a02ab27e2e5fea0ad05b32fa2b9ba25e922bc876e16607ecd2ee32b040287075ecc560cf1d1f7529676bb516832b3a19108d1f4880bcb0a28452a28bffebde03d2f1b55703b00e7c16288785b0044ce7f4a7b83eea3a67a7a4fb8cbc93b1f203fe2aac74e50904752b01dd1873898667cddb87f79ec97ead5c86c018e0992abced0ba9bf7d816f88e299870d1d7b66de3520b071699b36b37f27f455c837c4a10b88c55f61418f20b882466ae6b8506b425837879df54cf8c3a08e39b6765f8d2207f02bf496edc6bf8027335855df95b76ef174348bc098c1a8d159f3be4b735e5a0cc50acd25c400ccb6009ecffa5c5abf305e1318a9acd6a0c0bc2eb1077875360c6f98b6fcfe1c6bcf6bc0298913a9df8111a73c862dc67199815233f4d9ff74302c4de568c54ba7af20d3ac36838258ec0c5ee669aa743ee773a268df742c1ea7e55b86012de7fb63323a9a7a57b0443f8616b9a397dff88dfbe0ac207eebabfe7f65973b865b00f05d77a01349b011e99fa9edc9db1ad64d167612d50673c5fd2f06a5666ce4fd18349f9084973acfa759c8db735ba226fcc2030d9fdfb6ad3fd8a459aa295039ae49e119fa016500443ea392d972b4a660558b7bd9d5c93d69770ed292ecaaeb6d0c25cf087c31c3b8851128bdd6013daa9901c46349cde7a14f3cde20e8ef15a056285c626254ee62ff25e5fc30692e2e712488cd63032022e6825b4e8cdddc1820db0048d2087546e8649fedb5b3b51d34bd6d3b0b44fb7f6d2c5c48f32e37b4a1715c876dd740b8be800c7d17f62de2860bf48795d422a4bda1947803c7d91d66b264cd106244197b85977973ed06c890e32c5ea26bf2b5fcea85cafa93d0b99346fa070fa1ddb7099d457115a46dc291634838ea4f1454acd0d063caf0ff1974c30c97c7f90ac0c03f28c6f7a0223aef341da4299d215562e37e29e4d6c5605cfc927f4db1483f11e096a4594659f61665db55f64196ad01b7ad9b3b3ed9fa5082da1d4b153ee5169ac0d0ac4e72a7740f74882e47e216e62852330e8c04d01307438cc57120bd21e4cd877feddcb28e230140c6b18e8510576acb1026dbbea36c29520b748c4814c4ac28cf222198bef1fefc8e6ac929b7d2273313108aa3a3a5cd032f8950c1e94d370a1a875553c3515450985a59941e1469c1189293ac683c45ca96718f64c4b796d8189e4cb9d4eb0b86d01f61d95a1a24259ae520b4caa69c10670981ae4499e391082303855336b5e2165984d0d09631854e52cf3b7014b8359d2545baf5c6f28130cd05b3f6e70fc3658847134b6ffdd727245f68662cdba6e563f4cd8f2db21d2ac8b0dd0823b7d86fa9ed9e62b3bfaa5bfeea89390ceb49868f0e17e48f8dacce47bcc7bf99a113219d4819a014606e50476a38ec84bd191b94486f3d9deb73416c19779c9e61da2693c14d1197587393ab91c1ffad789f8e57e2365eb85970cd018f285aee9a2d9dcd69a1a6b9f6cd2ce64eef09ac96ec01b59013213b2075bbe55198dae5a26bfb317a8a424348814f3858d06952df941e5c855534ca9bd50c5dfec04591386ae900e52a0c266305aa1e94aec6389912df092656e65b6f3a19641f43723546f8451f8e42a32b6ffe015a4597c9ef20b4950c442b43f153bf88416d6f199910a02d42afc26e6a77d0e613248c6d0cf825b1ebc3a1d291c0e39fc93f54fe9a88a0d2d38e85f12fb0929923e76589c4dbfb274a3ce1c25d54d623a5a03f56050a49eff901568befd03e08c2f621b9226efa5239ba7b01271cb0d550a39b267789ac6ab1a6e12026fc65a1c1df5c52c50a935f40c31a710f5462a9cfb3b11cd7bab818303c53e1f12eb1c1011874d52edf3f6ed97b07ace17b170fac78dd3f9fa6b0a3bbc111faa1299b448e34864fac6842f43763cbcabc49686852d11f579a0b19a0446b0b3930ff00ee29e16d5265bb85ffc9d5d21ef20bbe9f38dd341fb180e959e2c2dff5c852ea3a2a9a477e1c38829c2bbdfdbf6d58748675e081b8ef3693a823466c23851bdec6a04989d81ca4277d2ca2a378b3dc07ac4610d74ca6f653c9182b275a1d1a337673da8451894ca32480401b3ddd4d4920d8a609e219c878f87c0c93e19c3511256c5cfaf66afd1087807047183d1f61858810fb8495fd4869ba0be631ef0121e2d07c8451b63b90d5bff156ce7b1a74d01fad3b2aea2a24ff09a047b91fe3a6acea067e445ccbd566f518100156cc1f82e5ca0f624f8d0e8ae1c9212bf3fe1cd0a18abee45cb2ee70e0625ea228728afb81cd89319e23e0bf8a7e631ca750330bb82924d5bd6ce925294740c0b10e1977605996bec151edc812e01e9dd05a26213472a3b721215249aeca7ed2958722e1f0a98714496f7208428b4cde00182e8fd64b23c0ab776d304891d64bf935ab63421076bdee80eb036dd66cc59c76055c1f276b08fb9e0f150e78e4807731bcda5b64bc4b0f17923425a9ac4ce6aeaa63bdea407c65558aae184085dab17ae9df176158fe76d63ec86685d3ae8934c51ba44d14a7e7209cead59d49399fcde078bb4e8b7541a3871ddb2ecedc102149412bbffbae2daa3303643f38cb9e68606051d77d18f405c6d24180649af66fd6196caba5a3dd229eb70dc4f9c3a2eb757f00df22fc945487b9cefe6d66107714406a2c964cee68c4e87956b5f81636a419e6d72b2227f18cc02e65d8fb180a3eca4ae7f8172e72756fef2a59eb8f5e5727db3bbe1953878afe2553c16436b14214d21cf019c95837c986428e4e1732f9de683aa325f3bdbe51dca959395c35e49cba69d750eb3d7743289c6d7f0eb9c62765e6d36e0efd873848600d5700085ec8a6bba01a5619707e18d8ccf2c3625650b6d0e206a12382cb5beda4ac2345ed9bb2e06cc9763018e4e2957180da444b3df84b383d532379bdf9150724bbfc5b56aef5d67de794b47025b6ad8b702090db4c9f949a982c159791e0b79df8420318ee63c37b87c863acb0ca50c0e5315521b54ac9f5d5d15a3998fa249e07fe3aae7683fb869ea7d054c59ca1c9ad9faf27f774ecaa3bc5fc5c24bfe306a64a2fa554eb992aa962b6b85608559b2aa6347d29de1c230cfa5fa7dd86ead3060bfd4aa060ae2978a1a3647d5ea53614603dacaacacf0e9c2a7498d961a5e30204b7538a79c8560683c0d4c933292c2ed2b9a2f48ba5850fa01cc6f9933fec56fd7139f72f370405032572b1b0cb83cd29463f2a459bbdc17214124581253538ff0d6bc13122dcad01fb7a2aa1fabe20b1207504357a9a3cbce137e8cab070670c0f048662d2a096abfb641fcb96984958c9d06c8258d77ecc99cdc7f654b4aa8aec9941bbf798728923afc5d23c77cd3ba8cfc9ee217018b64b7cf4f29d3b9315d42e20e844dc6b152c033781e0bec53378beff42196230e137ec690c71a910d5d41ac5bc5457196e3a7bf7c167bf622bd4a3aeb78bb55c8b3955d78cceb77ec2d0f0c7b6d1650473ca9017de5aefc3944e650939fed5918048d7ae7edcab006fa507dc6a4d520be9d770530f3d1a8e764f1682500d9e09867e1d0c3031f1eaa4893908cb2ce248f8b5d660b752e4519fe3ef4775450b137145d2ee7225f90bce728ef44a5e89082ea668d85fe7ed73c45a05e636b65ee3b34a0bda9637366bde0cc76eb00e23877de97313299669dac754766d306be9f216c00e37b6d89dfb0f0a63a6b5862aeb37ac73e1f3a869984a4a63913d323e7737ff13a46a3f89282a8f953bafaccf272b7a9ae44a992a1981da6f0558c3ffa5851c11d54ec7a108a0e91f8bc447feeec8905d51718c06b2b5e069c73b22cc35edd411fcc822c9f138ec27b730a4d0659b6c89363102fba2bb8f187addb32ab6b7c7e90d2839777b571d8a13c0a1291bf738a2468ad67c007df78de27b7d21998c1699b060e9d536fd07ee52d2903cccdf4846b6856fc8edfa1c7fd89067b7e168a3b8ca7443e50921bff53873f3b1c4403c1beb2a8b2bc080b60096b795ce0042f08642226b3a1d360d648adcb731fed8d62502db827240a452564c331f7cabe8a3a1173974dc9ea13bd5acd17f28633f60b9841d227db25756f13ee25e4d7e96dc9f722c25c1de7e68c505d37e07d916079b6a5c9255d2cbef376b347c026985d54793606dd91f69555ac05f408b10a72b983a195a7ffdc13fa3419caac046e86361dbee6530ad7abf0d211a6441557003c57a000b194d6085dbb34aa44b90f2ecff9f72eafd4f25885fa88a2518bdeb8187d21d4602ddbf3f7aec7a32e36ef29fb3c4eb828aa5745e4834208e2f11611b727ffa0eff2384a965eb36afdcff52b90c74ca0932fe0c39ca8388a481230e3fd7ce7b74609a7df9c4d2ec4c9ba85f2ae27ec212c535a8bc16fe1c64bb481b3e9f281271486073c180bf1d29acc50bc0253b586eb66642d59697253f017d66256d57429e228835fa9fd3cb2676e70fd550b449daf64db09041f7ea2bf24d1efc659950a079758ae04de7da383d382eeaec7cede08d40beb6ac318c23d87927305c6f7d693cbeeb0fced1617bdad3de7489cc8120f3bae89856abaf016ed94fa4f2a4cdb2ef5a5f5a2540c08ff555716e6b9d9551b22e74b13c5b7dd9b8a224de1725707212cb07b40a38dda173f7303ccc0e4e670a2e15dbff4616af14b0e969cd32715d0d9b6e6060d7a068ffbd4c55bcd47e2a84586948060794b6254de41293e2b287027c24d11b48868566e77301210ec9304ee43f2fb4061710bb72028a694780eb57147d22f0482e1dc2ca23f3317710d645de9b507d92371e9a2168310b9175c108c87afc14858cc262f6053800b11eedfba1c3582168b03b2729abfc28490c1a79984fd363fcde1aba7450b4d9aeaf5762b4e0d12190d593a061d2f0e568ee7a71719b73a2a835c490e14945027dbf21c26412c416827b25144f44050f051668f3de077bab8129baae674e5791bdde719f9f841bf1e1940dd553f1e670035610494b0139e1d25aeb31ddb03d22cb5a3563431de5b14156da0f731ab3aa7a340c17cf45aa2a44e5e1a173f89485c86766e2ef836884a71358ab184453796f7d858b62c59fe09f03a7fef82cdb84dd1f31f4cc907ffdae2c088cb3574484b7cf8b867f1055899dd95db9f32908bceb6611b33f945e87b63f6382ad31060340ddd492dc6a4f0432709af2bb5ced571cc21b63f15d3a9f4000c69b0bc760190964b149c78f97a039ab137cd21e4d2f33e845f9d97d0750ccd7b8b9ba8fb743ef53ac156c43f4a71e9f7d0e66f60dfba4b42ab68822b8fd95e0d09e97012e9c9abddd060a77c6a7051babf89c800c401dfeca4a87dd95379b0a886c044a3fe226d58dab01c1fbf5c8b124f0d63831ca4a3d3b404faba008de844a7a06ea7ba2ddbeca1048f00f3c9e7aaa8b9fa98caad3e2d4b2d961c4be25b3232a226c06292681c2fe620a79120ac7f19610ccf7dc664cea4cbe93820e9f4f4191b01989e3ec7c81f600331a43ea2d4c51ceffb69a738f584d53e3279f117ca488441d6214df6b68de5df956605b3fe8b61f8271324dc7f5577673d746549cfa29b03509af16028a2b9fd5027e92abc67940741c5fd3c8d086428a49cf7de57fe076646d8d5c16ea9c841002af1cb85b985a9c7738785c6123e447f63ec2ea43477598b27c85fdd4046409b0def03763cdd269842659a069e0b681dfa8cc49992217ec45db401db189510396bde09fa8685f853ce621bf4518ee61ddbd145fda3217c04c19a03096e30c4e8cf992d15c59f0a42d5cf123fca9733d762c1532a341d7744328f645b60ef7862b1797dcdb89dcf5671cc1c79e5b1af436ae83052703b91177ba120b1243cb4babb5e066dc7c050fbd325a5ab56c8ec11ebfeaf518145e5d85cc86d564d6f0878838bc2a4f0149351ab240fc2c0829a9ca3d41da767aae0024a8edc3c9c41fea1474d709e0eb814f209fbf0848c4f9aedd629c3a9412c9e564b9b986f2c788954a9d1243844ad43eea306b719da9958241e9950ecc300675fb0301daed18622d16c7e301ce0fbc57c8236317537f5e7b390afc7206c4d939193d9d86c618478f0ea91206b1279dab7db48e282d6bd35dcc69921d2f10716f253cbb1b1d48bdea7e4bfc08d82aca07fb582306f77499e594ff7f72b6bba2ecee2150518fa94a969bc8302088bbf7bf8d9b8f5195a549de2a82679102441905aec184e30e58209c554d63da98c02a360f5e65294c034d127cbcf8be890bf7839ff060398dd9bcb10a9f0a12b4fa2e665703283aa0a99a99f9066a4d2582b97b4042d023ff848be6f069552a8e6a2375589784b4b6f7de5bee2da5945206670fe60e850eaf5948490bd121773d0f7c43ee6aaaa61c79e052ac9a3ef9241744e9e7b99894a985a2924f64c50d630ba9d30ce0f012d913042189055c5cd14cc20eeb9649e0902b323d44a91e6298bfdcbe68aea8a4c30ba3c30b438738a54d9a2be2a6cc16a5147f5329b385b367cf2249164bdc40fd94a5121a90c247a7cba4e0f04aa9dc11cec81770c8011da9f437e6be53a2cda43a5543cf89144e9820054d30c2143040c40238d082100930500405ade4f5d25c1157c415ad3c7e3b2ccf992bb791a3129c1041139d2c8a760cc28e4eb260b2a378828a7db363144f1cd95d07739a4d75b680d409b60089136c79ea5d27bd54eaaa1cf66cd5e7b7a37a27bf1bb274791c259a61d8dcb3691e32370c2d392069a4b2d8a9e75055069fcaac96fc92c39efdf2f8edb09e334d39549a4cb6c2e4b84d3037c1483965a779f5c3914ff36752708c7731eb0247273600da2107c401054598912d4a8455dd198936f335037f650ec964cd771cd06ca93ecf19992d18189fe796e09070494aa552ea1546ae139c2d0ee8aa9cc50e873c9539235c295b1d4a7ae96382f539546a2ec904a7d51c92096a1791212407a40df44434b5dc12139ccfbc804d0f6910101502ea805eb9246595f539b324aba4a1dcd69ee62a69f89820a5b72f25afe7d0578e71eb771d2d494984b64ba597749784ed7e26f8f970b77c1213a4af559e667b972cebe7e2f27256ee7e2698048eb8ed5f722ac6e32e325b40e89322d367b6802879bdf399e08c30fad2dbccc31899155dad629856e16bc73c9382635efbafdf0d9a679a1cbe36cd4a64d1bc4ef392a6f90ccd651ea98be656e7385934a7f9146d68684ef3ba05d1e495cfe4304626af7248a9b0e763e4a2907ee5cfe10e1bf59895c7efc6dc5cd104bb8043ae087553c6051cb793233491489c341165cfea440b271bb6a3132d7eb6132c9e38c1c20a7a289860020a269240310328b7088a1964b1e5c4024a1442b0220a213861c92d97a68c0b585e2813947f6d79979bde75df8d96b3bc8b5fad9994fb80d736bd966e3f1c2d6771c151d2e16b97fe72540ee546a91edaa41ed638bd1eaeb81ec2803d9469c13cc4380f6fe92bc7c930394e1026b3e95d3036fd2b539b4daf4a5d7e37e686a1a90e4b218d12d22decf952f8daf62e39a4375d66202d67f9fd765674c4540779ed16fdf9407fa3b0bcc5ea6f670b4fdbf41cfada2c8fbb8545df28a67c89eaceb6c005d953d62127e48a2e947abbabdeb1c32315dc941db518ba000cbab8811625b0c04c0fa2d4e0045fc0010772c0055117357141252e48525389c66895af5b1dab42bc3de46e25afcb4fba9e33bb178da100d3c77dd2b7a367d31c54f39820f8ca524742013f71b9729c2cd9f9702a0fa9167078892e94d90ae916b3d5c56c855cd09e2d395bb355345b21c7245671d04d845cd00e9aadfa1d2e8e4456dce10209a59f0f74d3cf0f08d75fbf44d4e5d22920a28e4fd48248c7871650ac00892db810039d195274a28e8b2ba2ae97a6a88f87c6b8c0503061c58e5030f144cc8e50c4a08b4d634888307a25aecfaf47fce2a5e4f59cd9b9f24bc7c90ae9902b4b9d4963139c5be0ef18c513455b45873249ec672f210b389448688cc69060016bffbed8955de0f8e5a05ec0380f09e2cb3fa6809325df848ad850142aa50ba218c404e5e592094a1a93445266ab9e66b1c56c511d87a2fc98a03c062728e39dc492188a4e62459e6441a3501060f90ec90d534e810b242a98864a85cb9e93b5355df1b6d53de9b66ddba6c3abbd67d4d24aa93c8851965ae1236d9bc71a6e7b9c41c6e37376e0f121c48f218ca0aeeef1d247fee8c7cb2312895c2283a41075991e673c5e522163724812bd3cba3c5e165117eaf1d387ba5a1e3f7f26d03c32916c3187d363144cf0d9318a274cec90b4e723d18e512c61059b1461f5d96d1e89e8417ae91bb57cc50711d459e6a641e32e2d3350a6192698fa971694fd57e249a9745ecc639e635637bfd1475ce6662573a3b5100a23e65dbd4a8cd32c445e08113d48c7a717428412ee427c10a1f9ca49f741043c4b16224f83c6b5b3b2107a2284f448f550d15cf5a853f31ea91e304ec369d047e8dc1c88a843c33bf9f1d45c7e3c37973c34680c906c9e8b64d7c0d5399d464e6997f11e9d8eaa0ee39dfc7ad05c75ea033c8cc7cfc78a0f96c3d0299a3373a62aa7e8f17b74b4cc33c3bb195975538621754ca88fc6bf1939d5c374d555fa88969b74ca549a1ecc08e6dd8cbcd2a91e33befa4a1f11f3193ad5438586ab98b28c4ef5307dc667e8237e934ef5e86ebaa99bc952277e3b4abcaff28c9b6672cdb3ce264b1d13b8d1f85693533d4eb7b98d3e82e6279dea818fa0c14609f7f1d8d0b8bfa7211369e2e6344ea402a6cff80d0d5d01d36462cbcfd03ea4931ebf9db96482d2749b5c334396915f9425cf02f30e94254f9367b20fca9297c9abfc2346963ae72c8f4824720965c9c364194459f230b214a22c7955964de45fe45db2944259f2a82c8b284bbe254f9ff94359f22b7902e99b53b674d24b5a0ed5a77a90ae72d255b4f449d1a77a6890b2e4497a22a12cab79465a52f1fdfed33256358fa787e87edf6923389dea71377de565f4649324842eae687c8872657a32d14f98f674b26784e9441b44d67cb8ddce3b2715333687708a7083263e486890a4313a5483ea50156af243448ba28e9c41545424f54805aa3fd5e7f7891138c1e20b299250031e8e70030cc48e30450761989f4293fe60f919a471005f1dcea04a649bd0493c75ddd1d11829bd41b72c6d2f51cbe8e2b668332fb595d2d62dbaa494534e399564373070620324ff8a66cf993d65f6bcdc750c5becfa3805197c76d543e6a6968bd2ebaa10afe36cd699d555cbecabc628b9435c4ffbb49259720bfe5ca1b68c30b980193021850f7cc6b082245530b18514a87002293f23c88e2768ad46e913decfe40d75f5ec80035e90c106526ee004078874f083256421034170c2073ae2046bddd20a38fcbea12e1fa090e2470928a67001500d3080010c64c00325c0a0013ba555f21dcf7083257c92e4808b3074010b5808420a5c5002288c6071ba6fa88b015a000215946ca148144f74e65fd415ada085221829fa819317c44067fe6050373b2674db1698eef87d9f730b3c4fbf9def1136ca01002320d8dc679ea41da3e040d14ec96ba4edddceab592ff3b44ee21a13dcd92ebf1d252cefeaf7bdbea66682f4d32191fd9dd26d81e841419005bc4002299a58021474e2647db7f9cba1b5ef9e436d106febd764d17b2c9736b46db36d5f23ac744bb7bdb5971176bafd8c30d3ad0e83785eb6916b68813d4abf7c2368ed77fa957c32e5196dec4bb9461b7b958cb33d69db8ff2b6f3fbfc72dcfd75355e36662bc6dd699e67edad7da73d7a6f6fe1906d4fb76b81dcdbfbed74bb8ff7f4dbd1b3effdd5274b95b0bc63d1b45b20dab55b5d33417a151460edda35a93d87a655fa668254ee9ad9a21dc0192ed284bc066e9a5b12bab8c2b3153b19e71cc5084a7cf950b5e3d44a6a8caf533ac19ba36f790d08cf568dd9aade4bce1aafd9ba71ea186de2ef1458109ac2175638820974e451d4650383292e5082a2128ca10b1d2949d009c11171d0fdb8b2b64ab967de262bfe5e8c51f16ed1463e66ba63a431d22dbae4b6a9c41be61ba229107d31596df6c53e2610499c4c7f41924611653141ba3e2f24cbce2089f3359134a607f479215d1e093ef9c466a2893dff35913ed84c360db60442154c44d8cce885c8d7c7af660ea4c78333879feb90f0a327c5138107e445d994c0c3559be9d112a32524ce28c86a3e16d0c228c8fb6cb8c9e14559f3239a55fbcae146e258bde3958374f5e87a784776481c8f05d10b810bb607146d2aa534866df6254a3449020ebda13d2d50f725b91b0938ccbea0a1264c966cd7d784b2e6fdf7116520b6be08cbdec40b11dcf628888e463388e0d451424cf32155cd47d340d5a3204943d38074491ad01924715ea3a07b892929862d8de17a0f28c2262799c02c3f4e86302801091740018808496881148610822b848a20a1332f632b99978df591e12b5a928f80bd2d26084a9b19a75a6b666d66b3ccdacc5a9927134cdf99be22cdc72bf2a27857f0c4e049d91e195c8c00146db497c4d14010693ce1678b60cf87b021a2f4b1adfe51044cc2ff6256e0b9a5f6133f20a28ee6438980e5e4992f204004a58684c440747d4511f6753b94496c52ca2418d55581ef9e409b0e41fba1ae26c2b975384d80d89ae7d922da685fd137e52b4356fa766e10ec29a5d45a9bddccb6ea63b1d84c62c7d000879e151e508c56c48be26d913f202f34a1aecfc88c51d7e74389a8cbeb62b23e29f35ba2c9fe7e422f0ad1637e10cc59449b2c0b590339834c8b8c0a7249b685dc413644050e359f255cd80795049565c94410757d5f44d60c62eb23430497cc1c4a4dc41c3cb14748ecf9962553e0306b0288a8a3425df824574c1261d2137a22da8c8e449814f8bb7c7863684bbea0961d7a4057e06c871ed0b495d6ed340aac3df4869494ce95bea04e5327f80ba2ae0c0a9195e45b1261dc23d8c520e660fac4228249b422d1c6a4b50c44d6bce681930e332bec79edbbe1ed4d6b3e50e0d063b2bd7ba8090187415e5b7ba7bd214d336088ba3c2be6d0f4ac98ad2d8684d8f2b8f0acf0a2048136992dcd49146f72f58d6d6bda32f1843c2762cbe362d31e933d4fcabc7a26a6b7a4943d152651e4cf91ad42ca9288b29698ad2a6332c6801b191c613678401e100d9620399245f96249d8a317158d748dd7cb23810774b3ec6699f6c4d69068475e1287c703a22eb9c4238174491abcb2efc650b4b922da64d709d990e92a5e94ffa0f7626c42a14abf0a08622d632f296576332f8ae745f1342b9a38992d3b5b14d47cbed86c659e0e5f373804b5a67fe04c4e5babad75861acd6706cde70aec693e1136dab409c672b6ec0db28bc99a120a131a933db39849f67c664b520a1066abc88e3c1261f576b66adcd072bd7080e17c3bbe6f28da3c99e024bd23e52674683bfb7da825916364ddc76fd339ee25e578ed9b1266979e11f92493d9657620f2f6f5dac37a191b02522f5ff5bc1763cd27b25e87267873dc5f4c0e49adbd23a3afc8039aa09443310f68bff6f401c63b42016568773b46f1011eecef5b426cc925c49e441b19abb6b632bb840656f3c86c88b226a59447e27cb1188b52c8f023c2e615b8db61bc02a76e685b7edbdf0e63941f1136925af3e90136126141a2cd0862cb01119cf780b6e6134995d24ae948f391b452299744e95e2492c4d4daa118294f9dd68c5dc4933edacf0f0e639421ca836a2b494e99ada2d9a273ce496bf0a806b0ac9908ea854f0e32c1eb61b1e7b3a1087e31ce86cfbe0b38d4964cae891394664142b50689b049e9b793d11d6443747fb17985d8faca10c1f96c288bb2b32dbe29d1e62bd2018ea2031c664345dbe519f180728085d422ea0a3259f32bfa115d9669232d4f247677b376efdd0fe0bdd3a9ed00df539be6d19d23427af7ed234d6474ceea907b3b105107f3e0df9c5d9c71cebe5d9eee40449d4e1fd1c4f623ea3b4e1f316fd6363e8f7aac23e5411f29cb6ef9ecd9a6b5ac75a39c65ff72d6c4c3949559211b1494faa1be3b0f7a2e7bc769dad54a3c2dcb9e79d93b8bc422a9a7b74d3a1174b100987e5a51ada875555b9d101c534848074c74208405c901f923392093c04217573310da363b42210311f8d4b0a3132310615fa2d912226408de25d4b34ee65b4590e649fc638241368061c0fefa4b13791df61e1eaee31cc7f51e9d10b5259e81652200b88daf56a7190d095cb422a1e082224f104131050b1da480a206514821032410413dcdb5664a55573d6756960e7b36ebf5dba9b7b6c74aabca71d37a55adb556954aa552edb09ec1d0d23b1fd3a70b6da1a6c3bc33e5cec764baa5c758a22fdd7e3ba5cf9b1e960ea3b9a252ee7cea2ee96e42e98cd8a64b0923e54d261893a4a5db4c81240d9a7d3b524f221a821cb791142542db29fb52a6b73945737d2aabfe9259efa40793b9a2ce67822c8ef57929a55c6dd659409bb5a3132da0ecae9b9efc70b09ed2a18d9d8ad154ea2e8fa9b7a4503b75ebd2f2e2f2d8f2f24e7e2693c9e290b7a5922d6598120ccd4d1904ad95301646ca542ac3b8f88506b4b15187817a659cbb32ac7e6302bbe9863d3b55258dfa2a69541d9a4a3a1cb24ba6db4e7aa994e686b898fc76ac94024ebdf46468b6e6953872d7d44bef52991be2625ae054ea0ed961bdf5ea4b97df8dcac582783ba5b9a12cf02bc36aa9a43757cee138a75f0f1c0e3bfd78b88ea389784fe8b84e3f1eafc334110090600848e7f51c3aad573f1c2ea71b2cbb4c2fa54ca554f6052ed96fc7bec3c9afc3b2ebf2e3c1f4d48dba5f9e4abd67a75aa6bca43a9f16cd15c9cf1d7245f4c90469ac470e773d7e3d70f84b1391523c2105443aafc78f07ec2e4d24e5031dd8e3c703e74424145500c3900e4e1538e48a6249d3a12748c0f576d7aec804c740b4b9a2ab54af34e6041c7231e9339fc3613e7038ce5d19f6f81de0751c4d648641c98fce0b965dafa5e74cb9a38dad3387a1b1b06ed7ea38e41c72f7ca01878ca22caea82bb2270eb7a0aab9291b93d9a2b1586c094ee8e049121a94c10863e8b1011225e842c91160a085145ca80e4f3bf5cc0bf0591970ea7582a9c7a40e93532f87b9dc2b39f5f295b3ded16cd27e7048631d8d0e875890067c273f93a925460cd35b3f266ac4547a17752a47e9f6384a3a4eb0742b65a9e5f1932d2628dbf41caaca1c9309a6a6cc161734c1f99285e460e9d457be03f31c9a8a9b2687572646e6809e335d7218e4c4050915019aadb845e91e6e5d208143aec89ee79298ad5c64b6543ecffdd0c78436b8e31431a09d842536cd8e5320a18b28db65c7299660c5eea86797d42414c9dc52cb2d757561b9bd0cebd6970f5d7e43ee92cc8b49f59687e0611ea32bc57a11bd96d1e165e9106ff9727953eaac9bde92e3044d61cbe5b9226a7a8c22d3638a4ca9dbd368951e62b70a26abb800837ac8dcaa872c2c7b98cf0f0790faba551a88498772a7ae1a62b7e9546b98872e7ac8dca6c3e87042b13ba58198ae326920f576ab6c8b1e32f7cbe9e783ddd5a4436a64cbe7cc52e62eb38a364217fb3b4e518422469c6c233b56652d5553ad3594bbea1c6a32a964d5e34781244ee9951a299d7297269c504a3a94f6f3a1dbb22473fd2492b5cad75f27614ffd76aa29739a6695ea2aa7402a95ca55afdf8e4a474c9d6c9577f1f3a1dba61cca6da2ef76d5340492067de9d74d3a44b92e63b0188fd1e175691acaa2394c90cc6d06ff1c3707040404deea70b539a0d7cb97588ff4b4ad49cbe4482307441313e3f3c391facb9fe5e6804a5aea54643d860eafcb63348dee68ccdebad8b7fc256bdf0df0f67fc9a9035d964bcb55fe3cb7cdfa1c2b8332d771ab9c8640e2c4ad726a646b1ac072cb78323a8076dc3259ee2dd7ad72895932e7cedd85c670f94bcc635afe8334cff6a55b2b4393e530882dadb4d24aab53aa977498f221754b77109b3e75169853950fa55b1f5237ddde2b65d52995ce91d2261d277818ddd2a262b3e9d2b6c8f8f9d072a981b4dca481d0ac56bb45d35c3f833234312e671d04592e7f79fc7870f9cb5d5e5e5eb4179797b3aebdb05e6462bce81867cd189739864bc762b15e3f1a69c05ec75cea540e99d3cbb8b89cb38f9f0f32e72e3f1e5cce7159e61c7797940e7b76eaa61cae82d8a5fa4d55aa9717ad52e910a57a78da2f6f8181d1aa5c6160685ebaeaaf0c9ab27e290cb2daf6e053b9881c9f0e9973e774e8725bf2a134f70dab4b3587ab1cf4263d77cd21f8d3dc31e654af2618f39c59d2405c2ef3981c823ac86abb68eefa3974947118a9d8fa2c390c62ebab7c3b2c151d7190d52e42e658d932df3227739bb9a1697a4864531ddaeb773a03b896e461b42abc3182a56fd37326e7335b261d12d9b2a4b72932b95e6aae825b9b5be639938bcd96fe3cf7244ed5d68ff3b4b5b7f5eb7471459435af77b48e58026daea83e5ced1a06b1e9a7aa033a753f61e753f536658245662b46ce6747263fdca66c5366abd3db1613f4992d9256f2da86b6a12dca36b435a1aeb884295c80041ee842078cf840a726033e08c312562839820a74e6b7a04d482b82e55e7d66af5e059277f1cbb1ba9eb26b769ca28ad82642125534a95ecc8bca0bf010ba4308f4d0bc3cc6598fb3055e06887ce9a6972eb3a9a33aaab5a9cb5cd271974e81a434113962905dfa0dd5538f9bfaa0d241367d8ac82e3d4c5de55d24c0eab20aa02d0f56e133c510a44c410594ae935f0ed5a9e9a54b08c86db275ef1c71823752cf91d2f2aa1ca63e73fbed78b9e9f6db41ee979774fddf69f6eb416e697afc7a90fb25b43769151760abffc7cf87974b0de4e5260d04bc0c72b23ac869d3bc829fb94c0eeb669d7e3a56a0ae13a4d177b9d4610c1d27c87a9d208bf2407528e3c743cb61de92c30a6c18fa0df3ee7a32c3d8572176e9f7e3816e18f9f15087d0dda2c32336cc5d7e3f1ee686b9e481de0eb14b3a74f910ba611e521da3c39e0da363ee42bf1c73c75ce6184d5f5f67ebe555879d4bae97d8e535abb8000fa1f55c1e22b71c52b77c119cd22177cb3578a9533956a75f9dea90db2f405eaeb9ddf2f8f9b0bafecb7524c0eafa5d0c02c7298640b4f55f6ed261cf36bd94c3d32edde630c8b6f5a91c2758e9ebaabbab0e59b74fa534cc4bcfa1a53c739b55ceca6190d36e39cc4db908b95b76cbe5a76375fdf8e568b9d6e1cb5b4a7297ac0f4144d24d2d3a872f6f79d792c3b9552a1dcaad3aeb35db9b42b95b4e7378fa72985eba8d78b78430efceca405e9e1fbf1c74a7de92e7eee697234e10bc6982e0e597836af0ab0dbe935e4b4e3d7e3ecc9dd2405ebe027308a3839cf68bd69f790ee532d621b8674ecae16bcf5c258741f6ccbd6fc745472c7df675c4414ebb08b957cf993956f6ea5fe69e6817c839943b9f666e28bfcebc9bc95c0c03384cd59f1dca0a64847641a7f8845cecc973a6d42c808be6cea79d73cf9e199a2db96766666674c4b46e79da555361539dd291da8a6c49a4b62345d40d244e704bb257756b17c0f48966011c5ea2b8499da9e84ed97cb622db11274fe862c7273b3a79021250470652fa2ca574d8cbe3b0251d521897b466d46d46e91b1a9ba818a933691c7193485d4aa7488f2b1c37e2629c1165d841931f40a108576002028800031f142dc104a22d44cd070fb1eb1758fe08003ce5039deaf37b75782f91ac34c0a91b75d34bc93da1b109d22219606e888b4db0c600d3cb1d725f0efac5942d4799173446639428862a031edde69076c171a7dc019089c829f8a00642af57206ab1022596d079e926b82852f6e4b82c6268e69e4c3028625183287e908213749103104c60065720920107a21c294319a28b2be2c4107164c810613311f6ce48e781db6560d76cba8a2d21a69adb105b33624bc7568e2d1ab175d3a2e1f4aad8aae1f48fad1a36a7a794280ba2d8933a650a9edf8e9ea12036a05c29f3b768fe12dd282b2c0f6d7864c0a8c37848631116e3738a5aa44919e817360da25ce0c83ca457d8330f6916f6a45bec79a35c2229a4747b531662fa0cef64bedf5bdaa75d1221bf10625fba29cb489952a62cf0905bca43f02ebd9b9a29cbb0ee20debeef29f2640524788111788083c84510ac90820440464802c5e7d36e32e94b74a16081c34b643a7dce0cbd4df5103845833823df0e0c4d5199660ea8885b04de2da67b6a71409c91530bc51dc9b8231c1007c419292a2a2a2a2acaf42926e6ab4f57d59174952b8d8979fc7662f0e9dfb7d3baccdd0e6272c3a94432bf9d940e89ec54a569798161dde5f478ba5e2ad46d8481a7cf244ee9ab9b7258b7498806552634465d5c0ce6e5e52d343a8cd9218d81f946e14a41d29867e50be546c9978bd1161dc6bce81885d1148656e9db45b4211a83cadc414262c01289e6824c195fe6f07e61c8dc94d22021fcd1b773c3b9d2b639269c9168b3fa76ea57b96e5b6d2be62465ad354828b2e26e42c50d993332c12313c4ba08ab3ce4805c55270a4d30688245340828b2a216b4a085959cd2a1f5e366c9291d393fee2ed66ca01b7674620412641b871e16292e7df4ed704cea676595d65a53959c50497341419432a134888b255c0499b810e2a2494792598bf18eda4fd6951c59341138e475d02d5db1aae9939a4da988ac18bb439828b2e2dee1028c5a0d932d88ba38a02d68e38038a0961839ee676e879c92b891704780a88b0b6af9789c0ba22e7a5b74d8124326cb48837e26d3dbc8a25759e11bda310e507d5cf40915a2415c10c7847b62b69ccc56b845d99313e29acc5678a998ad70db02a889708b12450b312d0c552d1069210aed64e4b83b8a44efe8a408a6cb1af911acb7218311ac9751f3193211447c7c768d5e45b0be86ac8a603d0d1915c1fa9b7c8a603d8d8c23589fb317c17a9d6f04eb67e41ac17a9bfadd00b7acc971cf90e3a6df8d958c1b57a14ed8bb51b7d44410d9f4f3e7435b250c36680752b6d081107c214acf0b9060e2450ab480e40b0bd4136560c02157c459bb3bf9110101b953ef41923295714493a55b00dac291d216906c6149a7e4257f220c36e46620466f770c820da8d8af1c75ba38834b2f0294226441ef167bbef4d2b9d2e32e5dfb76f4ec52d4a1a597b48d9d17179b2dab2f94093e992da995bc5e9a2b222a824f0da89c7454839c5801854d631186047a3dfbe1f86ecc5de9434ab445ac0b38a435e84a01f65e6b2dc7d99cd9bab7dfb13b582bed75883099f109db7cbd3bafdc61adb5f2d6dab0f63ec4d9f6af08bbb7979f4b6856da5f6badd56eadb5d45a7bcdf2b0f6d65a6bb35b7bfb686f1f57560321118d4ad0c5554822dada259e1f8e6ddf4ee2ae8b48c0593ccf6c6d5dcbbb762ecac78325427eb1f15736cb8e9f0e77d85f8ce9b89b8b39e8c6a71beb50023c3c220c5f233da47b44fae8f2bbe16d0e679b45b4d19e69b17527e5d08e7268771863415e5bd6d072f8daf1528910dcdde515f8eeb96dd64589b94f2e7221c01dc7d5186fbc5209fc851c11d16c41992e1e3c2cc83c99a16ced9c8d42a4d1699bc504b5779a37bf9deedd9679441bed32fb884dd8da0b1069689a474855a272156de7ec441ced3922ce8e1d226c33426cc23d8c536ced3a4418874fd85eef4ec9eda8315bdcb5e310718ab800883839d2466cb2c31a5bc3d9da5f5fdd66946a09ccfd44d850846dd7280928da689f2dc02147b4b56f99c6a28dc6c36382dab7ec43e21820d2d0ae1d0b216ccdfa441bedf3e06cdd6baf992e9bc56469d7aeb64313d4cec40e6ded71a5692024226ee2245deca2ca88034defe20cb6bfb91ed75d1e455ab9fc554e975f955097075b5e2e5fe3f22177c35cfe66b6841021bfd8303ee4ee984b190f712ccbe5a7c4d9e1f2bb6ce1cb9f666b7479d56c995211a69aa13573791d668be63c9797c721e2c8a8cff2dd3436ce4a08702f2b01e23f00d1fdf0c33bef1b91b04ac9f4c30f39ea10200391735c250fe0a6ace3a4bce3a3ccc36d8ee95676fc34801cef7ac897b2b2f3b043c70072acc00d33f23c92e761cf53f1bc92e7993cefe4792b9ed7d1ed65253d3c95bd8ca3cdfc0cf94493553268c4c0e821f7f08e54329d56586ca4c1f690a38e4ab64be0593d9b67ec8e642db656c5da92b5266b4fd6ae58cb62adf56cb6d95de6d95cb3438e91463823ce318e541e639c61a7b2ce67320e1c8791057097acc35bf2ce47f9868cbda38300de994e2b2c2d2897971b3b3a0840679b4e2b2c2d28979754c6f94ccec9398c6ce32e19006fc9397c9403c082e500001bef4e01c80100367060a715961694cb4b8af352b9c667320e381c46bee12eb9f596ecfa28bf401b5cad1bdeadb0b4a05c5e522a4ffb06f072b56ea861c34a0bcae525a582d179a96cf3995c8316724f44057c760d879167dc25d3784bbef928d3701934bb84ca4a7e409d1e6e52d2c371cd0f7fb9a131e35d8b0c192819325c64c8789121232543864a860c183264c0c890e1fd907bc81d0d39c61b1a33b24d8d4905b74ccf25653d55e6c180b17686cfa0d271829de7d93c23c35ec63b94f45ca897aa9eca7a30320f46f3626866f40449d9a48271d37d9ecd32dbcb7786ec33393b8d8ec945dc2d0307879dbd1b7936af76478a9152c1808979d6d82b6595a3f24993f41ea9dcdef4ee4565f5628fdfa1462edf8e9e3d92db94a5cd9d8ae7655449afb80e06f55ebd6c3d9d7931562e7769d12ef6df3bd4b7f3e988b9976f47cfc7e9aee4e10cdecbac7319bccddfe0bb4eb2eef2edb074c4a00a7c37c1dbcbcd02eda7eb046d86a14aed978d3376d9a895cc0c0dc892a179337c3b50dbc5b3b965772f9ecd2c36afecd3ee607834f92d31ae9257e7b2cc634c7b26e7fc70530fc759c90f3a52164f761f32253de848595e16623fe4eebf93f96975548cbfe8fc4e26c7b88aa1738e133c8d70dbd9b6fa461b968c196a6c66d0b881f1624a1d07938bb8dbc525d74c307b29af4819a5f219a6576353bd19d6a391793734a460dca85e3b7baac6cedec578289519acadb1d6c6da19d6d2b0f6c65a1aacadc1da7ba81c6b3ccfc6f366781e0dcfbbf13c1a3caf06cfb3c1f3f0eeb2673329da6435202ac7ed8d625e81352d75670f57d2a331bd1bead150bd1aac6743e6d5b8a1a5b472a9d9d95bc0956fe3ece18ec6cdf468a05e0dd5b3c17a3532ef869629461b53b627c02befe46d2f5f5356a172117797dedd488f86e9d5403d1baa57c37a37645ecb5552790bb8b34ec6b3b9db1d0d354ccf86eadd60bd56e6b95ed6bbf7e96ec6b379a3f16cbe1de8d9aced2fd70976ac52b6575c804db72799decdf876483a62530ddf8e9e6d923b7ef27a13cc3ecaa70966592703e7588bb89ba4ef4fb988bb55704b7aaee9bda88743f560d6c3c93c1b9a0700ab721593aab4dad955fece353d1ca807ab1e8ef56c641e00be1d39dc3bfa08eb38c1186d46d96b3c9ba7cd72c60427c8e9fb04cf90c1b2a9a17167c8bee577437b76992ffd7d977d3a3a24f0a0049be6bbe347774c041c91de3d3243d4967a8bd1d9aa73527924f3075dec4872db73ab547b7beee8a20ae8ee8d20cb95f9f8f8f820d189b7f2f6f228299b2c0185179658c2c40818f9b80a631322e871c42d1f431b596a25f539d3091dad94564a9558ab276ad61da3cdfc0eb03c92d5cc6af599d54acac8c8c8959452ae649e336f56f4ab2656f432320fe5571a35412af565643e653ef34e261f1577885a5d85fa8c0cea41f0e28a0d0bfaee6e58db9466d387599355c6cb4fd60c85ba37cb431831413a2b35628818e010046b66ab7e522598c621e841aaf900290a258576b7d65abb6925dc8d4c50025197109108482eb169103c2648690c701837fd0ef43b666b9e0137ba86a05a84d5d308d6d87488ec34d24cd34ab81a09447f4c90be4a249c1242a882093134b1e2074b50872b142cf7c783dc1249934e7af6f34172bf77bffc85e5dd518fb3e5f21290d1f14727bd1be57b52feeebd0bbede097f944dbf391462dfefa4e7ccd11dddd11de9d4007ac2211643a067abe808c4ec911662938e43955b52fe4e27e99088ef225eb6ca49979f0ff8233dfaf77ddf9732e901f46c15adb2047f8f4efa28df9f72a8f2c8c2f23bfa773acaa6cb3b62094723cdf2ab81b0dca481b8a8e42176df937238d243ec66d171822fff5c1e5f42c95f97970e8522bd925656be42faf7eecb2befac77f3cae89f5df9257df46fe5f576e597f411d6615d91df493a4e704573af9c8eb3355bdcbffb7df7f5dfb7fbdd9b41195deed149dafbd4a91cf2a4cb9374c86d0e08776d74eddcb5e7cc90fbe435ed9c8a0e7bb6ca4d19e750888dbf4f8731fb3be927920e63606060c050a952a99717171714aaa585856565e57432994a2515158c49a4d1e8fb3cafeb386edb587478f7f7d357f2dda450db5f849d1eda4d6a79d161b6bfa3ee9263b441e930dba4af901e5b745837e92b67c931daace8b0eeefa7dc3afdfb74583ae51841920ebb789ced4ba37757198de4b5d1351d721f8df227bf01f4c49c391ae950eed1bf93323e2591e626e5b07bf67db443dcdea781747a88dd9cd61e717821762442fbe28b2f88f6909a63654b17795a825229e5a494523a9510b13e280f5e26512995a878a7c4a3e2e36d4285fa2e46d82da2811b9dd17fb00e75cdc7cb8853c4dd522ba1f221ddf1339f26ab1e8f5e8f9a2d5927fd5e9590ae64e5ab09d6531749d79ab2a39cb23a7580efa3f75839e93d46c79aa48f6862e551e761cd5eb12ba31c754eeb4a15a2fe473d4fbd8ffaad5cc6543f78eccf8a94229f54ccc60e3b74e0f1415d30afb1d6daa172d48191a30ecc8bcb8f20010f5e9df37a551f3c138c25011ffbe8ab1112f030f2e830f82f99e492bda3b2e95d965b95facae3cb5539eae41b2d59f5dd68868c2db65918397598bcf2f9ddabae4e713f08413310a3981376bde4e9414cc8761c9188ed38e2e681fc84a456ae7dcb3c458ab4fcf4222c7f7947bdd148c6ae8f4ee09bbaea3e560ee39707e62bf988f9efa97c44ea2b9587b2ea61a87af00e1dea53b989ed2bf908fad1dd3c567ea25ff9d53c4e7fd144e6e82bf9fb29affc259f7ea01f9d07fde89be631ffed2e03e29465b9b59ce2198d5039eab868de4d5ae92a2ed963c92a5fc9f8a74cc2278dfebdfaa0acfa1109e75a546ffa012a7d3d3e3ce004eb6b7d05b0a49fb7443bc6a880a9e7ce150c541a3ba9c39bfa2e62d20632374d6bad5587f3da63b21c06b9b99964b859b97902c69c68b5121d72a8eb26bb6952b3ba59c5980ca20e9647c9c76be58fc962c00bb0d471da21c47c0236da47e05d8b220c009b3e27c234fab25183b28087de077d0efd0e94eab083ce390196f7d408be7f909bad156257ce30fdd58f36946767bfd7b49bebb52037db9e4c802b145d2a879c7155a3dd537bf7c6bfe2094301ef305bf13be277fc4dfc2bfef1608cb52008534c2022cb5d6b6770f61f93256d90fba1b2eca7ae20375b1b82b2b67bb3eb3bcd6654c0da23ab9ecb31b2868855ca8d6f2286d8dff4f6f23f82683ac8cdbc7ec0cd9eda9ba0bc3c288fe55140dbb43a1862f7109be33e3e3e7222410657ea4d108552ad2858a5943e1ab8e2063929328625c430b442a5a4525eb9c46c6520862423228c6645a66b86c89a3841481a1498218e3c62c39ed761b26e1784c4913aa28b4674129fb071e83043508a1dbf451c1d248df928b70e122747d2989ff539124707794387734fd99348c3718a5be090dbde0f8930b9e3b572ebbc6ff4ed2069a75f766981fb7923884c9f08935b1609bf3dbf1b5548da59b4995b35c21de9e2cac250759ff87582b8e603c8cff7c0f39f3e427eca483d9c69255ed4a9b9469d485d3628ea4ca953dc533ce43f9e3f677647e017a5387b741a230935417afa7a90baf2297d0c0ccae525479d54a6919eb2a8ea149ebe9dd5042958812e32faacd3f97bcea5c3e4d363b2e9b90920a24e11d27d8f79fc1ef2de9fe513387e7e35fa00c7479d49cf7974f9753f119d4e719a87347ab663f21130ee1d261fd1040f18f77e84eaf8d1865ef6004721f5dbe34744fda671441ee0f8c8433a1051879411c193baf7318fef43defb28a7ea61dea343caa9fad15355a77ef83e7afd481369a26a1ea5c36822f2de4b27a2d2a9aa5357ff308fcf43defb3ceea28ef5728ae73b1051e72bbde0b853994a64f9ca7366cb5d32cb5179e5389fee65933ddd54e42b7da6d30a8d3a9f0acf298bbe48211c8b8ceebd08e9df414a7bf0ad3a3e9eda969e6d966ca42efa5a77a0d9c12c7ba522c270767614111eca1ee9cdce621689e0f9106309066c9fcdcb08d36e771c852c58b2b287d9d6b6ccf322b13b2abf1dee6a1edd8968f44bf170dee3774fa4befbd53cb87b9ac8c7e594761465659a8e3af3f3d332466277d4d33287c4eeaaa7594fcb7707361661f4f7dc8fc92221baac4fb85925a04c578c1913d3650465dda39ce027986449b2256ccc6e61bbb053f68d126d6ebd422d5262572ef870fa87a993e94a0565ddd19e59c0a1f5b99f44c0f7b6061126f7bd0d8a2e1f91755f837d43bc87a8c0930acaaa48b8c0df0ebf7d68b7439495ddc628ebd21ffa437fbacdbb024ff9cd77930b1cda980fa497d1b9f3c844e0889b6782f739489a08fac50ab07cd5b36882d7a4af9309de671f8e929e4d72b73bcd23656ec72f52716fd10e659110b9437964dfcb2311c6d11fcababf37167171d31fea9291656faf7d489108919bcbf487ba68944b7ff6fd883b8d72b99b7478394e45d32813bc5853291344ed51a65b4cf07e0edd2de2beefecb733aaa3d9041cda1816783e8b7def69fb6482f7dd8d36d709a18d3d42d9db73e6f5e815589efbe68b14dd0dab86cb56b92c75b69ce2a17dfba6896cd7b4e8a2f9a62d91c6962d75d8a2bd864b64c97cd3b2c3ef5b338a44351d294b02894deaa440e864945146196544e9e8d89ce241844826f48525bc47a7931e0562eae4cc0a5029b9b03711df496f36c319a276c4a10fb34f3dabc515859ad9ef046bf02bc5130cefaed935cb2eb510963dc4522f7471756f8dd9efc2df8decd96576fb023c415aafc0f2f1a1105bbbcc619654677788ddb52ad9f0052c80c4070c56b084a08423a72d4fdae5511196a5b67c7994573e54d9d1037788bd1dbf1d1f85a08425b366f4f6f35b9693d6ad694d87f5da67a5daa70ef0bcdc72ca6ab368234fb3166da4bc72e74ce9812e92eeb2e923ce06d32e3fee71b6381dca38f7962b8aa228adf76e6bb59d65d9d634bbefdd36ba39ee769eb78db27db37c334dcb6e96ed96e5ca715e9669d779599e5e96518f66f975df36ca9e9d66b6d259e94802b9b94e747135331bf6ec4929a596526bb39a6531462ab32871e6942d1e09ee64a7291e9874ac79286ba67860ac7b742a0d30ad4cf07c97a5095010a509385bb7b71a07e00465408324f8e88c7245010f74ea0d7078b3a70d14fd48a3523d34911e9d91c694356f036cafedae66a73babc096ba06e11e9d1e9d9d3ddb425017e95367ce216fd65db59caa5a880f3b1cc776ed75db1d3f1ddb35fd90029b4a1d63e669614f985d3bcd4052396c98ca41af5dd3a1ddf43ddbbe676b5f0eaaab0e29a043ee1a6db26bdf8d6b99ee1c9a65d9fb4d8d1ba2ab009135552b2bdfb7c39b3dbd3a03ee618cd51ae0eedcb57c778d7bf10437385f3713ac31c09daefac6cb5163cd664aa34da6293dddd1340d6754cb324b299d95d22cb375ce487d688f37559850c51361180a83167a42e80992104f7078c14417f6eca9c97d270e2f9a54adde1b63a4f246cf9bacba840438b15df6ed08d93c1e1e3e664bfe27c2a210767da501e6baae3681c3ef2c9f2698eaf17d94fdd3372fea4af518fdfba78ff83ed22fcaaae7340f2678a04fe9b040527773fa01a1119b7b6cc2e9940eeedd3b0d24a5a3bb774f03b1efb40e9cde610751ff6521e60df55a7d01228daa796680e91274d07a2fc6a8ef18033f5b74d7dfe4d01d5ebb6e9e2a037cf26a0cf08cbbd3724ff6ed6c97db8638bc109a7bfb93dd7d1e0e2f98ecc72dbfadb5e3d538bc6032c1a8e97077f43c93556d0eebb6f75a6d46abb7498a41f4a46cb9d11cb712d473a669dbf48f790576c9a280e515b8d66f677bad7aeed2a481f6ed6c3f026b46226c4984e97d9f4d9945f67d26e57ab14c4a03a2cdb500136378c1beb10bfb3ed452b0ef63748592751f6a23d8770838b445dd8f68732fa9c0a14794094dd7a559132a05e6824cf03e6ece164558dd9e41213db411d6c00f6b5633548921ba1a1059f74426eb5e32b1efc32c8a0d920e33a21ad9500dd661165b7d3acca8d897ea1fd1a6ee4d1b31418fc823b2532678bf6d974078cb7c2678b52d22da242f0ab501eebc6f44c22aa527d385fabd17c301eeeddd113fd475bfe930c17b237c2869f9bd8c166d84cffd8fd902f7fd10d4b5834512613903519124041b28220416e884f267df487dec4de74cf0dee52f77f9cbc3ef4c882dbdf3b8e74c2bf076df6db954df925f9eca2edfb6d45d3411235243b4fcc8de12756a29479d2dead8a2d902527a84b2ef15d83e96ae6daf3fb2ec21c95e9268735fcade1254f68226ebbe66ef0559c9be4b9e20b1e2d149066403d7d8dbadd9db57d3658b268aba72687857263459f7db696f9711c7238a34ee37296cafb3d5eded77b6f0b76bced50b9ae07da9f398a8fc3e67d3366db3b1f2100cf3de1ea3cbdeaeb2b7d7982e8fe866b6eab76fd1950951d6fdb6b7df082b7dd32ada63c24411f0dca1c704757931caba2a991075e59cb4d0e92b3a8cd9a56c8ba2cd3d572a956a7cd7d94d33711fc618638c31c618638cf1c769267082d98884554aa6d3ca8884554aa6d38ae7d9a20ade0f993f820c1161f6374ed9f7994f8469e73ad2f77ddff77ddff77ddff7715a89c4522a6993dd94c01911ce6e4aa2543295bc233d5ad53a9b47bbb34513bc26c0e1e6b3ef250ee5cfde4e7710c6a15dba04c2a54b253015fbbef33e1c4862d565c51059f7374bb2ef55746cdfecc8be3fe930c64525d321b63abcf7d609ec3d613d26f6f741bb749b3d26d963428ad063c29e65bbb7e402eded6190d3bb9abd25d9435284d043b2afb764b66a6be5268fc96cd9df7bf7dd9c421e11910765bab22732a109decf1d6654d45a6b7d10b3953d43b2afec026749a6ab660251d77d8664b6547e6aadfc3ef331fd3efb992d96df6749cc960d6bd0cc169d5832f656f2297b42d475ba9ed0bef79898ad52902c19f11161dc2e954a1e122f89d5a126816c5164dded960cd1e5fd64429175ab0ebbac07d1658b686c6542fba6df7a046fa6d7d27fccd6b6efa591088bfb7ecb710f99aea8738bec2b93d8f7191470fde9388737b6ad72fcaee69577f1b3d63a815113bc3f4df07e7b47a512f8c704af2ddaf7dba74c5790c9babf8f3fec0e707802ef3d9f18e5749b83bcf68af69698e07dcef48c4cf05e3ec125ed014df0dea4bd1fcfc8beb734c0618cb2ef43ef67dfffa0ae96df0f315bf8f79ecf6ccd7def15d9b66d7b10b355dad9bac035c7ad92c10966deef57608475c7fa5e1561a3df9f668bf4fdbec358c5745a6169d93c9db9ed746f3a94c0f66cb4a07bd5ecf9cfa3e6e39543b878eb3e437780bd918cbdaa3cc0dab353798fa96bf47bd46c6dbf57cd56f7fbcf16f7fbf8f5b03deaecbae33c3a297ff7bccf8f07fee81e7f7e3c48ffee499fb766df7bcfa15ede8ea34ec7719f2d20dc23141f221536b7ba1ac80d3d019e31ea8a8b345175bcf306fa785a81a23d271630bd0c227ff68c98de6a2228ca9ab7cf3411ec040e6b9e52a73a81a57039250cde91e2df5d3969fce68e2e92a41278f36aa53bda833537d7d687f65e97aa8ff5a8da81dbb6e9ec6a997d8d7571469836815ebb76974ae01a8fc487310af80a282e3c8a01b400d006362d41741d36b78f08336d7a578095a06af01d6cfb180f846d6fa6d8d60a126feede7f50564b4221fdf583ba24908c4d2bc4965442043f4dcaa054829c5a88b42f6a6de77d231256d1bc92d4764cd0dad8a0fd1361aabd6d12686fb204dbcae892409165bf6d97228882826d2f9f60b9e5eb04ba176314ea07b794f208a640d60498fe3bcc96e6f2417374fda02cfb91dd68d816876d81842668efe3dedea16d6362505c142d443a81a58c09e15042d9f652bbbd8c325df2898c096d7bbb03bce51223b125ad1041105b12ca046d8409c923d4859fb8b6cb216885988462b9ab749fdbd22def23c2bceef232cb2eb017e26ded6d96bd66b6b467bf89b0fbec97baf0336c8f8aadbf8b01747a6b49d4869e7a5ff546d623e16f870ac7e9edd268b9b942862e76244a27a594d24aa9a534a39452e945175f383681628b4def3cad373720f8a35018c7c9c33cd539e86614b84e508211c78d36f1e3613e95b2da4a077431cabb69e6cd16b5f17d3455e2ca8eaa961d750d7a1c5ed1c6770b806db53759f66100b63d6ab6e8f7224d705dbddaf4b28c7a9abd75bb5cd771f25ac6d1c69ecb5e373d7a4ff7fd0d6f4b6f4e50a250dbe6ee853becec34771186aa99a03d77d5042d8e9b6863ff6863bbc7cffb70a4ba94a773d0dd9dee4e8712d89bb57782b646586a65b368281cdede34eadbe16e5f1361dbed6348b7a6d598a0fd965fd1c63ed302d7d8b6c8a535421b61d98edeb6b1c986852e76a4108337155b31ce084acacaf6a4d566da006e329027a18bd39bd72c90f4b4732986197c232373f392b9919979ce7cd1c050a7ef68f2eba6c68dcc6b8666e6e635a3c36f197dfa0db8facda5b888f4416d216441e36a6a52b239673c04a2ebea3b595486910c72ce3aeb672bdedfabeb67cb76e75c435057a76ddc56ae1e020e2510cf04e96bad9a449277eca0c304296a0e416dd8a851a3a666b59aaa50158984a02e6a674604fa88ebf5f0a50ce8e83d89a24740a73d5e8dd64b1c59f336cf0a5499802eaef888008777b6323acadff636ccee6aac72565ab551cda4ddd2760477bc45010eb9216e48e2c829efa96865d23299ac2696c826d9a2c69ed76c68838e00592794d2535184493975315bb6d33c2fc5b37dd344a4ce7d8fced4b492cd1a99e0b440d475927292729232c17992e262832fb0c00a593cc1820be8cc9e17601173428c0350940106968af869d689f6041c5ea108fb5ef1c966e7850e07ddb1525ae5bc18a3e4633582e3635ed8ec3ae16d4ee00d0352680aa13c295de0ad0ad2d438d21dbc4cd9f12853161509dd810c924ca4907c42fec82a8a80e596554c24d0212be406b6968382822a927022412241872612aa1574883a41852a112a11a24dbc3913b476b636cd5acd5a0444579c2b30569b27c2ec3f8388309000f38718a98bb5daa16ab76c1caaa6a65d7de58e1018d166debede5befd5b41d0def9a0923baa22ac2ec43d59e3b53cd08a3e286a431e7d55ae2d047fa459c01481ab30749635e2d7bfdb4767ef686c419401552ec49b7fdcdd58b36f20390385fec41e2cc2a648c698f54fb8d30bab5df6f47eb89334a24b654428773cb59a38da4213f0fd8cb19b3ce42b143d40546d9d65a6baf76efbd963ecb326badbdd75a6badb5f69ab5d75e6b03aa0da8542cd405a21e768ca119110c0040006314002028140c888442e17848a4898afb14000e94a456684e1689598ea220a39851c40101000000100000c08000bf5c68dfab770fe0a331fe3406dd9e62e3410304a4b83905cd573713468aa91ad6e5608590eb7de7c07d406540fdaa75b1e08180b5c935b7bb9abaead02a48160233cabe2f55ec91298badc36098be014252ac7cff5562ad2ef5a8dc482df479e65e34f41f18775bd50220e4a591b5bd80673325c49bcbec6de1674e061f99d6b7a0e9b09a430a800e51bf89e42fd812c5806ca86c61f0b09eab163a4886da276c127075dfde5ce7be6f00ff5bc91ae5f24cab84ee7f60ace0292ace5e6272c59ed597d50e7298af59f6143ee2ceb3bf2b2105c366ef2b2df21996659166a7872f45bdd013494e65e36bcd75afe48ed086337b87238537b44bcaf5fc1fee35658cb48f61e2af836bbc88e50c7ccafbc1d279e5f61aad5465a9da5dbd6b1db4356ce9b364926e8211da3f7b5d5e43adced6e9769e3d3c1d07b8b6768573eeb71d49af5c64ec0acdda8000e155ba46509d299a1835e54b8de850884e04e742967575987de7885a5a4c19659fb1cd236c057d4a9f65525be972ef64a2490cc83862360b319aa00dd5eb037a7bff6ada92fe9c6c0601d8151cfab44819746e6a552d83d6d980aa18ba281894c1e4f0c4a0b7bc7aa334ba13db5614d615359237563c3b709de0535c5cd86515dbcf3e7d73aed840c8a602d353303a520f664a3c26c7b4025024245af09e089822711983cc323119d4536ea546ade5f3a740043fb884417401403db51bd8a57577587e8144317f3786162f281cc7e611817aaa167920fb4e9d843b8132e5b53f7c1a7c162bc524a0030d53333b1a9668851af3a4cdbb49a113790b090e99b2a2bec96bdaf562a24914d56724e3b065a56598ca5e8cd5b2429ac6d10099611a001c1d64685d4866a9b25a7a9b12ef15ae7d0dfd210992403295388dba2e61dba7c2c136aea5d8135b706879617af77c6322fdd83cc85420789148a66d6dc9268f5b9c14087cc6165a120e42995f312556999a284e53617460b29bda05352459ec67a2544f6059fc9adb92f083029660d2aea7189fa539e0ccd4426fd790ce5c589038d0b9141177f83e0523c535973f4cb8ae61c0be1c7190b1cd84cfa21cee9000ac58f7f76100a8423ec10478849f597f3bd701c166165f4da8c1cc92c5c28f11dc81b13b66d0298abe6932b03d01f3021fc32fe8d07a90a1c431f8a61e8d7b38b5d87ee3bc53ce5233cc97d3e6b6126204e0955aa0152ecb2945b933468830e6ab74413a4e1207f76fef6fc714052f7aa44dc16ce7da93336652140e072ee2afe6b91ae6a46851572eb73eb075d48307a5db723d0890b381b99da9b446c45caf8138409370356cb7aa2f8e11081d0abfb1687aa6efce19dfe4b88b0ba577ffaf14f9a0475c8f056653c308879ddd017ec8be26ad8cb9ddf53fdc26337435defeec9d37a669c5392ab20d892a21650c1029332af4ceb5866e9b5ce58620c0a49c4554b460b5dbd26967b8b07320da1899aefd384ab430df775e57f306ec778fa6720734d16fb020992510a3b25ce198ab02e32932be38c80e43b306d72934511b7cd545a7113228aa58cf9f36bc261a2818714537ecadcf628f3ace5f6d42cf9a689a7acee1e620c9db9124157b4d54d5ac5eb8c5e9fabdcc2f5df118e0440f23dcd2cea53d8b10030537d0fc26ff439274cde29cef70b90276c9960afa61fd2e3bc615a8ddc6752424c139f143b2e343980a6379757977da008a8791f7c61fa68e86e7df8fa4e718563ddbb9965ffb424f94888d0fed61401246effd2dc8d4e939f14d6b0cd33ea66912c12013c29589619a67119980f972dbde8d0141970b2ac55064fddc52720e0d0f4c0379840ec30b23c7330cbe7614f1dc369b868367d171d4546a6711da7ae52a9fe48be40ee5deccd088034112c992d9f3aa0584f84e822e1027408b7130a62678a30726b71829d2192929d70a1431739d9e6dfb65fadad1731f707e8f02bc6dba38a4f70def69e1c4cade2913c1f5ad7d67184b3801b6639de45f9ed6a980762b8df74996e4e5aaf817ef400cfe4a68b09fe60f56e0ce191e82793acd98423d02c866d493ae3c02961b099bda8daacc0c5bba9121739934d03b6f40cea08b5a38fea304b8b3fdfbc55b220173152cd8f62e615123b3f316756795c3a94aaaf7596d1ae1b8e552b52dc6d276704327fd39bfa54d2983c70d22da7d6dbed8f13aea45b96a4be6c58a6fd870902daa5514028674441988332e02648008b58469f431dc3c8b6d50981672368c07911b5078faa3a7821a315414e86739876b81d9625e12691621e70548b69b679da0fb43244495d8557a3bf72b7a37dad6814812f4321acdbe409ce0b06dffd004d5bd94f1408a09b5d834e3d19715760c517c6e540be841ca0a9b4c9855f91a5548c06d6f7a6443a50827f78a8052653b35e5ff9e22c6f3e1158d5c83b4791d347aa5daab4d473bf3208333fa1bf246683c707365bc572b134633e0eccfd7c5c3c8e5d10c881a5140c1fd0749a47620f76bcda8c53d4f54836a30258337789be030202b6eef9cc0d935a4230a735ccbad642bf966441b5957884e884c3232d5b074c43f8a4fc0aa627e6281ee52433a8f2a2d4c19d81c30f07c6425daa451967024e79363dccd016ac8c97185d1200002c1890fc8f2c4749d918111643711bf4be5cdb3fc6e981665b37d19b5b3cd67f29efffaccad4353affa556a278bd7eb2f01f0165c0f630706fa6b02bc04d9de0568aeb5fb012dfa1893faea444a37a48bfc541abf56154ec7e6a1d8e25cd3a26a0bc8ecb41dfd79a7fc2fe8a191f1adde423cfe99e470551adf81130a68e340fe1119240a20fe013d3178286e74ae91a1eafc37b2e4abed832159abd7bee3df41e8ac99ea71a2ad34ca00cc776d707296cb164382c85b9fb63df57d3461ab5c9a58240652be7d6edfd7b4709681f200777a8e489ed5804ac2cd1e6eaedbb0b72768278e6a469a39f392e14b0cc1430ea5b3f68704d132b59b5d1ef2bc35f3140a277b9d6566f3c36f6bbb6a7edafd36539b5f196fc7784c2c38efe3d432ad06da62a9abf20bba8f2b30a7093d7ff5686e6f45258a8448e795b9c877c6d4a5bf94a14a3a58f28426b0ff76994887520eb61f9293b6ebf3eba03951490458de3fa0ea8804ab7bc5850e597f51ca7ec1def31a1fc518d29e97b0b4f2baf411852ad537d72dc88200ad06d0ce306615a819a18b308260e57aed6b0a345657286e25f6f8e0dbd10fa78156830223a57157e326509554422d367902267887fbbac53efd04ff3cd1fb6c6ca371520e2c23fabae3fec5ee22915eece2356ba7478ae5f8e33d0957b02d4288178e8bbde04a395356b984232e5fdf9da694bd4a397e9801f641dcde75f174d5550b482a1cccf623e90e4d90baca01368e55f43d7af89592527c4f88e89a017205cc5eed94b6509fff579b0c947f2390fb82cf847d9ae8e15ea1231270787c4268225bc75699712aa25961dec22c83785901ae3c9726c6b0627f45161ad40100c6674f05ca7dea16ccffb7a60ff8c115f5c7b4d16dad9c23a5acd768290b8d5ec8f34795416b33609b8f641236a9f243a4fca3c4f80024cc6eeca0617370d081c3a75aae726f198f0d7644b41e8211e560894b72f607e09ce326b399b17386fc7b6459e34364464ce818975dc61c23385d6a570ab742d097e043034dc10530407c1ed48b132cc691ece4d47c1b94ee48857270454d937a7dce200696a0a240975f3ce3c4961e194884881123a77c15403024b3f66e02660f10430f936fb1484fab3057c59f300f42de0cc9cc980765b454fbf6081ead3d5389901f09d2fbf7d0fd84b024f92e4ec315d965ae293e54733c7e1c552104d841d877b3baef65c4ff9da5f2b8a72f823856919827fcb9d437b9915bc2f5757981b229fd2d5a896fb82b253d16ab7407e5c150fced09c7511c8d6c616a322658c26ff26e5c2c2ae97679283c33b880b1bf31ce3c97288218a1f7d3a2dc0bc0cc677df3a9038c9f902da9984de9465c7bd084cffe9d6b2166129c9dc57a627623c058814d648269ca9dc06268053e6cb20da72715f8ccd8f596490614f692d33c51ea4690d14388d19688a7c00687a0d2a6f3c76c6b9c7a10093294ac1d7fcfcd388a65c81ee4eeaabfbf8b02174354ce9d04f5d6b594465d51aabb6ae66371661badbd488ef28a35058a1c6e3057f290a0c8fc293b597a5ac41bf6ee455fb9d8f54090385e785ec056c67a6134c9b3604db6d1eee3d940ea4b890387d08d426e36fc2df40c15caa6f79fed4057e3cb74147f9712dd05362f27ec1d49e5cfbd1d419b6db5b75356d6bc5b2aa646b3a8d0dd66d746e4368e623ac3e755abb5f47a2f6e82638f299f8b496bc8b04763dc365eb591b10b17ecc19eccebe869c1f644e18158b87922ae6abd9d63867034d1400e99d196c64203ce7c1b1f99d201dfd5b6b6c9aa7c86dc18e9985538b88b965c98b54e310c18cde95b35cf0011b3d48a80017e332e624dfc1461c22951cffbc2253c4a6af85fba844781ea66c4d2bd9fc573fd2608b762eda9cbee21aeaf65c4fd5119310efd7c9622fe6fe588871fbf561913102bd66ca6cab9ce994c9229ac7b5c9f3b1d7fe5dc2e9b176eb7d61c2dd9c257cd1b417dcb3b2e927f20f6884a0347992e3d04c198ec855a28f80469e0ff1d8c1fb351e94ba29ac81a787ab6fe832d173c26ba1dd82ac4444110e1d4d03a4360555c0eac55020224871db0a5f077413079b1a02b94a06d56e9f15ce925367725a1a3823f35b1480838e79d708d3f7daf51977dd331fd3aa33749095a600b1250a1942e9fc363992c87afc7d5a9045f2b32c4ba87cfe2dea395ba1d0cf269b05241a1d19931d8070ba6d24f366828d58f16a24b2cf60a584ce5573b4ad8c7ed517514a08ab1e8e1109aceb1112dc21aac84cd44f52f21e1d869f9c7f3dfa1e4fbc77bfdd736635cbd4db37386680897ce0f2e20470a4f9184cc67d5a99370f3ae49efe9715d31ef7eeccf64498a5b597b0d27262bbc2546b83ec47d5c1aea83f20567993c30dcf088fdabb6fbbf3cea93d079063011e1c7df2b85ccb932c8cc713ded803dc7758d66c66ca2e08f4c1eb8083885de42d235c746ebe00eec68b8e0e3bd1f83b180927421b5cf5b603036bb891cd6f4c11cbb6a1ecb56ebe9740388014d2314a49cd93a1a2d282cea4a527c0494cf40489378c808733077365aeabda8dd6006980606738c3a85f0a244d872fb1e7c83279d593ceaf336563156acff79d319f825ac843151cd0922be9bd1114b6d3365d397e050ad47fead76ee53613337cc0fa2ae1451ba53725d3d0d53c8422f8b97b3bd6a21b960d2f886a450ac08e136e3da127ea27855289a938b35a97cbe1da450a9b75aa6feac7d3a224ed8995f81a978df8050d4a6528b98dd928fb78d0776f8d548a151624f1a013b1f01f6fc05e9c157a4a3602c603610ceac00cc246138ad592865a4a9dbc245e8e614db1500477e19a4274a6803f0daafd42e6b37c78b30bf3a7702f5f12a0de5f18a54753cbd9ca3e20515b318c34e4f531c2fb24481aaf7af2b306634780f2040b78acba5706bb7a029d2a4dbf8f1c265d5f76dafb3ef1b2b30232ccff65ee9a98d1bd87c1deaf1e7b46d652cc59b6f02603df695c61e7ba461147c17d491c8128fa4b50870ab8012206968624ba9c7fa4c7019d472461d7709864e1fd017c2248dcef4395539a1721cf42281a858b71cdc80b04d097495df7cf7db07a7a3cc88a3941888507a981f8ad1332ea23773538a6315620d0ac0a0e90a98be7abbbf1ea6cce25334aef96511646033f265fadd691890acd2adb836b40387b1ec563d6f8a03d58922d6ec80e76b82fcc0c9eb44291f5de8f96fcf81f464a67a0fb42cb314014d4ef37c1946f128c6d306e22e53ae5e18f4289e4683977505ba27bc88c085c1c584a6d272183c492d8c0f3138377e8527e10d6497e8395efede3600351872c48e5b31450a7695b86020ac6117cd45b3c1b71bfc34ea9e3d08e620f36795d8ea914bf2aec0849773a8ac2ce09d875b4c1ebb684192cf354be94e2818765f84cf446909506b62ea69815f7a2957569e859c31df3b773afd9ed350845612fd04ba4894dc5d0aefbe0e1ccadbec49184b36e9513313993ec4a0e127dbb497e785f6e8c50ee37a5d824b380a18969f6c2fc43822dee76629e7c4c22e601d31dd08b333127e709c24f75df80b822ee6f61cdabbf65bfdd149e5ec701da41676969e38d01e234f239048d1e936944dfea501d761f75802cd0320e5621544c8617037ef3915aa1338e0dc396f47800039c6b8e178c4ccd69242abc2504c256b808b9fa749c90ee215686a4d1cb047ee7aa21aa066f207c6ecf9a22dfc7fc14c3e0456a860609554a64c19270aa30eb84da774235a615adba227b3a36636e2d658405a789d87de329c09081365d83cc4ba18331d243c8f9141e9ff971b8b10938715fd13545a51c334dacafc0c28eb690b82dee72c0d43d048ea1c259e2df597991bcd830f84735728762a3f285fe8ce7c9cfd81651e113a83cc4cd98f1eb45d5e2de569682ac636f8219ab98b68efe9a4297e5a4441a88b00ccf55e878ff1499b919dd5f9647e75bf32663cbfec6fed67c64d97d12f88555f387532314c604985e3cc5653b85081e80340ba26bf595592e2282bce8fc9481a0d8ea08a825ac6312e5e96d2f21318ed899251c35b6bb64f7fe7a21d0fea5a5666b8e1c186a14aab74a103d460e4281dfc404016c7028cefea877e173bfa006849450c913e4e283b51cbb283108ec677c778ce9160400d10a2be683be7ead2f55851319e2cbcc0393ad4197b67d7f2135428c98fbd48ef94736b2c859d31ca322bc7a07f015962c99f8967bb35b96fe30da05c79a24c6e066a965a80cc391237c8ac7a97af2ba96a28be7a9e589100f6846232f747f18289186def76921628a666d9b7266018f32adf6919a5eefe861e0ed5326771a60e201f1f486acf8c658f2a502093db8321c74298c97ec47a79e4b3130fa92ef836165e9120070ba0befdf41eab01901db752e8631a522501bf535a6f3d57b58aa7499fb016d5b701fa2140a84d2b3e495e69e2a67244dfb1179ea5270a02686ea8115672e3d1797409695a30a8685e498b75c81459b3884a94cbcb35cd742bce8dc161a3da5b7e5dfd181d4874654000ed1b2c20027711019d2fa402573d04db4bd61d264f6fd1b443e6d9452812f65c09e70bd0c1f06e2732035443113f5124b119239e586e1ceb9c58b26cb9e796d341441287e413c2520d17c0c5c3a4ce0304bb9a3f2756aaa5904b65194fff527794e4d08c00994bf839093323831bcf1af18313b5b6668bfd7b68936f1dc2a38fd8ee2e4a0f3fa58ac5ab9cd2e4fd89fae9b70a840b13532e308332639e01cb461c9c7e81ab7e3bc8ca217c7c96d9abbbdcdf19441c1aa3e3bde1736ed8f2361f9a6e08935b3c3299178a3cbc945b5f5a74c3dff83068257c16856fdc4d959852496efaf400543d43c4313c74c9b1f7e7b0e5ae7665011483a51a17d0d8aac9fe15146b8bb601e91ed518a777fb388d14f7a0b545d9f6a1ffe200e02ee69a937295af90f2f7e43b2a6d139f8c747467599913917ea64e647b973b3790edf280992e857384c7f6dd4e5716f0c363ce88000ece632acac104116a6a58feea33777a1ed7c1073aa6c2013533084dd074c4394ed442ea72b8d1ab007efc09cc307282b483d785c932c19895dd14ce01a003b4ff157663fe11dbd9e85850cd2ff83286d72c81852a8ed4b4b51384891bcb7ec76f0aa33cd5722bfbc0ee6f8424affefb84af15c1635ba8479b03dc3142f87019f4b9c5232eec93fa9c7ada90be0b098778762e32e5393b2cb780e43ca1589048b0dcb303b3853eb7cad3b57dff43e0950b24fcdb79deb3b8e5220af252d93d6d4bce7a2464feea67970ff8cbc72a57e31792beecfaacfc245cc1916f4ebc3c8ae08b375b0a97cb1b2b4a9647647ce2b8d7a21926c820deecbfec02eb248708de6e1de1c194f52776e85cffd709f869553a36e3f056816dc60df620652eb985a78c848dfa8371d498a2dbddca5f972746c1012e3fc7359588b77e1e3d4ac9bc8e1d99336aab403493cb0209064ef03a04c5bb7a8b9f885e9489e20b5d481b797540768423e3570f682392c015c93c84a8fd33a3fda2aa1bbf722ede690e31e6bfc742b4d042a4532c8b59416f1ddf5f86d12f8fc6e0e39eaa91c4ab1f5adb0cc039029855c11bde4a1b06c69898226362496177b1163319e47e2774aea6b44bbf5ce197a9fad84bed778db7d7e0d4e7d5741fdf9e4be0931a9da9689f5dda04724a9d79552a04ad10ae2e7e91b1f803f4b241da8f1b48d40cbadba483dc459f0dfcf8f39e9567e4000d7fc20dfae7732fcbc8a57bc07370f5e2b8336d02370e062d54fdac4ddf1dcfd186139cece23b745ad932cbf764089cfe9e42718a1eb7526bd9f97c79ac8edea55f52491fffcbd950eff06dcc1d312bf6baebfd9b6fe8f3704bfd756faabf2481b86df9201f77d046836ba4adeb2c4af312ea3695742c4838abe1491252f09150070b16811e4f69cac8cdeffc333bd7de9d51857c9e0747f175be69a77cd516d6c7e3d1be31e1918ba89be6a5136b241a53c6cbdfba69c1b99f413df82b4ed430e1d81abbb368cb42cd8171ae00dab0b6e6a7d93fd2b62a3605f0d6678b0789614fd1913459f3eb965df8fb49ff9e8570d02e537d4a8e33d604d2dae2c1bebcda867e562a119adf43e1452f07d1019bd9e329692ab29fe36c990948f3e22e4336ceb5834c80e08805ea320a74e2a3398e0e7e8ea5890a530dd4637ccbea2c411ed0a88664ecd8bef07e79383f49b697f3876159dbba54cc9b8915655e10c3a1467a62964b402b947a2cbf69214087708fd361b877e5ec7beea598b39e018ae0a9171db70ce2ddd64c26d5a10b1108510b63d5d65bae0c129c2aa1b15ca1e8cfeb88866a6266485301d6703ad5306f9f024a99eef06c24b265a4cd5accd909b87e24d78a1bf1bd3b34950a196d219a5a1650973088763dad0f9477e6186fac7452fb5939113136168254b95bcc07808d36525fb18138e272666dbb1126887f27232f73d3beaf8640fa30807e2860bec4d51934d08f608f29701b2466a1899e50658d995d0f4a8fb022154c0285f1846af5714ccd923e8914a5dc858693c72229caec8cd320335c34dd931f6d9f7e35dd6264bfd10a51e92bf2a0c84c25d3eedcaac3a9217d969aa7af41ae4ba00b3a1a2f5d5cb51f5d6580e3aa895a1562a7f5c973086607860f50222be61e1a921c0c494869cc13bbc2ae026743ddac6e028f3c27e0d646661202d01a7276cc9a8c852d1d5f59d14a7dc85bbd3e1a3abbe18cd1485d74f0765a2ef3a409efc0aa4d9e8b400ff84a264173791a7c046dc55a88fa3347326717011799049a708454d34afcafde8674c86433f605eab635b2e8a756163b5c3a0220a328b115f12e8831c5e01343ba882c01387cfeb2a6a0a660a4ddff5d51b72bd31a56b30f18e9866e476190971ba16a3240473118080daff9b82f43a56d565c521ae387e87628ef377e6e0f1212a723b5d4ac0b68aa8fcd6d8b5e3bb6a62e9d5d1aa1ad24af66ed17a46188bf2c69706608ef7ff6d1d6818fb76bcd17ea794559024e9cf0133ecee0823654119cbd0e139846fc6082fb4916f7e4199c333b148109c34bee832c91495034e282bdf7e08306b282c958ec806e90045f913331cfd180190c6500d67d98028d8fa36b1da7db3f37be1d07abe00b5bf7bd101db9e4e1da90a42891a8e6c24a14c00443e91f8a224a3aa8afa7de23b410b1d6b12c2874258c5d848a71359b29faa44bf4a5eafb5bbddab2976f7be572acf9f17b4d2eaceb0e1b4d10fa61c28458b66e3ce8fb3d5238bf9775981648a1ad60a1c9fec7b6099da1a28cfb6847d826dbd88ce160fa208d56a73c244454d8c62394313b44397437f22136736af1fc3e5773d9429b4a91e3460ac52093d4ad7177a46532a68f2a68e9ecc49d655420025fa8789ec00b9ae02064c1e2452bc091b127fa1eaac7407994db5f311cddc84a358bab2987303763281360c939121808d04efe9681a125195c8990bf49e6fd2a0866446f68b65767f9ca9a2d1b6bbb12cfa51e0673b585c39748e5d7589297236180587b7c3151b4d10ca68f2e0c1e661fc86fcf2385329a5ea1a094145b7fdfe8c28010cdfc3b85447098d8d129ae7a01ae7a459ed8d882f3c17a42d1de090fee38e77e93d49da483a34c1c7faa63f1a5de1efa131d0fe306d8c435aef32b5854f0b4d52cbe703be05e48da7990bb84db0e1d41b76410507252f30e51ffec834dcc95b0132a8d768ba64234004d43687cc303f52b9c68ee7bcee56a0d2694f4b7ccef9c455590847e8bb5d61cd36575732ee983a98873d4a8706187b5704d6a1606f0fc83fea491606bfb250c4737d0678ecf35d6a166cbcb778a9c6c3970499531bac86a62fc2084d17f8b95c3573254f7d1d4bc223372f353b6560caa3451119062b9b158a47328356a2e259240df0fcabdd0e3fa98ff32805ba8dfe9ec0ae5e0d6b1c81ac7610891c81ef0b78ec1215ea58ac8791f1dc1dd2b55b6eb184d2ef85391001a97a5649d4004548aab4c7ef0e2529a90697e02249efeb383ce5467e440955f81c3de5291121cc66707dfd8d586e5ace7e58a7871d9c941a991562770120c91809bf809b4d1ba55675c895071dea5e76ac0c094dbfec4be3047215c3aa3047682e84211ba547528ae14bda5e7fad858f9b8f4a3151e6000f409c0a1411820770a80149c5b898694cd646933ae2ec2d4b77925911db9454be16b7f17ee2c6244e6f60168e793e990bbb87493221ff9e4a9b24f4904859b36b01a1c47f31df8585173ab64c1df27eb56f2626478ac2cb130b96b1dd134a0afe4bb3d016225c508555923c81d7cd5637ddfdf275ed9ec907a0041cede9f8222198a19a95c53e08133334e211d349090c60e2b039bee70ef7e671407c046741c4d931235273813c69a6691ffca0c69377f6da2bae857d611d1027f51d717cd4b9ae60a281c6a8e89b92e8a39b4c3365b1539aa406931cc5c27c0f1854dd390d17dadf9056e5d25cc82014f7e4211cc22c9d08e928f41538ac2ac0cc3808561409f6726fabb72f3502d8340a0e038da5daa95f69e89235380cdcb926230dec0918514b4315c0e10b0e857d6bc4389f7ba48163968870978292039086561225a71bd4b82a403f990859fda5749ebbdc25e6009d456aaaa4c893903781be3ae764dfad3812d99bbc953dcd3c8a80a94e53cad31990c12fe172e03bf782a81240707049c3b747d25af2b6cbd566b0bff16ac78f3f15dc24ed02fb1738e9a90704f3931c9cd58e1d81a88e845990170735f1d3998f882a6a45909f937c0de4caa10dd60f1501a6301602d1dc09272510338bdf826fddb05b01dbaafd29a52b732489c81007c4b0d41e96903316ef9321482a370474537e71e73e87097de9b0a720f7991bf0ea2fb0b7041a7ed44090286f2f1aae9142d1d76fdd6d06f06601730198989f66c2a2c6df00da1003742dc59738e3b239f6a27d620681cd169c5d78a1fb23392e8b628afa4f8e752bb3e19735d8f5601f006b0fc86dc27a27a2628927c709ee65ec4bc9687170f693f4f75be2a2dc6c7a589f381c1f8d1f781128065d6fdd3e14add060ce207e73b6ff5aeb590b5116487ee80c2b643f98469580f52258725b4d2447995db027b955b4e5f610c078a4250a35d8de0c081d708d6ebace61cf573eba7ec11ff8f9c12bba8b95c2270fd0fc2ccdabee97eaceb97c7d787596176fd8caf57171127fb829e2951ab4e274cf3329be9f72db319d31c98cd7c7ccf6cf64dd8f051f300cb5f2a90e2df2dba602b9086d2ced1a56120a624cf65ecf3c480b6c5922859d526591fb8b00ae16a8d3a141f0bb24a804aa79ee2c686a04058f915c0a78b31e0d6839efb8cbc442a5a46958f0d4cb9817e5dc179b0d612901f8b9d7326db40a061e729ecbe4b0b84abe306022bcdff6b01cb2a3e9710f36765c442f06861d2aa92870e34dcafe27379e2f8e0a8321436f4a90b3298c3a318934c28b102302f84362b10130ee25055f4ea8625144a0e4df4b85ed93765c4f3e11ddf2a6fcf680e8f229857f3b934f17c29cd4c2c7af483021a2585361a5cafea9b3262f0c335063b79b6bd2971ca5d8f8c4ae1a30af32d4c899fc4ef27f85282f6897f944a08c374c17ee607a1106698def29c78c0a170c61189e04feee3b490da341dd853b42d80c2b82eb788139f955ab56dafbb8f3fd12cbf0afceb2008a11dec568610c2499a21c389ba9459c5b0f241428ecb21b2cc809b245cbd6b54806efb863632185e223c55e08173150cce9d685a128ad9aba67e724c8c49919791b66ea93ad21209f50c095da1db41970b8a60101827a7e49c9cfc65b07b09f482358e37ec4459c1c0d20b635263b4742b1634c83a26d66e6fd876240280432bade04f048c15d32d374ee04f6568a3987ef50e234492daf9a2b56d17deed8f80c805e1c4a692f1071abb8abfdbce8a98a15e87594aa32c2f9e204fe88eb2c5fdaa8c785f57aa0e72e05775336faf128b1646d590d5ff609d26227eb49896aba42747abe61d90168254f94eb5d5cf899b6ca48145cba63c1cf37be5f416e5726ea37b301b8603832bad474059524dee06fa8315a7acf15a2161100accba15b63eeb5dd64c406475b480f2efc24214d2ec930c34a14e00da3088f4b635e5e753143c58bb930cb7a0a01028e99be9e2f246be28b67002c83a2c46a7293d6a36895c9a9c1931c3f07696e387ee8c1369961268b1f3043e093f04f395c3c4b412aef1e1090b3c71ca6dae93ae58b0c9c3ff7215c3df20c77512f6d1b01bb3c26bfcbbfef975edf254effb9262fb544e5c4ee6b0fc99ba3f823f8ebffe8126b2bd062770c181b18901d91d55502c9a9a3c50c1fb2d7f4323eb165ef784e116f6e550795a252e38d8241e93baea5dfda8b63ef60729f4ac2e2b5a0b9b10467473dde8bcfb22eeff9f55420b6abec2d47d7caefb6188ed4b19e2f82ea3620b2c1da495997f47da3764ba859a04cea91d3d1b0da3ed2ba77483e4f1ee407292595aafba59bd092ea2f45a25ab32563e4c04bc0ef71abce744964b30df3484525f21b051d5047add7524070ca48ab85e4705c98981ad67e121d72f6b0f28ea130813432d4ca15183fe60c6d3885169eb505f383034162ee2b969194989607fea48bc8ce06ea914c30455cd55eb6ca1dd65dccb844bd03d6eb50bee7528d2c9ced98e3342dce6c61423b0ffd4a44153108ddb168f6603444cfecc0dfda006d461a81c8d6758579475ffb22ddaef10f0db813784fc2130ed6a756e4142455b8a15b95f2dac8b755b17eb9e5636706c515df56f6652ceaacaf543de3e50c3f434415c93d829532603bc061ae4cbc2b88b5e4dbc2e14f019088aa010f4875e0e9d278cbfc131b0afd399e514519c31e9b51d227a84129da8d22d12b4b98432e3402d80c6912408ea9bc293474df2f284ea436b7c76c674de1512dab19cd8196e21ef64cf2a9addf5ee5763921af4af93fcaf634c18660f371d2d31b3ce86f245386d97b7371f9b1d5e1fe56ab329ed42100aae398726af3e3d4a5062185403e6ee9581a12814823ee855d0678c423391dcf6aab1e1cc7442a79ff311dcbc82c02e6fd8652684cad00c9a18a83cb341c0e42d648eeb4ce629d1a8e92cbde401355279a648f5d4fe6a244e95bd637b07ec95d9d2e39a64f29c58b9b884c976a6f5829802631b876ebc1c38c84521c60c80565942624599a5ee49fc5674b3fdeb20a7155d11cdc94131ba59fb6e32133b4f7f831eea07c09ff2c645e5a6ef3470f62b3d2ccae381f7861abca7bb1c2ccfc81e7f30c0f6e32bf28336276f27691659c961e40df52aa5a059e66a6345fadc1382bd1f508675f8a7511003c5c7489aa23a150de96f6f00aec12fbbc9698ba7dca35212df8bbd0a49b680e904221d21001aaba6de1ffa3dfd7a943887b8ff6d56212c7ce0baf71027dc8cf5830ebf8848b12ccb0692e6297d2a92903e909c0acb00aad19b4702184314abded4c9401730a8ead1ef35189443b04d4d12cdc94887a2bfa9c57fa9f30c25cfdf674e1e83d6db4d25d3c35f82c3149dafcc8f3ff95fc2eafd19084dec2f5fd5cd1fed68838fa4d4295c037fa2b9123506c2b56b9f2b1419a1fa4866bf8df282484a9b41598ce81e2912a3b25e39f211b1251f7d5fcb14f73d6fe16b97789ca2fd7e546a726fb46a2456710323bbe3da033ddcb8f9e68b2c4ca2fff7e55a43fb5a1024c50f5c20b93acd4b1e889c979518a886a9b405cdf908353be5515acea081ff2334835ace2a3919ee26dd3b8ae547df02442cdef84a7bc795184135873f5d50ba3f6d819dc4eafad5cad2a7736c016556a4de82526c2939b69e5f8b0b9ee956a5a23d57ceca9fb89902fdffc47fd50086002fb4a39cde999b5625eea0601a055ff5c79f563565276778f47f21280fa98aaf0b5fb3aab6e9d381e6ea62c01f7ac2af8105d349251c3b16f86f17d52f64e5be3cd9b18329a63192985ce65729960bcf0e259f78e322842bf379f68a72ee6881351942872b673501001c71c6f727bcb00daeca47fe833fd52be695d24ab23ceb558ec9891761c36c090c64dae92fe715ec2c5e3a090552522090473ae424c502a9c87622f24a1dcaee01e2bb82eb010bdff856e8750958bcb4ad3705d202a4532a721c8454cc2ce422509bab4b5bc911190cd531feddb4eb71ef5b54d90fe94ea66fa2484982885a22a4befb5362c8bf053eda879f85c7f693e84a7011c935bfa1e9574693b2d96c9a45ea19813a2ea1cc36af7c220518444193cae19e269e1b4434e3564b2e0ed289d78d83c8284d5c57429d76ad65d75030b6155326ac1181d7a5f971be1a5b3a85e13c45479694d5aff446c749b33601d28a3215e3b4e75f5a41201f4c55617a273aec3ff1c92f01fe770ff13094edc8aaaf08e967d3da9666e7ae7ac4ac22bcc9086f54f84f57cdaba80749ab1a2ec93960349986d10db39711cd8a9af6fcdd4e6b50f0baeb442d1cf09aedcb3acc02ce34cc8e8791786ef8ac0e6de99c6c440423602e403f8473c23e82b6080a499b25c3ebc559d8167b9089f6896efb498380b1144aebffa88a3791a496bb519ae7abdb023bbcef1c133c9ab308d0bada1cf4361e9cafd6409c3498cda74bbf1fb404669fd61885d17f7c1d53766b1d36d347da476020b44315b751a75a25c8b238a7d806a32d3455f60e8b59eb88867c0ed59b412cad0fc6838acab2b22a9516a1e328c8d119efa930772690a3d6d62bbf0f9978bb9ca2b1ce274a11895ae25e859405877d6a9c69b98e3ad939ecabdaa70fbe158f111359a925ac1c39f8dbc634542fdd9830027f587a28a62b1c34ecab9bc386454a00ae41d42af81863bbae85da2abea2f1d1cc151cf6f9f9f1bc919005273d4e2321b643b55c0575c5477090ba51ac5aafac08f9fbc0acd3f273df85aab79a68397d85743fcbe085de5aa44ee1c0f8ad26561cf4aab4678139e43a04e9b7b252d95461e7155f449329150d433659ab79c14deaac2a52c50bdc52615db12a5ee022358b8a57f30217a9b056a4ba57b8488545c555bcc64d2a2c2a52ed05ee526331b5b872f7ba902279c2f51dcceaf3f432d9d07d69210ee8e5774c8940299497a7f2f4f21b25c9ca04d7731868028a1eef5a49024b48c7691f3cb5b0ea17837780a2437484dfc7d9c974748e595054696094115802e189125e86db8e07a3e8d22971b77854b65ad15747b9343794e3a5b410fc51450e97966c7857c9f8017751864e9038874b20c168df3be5c0e5305389c1d94c8c9c03dff0dd09130c8bac704e30bfdbb534c9ed782c6a1e85436a975fd985ba644683d0ecca1bea7b29ed64d987e03b1773586933a61d16c100804c9c122d07b1a6510977536a27980519cbbe3e8d3c7bf4a57bc7a1add805bf9a089e1b01a0fbd485e79c3c0ecd3eb946e30a2e4c4a689400ae43424fce9129f83a32612ee9a75ce410f3bae536fe9445c6425486ebc9386d8d6f9c467c2b8284a8b52a93ac64e302df3a28add44f0bf42999017307c1a46bb637ead0def66b2c1c874b850cee46df0ce106b40b4f3d84c4f0a6cca478dae34e7b7ba9a070cb592ecc65f774a0392b4db4bb50b704c2aeb14598e4c4e1bb9e3701f431fe8d4ceb0b59710c2983060f678f4051eed02c4fad586f1474feae9b427adc76abcea75e643f8450aa2717a9458b6437fd2c5e4502ec9f8ef4350394b29b58afdfca0d4b902d6f86a333caaa22bafa465a9d193e7e58b51ce56c400c4819cdb831ec59443b683a4818963286cb15e7f1cf46a38c81d8b9a1172aaeaa66f945d1e1455cd4315c669c72303b7036becf0c1b26ca82912c6a745d26f28482e3181a9b28f3c34e4ae89f1de4a5bc3d2fca18a8fb9072b867ea6e5f3226a567e52124d6f0f38c88c90b00c3cc0ddc8ade6dafca2ac52863d0c8ca6adae120db28719d1bea09ac6e2bdb665e16c98a506c530d64c82dff7a4e060f18471776b470b4973b4bb6253919c3b9fe79159ff928aa89624d265d19830aecc32b58393e9089abfc9531081f1684c3a380e9702462daed737609ba4864d2107962d8c173a33026a0baf5b8d1a046a76e49c8d4193725e9a7fe97174f2f3c31fe5b4cabdaa41e414c43e14e3e9872ab706e3f448385e16ff6b91fcbfc4c51bb298f5d263a0a340061d36983911e5bd9d7ff2a51bb73a942fa28ef2ab2e1ce2e1439f25168e69ea238e5d0bd8b3a676dc6d449d5b4a3cc93ce2e69f70421544fff58015858ebfc853ec930cc1cb3cbbac40ce640d1557bf07c71e254319c21204af1cb9db93f7c719267fb69b5efe06b52a00e75003a0adcb1f1e55b19b6d5f187e1a615298e17ae8dc625740afe1510d074894d3da732eea017d2ebf35a3ff3b78bf955491ab60eef00a041665c502ecbf7cf8d3785c423e6f5d5a28269d6529849e7657d4f32513021ae4f39c95a621138339ab99ea1402bde8a15262f84c9032305be0846f6a5cfd59c7ba16328c99a2f02640e2e1049c5113cb51ec202dd7e06a80bbbc87c96f8aa15067d7d1936540955aaf34eb63a2fee40f35aa43842f409507ff3c59603cc5cc87d870c8e32e084369ffdb413c17e0d345a8a06d13727c490c1f2a41326c4c738ff75c5a800e42ae34967a82de2e65f647575b986f9ec7da1400bf7031eacaa38c2beb53deb82adba74a9a035ae2030c10b05564612fce5bd22f6cfa575de5b9711cdf20159db9ed2c448988afc73065f0622c81f5fe2983a5fea1700d9b671ad3f16835af727172b634b4b23dc0628d0093dbe2d7a77653af4142df52aba23be20307f458e2d0ebb0b2b6ac135bfd1fad5662054eb0ce7f7a77692fbcda29c5a946e8c9371d178648f9d92508b6915ea157ca6250ceac6bb4a6630e410280e1cbd0eff747cae8c083b747ac4a7201d7ac8e4895d7655c51e47344acf11718a40bdfa736d4187203d02ebf20dad241002dcd314ea901a702426f834b4e92d27c11a0967f39924014739d42663374594142a5daf9808f158dc3ecfa3164a12aac65fd1924d6d2a96689fcd3437aa6da64477005da0ec6732d14976760180ef330434f2fbcc596c14ac8ee9e29fa744bc5307706d1774853f2936a165b309310eb1dd6b39101abce71c210df74adfe7ec961b67f9aef03d5133c0bbe7701a9c525c2900dcc35ca04200419e602a193fa275cc47b29a0fcc75736db4c1d08a1d79cc1a162a1b3fdc6267c9818f2a17887eae9696ccc75d34d962f0fb65b882c9c00f8282842d7363a1c5d95914af3053ab9a960e369f3605f516e3840079807ad2e1f6ad1fa563d528459ba8be15d783f2c9e32950f5dc07b98eae96d5f8dfee1a93793ad8c146ff3b2f921ffd37d8b0852ee45ec98f3bea17b85c80d0a3cbc4889760de15550e5906d63821c53c7cb9c35d427ecd15f442ba783e3fbf6840dcbbc7120c9a47f541e55308eca118a5e4931fee5aaf117781cf7556a5167656d628bc97612d30d94029ea149abb15cdf44859fdd1cf817e6ebbbd9317616d6f1fe2ad019d1994ce3773bcd738a3d31942cd07d23b09e71545f959ae5d40b6ddc4b64d18e346a22ac0ef7681d405dae3fdd01e077b528537a3dfd484534c70ab51fcf25fd21eab55c50e0616f7dcbbc173e02c65c65f081ceddf8b6e0d8e1e122ca9952bb7936c505d8a14dc3fcc5bc206c9d6f65bcfd679631ad6bbed66c180a7b8f2eed381f03eb9991d9e98cf1ddb86e0b4780bbe640495344d72264d82596c17ee50d0e46f4be535abae4a5c4725615709d466cce2d6215eb1ada55c297af69013414254e880113669b03348fffb4210307dbe33aeb9b660678f614edd46d3205699a64a1652861c975117f4f4852967f67fbe98ceb6f6b31e8bf6fb2b1e7b3d92bdc5b6def6ae3e37c0808cd9123c752fa7d7488d2ce9c62cc6585d9cef2b5e7bacf4eac35cd903f5bfb55a399dca1cf6df2ab8fe32cb24cdae9aaeb46c121a14a8a0dd6eaba093d09af5d0b8167831a5ced12640e214241a483bd70f78f8a9e6992303bf056609fe2f94aa68fec83519782c41390486208e0e4423669548f765a7a95562564ba012b32a2255cc4a491589594511c64304560b855e2e415dde0a8a1e07fb5b851e7289a58d9532a41e3f7ff42706c79219057f7e2d89a27baba281e5f315659501fa2828fd32de014efe125094ec5f698bb1e24458e97aa1445668a15c712dc18a7580ae35586afb41425c7637a2fc5b8912cd24d1005c3e913d278b04411055a693cf34849fbaeeae536582a35c7b4f00b712dcd7d72ab34a8fd510e12a620df7642d1adb712a617295191f554f9d5c412956fc76a32e6da13f484eaadcd0d95c252d72d1277f66b6a4a5c40c2846e636cd2cc24fdf9c43fc03dc31339e77cbe948a0e9aa073a1007e6e9a6b2db890fd00be4b094c8e08c2d9b720840eb5b6c16e2a714bf25275f5e9857d172b2c89698584cf1ba0768a3514e17b3ae2d4e1099122dd70c41789d5ce0636e566dae2b62a7af0688a26df09c0426f2a0298427b990f4b973a5803f328d43bd7df26cdad877a852510f75f010fa7a15dd4c04ad1b5863e6356da43255ea142cd72e884b3bca40db14afa1615e51a7762b69967449b7f91de5fc68d4e90faa27cece3ad6de7927d13859ff46a52c4c81687fe06c294d2f7840b3b5ba75249896a32853137c04bd92e4284910079ed1ba1f4af7c1265e66bd28220adc23b08da7f44b5474a46ed51de896c3b89a421365a84edc224abab5825eb2568894e016cea5e67d0cc0e59b59b8570e92b73afffd1394e25f2cff8f977f802c7303c881b63fcb0392cb5868129d3a9a1b617b79a0dd31d376064b54a422a4d7e444782ef6eb3a3911f014d7cb8376877ee9d0fce67ea664c2ff566d2fb39707a4719b7ea1e5a31d25ea57687d87ab6279d069e700336ab4301f6b44eb6af56340bea3fdbdc57f933c50c416e3cdfef9ccd10fa3ecf200b2df65316b001a612188e167eb846783cf55ed4673d5c59ed1ef64035ae697eedf4b95b96090608d6bd9d9b5229d0c24838070c1f4604c5a3fb596152c63999767a624660d290de12f1348265ae4655b9e87d340a331f691fde85600dbb692f3b7be73d306bfb5a37455d239414f99ea543a18de22da88993fa566f59a55131f01acc4f855cd03db416a1120e10f258b663cdf21892f37ab7c89098ca57da1f22484534054165ed6ca016f0e49a291ce8ba01e011334a7cdee205cbe999efedc6e97cb62cce371d1793d5721d293eada6d525923f2dd88d43d727e4b3a663b084ae6f72cd4d370d9b71f268b84c26e620164756823b0d30b1c4b375944876e5d86050c08c595369e4bb019f12c41fbaa5751bb5f7ecf0650b3b5e293044b22f0eff55c53204a3196eb72dcffb5ad211c380f95b15e861692ab2f7bce56b02b897c42310bc4f4d6235c0975db4e97b03e49d82e3a5b4b44604bed21b0c0b05c4dbb401ba621d912b0dda5d905bca82313ac7d05aad485eadc9401d4ae99bea3c52f7c49542d20c0be3c354c99dd0b6b61080a47aee67f722a968fe5976995ac60226302b6fcfc539f94af31d7ea0c9df983a1a505906de4caedd18e7f05fcf58f8aafebeb43f017dac7bbf91fff38efe8a9c67128bef5741a17b82fe21b3f862bee01884ba8cd47f206693089d0e5811768b29433f1652fbda1d76583c968cc126c9a60dfa17f2036162e495a6bcb887ee53eae497ace395b90b3445909f7732ee3074ccdcdf4aecfa13ca82322e1f3b1e96e7a23386f1ba806568295989ba345fda6ad522ae353ceeba5ef4c0cf6b28ac8be99c0bf09ada2f37bca83935f78a34e1d1879087d0e5e1d63548af33d79dc0dbaaf2d57c0669125abd4129a24577b9b19dcd82dc09716780c319fdffa0b475dbdd20bd19390fcd483d6385cc3426456716686f34a5b79ef5683ca598d18fa169cc207cc1b0cf2087b44fd9e6666c6aaddd9302942c7c8063f4595e37a60d02c6f5731e42c7029c6447343b5b9a1a5b01cad742ccdde37f456f16cd2b0876a2009da351574cdedae05ec6e8c9c2441ebb67c1e7744ead2b58d052460387c9a0714b1510b2d0f231307580d2bca060db2fc89225a525e2d7b3fc78b9c181b91e75de32bbdedaed2e0188dd3dda4ff8167e917e2295a28c83cdf45462f42aa8db633a5d7ae72550c3b075470876206854cc0721a96406e1492d11c5fad1897b30ea3bb961c71c909fced2eba917ca2170ae498b1cc75dc49bd5d433c395a805768ab53e1b2ddf8c2e2fd0ca495be337b1b7233bc23d6e8c1df608239a45c55024f3d5c32c290ad49877d180596cbc37519f3a9714cb73dcb04a2909f1fc5016be155e4db1214d36d0edca412b42334b87e5704be8cb279b5416d3a061027bf943b99179220feddbb1a2c7a7a0f4a1c598848ed1db71a09cdb1822e5794a39de814958502fa85ac467101cc05d9c4e8ce8b26767e3457fd1eb6f48d2197701f21cadd8a1471cb33e9435faafe7275cd7addec61c0464ef57822f175793130b46e2eda06853ea3df14b306129fdfbbf8eb3f74df916cc7458eaa11a2c8f802d5d374be5807baf055faa8f4f5d0d354308d25997831ac5c88e1523e1cc47e92945e2fce57a5e5ba94c85eb45e1e72e224e7c9cc29f56ad2261775524bebc7c91ac08982ab63a2df8eff84ac1fe94e8f4168e9a0d6789de23d8d85f468df741e3c9001f807111c8964139958d99e2bee7e6b6b2b50e90860ed63d1e7e19501a3b2311acb953006d291ba1051a38969d4f7a1e65ac1705b59cf6b15bd764310c63ff35e3d6ae4b7bcd7d06b920000a49bd17183c6dcae04b6bd93cb11ddd0ef773bd6d1a9d18c81eea102fd4879daeae40a0679918a06f0dbb32e77e77f4b78c3eee6dd5e0e366e046856acc80b0859e1ed6b7f2cfd725843cc9fdb5badc104483e23417ac76f9044908b6a1ce1eda5168ac6547ab8e41328c6c107a322a052a94ba899eb69e0eea6cd6204b7e40f3358230b3ec739c64a30857c4e4acd4202a0b4f65fef59932126221d492bd9502012a4fcea592e46d1d16961758d03f992faa6c4b7823ca0c67298ffe4b6431953ae812b5cbc22afd0bad255d720a65e44f0313b39c0eeed44013445940423cef46511b0995504bf4ee4fb9e2e8c99325da731f5a60671a179a083d4e62c0217e73f408e394bafd266b482011cf6509617ea53363988fc0300e59f9ca0cd61be1fb4c9b86f9b5def8fdef8bc04a89107570fe24bc891feb900d8406f16067aca406b72c6fda8a04076dc4ca9c706fc99193500dbd5373c7602fba803549811e8ad1b744b4208ada41d6103235d9b05a2ccc5933d1df23d298afa95b428b1f92f281750b37891b3b466dca430749321e9128761dc2240d2b00135b8c1f395ebd3908702cecc311da116cfb6761302656774fd84b612240db96c161528cf1bfac32bc58f7d306b346b815f7706d9fa0f463c9d410c180393baaa5731c8204426c3ab8d2cc83bba92d76a0eb275f7b8202641c863cf52e219a87c4f4598f6afd986724e0e8e1309fe04fd3738285f878bc308511ed245239920a9520c8dcd84a30707272774a6448010d1d0ea0af73571b42b6817014aa35e2e742fb115ce0324fffbcc569fbe34a7ba18965456b0d02ebaeb93c80a6fd6579f693c632ff9dcf170e3b06372350f1439904cd17ea61094f7ea8e8c930d015fd0e7f6f7b2d611626a8cd8d1720819a4021cebef3d177cc55dd2e3ef4682ebc15a8d0550e16e0e6f2b301ae0a22beb501365692dc7f033c5a61db4c99fc4194db781630498e80b3ec7ef778d2bcab28a4d527f994415d3c002f897e089256c59e40d050cc0b249307580f4f7fc14c41d0cb9d60904c11592a8fc6b52254bf586728ec9ef2164437442f9738936d1f27d5307b7788952b30bbd68d727ce422d137b029d0a1119f783462740d018a60c2ba1d5a89858dbe3e51eb7a90da12439a4088f693184bb3a4b30ef9887983d54a37cb09b342cf2a8435cce6d21d71bef413c8fa8c0e0202ac724e86355abc3479050094a536a7b5b91ecff319a2e9d241046051079765b10d0fe056a5f89e89ea39f7aac1ae137d5c5359ad5aa531e4090b458b08a33e04a7f093f8156a0f125ef37b77eb3b7bba5643e789f2771016ea6c3dc5ea15c160cb752f6049f1bca072280f861db19abc7da29b01d53d3e4c1e851438cfb7859dbc2a9616686d47f10e5c72cdc0f0358de11c6c4ebaad9f9509bb5afaf4d58b0ca38bd13a95b4cca7f57429e5033085dd92588d9021773c89b150ed18bf6871ecbb6f416fc30f41c516633e684c93385122c31eef655002aa338723e4fe4534cb22b842d59cb24bddaa167816158f586499f743f16df46fd5e83d0f9d1a1ec394f8664b2a6890ba5074fd6cc68704dea18582e896dee78a443aaa66f45bd6af79d7603e1a6fc57d2d776439b912426fc4d3f38d5de56746c9b41c23445afb8f23cebf0d99b707bf3c556d76606accc00ac859e30b6cf6c61fa2dd19ec9046d37f8744c0d8689e28cb95386462810e30ce103604907b667b5cbc05f5dda1ec00fc8e475c67975994664c45424e38ac42106bc52f6f65966eb62ae1979d078e87651e8d455a02d0b6fac0715180a8524f302734371d8d0390a3cd6ac17b6b488923ab61fd6bd9922d2183fcadc9f1551ff5d6af547257e3b958886f56c4c6d870ae1f4f7f5c3fe8c575b96e35810e810c85005e90c1612186a47b5ba9bd6ac61fb44a447aca7612b690969dab0514c054fc6d15c5820a38af6c37d5a0e8ed27ac04c8dea829ed0fc92d7e6b446ffa535a577253fca32a89d80f35f2c9ff44fa12454bb64830d60f2aa4e76a175e5c7bc109ce4b51b725a334dca68c19712f2a12e0aeedab65a67987392e58bdd43dd9fb6451a0942c83eb1c9d316c896e5659ce9fb524271c3a8d59b6ac7ef9b0fa98013408c4687a26518666105aaf5dac2a5b7e3e6b5517e4d733c0e6a277651192487734a50ab5531c8c70c49eda8b1cbb4bbedd58b9598dbf942b34afa309a733580fe5edd6996565483dbb4793683b52f3ff3d5d64531676259113a605179ce63670bf89ca9f89c5bc24e5aecc3e8d86b29f0e336a403ed64701b9f5511a9a0886c66c6661c4b7985e961eb59773625ae8a8f053d7d6588dc5eacc69643be608c836427df58da022f8265f756aac564f5c205889b9e9c4b9af161ca44ef0b03fe276ff3078af0c2f015817735999166cb15273045c076f4d785c9aa5de224dd4055a21a9c04492dc63c38a885e8131f62e98d4bf989836203e0f232f2618e610f78d1132143054ba0ffc14a89e79ca773788f73a8b77bc7b125b7d28f50b311ca64e0f8fa1953f15d9504e5079945a681ef1380e97f77bd05aef0dbe69102ce3033e2d474402f77e4c8865cd1bdab95f2181ce2c9980a7aed74be51246f6d449b69441b122858c524d05d0ddedbb9f3a00fe2fe8e84437d5a751be4c7cb1a8e94dcceb263c52d7d8b1eecb06c86ace03e00153168734169eaf37513de58f469b1837baff42ed7df27dd1941836e00f2d05bfe0ae432005970e0dcc29425d7a12cf79e948bc608669851b61f3772414ddf255c13329aaea0e1babad881fa4a66ce7b5345c8b1953b75334cfe7ddff57539fc8cebf268781fe8900370c14837c955d9d95019413dc3410d6891e0052a036de8f1432841e74750a0781e3e03da03ac11984f9fdd3e40135811897dc6c2527f8c8b8d8802392783760cb47192e16ed21a5902b205d35f240510751e02f59b779e16825d4b1a24eaa50e2c0776ef53ae04c6f692b9c55b85ddb6e719e76a14437aef1438e1ac8df5a954de2660d0f5e791b408d434b200becc5e92ccede122ff5110d78beb01cddfae886af23fdd6b99edc64327382c4422b5fb4a16f7fefbddab7f9ecc9deaee948ab46bb696c4aa2732419516fcdae28eecbf90b37f751224635990b001e84694c69fcdbfafb1b7cc59e66d61a09f2fda5b39ce1cd2db61841166c54736bded7168669c0a12d19fabb000882d2d0c337f6967c4b59996e91a8145031fcd09889fabad9020b153c3e81ab08fcbef5ced64794b2e321a8b9055f5ec3fd09e52827d154dd9a460a12c150ebe32396cc1d20582a4147c7db15c43849f19b1ec8fa6d1e969343230b13ef6433fe7a3e962ddf544cd7341d8444f6c7ee7d0273d9c92812bcabb15be83251961d461abdab416864d465549d009788b15dfc68260b2218875116e66440462f8515e427ff60a1e617ded86cf12ee063d50c0627d18b6f06ecb0706c3cb225af5a238476430aeb3e2636f4d3858b92ae3522bb1564de057ab7b37dd596c8a0d028672cace44deddbdd4b40fb5c75089865a8eb9f3dda7800d1b529e8807b8fc91d5e3112850bc140e9a183ad786689ed7f2c61275530d22b60c229c71478969d6249fc290e7d7837c367a3c7c34fb39a0463552bbd4245bc694bd7540b398e3a41684a1d09e22710b1f5f1308de0bfd2c678568ebd88c2f11cb259d80c98791e8ac6e7416771d9c07b6f7d4e24482c45ecb06f826d6c18e025b47885f4670c636386207d98a10a357c10d6ddb43ae449bd9ff70ffc7a63c176579707f2745cd8b826ab31926dd0138039a910ac887b1e2e64270623d160cfdb7f5f85caf938763c342e46280aeaca6b9c677dca6c03eb5c9822aa511c14074bb2722b063a0d264ec41f940f13a2a5c1d10ec4112f58ebccda080fb40de0eeeb29ae49b8ccc7698df59379939927e4ecc61fe039d04b0a7917d42a98a09df2fc3ff16ecbbc9a12ae4c589ae8082cf87ed29adca8fb6e89fdd8ae688ef1cd8af5f80831c1abcef167d765eb211b79dc55e9e7e542a4c984c43c3485ec3570828cc3c172cca22297f8ca7ce2347cd8cc69219c8c9e1d4ff06b0daefb4d811adf222fa249de510da0f84d71e94dca94e7eec7a12a148f20cab16e9ccbf54a4d3ddc142297ec05a822ba0c970b93df9bf74c8d159edf4d3052123568d9040085c22fc40e10c2e5aad2667422d41e29722fb51c0f6746d174b956bf414a6ff80ba01a92d3701fd4fa10978ac90b003ac9002a5fc81d22b67aa16f8e88ce9b2d21a836f241627800bf81554c39792ef9a1a190da91be7637348d0117115456bd536541ea51d730b123d091b334c969467f6d0c1db3201209216299982432f57938f6c23b3a5c7574e84b01de61306f740f52fb2a19c959321680c96f42cfac50f0231a6b4ce45e78b362ef45223df23aea04c98f27a39e2927c86453196d2245fa244dc163cd1d924b4b1e8f813d29b3431c7cb7d34384c35480be4931910dd50e75ed64a171c772acfca04e963f777ab531a51806d55d5c954481c34ab8614cf7643f4530c6b65dca497c12635da3af3eeab7c15a2692aae6b876819ad4e9ed6aa28f4eedce35a86e51f4069cfe5722e8f836f8c3e1fdbc0f7a4c8b3ab8d3138ab4ed4e45eb1aa58ae046910f402ff2b41c9a3a47ae7120ca8d061a9d577d2d1ba39944e729d8b6b2c92ccb0f4e417b135426da1160a5940ed8f23c6a0166d9ee4e9fca5c2a7444b77f96c67ca032d579820e4d1a261530800959c755614377540738d45e4a4ef9db6ae4c730ee13586603fff12a2f605b150433b64d90c385fa78bb74647ea144f8ca17518391473b75d08a8024a8641e7d89118342ebd56ef20ca29762019df61f5368748a74fb7c2e733523261076f8f92e7811a109712ae93895074d813324b00dac573df4e19b0fd0dcfaa0ec8bb828b00ae1d982ca21dc8d3276e0df785873feae16a405f3331bd351477f8cea4ada4b253541c27c8d43a39f8659dfb14a8b3d0836ee10a49638b7588c68163fab7790cdb0a6c7e5118596a7f19eb812eb14fdf2ced64e3fed688b1d9796d31d84f091286aaaafb1feebcbf3a72742e6bc6a81ee791a327692abbdc15d3c5a4c2d00abdf154d14ef6e4ac6e5dc7d547a2ea2388d07f1bb4246070aaac4750eb08c56e75fced1d4c2be5d58608a204e481f8503efcf9519fcfcfa9373a3bd60adca8262d4f5a489ee5d44596c2a1b2bd3f094b2ca5fb482e0a4e83cf6d089074b55e0c14512ef2bda63f8336011c1211eb9631b45cc07d2a12c1a8240d9407e2a781b4450cd3edd96a41c02ab8312398c37fe062b5acf7a5044b0d54b45fce39c20111a29199e4231ff6fe76dcfd32cd04737d9737726b855c1cc7d1432d627c3802577067b7527ea81dbb940ca7e0391a0cfe8984582a980217258c28a9ffb5a22f0cbee725e5f2b96e871b3d7f8c6fe32518351ea695cbf79ce937aee5d385fb9844ea940f44ccc15fbd42244bf9e64709641d4202b34bcb1de9657b013cfa06632c803481153699a46b5e88b139473e0f8db9d2dcd14917248d98738b706e425b7c982f99255d0ff702c96b41c2a937ddad33afcdb02b3bdfbca6f3706f1331746cfedc12755501e2d3719100a886478005cc531ace0c258f6be91d02353c2bfc85b4a63d43420bc5a69ab4e92d6b1fa6e6b4a92afc525703962dd394c61cd6ba72c970589ac3f0ea6015074bdbd06662d39a56ce2b41caa0e2c7f5ff850628efbd26cbac1350c734f10b25cfebb575d53134459ee27da9a65e155c5ab11dc45444dabb82e67a1d086f067b1b31dce304c7d7349341be05b7a0a20a0307b979301c2e18518204d022cda6a530b9b86196cec7eb77a4cf1f7633ed7b6f265b4d26cef802081c98258f9a12022b1d267683e48591195eb2d76f4b8c5528f44a50793f8862f3218cc423fc4240686291acea3e014ba80cc17ab8ddb4fed41a10b0e31b61d5a96e1586c893f7d87cf904c4c524c6792d2969a4d8dd9576b495e428e7fb412b99a85c87f6ff6181082758a75556ba831f6f8b576378c2d2fa448ef0621fb9910945d4adcd202317a86d6d510c4eb13b51934022542bdab2038c4012394d320ef0e3131e7566d3ac6ac61d47a2902366b8a8f274eb419671e3d920e42f7dcddceb23cfacb1160adbf70679968d1f15949ee0215a407cc7f468d10a34787087fbe517138f96aa528906e6dc54907dcd5bc0e5d63e077e77e0106ff9521a3c2e1860c495745c52d59ce802fda62a210a3d5bb2ae4b39a4e2c44efe3732786bb4da9e4b60fa16a0a8db79df50e0c4621e4dd9fd3773b585ef9e680665dc7f580245d42b83fe13a57971096b51859f70fa851da9f2d928fdf71035f737c9264645cdf1300832226fa87d0f050f6d688bf1258fb865731a7760360e2826c02d9b49405a74f2b3e81c61d0f835e2336fd366f07c942ef08931dcd2b029136ea53b6579a61ee73040aa56caafe4c742abc0270b3c130d44180135d3d44cf9482ecc920f8dae844ae8197aa70055aa642a5df9806f0dd8ea1ad6eabe7703cf6da15c2af8c12f2c14ed3f7ff8e937440771e930c75b40300d40b0cb29a569119d856de692a7a1f00c043ca3dfc5555c95dc06d609f534e35fb85b603cb47fafe60fe37dd045fb076ae57e1fdd9a0d8c0845864e9b513950799019a083ee614b2e4e85d208a720174a1e8f54d2785de9f68534c2d13667fee860e5cc949cd7e816c051b01210ba323e05556225dcc0d8dfdb46dcd4c56f584d596653681bc1b334c274be18fea42ab49cff4ee8b50b5f49ac76c53d97c1628b98c3de469128ca066fa01170f4569f21f5a56e91330dfbad5569dc5894844c725820da0b631d5c722f90d2f043e613eae0eb2c464dfd35d8055e741df36c5de9841c2aa274b4778a5adfa0e1d476fc9b024492db3236f4e1ac3da305963cb954ea2c586f9892dbedf190cfc07e856eac33bca32e9b4902c92beb54cf473cc37890bdc1b3a7f342f2ac05c03c4555690893a332b4c6ffd2691bec5c8b831802261576af0e16fad4f726896dda0379cb492c3f93d43858482b248cf21f981194abfe764352be85b8e7a282f89f0240bb59965c1437a81dbf345babe3657b9c9c78acce7a0e5d78fa2434dc5d41ee25f37d3933f9cdaa48ed0104d384952756c2cea7e3925165d0b70d7f1e52a642818bc58236b5f8655472d54f82312826a30f5d50bbd71643acebae022eabf6f49710f405e771aa1e9a37ff43d3e3493c01d842a1a9be64540f1d047db2f064fa0385d01479e1f6df7044bc43b11b0794578c3f46dbaf724b077b581f244685841089b389c8ea33d328f573b055d1b3b2405387e8994f00b35b3f35c22d2e89a8a9f2e556e735ea9041aecbab3f86e338329c063325103abc731240d88d4b1c3402edb019af429faf240f0eca6c5e9f309436fe6cb1be6f6be3f6540a1632479dc079c16dd9be3681c4c21bb84123f42e7426c18dfec789ba0c55780d786e6623e8b7c6f7798dfe72e7573e6ff1dc1a21a11f996252f5130375d281c1e4507708ea92d9a2a07e9dfc58d30e777f9fc8b0aee12acf9222686dbf87392cdae7d25ae12c65ec3d0548b3ac0ddf1faac14a3ba94f7709400c2a48226a0b22d767b77181fb40434b88fbfc17f7064f34cea0ac6d240a4d414df53322ae4294b0790dc0b17905e03b3f5e1acb6525e1a3942e101fb020cad291ed7b3c6a2e8582ab00fa65625940f8143bf2ea456b52d27cc1b1ef9d34ee4171923537165bcddf5dfbd564e29bc0726f997987a35faa575ff7ceeeeb09b7ffbb159024a262eee961d587fb1bf3d8d0977bc44f87a967601a802d443efbc3141bbddf747fbc8fa8e63505cc2d4bcd24654f47cb69568006318e3f5b2530bb5567e5dc3e235d07dfbcfc52d9923cc7535a8d335c65ca29fda2216e438ecb6aadd3ffa506b5ce1a89c1ee558188787ef26c259e909b100405b4c603e4cf8c91b5309610c4ce4d42f859f843684c0def2146e53e62e6c11011dce4413a3c7f51c608963d7080e4db48739f15e2d9cdc5195b121a43e3e6c9ca2f606b1c54b8d318e50cf76f88e8e3e11128fe1cb5a3ee3e6e30ea13b558fcc5fdb029ef0143ab1c8bb8c64a8114c50d6530a9ddaf91176c50a21f36f11c36eaee9d8bf82de38d5ceef14072672d5d6b5d7185c6acfc7e241f244c47746241e9d53443f1695f6a70a19d539bce1366d62755c683f89a4b5fc9d51f7670b147d96f0e16bd9f88fefb9a8ccbcfb77b15b3f4b18951141390e003129126696d4891533642725e87adbc314b90fc45a89eb82fac2e95e9a0cc1652ed8fcd556f1591b61306aa96dd2cbcc462e1c30f70308ac63ddf923a4a1c0ef62f4ef1f0a3bcf6fc8d14dae608d3999efa667d74b7a34ab5275741fb8d72a6a862c2c2bc8f32ef05c492c34bd39518de3d81d0a5f3416445fea018d80806fa7265231b115fc0e1cb6146866ca6c53243619f1bb6f47e958544d5a05b43c2035eaa40002a44889000f2572b768d3998bfbba7259edcbc33fa9b3ab64b050e0ffe0024788f19981f89ea855322c89f29d6a8afa89b801509f5a1c4e8ca4ccad78b688b45376a0e8560495f933171a739d455c62ae79cba651b80883a98687e62aa1c7c5b01232bcee14eae3662ac3c8c232d920601114e4ebfdcfc9c2418702281de6cafd534c100c3d5563daee74139760342396eb83388cb81f401dd91d4276257346e6086001b038bdb8b03151670daec8642e775febbfca12775070ead8bd96adf30e24e89841b0ce6a5ffc1c8482e305737739a062ae8479b0d31d5514cd411f25c246e9f93e69913926a34877cd47a5a179643127521f56b3fb4b42a466fe42b4c9886bdbb767294e4fcb5a42310104f8a21716bf6e59802e76a61cbd58eb87552340156cd7a62826d4bfcb023455f92e202b257381b23ccce2aa3f22775359c00eba1f282944685eec0687e35b4fce8253a2557c68ebd4a74181d233b96e2790ad6ece17e4305669bd7838d3c0ac8f0753a1cd8d0d10d2da552abf71153027cf1d82090154c943f4c9a4b4cc01f5395c70231ab11af1ca68c58841e34a01bd569e63aa7f3b1a1c6f243f6d2851f351ffae27cf8483f05ad4847f6b2533d9c7cc0a57e972a6467fff79d22885a29474c0ae2d159565d7c38754287a580971d44b0686b4418d8f88000089d8f8a623119b453f967c719f1ccc14785e21cbca7afef858e1ffca6cf97301ebd8ab42e7fbcd76702259659ec8d3b5e8210459481b2a4269a2823be6005d683559f001e0b80fd6ca4ae11bd2d368586fb72f8a0eea090a12cb09791fa7550598a4ae25a4840df2aeb976609481a522e87025014f4e537a9a4cb172545a3648041caadd7ac1deffc80a77668ffc6a94726ddc6c1d28e2992f04941ff8237567ae98aad3cae2ed3e714bf1d667487d576441a3f9476836681d2256daf6fdc70942240813f4889b9f9c489343171725004bc80086b02561f6f043a70b73b10fc88b3bb71c04990173032a8c64445cd36034c3113b08df04aa1aa5076e8125793b2658b40617b914f7816a19e71691cb3c25d840549230a22aa51d8128d7602fa227266e6aab76945b4c9ca836b6b934893a99b91c324caba4c9a9fa5bcfe633d19746651843f4a51e29e105ff61074bd1c4043c6a586a08a8f86f4a0cf74483d10afc34c2f48d89e59c555017dcb22bb920af945c0f6902b23a43e14f5b7bb6e7e7cc00168969518b9772e4813b4aea082cbda93d75903a7e7f19578e7d6de19fdb9645aa701098cf4e1e8545eddd2df27094af3c3481d41c0a5e157b10ada94a70cfab4e5549b4a8d052dbf6ccbe1feaf18e9a43a288415a008e8b61c1243a63188c0ef6d39cff3bbb3f8bd4221ca99f773f01888d04bb7e5d4ecc8b188a1c7bc4f7c41ff5130920db1c4d4b61c968b878b4674b5af466839a3bd0fc0c0eac32e33405728e8649d9a06487fb8efadaf74f5016e2fc7a31fc498cc3bace277023d473271a60d5d893fa1f5459b9758a2c44180babd8e8f174d2ea6a6064bf77a594a905e5410c28fbeccc21b0f2640b8f59c68af68df081ec23771410f72354923be8fd52ebfb59e63c64831afb60720e12106136ec09503061b457c3813164afeb0af68eb7bcb052043989ada1a0b157cb97473cff5c3ad54dca4d86aa15275fff0669fed0443aa07914fac42a62e9b2b4a97979ad23876801728673f5043a3fe13add4d74851c7d6c69489fa3e4eb08eb751568f8ec13e9863975431c2425b666a1d088e18a38976993c494bda99ecebcca46ea22d755e01413abf988a2cb19c05b303629248caa2dd089bf05ca13518cc67bb19be9c63147f89c37d10ead44db46bb7143218d44975b9e068a2ddc09e6ffd3995d78365290c3b6f059acca5a2897633dae5027eb1404cbb3907a7a671a937469009e7a9a30516e60625146f4132bf5e3fa635caa60ab04e8472d3a3ffc302c759c05e4a7f583177b590c40679999d24b084719ba4971a4e7f930e2b6f824a11809e736514f8d00db799230e8bc3840b21371eb2d86423b97142840ca47592857d0be56fd97413785512aa72dc91c796aac0a61777968246b339957e1c6bb3801d196cec2decc8107daf16fa2728e00b3134cdc5f20efe96303eae8b4eccec63618e6bf1ea80a7da2ac2d875b36de68da7315ad7690a9855d8723e1468a30fb5fd9ba61e0bf978e3132fcecdc1a03a9d76509339655137fb962ad1ca6bccb250cbafc99088832a2890a54c4a60983b694b04fcc94484647f5726ca534dbe1c5d1379068fc9d65f2b34aee35e9c83f0334bf00648e630684e1fed0c0e6a28ae5684b079a0e9c33abc5dead6fe7e037e2b1038b18c0be3db4dfb2c85a2af2f6761bc48bce8976fb8b7a7302d91cc0c87111cefedf4e6832bb36d38c8eb603d37c1a9f079ea0d14da278ca6589fcd036bd997fcf929b0c3b6218060c832ad1dc84ccb7a6aca70e345bd133993c1e9302e19142cc8510f2d75b68ee6df64384f7cfd44269f9ad6f0930f7f0c2d41093897677f3d506393e7b6c2edc5b1b6952827764043b440751ce8007e4720e967647d3cb3a9541b2729026ff4943606d5344e2ec43b106c2bdd192dcabab1bb3072046474d310873521a09ff1b88b42ea084e77bf624579c3dec9a3029c69400001a9172e84128bb6245b99dbacd1594b169c5cfea593b07a6c8c5c82a6300c265ae30e40631da548b05e80eb4b3d111c42666c8d37d6f75ca37300b749813c45a14c579119b97000ab59d10c0b3b86c486e3465db250a7b7d29fce0810cb5785039b95a05fa96d90f365db21ec6b09a72d67fb16984b364af4e0c712f8cbe4c93a7819c4f50a5138d5f2004fe92eb1734cd4dc83a986dab951bf70a934175c9257e88d1d9e69206b45a6e659fc1fd77777886cf3be8eb54b74aae395756611a0b9855de42c40595ac686904db722c0bec30944c58be46ffcb1246badb9c98e9333b79f72fa9cbba06128b23e5698ee48821c218aee526886adcfcec5b7599f3980cc056670f1be03bf29c24b353d87705072eff9691f8709839af271b1958f1f28a5dc1dedf36d527a7e3a1152eeb26a69d588eab182a775433631d4b6172e4469219e5ae737b3d2696df7e063bcea6b250fc5381ac944d91d1c148b464776252c745edd905086f4fa3124cf33f9462a263d303d464313e7113a0e596f65b03fbd3315e9738a7a3042c8583a1118144179a6118c3dbbb41ac200e68d339225e70050ea35a85251f953bfd5b94c870164ccd8835906cfa6b0e2f2200403d02fc8aa38d91031342d8ce7f64571bfd8464f802c854df95d73da0a37c160864bc2f54c8c95fcd70a27171788e7598391cf69014f918bae8c370b0e0b7500e793602f905bdf5a8f72d0fb51da83f82880fd9365bed2d8634e4147b03070244e318cd040198ef57450861c137793093c515930a0b493d5f856e9e5ea2550c1fb416d61560598123d8b1ded5441c47429e744b2b7ac4a29b1c7192625e369585bbcb330aec97d180b439570e5cba298d24c93dbf22f648c99d753431ee726d2c4f075c8eae462078fdaae1a9ac39446b9bd0ab07e3997758eda45d670c01c02b8a0383405a17f31381015c45b5862b4ecd4d41a0a1ae1faf0c4a93530e1be7ba0aa3279e235d5e90767d3e1f73d82c1b4599addb11ff490084043c1314eb9d7803ed8b7d70bf200d88c0f99306f22d0105c0c37e0cc35c05d20f4bf150413629338d2fe61ea5f42b3de9b6f0cd3064471e075e62eb9cd3853f6c1d0dc138489db25d9056561abbc7c34362ac535cea1a262fd1a8a392965d4b3f76af804b20141ba2e6e1e1581c584a9149e72ac6e44642c53d0e33a342057b161b43385fefe67dac2f31a0e5ad587604092f3ae90550a356a027fa91ad5a828c1ddfecae8e6dd88cc970a030d1f3451d8ea810a11485030c8db5f7d38270c2d1f3b2185f657a197353eadc6fa32bd597ae1c751f70885e503c54d3c20f4a56ed1f0e966e52164ae68173228c8a75e215abfb35d60083d9c2df4118558841ab5d64fddba55ecedcc3371224fb6158f7cbf177ac4a106704377d5792d6a661199c1add9ffbd15c004ca3d7e42b7e39111a77311fc096bf534bc2724bcd99399637672dd1bf0af668c3a50b3cce93e06913e4503410f06a73e8c33b21d02d3515ab881269f3b4d821928a9146da6079ee7e20f2e5cfe019c5f91ea74a75b6e07a9cd6a4a3b6a227d4e76484c20d615a6c8e37ba203cdb5e11a4768f42de8370ff3935b6ed96587297c984cf1dc535b384de7d9dff907736d63d133e0a8b00281a339a407db9d8f0f9a39e010386393f162e21fc96fb3742f55a6d3456a099e427a047d807078ed2decfb743d0e26f21c7371c0940706bf36ccb230435eb591596362ce09054303f7456010b8f0f3434fd7156b93df408f129d91ecca2b05e16bc92e8a47a6d6f58bc8354f49e9654b74798e74143093a64c12f6f468107ad58ec030f18d9a9fe1be8049b66a3cb21740a8361cf53801a90074619724f3bcef096f16340e05b8aea7076832d371f482aaa996d44bed05f56ecc81174008b1e0d515b48c958a2f0415f1d4d2bfc108f79f09ebac4a2579a720b013d67a8dc4b2b9b35b7a0a63a23d1307589052c2667156c05ba885e9429e0e988161f8ae4201c7e1db60cad18847af226a6669bf771d1cbf3f1f9a5a2337320bdd20e38ccff268124ccc0745b418185753afc7a010f5e009a960673a2bc175c1c1c47436b6d60b992f81c6b09e1f03c85d50aa371745a7a3300ce79a8c4e0450b1069441f7528c14002cca30566d3fdaff7e4ec0533c4c015cb5888f833c50cf5ca6894326d0fe10120bda3a8069970ab3768cbb8ba9390b55004e7418a2ee97764a93a4a99e65296c72854c1c8b6c78c9bebfcd5a821862150d39b15b4b763f38746896c1b73fd1c3d4fe52657942c6c992db7f44ba69fc0662a9cdea25665415ec294751449235f37fe74e36d69dd5e3127039ae7bd578c427b07d983e6116837d0d2e73e2980bb0ccd32567e1a9d19928daeabacf74d6844e07c489cf8618af207460b6b61ddc47338beab24107f1b0364fbb8f1b672f5db5d10f53bd9d87c260c5f5eb3ce4f465be5edd25feddd537aa86d4f5cc2c2d74a30dd857f7ce6deac206c79d1029969a4443990a56ecb36cdc513ab5c37ee38adc6afa48fd175f122ce66d0212980da77e7fdcc52d7036d78daf7b0e09c421057bb05778103a240c17ef7cf403828d85a7cfdbdb7ae826be4f6904d8e78c207105eb4128593f7f7149fc79e94ffffef0682cd9415a80a8acf64876b743c988842557d992e071044b21ed35d6e460c901ce7e652f8679cb6d9d195a820f6579fc5ca290e710994ec05a976c751e0990d74cd11ae5fc89a3609e9bcc533de3477e33cdf6a55181d7c0b3776f4cdbde4eefa580779e20c73b7f010ea577c167f97508b69a5bc5d9054058d9b87c65365e34948008b55a67a5165c7a83b359650478401ae8d5100b2b3f2ef602af26dc6ecdcd3269bae843582f1e9459a0c0810bee60385e7edcf749e51c426508450a9c161343b133f7ce504b1259be1af63c370a268586d9ecdfd02825b8228dca384cbd945038a28b5632a9bd43730dfba020c6351f310c23a934fe25404cba8b331226703391cc5ec67867bb161bff045e3b0cea20fd1694408b49d9e2451d2447628d35d803059a7f3420dc2863b37ac8b7f51d57b0105c88093aa327a9e0857a5ed7dc17487e230d7a191d982619f6019b47b530ad321d9093c285f1cdb159d8423d7b56fe05b40b437e32189bdefe0c0b43afd1007426dea7d9f4ec3a278e58e510095d67b1bce74c7354334e0f245ee0304c3fec6e7c4fa35efba31ff251198730ab1937e15526322007916ed0b0d28baa98b4b914a8cf70df58783e7c0e27b6600f953c88193e245f3165e41dcb223e8302b9cf051b652edb7c0bfebaec8da54e5bf1fc6370ded61ef8271749a9e9bb465ed94339e8b1ff8692f9ce348c3f93d629cfe5e0496f7907d4f947b9f6b2a6ed61c2a55ef463d2f6d8957c548a98decf964f657dbedc2364517bac08d41430813ea58372a327cf0b974f08987c504f50f8f56461e4d662690a906483b0c75089dd5fd344af749a254007e1cb85625c9bb9b853007ac4e8c288a9c6009b9e3eb57ad8b95c88e42f71eed7ba026f6f1efab07cba31000869581a39dfff26569db8e2f6fc4938b1434e7edad27de373d44acae06d0caa18ffa19abbe85abd08105af51539637e7afc2792a240a035ce26025bd8106eda9eabd5f9d043dc74e806a4bb21fac20e02c75c1988b9fbb638a7c9bca09b395257dfd0a5f907172aaa3a970b8b85911837fe12862b292cf02303fd005780b5cd0492fc33bf1fd08ccdcb24542654ad0147eb68994021e6e391eba246975d053a3993c744c41400bb80cf6d271debdd50d214fd51f8c63f4e5e1390afbf01298aff1078062e61be485c50391ca2839ae3b3138cd1441932d6d4dac0e850bb74e61f4deb94f37d8da5073fa9a7682773e8477d733cb6c857d3621ae3a941b7c6dd86f57dd56eda8ba5d39336e91efe376690f16e2862b546e7543fdd1ed0f99c2edc502df92432576b9e52597a09384bd84aeb24e7ac07850e0438b65779a7f13f3cf00840637cc753863da0b4ef055ce3a4d48052a7d661e78e11548a8e503149f7db7aac14f7fd8b0160f32896af281070b148a7df78b0a941a5b786bd74e685db8cddd6cfb49b110fa40a644752fdf66c1d0d88f714ac29f8273fb107c7dbc5652ff26cb2e4ce90dfa52764aa011bbf3b4d50d00c38c62fb669a7640911fb1a71cb7583e2605b3311346b4bec92784ab3536ee824aa2c5a4766409e5a3cc62c8f37e946a20ace0faaadc91158bd142b36d033f79bded22c32a91590ad63746d35e751c4290b165c67ebaf93f54ff9788a929aa3ecc6619233f39bfe3f57b4cea31af7292b9296628230ef1e014663b7d1305800f435a90f56476ae72a19a657f77d3289c52f77f20d4712fb32a2135845db0d14816f8b0e6e4e0bd330b59c5800f367ec55635496a73a3319bbb79031b4411160295f93debac93ce98fab7a75405cd06974a35034510103383f68faf4cfc160c6b219738746dd018c4a6f40bf47c1ad8357c3f7b84f2f58e3bbf53524fb8e2f1865d4e32946b2f647e0020109aa44ad704218651943390bb246820fb8b7a2cd0998f65481356075ff82eb3a315465c29b9e0ee5b78cd4af3d5190ea2789aaa818240a05fe7744680e5820da554d07d99b5564aa1ddfcac797413f66213db9baf81276aa81df87456876ebd370a312eec14420e7558c61373a8e8580f83fe9d37c640f50c6e5f32d92e5bb5718d42fa4523616c5fa598c24a4eddd6defbda59449cab40dc20d200f77efd41b3827cdbcf7fded4f187cd562812681e9db80d3deb779c77dfb9e756e0e9ab46b9ce3fe666e4ebb2eef6b80ee6cff3b375d01e80f7a9e4d7eb0a7c8e3b4a9a6ff02da54e4216eaa4f41e8d680a599baede5f8b6a560892bdd0b5ed05a1bda5aaba9ec21142b682a87ecf7ea209da6ce34df4fe20ddd584485262be6a01ba7e874f794f024e6a8735f31079d9656533964fb7cab1fb46ecb1fb65dd935db19b3bd523b0510574a2ba533db23f0a4b13306052048f19c3e779ce64066d77392eeaead930a702f311e9d364df5b919e3a60b631b381ea791ac562fc169bee751ceb42b11fc5446b7bf7e8985ef6f8b5ec8e95486fb29f2b8baf4e9fff28b93bebff77ff9bc3c2795e1b475723ea5745a236cad37c25e2649fad8f569f793c3a1b3b644b58efdcad99ffbbe535187d521368193e34db5ba2f71ec4b40529be36c0fe6be761a9ca4fd5319a4967469c680dbf66035b0bba79db63696aba9fa17486ddbae3aac482d2d2925fae50ca72efa9a92f434b6504addb95aebd353d2bd75c6d04b6d9110a7ec8fd7ca9ce37aaae7c1fce9db89bd8a031502420fdcebcb3bf9b2f1cbae7113789ee7799eb727cbfe463002b0b4c0e775dc8c99d7569f31f34b0b5860ee38e236223acedef7bcfccd0d6cf766de76779d84a35c7517c1cbfe934f92fff2ff423ee94d1ca6bcc4ef55a749a1a30248bddacbb51c0686cf75de570ac51560aa9a3277555a40d4e1db3ed84deaa6944ae78a3b7649e349de14902f871657af8642767dbf3eecfa93b4db5a0a525b821f2d004909e0489329004939016b8c036bdce5382c0a703989b63f8ec3ae011c667512eefdfd9df354385a21422370be941c268285e8f85f1f76a0b2d4b67308b6df615a4bcefc6b24f17f01dbe771ebc952b056d1860627ad05027bdfbdcefdd27f2f9a4c265d0201b2ef07197fce1851af5654610fa2064c1b38f910ead3b85a51a5545250f8e4aee35fcab7f49ecbd4a40992f2824c9a202a1f0f9326484a29039326080a14326982e0b0874913e4246a60d20431993630698288271f264d90107360d204b9efcfcd9814143e99c4f0964a390727ed773b44f9340e28c0f6757018a785007198eb242c6f7f871a3380bbec5b962606f0348ea5614b65e81fe0bab51caeb1ba83bf756799ce42e3c38cb16fff9b310e4c97fd99191a345cae9c4bd4b62c7a87eab29ceda10de0a4b53c780727edcf1b4753b958051083e4ebd95d19b97cc08b8ebccb219b529de47a9deede84bbd79457afb5babb7b75777bc489ef4e50edb436749296a5cddd10f5ed1203fba2501b4f9a691d662fdef53d5c5df35ecd626d968ef26eab0aab5741655819a956ca5a4bdd524a5dc609b03fbdd5b06051702dbd21ad8f04f680a4b645a2ba7faa95034cdf75fc65f88cafeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeba9cf1fee08cdc9291dab5fee830196fe39eaadfaad8fb7177777777777777772d6c8adddddddddddddddd7d3a8ccafcff8576485406cc3127a7c66aaa6bc66ea6eb662661c772a602662c07d74f96b0ebd3995d6b9d253adde4693ce3b04ed7c781810fef7b295963e3378ea9d0c90f844c428ab9f7e67caa5373ce6f396c721eddf45b33a75ef6cb1e5ff6cbcb1ea78bfe0c2be7c696b16bdc79f07c21bccc9f81cadcabf109869224e70fd6174e76bfacefa49314070d8c932f9b3a8c85c9a493b4b5cb97d60e8263d3566bcf191b278cacae3956d774cdcae1f400b6ebc5c1009c9f3da017e90f63a3879e63ad0449d89f71d81c02126ddbc7c164db9b04ccd9fc04cc19cf4dc09c0d61a207f7b3fefc1baaeea1b3fa733e911b7842508059fd1e3af327e2698ffbee51477428a0fb33083a235147ccd9fc92dcd3e6452698978d192afb7e3e0d95957e3e0e2a037ffe0c54661ff5134c799be79409c5d94945a6d4b1eb875b7cb04eeaa619296503c0fc3265fc4b594f19ff2f7f6b8e93f447e14cced8756bab83fcb0eb18c467279f4d71e72706391042132b084189cf8c2215c1055b042de1810c7630a33fbd9ae8960536c4292ae32659dfcba5699a3ea74c2d3bb0edcf1fbc54fadc95f8a76cff19f37cc6a6bba60c53993903a74c9cb2939e30ba4292153f468a98511748e1760b02d00ebc70057ac410be306207cd216ca1c9a6bb52cc997e885059b8ebd31750d9e9ebd324a80c14a91055728b26cd1cc2ae4f87525f9f12b1c2df99a97c49c3accaafeaaa9fca1e4ea64125e3d4ab8884c0672a5f7f8a0e9835151dfe8e2bfead5ee8a1b2932e93a868da0f4c80aff2f5e9105406ee38813f77a859a7dfd9e1d7a725f0c161a216fffeceae9f4369384e16a132f0eb0fd1a1c654faf5e97226db90432fcc4e65e8abe494dfa03e72aa175847fcf04d5f4e5b7d3a549f02d5a741a08e90bac5b75f521dfb6116c5d2db5605d87e396da607f3dca1a64638599fe65458398bb0ebd75abe2a17b8061d14fdb11614df3ecedca6b75697a61735cb8adf775fd225c41c76dfd7594b8d30f22535b26b4a1886e1d778788170eb843f6fe6876f73f8a6cc02dfbe6803957dda64d225fd32e0039833203e58a249f41063db17338ee9ad2ec5373d9871e616df028169903ebda5e1eff10e28e65244e1931882a505ec5b00ccdddb7c52d1d65d766e5a86dbfe97adf729992691350da24057c03650d9dcf54d796e1c87a174891f3b4983cad77fd558eac7ea9aaf92c7d4066b98cacfb27a74b21a41e5533f67aaa756c08114ac1a76760f78ef6c2174db9f3326409566590de46e1dfbdfd7a4241d3bc5037cef7d4a25830f82b91cf72cbd9c595d7a86cacccfda1a74b02e5f5baca0a6402f660027b4f6436d7a16488196d87487a692cad324726a8e93f5a467f4cb495b04d6f181da6696fdf03b1cfba1c62753fd93a640e29b2a05e29e0239ccf4b3fa75dc62cea1e1f26baaf5be94715099f953e4f1691a2a33dfd3335099f9727272ef796c67c6a53605821362b982cfca48536889ca7c3c2929a52b9bbad681cad09ea31e1c8af8a8311ca222a7ffa23f43ff4928dd7b5ffa5f6babf5845021b5fa50a5341a8d26a45a6103ca0ab8e0441021f8e2053b3dd0020f52901748308526b3f973bef78484f997b1e5a970fe7092fae02efa34af07fbcc4a85d814e092066d4a977058fd516339d726c749fa36fa38f45f334235e87af7ea9003102115480eb58b273a581c38fa5dc6c1beff7032071d8008a91aa8fb470dfaa455e27ab8ef25f53b79354502dfe77269dfeb53fa2f24d540c2717a1c752b807346676b70686872717017f5f183729c0f26601c9ca49da300571f38fc106d6e68ebf7709296b6db723c46434d8dbd288d69c1094b74808324a8a064469f3045124dd880a70538a0cde863faa365b2240b465e18d1c51235dc2725599a48410969df089713ffbe376321c7716278753999eceb5ee3bef44ab6bee7a02ebd92feb4fdeddd7bab9e7fb969bdd4b67704f3f61667c654eeb3a20d7d8ce3aefa38078d8393e4ae2456ade0388c07f17910e26d084c99fa42c61d010378ec87f7f0980ea62d6a1c664c5551bd8833694cbb7299874fa5f244549f7a71e555fe06d5a7547ee56f50f9153d84891e2baffa592bce717ad38b1963ad737ad39bbaf7303e3d2de93e3dea533e0585b30e7d93096b13fe136bc7e9518fd23ad34950c45c9e9bea9717669899eaaaafe2e5982953bfcb42f096993195bcfa650a37ec1e08aad35a6bad36f41bee15594b3d0998fe64721241109e3099504702ad618cbff4505fe2942f479599dd3df8aa9cca2a795697e953322ae36f32a95ac428ed2b9974f9a4a84bf215eaf245ab51da64b2f3c4ee288dd266dc7b0f326477ef3f76f7fe7b32994c68addb11bdab82da962471bdeeedc427ec5d2781b0ff74eba4974048d1c67392e259a636107257af3c00e70c2cdbf7de797fde6ba9d5d3660fe6d20b84ef7baca3d168341ecceeb4134f25d33563bb8a25a66b6efb3626ac7bfbaf09e35eb66b9ccb365bef7a3ac9f7f79b4b88389a2f3b0370beb45eea3843cfcf4018f7afe28ed37e2501290e8751f04b2cfebf885f4d75d5777d2d0b30cd93f4afa955c6f6f2019b2be972dc5fad9511d8c1ed4eff8c71cdbddbeb946a20e476fbfa0264fd6d613cd67257f5a691e797064060c1b4fd4c223f72a84f8119c3a9c2ae3f374e8dd1a82561575c5dd36802947e80ca4c54a6fa0f2a73dac88589855d7fd249855defe5bc0984ed7b3bbfcc98f92eda58cb751cd771dcbdd6da6b03274f68a18816960080f55e647eb2ccaf8c0157970da98cfdf934cf78ff3269ba3dbf6681eb9e3e36f7542663cad0b78f6b6c00d365bf346d5b244385b5f6cbb1c669e57ceceee9fd193bb3ed8cbfcc982e03213757d21feb71b0a89ea97982475ca180e997d8889b417d79647d1c1e037fe2fc05bdf7ea7bde7657f56080bdf7b4a54ec0e374ddafefc361e50c0e0e7b21ddffa3e9ba5fca769297bca50e9b2b7dd81cf7bd019cc4a9b11971c6068c9336090c43b34b8cb6c7838dbd3ff3dca0e79bb9c5109c27470abf136dc02f65baffc563dc4fef3a719757c58cf1be844176a99832de7b15f0cf8cf11e7b4e30fe8f083eed222617f36aa1041247464e8809c417e351f5e8f6483065b3d2b8229b23627b6f91e02a05a6fb37d87946dbcb3376a9705d5f803b3d84891edd733f6444cac20db09875faabcb7bfa77044100cde60c04352929dce55b6b451b8fe2a4d7a9383aeb32ab07378455bffb95e7748d2ab37aa886b0eaaf685b545dde1b6def551aa7ba3cfc1fd7cd5497f75c7e5597f76e05c6cf297158cac354ea9108b6f7a316de5fb1bde78ce0bd4412b70bef46c13cdbe38a6cefeb1673ce9a8559bb302d08b6f7f605d8b35924307dd4978e34a3621256e9b9efb42582034948494838b41e8ff9e0d0681ebb3eeee27eee9ba4285f38c54f973ba6af3ac0a60b78620ed4531de012136d568ffbc3ea617ffc510fb940d5c5bdfd9deb535ddcd7b875029798c86767736fad688343ebf97269f7e7a2a87a1c5a1155c6a1f1883649488eba49fa6e92a2242139ccf5dcfee99b24244c84bac2a4a19b03bfc64fb5cd7d7d4c3469fcb953edb54bdad33d2637cda55cfe80b43f0dc4d495fe537ad0e61e136dee53724997b0bb44d9b8f7208e7bb755ff61e2316fc63d45aab139e3de8772bc49759fea3d4edb1cc7715ee3385ae9459b9ba507e109ea4b9859d22ea03cc162734e36f7d3976cee7621582ad9c7fa3e4a8f6fd263b699950366878f1fec72b4ec203398500f9a728e507cba43d1012bef39b8ba64f6c4ef628e538ba5e2e6f425f1c1a75eede5702ebd6d32658712828f5363ab5ff969dbf8a7d863859fe29fe28d0a0ff04d0fe25c5a0b3463dcd69ffa536be93eee336340ba71698b9af6784e8a0f3e483d97b65ea793c5c4d27137eaef46699dd397fef4dd83a75c7ad06f9346477cdfdce7eb738dd072dab6e9699429b0e9515b44659ffe993cd32d969e6fee697098631f9326dcfe9e69177856f0bb3e360cbeff57c3d086e20d4d5c78ea5c0741bbf4a7b7e2014a7f7a3007b8c17731878c0de2c7fb94bdedb749033ef77ee430f1b977280ef3d064f277d1bb20346977e08b4fbd90128165b893d408b8bc3e9b23028b27c0e283949bee2fe6c81bb4a2e9a910b04371927bd357ceefcf6dc670efcd186ad27ee424f7b3b9af42b82c016dee4b3fdadc3bd1e6dee42fe6a8dbf5f52902c6d7c776a507ade8e3fecaea6bdc73497b449b0986549c4ec26c6fddd0ed95d619ce187f3097de73f7e027da805fcae04f8e63116f60b66bb0b371b243ddb0cf04cd1aeb512afdec1efc2fd349748511fcb48498819a557f67e6819fd99c954af907aa0450cfac94594accc07c0a8289a01978a910250801d04bc90cd43fd4229ca0e068067e29ff3099386106eae937ca30d72322109a81b70a4633900bc13c91e0829e19585a81163f33100cc13c7e4b88d9148213aa609b95760c433093af299e28729bcdd4bc94cc9ce8881920cd7072ce0f702bc9cc3f4014e4332b31788242063f389a81221538b8cd40d3173c3f33f07404298266202ee26806a6c25266416106e65933c1078e66604a08e639c511da0c5c094b9955c50ccc144a11867a66602a04330d153c1134035547498866d36f9421987f9848a8c2cf6cf502db0c1c43304f221c21cd409610cc530927e899812e442560a26706b2423053231f08cdc0186129bf94ccc0ec43c8c1126a33d02504f33c020b8666208c10ccb30a206833304608e65984244333f043304f9b139066600ec13ca360426d06be4c19d4ab0c19f6729df795c050349d300a95a29252adac648c2c2dac960c19325c60c4f80cc3cbcb647f6756ca3b338e7b30775fcadedf5c8a3d4aefe9213a5457fdd283620ff03b3de447753981fd6f4de5b8bfdc74984e49d4c169cf299d2853d9816df5ccdb01752930f570877bea96d35614b884d932c83069666d11e16a6346004ef0c48593462680e972033cd9934e590e54c61fcc81cabe29138b3501a5c00374b03c79a138659487cab8e75defafc7436506b061c6d0106c7f8e52a4d4f6668ca53c944e1a9a0f43c01bee4083d0dbe97276b1ab0ae655632a97999794c3beedcd187f8f0bda92f2e2937377af358f684f3a3f534964dfaf71d7a5907d350fef4d5afe50eb156cbe3b74d884f95fbaefbb17b274781058bd95a26f99c0fe65cac34ae01daad77a035a0f6d6bf200d72f531ecdd8dffb204481b45d014190a2677333f0dde009c43af7a9c6a13fc5d55671877f07eea5d9739241ae66ddabc1fb3af49dbec3002cfd7c29ef6d7ff353fe03aab1d39cf9ec9443f03326c207c31a639558f655402e2c654b69ee7fac1b4e444c7ffa39fb5837a43c7eac89889ff273f63dfd31620294528162617ff5fb34ab87f829e2efcc38560f93e977669c0eb99cb7fdf9406975d21a3edda12e7dec1f760778cee62c76faef716a0cf5dfe7380cfcef7b382cfcef7d802f87d1fdbd8d2bdad422eae1cc073ed885a55c3711fc63d2f8fefcbfa7dfd3220e9bff3df5b93fdf4bc0d30273f1c5fe1ef4441fddf3808026cdf083e007daecf4a51bbc477d8d571de0928b3e547e8a37a4f4105f450f41bdd8c3f4297ac849f39c1ebf09ff802a95521ea587ec505ddfa7603d4487eafaac13b8f4e0a7e4393bdd134ce77e57cf38f9bd0d27bf9793df7fffc361a5ff3e078fd1a06b9cfc6aecc55ddf7fdf9733fb3be91fe4f7df0f27bf1ffabeafa1c161f7bf3765f1bb2f9fd6b93725607d4a04e6c16e776b873839b1c8f16d1c9cd43e668c7ff5e12e7fcfc3781c8b2a0eee721f33260738350603f3d23e035cf3dcd50b4ff66b4f288aa06417ed708f0f858d68833bfc93fdc1f481c3d43d6c107089c1115c117f55dad853d425c5220f708727f1a6e53fcac2620241b0358ee3d8ca3a2e93d56ac17891a5755aefc283f5e18f2f8694074b97be5d9eead26d6cb184a1e797e2b7582ebf7ad5eb087fced59cf4555fdad8ab6fc927f166fc691aa916e29bfe388a54977404459b55cbc585037bcebf613935de3b437ef06187aa9248a9fa31eb88ffc39eb9ac3b7c2beaa89b65d4e5ce1e43d5affe4565e1cc2e553a48dd25dd2c5a675a9147e95bfcf057af1a1ffcd2e5bfd7a58dadfad6b7a0608075e68b3f7ee9a2597e8a3cc49f79cc654bb3e8d26e552bcff92ea20eff456554ff79f5ac8cbfa6b6b4d4a0b2198adf6a85e2affe55427c872deff2384f275dde136fc2d769d1adef441ee10e7599819d3d7ff5abe7449bd598e79ef9725be4c01ea94c05fad619bff5531f60fc965737951eb87bfc4c434be9bef3b6c2eca2597e953f9d7252b55af9ac416556bffa9aba4a89aa9fa28eee68afe8d1d6f0dc1454d9683bef098511b000024eb9bcb6e124cb53d1c645ac416566a85f54a60695995a88f651830a60fed4e5103d3e18e672f519d8d96128feac21e62075afd41d963f6c9dd6bb844b70f9527d1d57af565efdf7b9bc2ab3ace4b26e97b7354c37fdab1a5ff5ab0c5a51d4ac1df4c5bfa12ffece0e73eba738c7bcb36716e2bba56b501995ea6bea2abbe8140b0b0e111e59f2dc602d71fc00bb6853fa1c1bf3c906413a4bba6798754d5dedec95a883d429ae3e7cd5cf19da5d0af11a54a6d2e116b598a728be0d31cf7267da58e5165dd2ddf261c6affa17c66fc361aac7eff3c9c63cc05d83ca84aba96b509910c7612a58cb87ef03ac23fedde574c2e36e5157f1475ddae89183c3c2f0455d83cacc30b7fccc2ad39827cbb77ecc539776b77ecc2e2fdeb0b47e25d33d66979fe28dcbcaca4aa6bb355d7ee5c6e5c7af71969f79fc95afaa5fc9bec70c7e8bea6b50d9dcaa77c9a5109f36768ddb1e803be8349d9e62ec7d2af52a181f7eeff2ff31be257f0b0a89ea671ec3f05938f4a8efa31aed587df8625ebd2a9743b66ac7c86a7da84b160f96177f6e5db25a5a8718fedc43f67cd5d754552e591e35b67eb2f0085fe4b17ad58b2c5ac7ea55bfd22a3d8a25cb83ab3097e2abc41fff24e6954accabf0571a8504877afe49a575567ea575581fbe10dfe1cf5c8a5a88ff8f1afc9c4bbb5bbe8a3b3c96b64ebe7efca12e6358275be6e3a7e201a676f9dee573992e6176195f54b97c387f7cf17379ecf2e1fc51a54bece2853f43182e1ac663181f6618baa43b54fdd42588f3fcf0f1cf570967a8f2a1edc17cbae78b7ae5a9f8a5add2517d6aa6549f025379fcd58ef8a3b8fa9577d12688efe97d2af5aa952e7daf9ef5621e73e9c31e5befe2c2f2ad3c9d64d1a510df6506eaeabf6f11c51f9f258b79654c3dea5939480ebabf5fe5b95b3ead01bae7972b7f451dbee7a73ea54bd5cc2b2af258bd98597ed4213e4b4d1d3fe567f6bdfab9f22b2bada37aef4b21be553af5e0d7d410ef948ccae5900d3e8b68834f51b610ba3d53f6e17d987170d814bf0c7b3c81e797d3890faf715114e78b9a0627a7dd25efe1e3c139c9f935baa61cb2e7579ca969c874ef6f4777b43d6dc3c9cae924faab6b3ddd55e70e0d3e108417f440518513f4605667d841cf09aca0e2072ae062567f87fa3eecc0049e4f7d62b80068503b3b5657f576ad7fbbcad5ea4ebd56aed6eadca5dcd76d3df2defbd5de787673f95e5de3ac1d747b4e52d60ebaed9cdb93c26d0c335a31d2ebdf9f51619cb4317c799fbcf7be1c764ffbc6d8d7b42f8c7dc57d5df605f76595f66d417df9e52f59f6bdddbeab7d57f67df952b5efafbe4ced5b657ca9b2effba4f19ee54bd4f865caa678d2b4fcd525f9f74132bf32e9d5498fd199fd97c3a6571b439e91c7f2c5ced46bed6d3969c96d676066ed65c361e5ccd5a393f665bcc0a0f3c780e1d262b5b08cab957ba44aa9a4dc7befbd5ffabc2edb5bfb6e00c6c096b58fe32e4b8311ae5fe2a0d176d5d409b8c4b12d9e24f7381c56a66abab7de24b9ff3c1c561d64880ef06bdc82d65a6b97c0f56d95c761f60bdff42fe4297b0e137f06f1617bdb6e53a6932cbdcda507ae8e2bd6d27b99fa0eb369921748d9f41dfceca7c51943bfe461fb977269da34fcca0c74dc0d4ff46477e8d58a971dc71fffc7d638b67e7c6f3ad9aa3ae5240ec21a10a0406b2548e2b505d0e79cb37a4ef270536f527bce18f2c75630ac1773f607db2fed1e4b5c3d3dcb1f5e39cb512177dfa4a4240ddcfd52221c5faf99978d99d7cc6b66e665e365e335732d7dcdd418bc9493f55f5e24ccab7ae3d3d7cbc60c8ef7bc719c3e4faa606941a001edf9524b35ea60a5947ea540607a83eae1e8ea47e77f9fe71c47cf9bff693cf358b193b59567e6ccaef4bf8efeb4ba344b070f765f1cfb6a21012bdbaa6865240b9205c978643db22232da1132da86fde0a0ad50994d5624c34266247b223b924191dd6448b225ecfab22b644bc88252885645ac7cb1f259415a11ad96ac9c5835b1526285c4eac8aa6705440ad1ae9f4294624b294a3182fda40ca53c913274c4e808db114547181d51440bbe38c2a7054847101db1e408278e68e208258e40e2882347f41c01c411a3234643a0d510450d4dd44054839014485270218516526421c515525021454d0a278640dbf573d072f4e4f0c9f1033302f623abc998382c94f1d8644c422635221b0a082d50b4a3a126504aa090401d4115811202890b9b8d09d1d013434232265d12425c5c712b0a834224c2236111a11021105f1c6521243454eb92e8826434d88f8c474693d5644d643659910c0b19510b70d9d13a10744074b48ea7ebe98a743e9d91ee07f683747443e294e08ae082381fa32ba8886209e704d70407e40363417dd8912903613f30231c866149c082604bc084a040b9c998c86a46464f88aaabca8aac407a00ed013d0ff071c0120728e1809a03829480a4042e94a08512b250c2154aa0420951286148094d5881b4eb2f00e906da0d3d37f8c86ad54564931939f9c4c9faa34bcb8a465991ad6801450b305ac0d1026e0be8c28a2cecfa0be06201471600c4027e1640b3c2664514562cb1c2092b9ab042092b90b0c2c70a216c45bb7e4e518e51ce91ac266322b3c98a64463228b29b8c48765493d914d918d91c4d9a12b689e2309310b2b0ebdb703165e0d7b739326d8098b1396d7e260d6ad2a47cccf68a825cf24e8c4d60253a244e3e5b08dbae5f63ab29aa31aa398a21e78791e78c02d518ece72b85fd50d80f90ac061baa311c4015471059a28a64b55d5f56abb1195f5f465463317ea28a7645720b92029b0b8c19292b2b7c42c97861c570b38188cad49f52200152714211516d48c8250217ed680b18f95d340c44de8f931e0b8eb6101212121212f26e20e5b4cdad481187711f83e1cedd9eb0e189da751b846c50c2dd2a0e92b82511e431185d18430c0fe61d46ecf8d9e1b3a3c88e1e2777f0eca045419a31b7560c0f43e671f91078b397d7b9679cbd6819ff52c3175386055dec1ab8e8c2ae5f7a29d83548c64b0cd906c945dbdc6a3727b51a834154632e362542423668e18c0ce361c82eaff3cbc83c3260f819046842001b01aae8085034830a66f0996106243224e701cd1044ea6ce3c514c016260d2ee60d1f19dae626746b42652fa3262a98b1d7157c6aec7504e4301a4048268c0612af880045280214710428b29a004504289a21e83505d17d7520aac4d1d4085013126a15d518ab56f34aa592e906116ed86e54718308378a602a80f9c08060486041376c37aab851045301cc0706044372a3e846d18da21b45378a6e14c18264dca2dc6acc05690523061882e069e5ed7b21d33208de0bb92743916bd996ab487dde1d7351a66510e49e1a7b1d6528668c46925cab311a40d9e6301b8872151366c314299d7bbedc937b6ecfed19734f2e52a53eef765938ba05fd00f5747154632eb7d383331e146f4e3933717a9b79b0a82fa9529f773bf0751405a98bdbd18b8b2cecfa2a21a0d4e7dd25a8d2e956743b82e23118cff364d76f296a3172d87d105cade0d32af3b0d23044e1688b28dc6a1034c403995d7a40402d2bb52218320d254e43885b51adacacaca8742993d225f9e9f23d5d8e2d5a755ba9c9903f7e1e0c6dc6cc210475d9868b29d3850d122adb44e9c9398a38e9f31383cd0dc6afe424317a6e3d3f403e3f3d3d2b2f8a36ab17c51bbbc5fa32a232f6754423090d201b886c98e2f36ec7d110fabc4b05474328c54583a109050155d78f111fd4c9268a0d92cdcb88ca6cb8c8c2cbe88604c6508db9d46a42bbbe0bc8155463ac1e9f1f263610d100a281a4a321e412818bf63a7a6d01a24a9c0d441d110d2197085e5b8034845034844a3484381a424dd01052828610504a91aaa868d74f2972182acc350ccd98a019535d9c10da3528316b406226b18f8c9005d11535a028824697db8c145d0310d04d09508dc108aa31172117edde2730ccc83d3fcb2f3e118fc42d529e912dde4c35300599864c3cf8bc0e448da65ace30457a6e3db72e909e509968b4c584bda0a0fad4935b8dbd8e6a3063349204d5180da02187d940c48309b3618a144abc8de20dca2ad770b4926b78a2524316130a355c2105143ce52809d01444295dcaecf275f4bd8e96bc8e8e8e50fa75149ebea421b46f4e6e2717cd4991c760bc100c0faa429db30bd1142eda15a6eb75546900390d2493aca82f651e1fcd98fa364c01651339ac062d2659bf0aa5b86835564313d3758519b48f682091c2081a400eabe1c824ab91cc15bbba68d8453bb968eea261981e9b1b52750109dd60c893c86588a8490a9544120ee362305ec3a06dbab8fddc7e8cf0188c9cffc191259c3318328cd739c65b1a6dcfa35dc2f44c21dc726adce606635463396cd506a99c42b81dedfa647b5f4e2144c9f967c8c836b7282f39078d9573f48c48423725424c9e185bb6ae5a2baa56aae52da79f373b6e9c339de72cbbfcbbc48001c3a5c59a4510774697400aca1d10acfb26e946c59ba427578a269b007b0a218a25c050044be14dd213873db9953749475cbe49ba7147506e926e31b67ba24d7d524de14be5b0e83831876f7dbfc09c4edd9e6051b17058d55840497ae2b14f324a8292744b3a32c2a2e8938cf44d12164ece1d63d2cc8e8a1f4a6e926a35db594ebc4922721891939ba4264e2639e97e4291d4644ff1a6d337494ec2dbe5e9a45d02a63f9d542227e7e6d12525dd24d51c769354bb49b279ac1239139b9373dbdcdd9b2427494d929824d5926a494f3839777d2656df24d59c9cbbded56dd7a1fad409d6148b3969807042148b4c9d6c01db2fa9935db91aecd3975e11bb3e78c51cad6d3463ea83d4bd554bcba64349a85075091155577d51a4b52e64a14162120ab40320cf03c75d1f75f3b851dd0dbe156c04ae25d5ae4f9fa49ca0449bab5336228c12a98f0f18723ce076c029e10a8a5135d106c5c4c97a0214aa96e2d554eaec940f3eedfaa69aa9b632aaaefa6188aaad8c6a2c657357fd7af5ca28652b53364e0738e48a381ca484f4045815ee5d7b4abfca3eecb0025ad9260d0a7c0ff4400ff440f04b727b291f542d05b592690f8b4869297057119cbe47f938a9c4545bf93e1c7c14e5f0c308084bd4e128a44fbc1e2d31078ac3505fbfeb2e2ae39899a1a1e6ba88384e56228edb348b49a3f2f56f93c6e64e1c5cdd573d7d9b7afa2d2a1446a5502cc03725daa4b8d0bdd271350cf15f30441286b8a36e95f7f207954c674ccac3106d541e1c432e09d48885856efa841e5128b6a61245d174f50ac895a054a89bca292745362a3a65e36e00b68414ab7c8b689312dad7a27e8a3ab88dd2a88b42daf7aab48837ad7d5bf45663e3d7a74693a6eefa37d74d8f6a6ce5ebeaeb3bcd6beaeb7b1187a57cfdb1d6942d8545ca28f544cc11635f9d2a2ab28d78072d97f06677a130c01865b753b6e9aa7ffa39632bdfa16a35b6a24db5ab6b35276f80e9cbf8d58aea532afff79fbeddb953b44119edfaa6fa622e2d935d3f34a16a2545daa924b8935da6cabacb946d57270ee3be62018413da17c816b4efe584f6eaa6e22e549ca6c33eef82d65a9d92fb6a2d681ff4da99ae7bdf7fe17720d88160973fcc3aa54efcae0bbb0f3f107f8d8ba50fbf3cbda85b4c5f8a0ee2d2773a046b50994f7b9d2e39bde9895e2faa3072b7f77a15b62a82aaf8d935f684e2084feebd1f576ff73348dd9fbe628e9ddd3d58bf6ffef7e9d89f1ce5b8ea1fa4fefcf97d9fa7cbef3ff0bfbfd1e1b4fd52086a21be4bbadcb11e970a391d58f1c406c09e5058e143dbb4047b4251c56d8327cf7fcea7d833856118eafcf085a19df17d83d4aeb41b55dad87607044baa4fcfd137d1377126fa266ed674c46a323dc79db83f852fc437fde14f5fa63cd6a58d1d6a21ee758f7f3a0cf5d8a4c52f5374f9f851793a897579d29e2e2df7f6c56c37a74b4fa79ecb35a84cca49aa434cb921182d01c25a6bade77d5d47b929765c0ddb75d65ace06e59ea3dfb910af02385fec0ff0741b043c311d01385f4a6f73de9c34f47baaa71d020d3b916acf4281ebf601d6f9feeef2f7d781e287978659ecbefb29d2b7fbd335a80cfd9a7a756a6ca5c696c3b869ef10ecad4165aeb642c0dcd31458c396f501a6dd835f1fe665a3f4749735a84ca88dd064936f0426bbfe0b4c0d11d42f2a632d8f5baa41655f5e5d83cad8cfc0cee6be2c69f71de7f970be3b2e755fe4acd5e7727cd4e0f8b5d4fb79750d0d5eeb348ea681068f7133ff2ada74ef3bb3baccba35df8c937efde270d267340d384a4f96c817dd7292099e3ffe7deb5dce4926e054fda693219070573de2cdf160ce7b451bfa1c676dbc6ad87092ba0d8eda1e1cc1c91196d8e0c9dad8a5bf10df93c89e543cd902d8130a2a8436f7d45abb69dd5cd6093284667b7390ba395dd2a94b1b369c68c3fd9cdc7b1f660f8504735a484997d6c59b7247a77e5a889742bc460d2aeb347d4ed7a032e1d635a8cc7c4b3445931d803da198c2880d9e405073797e4d7d4e97437cd8e5fc72673b9dc2dde94fafb3b665adfd4e4f27afdfd1baa79cecde5e7c3d3aee6caf5340dd36d77d5fd501f6eeabe841a1eeb7cd454172b28bcd4171d21a6dee412447126912b0bf7b9ebd3f9dfc74596d9b7b9bef6f66ddb022727ff5736633eb861522f657928089e0f2fa2ce1314c84b27125cc473469608a36a70465e346ee86201786a268fad312d707c4cf3d8833e6a84e325e233ee349489f829cb449c025260ac25fe314838f893810eb1fbfc17d39a2a811f40866815f7a94279b7b93fe711865813ac7c7bdc9f4dc5f23f7477cd73c74bb44e992853745da406650586cee5136872101fb9728279b7b9087e9a4a8cb1a05d465bd6dee6bbc1ee5a0cdbdb502b3b0be1f3f889dd97d96ccfa9ee583d899d9c798a8c658dfb3b0adc6589f6621c07ecbf7b0dff29fee719fa5878c7f7f080b91935f62279b9baecf759296af718b9b38c961a21a3bd55a4eb539bba79a93dc5fa01b747dee0f0bcbcfe67ed43e9b73826b9d68f33dc8f23bac1e2d2de3efcc58b20355173766ffa92eee9dc81dd4dee4c36097dde6eea4a8c8494ee555449b0f4c21dd1f354562f5189fe559f410fba3765a7571dec461d39b38999d283b1327b9d3734f831c067e89537cc03f0555976b10f55f46952e7e307f6ff39c9d82382ffca04fa36ce4be494202bd14ddbfcfe6eb441c1a0e8d8643a31571d8f738341e27716845aac0fe9388c6b3a7788343eb718d432b82bac2e638d1e6f3c4cf1e019728dbe69efb7158396b38b4224ec2381c1acd73e937017373d93ae9204e8823d28f025ef9d5fbb3a8cef16dcfc7c93d7e8a7b3edecfae3f669c471d4f52aa1aac13b08502b6a3e8cfe22d3b42fb045c7a4f11af360bec53fa70b2b6c41cdfcea9315b350c2f3266c440ba6480890980cc8b86e9544300366ec0623303a091611c0498a1003530b8f9327d351577171c81f3a5bc49c0f4eded02997e3ed8d5af8a35a58615ac44b5daac6b6a57ebf753eca05019777b295b29f799b156a8f5ef5b28b5da5496c70e63b150ac70813667ad608f8862e8d283a14b1cea12bbe8724cd1e5d8d2e557b2d3e5cbbd25449bbadddeac40656cea39d1a6ced578d22894fba0502814ca7d6aac0e0d0db9cf90fb0cb9cf90fbec215a77bf7cedd293e42e95eebdf841daa9d47ceaead08b24ffc7d11bf23c8cc791245faf04cc194f10f9ff8380e175feff1e59cfeaea0183b6b5eaf2d7daf65417a5f5b7eae6bac555bcb1f57af646c4b15b75e3fbfeb4d7f42eeae8b41d9a3133469f7e7ecdf5e6799ee79deaadde6cd0ed45922af8bb4630c6f8f1978fbf24f197af93e7799ee7790f9eeebd0f8629e2773bca05bcfaf21a79bd425d92648a2effc71163159507ab7dc1902fdf1a4b2033fb1a718d9cb880c72faf916d2252f15079a5de4ad42e6d906d52bd222c8cbc2395bfb68be234874deff12247d60a5436b7bd856118a652a99aaaff39dc33e535bf7da63d74a35468f865952e48f5212ae3bc76effdbecae9925a9107b8af7e2a74dfde6c7fee589b1d96a255fe7b1f5251f95ee55db451d113fb2dbf7dafc6feed57fd6038c57a638075ee5f4e975edbf661f6a7882d8936758a56c8d65495fc51a15a79aa0fad34272badd29cbc4fadf652a9f4b4a7529fd3835444c07339fccf73566f0efb12e033da53c1b7d9fbff3678439ded12eeb243b3ba2aadc6eaadba9c76a3f974d30b706983ecd79b93fe5ebdd51bb6414eda6badb64641271b74b241a7b7410ef3dedf2e316483eee5ba8e13bfb4b72e3cf6ef6f69f65f6721765b6d8fa6d1b7bdfc6dfa05367d698d1ee5339c85c27ae3c1eed206855b89c366b595491387754e1c768bb0307a7204c5613796fd29e43ba0b2b9bf9fb55de35de672f5dee6d2fb7f0f04e79e01b65f3fffcecccbdfe33feb214cdc1f32abcbd357f7f8cf9ff590d7d3087e6bdf9b31b5cb2927adc64e3aee022e279316ee020d3d72a875c2eefd395f35377b2fa48d19eec2f01986c05ec0a547d69757bd574de128d806c1fdf74174ef3d1126ee13e1fe23d2bdf7dc7fdf83fb4ff7e8ded3a590faa193d704d8fe77d6ab5b1480a59039a94da9a485809e47bbce39aede6badbdb572eebbde2430dda0a8c3f31bef2fdd54d4e1e9c9fde73ba032f33dcf18eba4572460b553b310e04fff064e4f4cf5acae47fd60ffc1f4e98fc3e8115bf800d0ae4f8d38721e1cccead3100a2f68b2ebdba032faeeb4082048f19c3b9b52f207a04c00f6fc99e375e710c5ec1e7e391fd6be777afb217618f8f6530e4bd2f333dc85a2e9ad8f1c16e0dac34937e5d0f3449b5ac91c27bd048a61123ce2100cbd2f89369e07be7c92d35327e053c9be57faecf7de8ed7b6bacb36725cb4e18090bb3e770172db2beec0e19d672d8cf78573da660ed7f601c527533afd7c4fe7d87c80c152e839ccb5e78320d75d5b9d72d6debe2e7c0c7a6150af206833cb1ef7caae6cd5ee72375da72039b5412eb45965835d68730a6a835f68333e6d30346d300c6d1637288636871b348536831b3c85369736880abb6f7b5de6369852812be12ab4765cada8522d2d26abb91973bfe380cf1bb703bb3ea5612ad6c15a3a95daceda3386bdd5e9a517099c33f0aced99d7efd2dbb33eada8da9ef1a527e3e72cc74d9fce90f1a2cb71d75a8180f002a11de0262ea5010eaab11eeef2772738fce0d2a02774d98309dc252174836c5050f7340927fd7dffa03c373e3a0e0727fd7ff0c4754b797e38ccb74f4add6bb5f65e8ea3e20ddd9e893661f2c36fc769da641a31f9517bf8c0c161148a49ba67632567e2e4534a6965d1dfd9549794a5837e8e9330cecae1bb7ece0e5fdcaeaefa13c84c751d7e4ca3a01af31c36b98c47a750a47e50260e43bd36d5259099c9055c5f4e43f1e6db562bd1548806d12f70196ea754df4c18afbed49f1bc7cc6462c347c059a90482e013a1a5524ba9e57766feafaf5f2a7d8b1e327ee987b03cf83bb31208965ae6aca4438e8f4c6424c2448ff1e7136179fa2eb210c0f2f47d8c3f1f244b0fbeb73c8c8dad5b8c58f54d55b31c507af06f6879f16f00dfa489941e7c511361a2e5e78cb401b6b4e439ab648d5d2317b51168e4ee5ed2acaea585ce1616ce93234e5f23daf25749f9558aaab45264f9aab1397b596d001a9c64b2bd3ef5f183156172aacbbf669bc16fe5d27b996e9796d5afbc0bc703ccd11e64d6b772cb53f17b97209f6675a5b73d8707ee6f6610ee6fa613d86e1eec2e491e589dce61b5e4f0f0a87ef53ca95f7990955dbe25b79e25d31ff37c22b8dbeefdedc177f91ee0bbe8214c703f843ef89cee51fa961e32bff435ce2a3d4b9eb331cf1968f3dcac1c3a4dbf92c5941cbe4a463d0f7ed3f3e41c1e9e20c2473d0f0f7e1ed383cf737a1e718706525c3368f23f610f67e04b934e7aa5376d39453410020ba868826df6f3e97b938273567398e7cc033df2870e393ee8cfbf37cf5b5030b77502a6ef4345fa6aa3c444df73cf7db61a63f5e08688cf819407bb631eab3ef73bb3d277dfa3f4dd3351750fd3737a08f7a61fd27de9776625150ac10f29508db17a9cc43ffdce8cbe9787b8cbcbd42edfc36fd93409b8f4a109b89cb57222715a57f1c1771fdc7fb63fdd029e483b4c1ada3d3e8010badd0827a9932535b2518fca385bcb046c35a53949759837db76ef3bd6fdd2cf9949b3ae6621c0f4a5bfc1f4254d84891edd979e8827b4e9df50eabea4a72e69d0a6a1a6444efe5eb658e0936699b4a8593774efbda78970dffd9c859a55a20f6ad60d1e91afc4db0777c3a72991a7c9ddd56c5bc8ba47e4c449e5b81d1c3737c7715ffd28a51e678d70e9715f6b587580c5039436f7f76672df3c27cd8d614ff100a5bb63c37138341e1c1aade2d06848485e141c5a111c1a4f1424a42ebc283e1f16e05bead55eae0ba9d59ebd196329e54110fd1cbacb3e143870b2e792187441634f2894046d1eecb63e0efb2effcbcdb5f2b0b283fc40db1fa5f67736b9045cbdd20eedfbe4f63c39dab5a31dedfbb243af6d7f76e5eca5b47a44b46bbdb64b6d3fd4662f901301d55ad2a07dfd4691ec17ed4ab7373d3d6b8d06d5dab69fa9f5d9d524dadcd9c4c7df616ef77cfb1a88c73de8e5d2a39f89d3a393b6f5e2b0cb8d2d87e1d29fd3494a5f63a5b7afbd529eeea22fa4e20210a427704abd3d5d0fed59db3397d7079b00d722b0e7288071f3d9f3adf8f32d6963d70d5229e0ee41ca12a5c55204ee92d09fb9352227598e4a4d4a6fb31cb1dc6aace4612cb21c5525d09a3292b9029725a2d49c956c359632aa2e7f4f197929239c23c64e1d15e1b2444467ccfdcbbdbd2c3e33a6d3acae449477c9764b36ee449b317e8294d104f697770a0c1f14339d32a50f7349a4ee92d7ed947497587c26cdf7a72b588ac04246a5264ec238720516cafbd373c6747997884a444ebae7a5264efac3f831012e4b44dbbf6439b244a5260eeb3c098c93b4ee1a8c908645a03d5d10b2e082f620b91119d98e8a6e46537634df478d51cf03a2b29a0c08bcd4899322226c468e1801c2c88f119a119b91288c2c31e28491268c28610409233e468420c246848d8822228c88381a82888812105102228820820822882082082286186288218a6a6c86518dc5b05e911e1a44ad67889aa5341f3a84104308711ba23684134334318412432031c491218a188226c41741d482a8054114842d88224ab36d9f1ad33f350603a8c65c82264d6909876121879d9438cc34e430f1098785354a23a2b4192841693dd78ba21d2a769cd8b1ed0cf5501a10495f247191a445521649572411252de942cfaeef811e0ff878e0c703405af8d9f57b28eac1a887a31e6e3d74d103520f513440d3008f067a34e0e3451676fd1eb8e04a437cb8d9907ab0715b00f570a407207af8e981e685cd8b28bc58e285135e34e185125e20e1858f1742dc6cbbfe0eb61d8a7630dae1680ba35d5f0748274847486748e7099d9a0e131d229d263a369da21a636dc1835d5fc70998106c08f604ac0623823571b24ae14707568331f1980c8abb6a8dc96a366c781ec663678d8eca2cca284aa392688b9f2d8ad842882d80a0c21754e0820a5a50a1880a5448e167d7afc04f05802a105401a12c8276fd1f473f6e3f90244093008f047a245044023e123022811f09006501825d5f0240c08c38754b38faa1c48f227e04fdf0313232bac2880aa3288c96183961d4841190d191251cedfa0f387ac0ed0148474e42b921b5320e1c3db225b220cc98fa9fd5b2da127e861ef0f300a007043d406809464b285a826d09444bf8315274048923421c013ad273a4e8081547a238b2e48813479a38a2c4911f7aa4086aa46817d5d88b518dfd113572abb118586c92d324c78632d96ab51c26a7934a8e508e921c211c9cac3e4e46e404f1d08207153c8e260dca06643b622bc226840d08237c61042e8c6064842ba608dabf63688711402ad8c7678791146a0a9e1d3c3b7a643419906c0999904c4990ac260b82fd9041902d9932f0274d099f9a38cce430312caab196cc08598fcc47f6937384a408891192232447900081e40709cd1e218902c912244e2069028912489040e2834488238e8e6a2c868a4a8ac50038347c886068309f1b54dc70e2c610ac0706c48d2f6e7071438b1b59dcb8e206d18d25347c767d1a3e35f63536036668d787a1c1f4c0f8c01881f981310206082609982018219813ecfa3045c08c088205cd40eaf2910c483238210312320cc90024c34d062d64c842862b64a042862864582283900c4acc40daf56720c5408ba14703edfaf928df32528ea2699a47f7e822da47ffe42eecfaf90bd80fec0706044b0266040c0816e437ea539696f1b8abc27eaa8b050ea3311913590df623abb58a725136aa473210f967d2a0b22d4791976427721359898c44f6c942b48a76fd5651cba87524e391f5c87c46d80f5212182c2eb6495372e230ecb093490c8f6aac25ab62d7975121e391d1642ab19796ad5504eb8b960f0ba945d45ad272a2d5444b891612ad23ad9e161001ab3da8746b74b8b11e850acd88000000001315000028100c078422b15834cfa44df70114800f8cb65060569947418c8431839031c60000000000000000808001e0a70881b467a3d1abf5bc6c828187a33d4a1acd531578b4b006630768df63f9c0f717f1b812092398dc51ca587f014c9bb20629ca1476098142353c5a89f910b254e82009010c4d709550f0af8d84154f35482deec058f497f21c3170bb4401096c08adfff2ffe5f46a526b618dd3bfd538d72920e3b1df3c1f15724a090f9bfffeaf531d4edd1bbe4168f4faa73d9b986290ecc11886f490ccc77f3c0a63e29695b35bd932e0dfd69104d95249e959d57df62d26ea7c768459921a5ae37bb4b566edbc96d6b2efaf3fd44d418488ecec7db360b9aca48e6d2b59385f76fccd90f3e64378fb809a655b7873b74f054f5c314de3c565dcf3905f374b5d7c699027b35289d615b8c8204120a3d006258865fc96f74669b37635c76dd599525edea1ca23e874728b97603ee521033ae3ca2300f5ef98689affcea51b492bac3c782a304c6a937a333df073370bbf056c0afeec348ac6c697e7e8e008ae1d2448d3395c3e5ac76e893e72243529c94f0d7d6b70c8834ebf62d22f9c39f16ff0185d8fcb68015b620940d2d8d619ecea339bbc1283a3747fee916f275070582f7ccdf9691e9d02d03dce8a2a92370c0d5ae196db0bdb3d13b489b150014f85c922da087ca68444487074d05e560e6425d8370cee7aeb347145d1617d94620d1b0fae2920086354444fa70b54aa41e9c93c8f5b3573314a1312f7317034161d9d4538a92e0a993e7941910588f0374576978336495853d7fe3fca3bd25524fbc0c33e04a4d158f120f2c13dfa6b25b1c9c39989105ab7651b660702d2f6f3bace2dda6877638d8a5e90904b083e7112c49eae8ed2a5149ab44ba349b0bb76047f441e49e4545ec735f85b44c39879d5fd8897ad9beb545a3281c8f8b327bfa7b92ee7c3652d57caf64ff693c5fda75e2777672b051136efdef52a9023df0088f817588ad9157924499a6863433c6892dc1740d449fe41413df79a9c504321f00eaee83b1e5a006cbd6f1f83dc772292621bcfcc4b4e952b345d3b708dc76c63667fb7c24c304272771e36ba19ff60428d406353f3cbcb840a7d193d7a54e9f4593cac7d7a3605f9137970f5984e738ca5f7fe6a62b298498b97e6be27c53133e0af1b933e361b09afd9bc55e8d9534ce588df7af0758420aeccccdfb858091a98e2604143e434b0a11103b4971f388acb428fca16deceda1ba8344a75395bd57bccfa04874337b0d86f31a05eda8b127db019e45c486765c8d5ebf4fd1acf9744e299cefd42d8cb4f7aaa9de1fa13288ab868a68f885ffb8ba74cf761e33a956a9e93cc8aa26a00e4e960437664584021207e5321a860683ba24508525591b1f9f74baddd09aa3902c97ac9524fd5aa46563a5419c84dc68129cc53525d79e8a714db6574b31915ef533aaa8a38ad1260dec9fec33e6e9b415529ff27be05ed680763bc4b1428be4ad1b8cadfa307f2611598331b6d278fc106252a0ac857e0260110ce75bed6ce4c9427cb564aa63f8e84f4278a1e7a87e0f046282ae08dab7dad904b204083d2427a8d2a28028bc1762b12dff773508397ea8f75973485d5c1ed0a5ba38ccda4410086ca0e30e505f0c34f193db31b03c7473b4f4e4e372a5185d937786f4e03fbe89fca5156682665680a26402136601eb67b41043f96fe5883168fc97ab0ae019d997141aaa123179b68eb9b437373a257f8eb88e34e84d955dbcf0025a1ab547b45c91b10c334bb0f28e8a0e19e7ddebc9a447f1f47140d0d753c4615e308eddfcddc193548620cd95fc80ae787d6f7196110ea5cf4f799fda75deea863e90697ecf9dd34e6cf015c26ccc3572d8673bdc0d55966387eb19fc6917f4f31d3741fc83a26fac4551f0a16554cd3bf19317e1726ee50ba645b31c4efad700b336622bf5aa368078cbf3a9ea1f1b8a6715157ebc99239a264fc9677784120cbeaacc8ca98d7b40d1fdc3b2ca350209dbd7107eaacc9e80b060bc98005e518732eed447005967f63cbfc31c18044053d809290fe6cba9d0f85f78e8925e237ff38c08427bd5fc0d90ff02802ec04102c4db7bb1ebd22b93687a16ff3ca888e978eed9645c74d2d9b7e93c6396ece94a3294ae7f1d7b82f9032a80e1edcb5470eae271c44569a5a9c77469bb211704716f71b5e917475295309b3d12259ce945eacda66cdfdce8101e603c464ae4cab9ac5db7b847feeb1d9d0f313d7f4cb14f163c92b5bc26cbfedede0bdfcd854553aa5128a9f81d48e85139bb632baeab0ae1a1f2e03553e700bcd3afa45798f57b60ccf43ccefef82e5608933107f38b7fb70f02590ded2614e8549b2bffc6037c7062cc1196582396d9631add2f1ad4a505612ac436d25fbda26907d076a59a178630d99db0884c23c42d57847efa2d71f4f7e56f1217a0d48995bc761855da0f1279198127e12b1d95cd9117f2c83b005f947d22467ffd6b593af07b301c00bae468b7c359ef14b3fbc6aa1f98b94035adbe1b9f3d7fc58dbe9feba8a60102b0ac09e81ee3d439618ca3fd5a1001889465d44b7fcb3934b788636f49ff275c6aaedef4652062260fd00ddc511d1f19c75517c00a99b71b7818a19109c8f5489bd1f85f9ca1f2e5eaacbfe9ea7aaf1e5024cd89cd22a862499c7fc2a705570ca0f6ca029a6c0d7c0fa8a137c6578df574d57484c133e4b6a55215428234f25b10d2ce22e5533db15e16aa6b0f0036d6114c1220a080e287490053f3fa6faccb81a138f3f13ec900e251544bce091eca646a49b0cd2ab7897d459f9ca5b905157be34409a7f9db01af30879280939a802d5148f0ec3287725db75164d3df6a659f052663e1ec0d3cc45058cda7f69c88d9e5540c9125d3a6e39a059f46640eb89ead7e840f396b83e70ba6b384bb15ecc2f7439d6b12f7c08bb3b2cf07c3bf19859db006582784a379d02f276d7b2d57d108a6209a00612642da9e28144c0327af3f86dd66f8f21393762c3cad45aa4af28ad20397bd5b1ed28194df4d0fa266165f35660c8b4e2c17a4710f45a59ee8f20655ebcdeba6b7af36be8ade85eaa97bf34a82d05b2eefa26cbee0a179b5843d9bce736c185aad39cd58d6c856275d22d1b25776eedbe8369f4429c1341ee9e7bc954cfe682abf2fb73e3f7942e045d5a087d849288fad987674f35d2ed217cf90dc45596092415c9e3fdd8a84b881af29b95636dd9430c21469b307b86ac53522343c738737f365c020286189128958d0d1a3b885e00d899ce1911f56804d36d409f8a45d65145e6175b53ef0f59afa0eedcf2429f152f8db524cc6963b1d8de8443b983729428585edf977e1c2f79c38434b85202a58f6ebdbfb554537720ec006430555b1f3cf513e17a7a777fe984ff72363416adfe42ecb011f4497566d26c69321403463c85363a5f19df316033edf86a41ac4a91841ab095a53f5efa1a20cea73dccf799f4786ec97da1716e80eaf00de7bfec44a8f11d8f857a24d0e87db0623f6bab25ffb41a545ee46c36c7db991639e877b3d5456e65ad2d56730bcf25bb5dba968e9880dd52e852a8921c1604f651346d317a3ce2cac96a3779e781cc5e10efaf0e77a78e54f1a9cd3b8504a9689b6fa60edebc379c29eea9558a25082a65e87bae768dc9ba811a0f78d550fe88a5d155c634027819cd2d674ceb8e28b87ea89f086e4cdae5984cf2683e59c1aafdf0cf7b73c9b075aae050ddbc7f72ea6df5985841f1ec1a5be6978da747622d3cadd8261330402ba41ae175c56c337acc6e14a04edb90184d4a82a2ba1a8bbd8b956fa1c20523e14ffb93ddd7e7ed81ce3aa617905de2e8299ef72bf582cedfff98f870db6ae87d10f7ce13d47710bf49dedf43394db86cf54f232d3135d88fd5bf504ed81e16423fa5100aefb5e65bf87bdcea820a6b5e8af0c845b3aba0b77fecc2513bd58289ae1dd685b76e7d1b9fc2862547847b5c4136f49cdd7ffcf8bb710b0b16cf1fcd63923fef28b3a8a033af474df1b70877e5f551afb365b494659f25253cd0c3f57a103679f713f607e0398973d475ac98c18ab800ed04267b017fca2d00376b6b38da3f0b7990ea9599dc5d04642df3e221ae77d34682171d4dde75bdd34552d1e7e18f8c588dcbe6b10055d7611d21c61f3ebd8e5965f810788f6207c668fcf5922ce4aa9a05c65e1680709b2bd8cbbf7899380af856d735ecd38edaf52f4db95abb3b29e4f633e3ca8a5460428368c30a4af98392624bdcc3f6bb662074b2904c2fcc8c3e1c173312a066596c8d9fe38a6b2851d3cc328ff3393322792c5d901ded184c1d715ff645eab046c7981c1f2169d62aac81b625e8920edbe644026b3efeb3fe6a0efcf204a2655be8cbfa8f18dd2b0b32bc7769d64441388633230e487d4829e133c98a593e8e575cdb401b493fcabd60b82ee2825814d21a1f10b9403f24edb7f84e43852c340e9a2956365a5f80cbbb2861ccde6ef0849c68cd73eb935c4251a9037e447002db0391a10149a5f6af911dc71fa88c83e9defc7720823f78131b4667d3ec97096c20787334a4246e096b99b225e4647eb75b1f6233a6f673ddfbc7ce7f6ffe7bcbbff4fea155ffa5f9cff2d852158b6dbbc49015747bccecdf6cee3b5396ae39dac4551013fc023a85580853d033d78cd3543a352d41803f0cb1380c6aa8389cedd2f511efb87a948dcc9edb95f4b88a29c569ef849cb6c3cde8c8951127d144f699240529ce6cf768991484db974c353f65ab1a2de36a5f673736beba4b49cd848ec4dc8aff34eb49b3f1a588c58b903877ac680952eceda24d11d24712634615906509c3f80d346a9942fc122c1aa523db4cce0d6232d94203be4d598615f67b81f06eeaf43605d8c02f339e3a06762313f3c6772b2ac14bf37f54418d45451c62aba3bd29ebc3c625dab62446f541066aa13c9f01df7c755921c70184ec2d4b2e1c76d145e11141e4ec259240aec48e5a559bdf9cec191cdc858f1c36ac2510784d5601a9baee1041d7e09d03d8d7096f0a5a69dc2a0112d03843a4903afe2f8a2fcfee191422f69608c9d40953e266e0f4b33ece1d7dc9a1430e090feb2cb4f781ebcf64fd661846d3e3fbdbc5c22e4cfdd45d355337c3e5162302ee14517b5e239e2f74f09f1b77d45c1780f39f49da63b41b659e8d8fa3512ba5b38500b0d9aaeedfd0fa20bf2a9633a91a0b7a64add4cd97dd93cc079c094523c7b4a0c83046f77f8763e635f703013f474c8af6c6b3bf203e2236c8599d220cd3d67e58f7026104dd95ca78abb78261caebba5f63283d3d60ee5c4d954a7b0fc4102f85070bc76730cac279a429c8aba59627717cb8f9b334c64297800813fdf22c111264202838ff31b4afbd19adc3bde1ff5094dd461b35aa895f398295280796df867563a5edb8ab52bb6bacf509e297cf14966d620599921ee1de7d37ac81918dea5ad2fab0ec4c72b4fb1c694d77246f744221f1afa8db7295111cc4117683a3e5bc4c3a43c5786b08b61a659fe69a25c7a6fc36659a9d356a113aa26980ca28217a5502f30fc1e2d19196d7806452602dc2604ff65a2ea0ec1b451ae4a0ec432f8b02c284a81f25b006b8201a378f02624c657e07565abf40144ba2464f5f4fa2c6e7c0748710d6d4bac07af82483b552de69fc1d6c2a6cda6a8f153d30a6da674ab7543e5bfdd75e147f6e1d229681457b1459455b30710bd41d86b56819ededd5365858adeac1abeef6d8d1adc8d7c3c16671f8bad82d8d7b8e05576ac5713d86ea142ca911d7b83f7bcca2ad8d9927d355ac1edc75e8a9700de59ab304ba88017a873999daa3b009b47c739ab7375f5565fefb38934896c2020dd245d7193e8935f11378efda2bd43392ceb5160d364d67b7743f38c04a21b0250db05dbdf095c39d2245caaf51267058dc0fe3d551e9e969086e9133b8259bbbe6db16228f3ea9913a1ea921ad9bef0b19e9e20265aad9864c5a668ca8834e61e8120b6dffd88a995e89a4256dfb7a8ab10c7b7b966979fb9b4cf76f1032b1fed5526c921b34cb8913b173c58869c910fc5b2347a74b0f8f19fab0d3e5851de30b276c54283b933ebb82ac10dacf3c0681e9bd3d36accbb07976634864cae2cf7a243333e948ccaa67590ecbd836a9cafd30bba10a81e2c679e7078e5f65665bcc009914a283960dda614d95764f335efe1ab8924fb53a10ecd7fab8abd526ab377ab877096c63ae6134617737ac9b08e06dd6bbb121671f87f75b6bafac17f972abb75e9bedef4a85fe50b6ab76feb87fb076a16da8c0f7ee88734a0a9d48e1d856c6e9cc699565f019111d62f4b8b79fd5a1ce8d5b826499003dc9c4584024d52954a10d13aff581c6efe80b72403d40d1565c3ee171c624763016c747baad516a6a200c1ac566aa61c835b7be8031a44cd08824f8995f0fff94b9590e2deadb36381e4dbc5cf0531bdd1d0e1a84c546a16ce307398624ea39e6b56ac03cb3a542cea9b69ef1de327a1a4c96ecbe73db8862cc7144a58ed99ed0ca566427e081ff5f9235c73c16ed9e2e60a52626c373d00caea8c91d16f502c8182dbdd997526496fab3e09f0986ba8e52afa46042480508aad3bc656dc1de6dfc26510bd43296bbc92dc20fc6bb62d23aeca075000ccd713b0288030c42e250189b655fdbc18152ed6734cea332d0e74be1f7da7a0b285ff1caf45240121caed3334c76f5e749b8c7df49c36f8a364ff78a9dee85dd894177d964dc71c3485e12983afa83d18d6adbdfbcbfb3a731bb5d729ad57d40dcbf7942dbb2c802b1b283e79fe7b1115c93a26caafbc6cbbee77bc4af8bc370080f54c38fac73c06da09346eb81a3315a14871eefdd560431888cf2b16db4eb9ae350697ecebd5caf91a6e0f4e619987be0ec321f65f6fcd8f9efab4f1eba83fbf47ff9ab6303c4fcd587c0a88830ebb3809552fd446bb5435b90e899f73f2fff61e55e13c53a6ed1d2df91341461df417245fdf62cf831707cac3c11e489b19fa84ebd7790d79739c271c99ef13a5a08a95fe01785ca818c0ce775f5aec3f577e07db9618c745fa97eab76d160eb7eb83663aa1cbb8858591c5ae5a1ea102bf3e450921d674a2002be409051e6bf221652f63e18ee4281fb4ccfdd601607f87c0639ff66d214c0f9960e59733e2b08d56c57c5dcfefa5f695d2f974bdae7f06b10d3b9374cdda8d00ab52474ac88bc8fa7c6fe09df4be3b2180b9393b12cd67ba1be8c12666730fd5e92fb947ba5912d7c397a0856756aaf579194ba5b736f5460f36026acaf11087f75af166db04e0ae4c7c1fcd0d11a38f44af33c5b396b509a7cc9c0d7bdf543a9e0ef03a7fb21b80c5abb29808af162ed4e53da30dd80807fef17366cb4ca0912cd3cb8f1c403a6955b36ee35924e7ee0d6777bbd28ab6015099c2981a25fd6ccc43a6e1a31e9fc2a1154dd1005976bf5e2a257b9b7211abc1b141d237d10da037dc1b8811f1e1033f76de785b90df7ea2aa7ca7a3ea37eb7c2f4900c4fac44753d5137a08fcb3dc7ae29c0e066d80fedeb1fe6bf0c12e0e9d1dbb78c378810389407597e3ad2f31d076a51ef4036124871e1890ed3fd0daab5264263fb1b8a41e02f3f6770a3fca56ea68787ade59d1e464c9f60603f675cce11c5f1b99a623a03268385c0b7c271bfac9c7d9b5452e9aa3f66d6e97d3132f200a2a9939ef632707ce3c0c97090e273e56eb8003eea8179a2e2a49086c265d0df5c80db41f4affe3e605fdced18f065309da3a345a6f8912df4c690a40af949662b888edb08ea4822b19bbb1b35f436238f0dc33ab9db019cc93b50f5394d338659f80a58fb6c2e0964b2300262f4d2b23654a9c5990b721b4e1a4fb8b4b53573bc7379830a5fe4357462073c018fb8e9c4766604db002382cbd4748cace32c38d2ef0190e3145b00c72f4227bf14eb04d864d61d05b7037bd77fe9cf40d4ed4746714f41a2e65c698e03443651b449bd2d91f853c503bab4fb6780415533a79108019bb9b3cf2aa8a78b0da394b3d89d5d696adedd23b45511d43ecb5e0811b1ed8bc49877a3b25131efc98333f3996701185ddfcc6e118d7c1e11ad9ddb2c69da62dc2d8f7b9abbb40d1b86e32ffa43738a04d8fd720d5da8c1e47b8dfe64c6fe1befe4c4fa30f0206afd2886f785c9a6a5d4b5e16107098481649d182964c444b01ec7ec32214cd030a0ffc44c81368c3473b71e7fdad4a270b7c65b3ae835565fc7495b2908b99ff21b02caf19a86db4173eece344e11ae9d93f47f7473e7db617c875759fca40da3742c8ce98b770bc7ea073ba05ab6f09cb381946d80a651aa9b5d29bc0234cf31ea412ddf18fcdcf5ab93c27f1028a2ff964f9ba6376ebfa5bfb4b4d97fcb28e1ed2f8e657f18137b57f98da1847f34ae788b7a7b4c414a1aaca72d8b704319805ed5e53e3ca38d0dddfe805cb9e8ac882aadd1a7c43fe867acc07244a2e1db61da677af22b9ab9c1f72fcc40ed16189c185d4d51e6c31149346cfbd77d4389875ff6ff8fc788963ac8b247795dc61d9d7c8b0553fd5fdbd9f8ef707c89be07b0975f01f6ea6760b2f6485dc697aacda2075a9c5bdf7d50d2365c864ec04d0b8e7edbc64a9e3b622d04d8b98e892b33bc340bd76da2d92a53ac37abd2aeb901397d7ec663dd4553f41962fc83636d78e3c800b129b06178676ddfd562f1c6b5bb684e49d79441554433f7aebffacdee34eaca5105ef54eedde5df810c1d1c88582839c89fc5fecf8504402292859ac02d94ada9793e85327ae858f33e7e6ac8b3731573d7b17b5d7657edf5b218a136cca70e51e33e6abcefb4717821f34f9ab2614c1a248c683446636315d8fe181a4e6ecafe85e20f63ec1fbf29e8303898a12b6bfba2e36b74271e52742aaaf324199c93e89ee8fee59dac0d55060062f7774e0fcab5019f0666521048f2280a4d83991ecc7480451958145be5c95e7167d3333d5ecf4b49186bf5b47e974aff053bdfcadace732e92d31a7fb288075ed1a172fe349a2afb8aeba5eb64fbc9bf7ff9bb964307991a16695cd6f61c42ae28b9f7debe0eacd0dbd925ffc682bfd2bc48d1c0f0d24f5c7d8813579e6436448d079557366acd3e2e54cc5f9ff5d06f735fd6768348026899284ee7e7f82668d39b4cea055abe6c566088552b33f6d00f2a01c710b610cb2c5c1408e2b83d9be77a0b5fa8fdf0f5cd97861343a82360939e8211ed00c9d7309dcb3e3e5509ac42542f44d7b74cb42519d68fc9e2a0bf5e00b2272da97e40d6027c9ac1a51d24b44007e5ca63df7858924ea426bc1d28d67196484a38bba8115bcf4aa5b725b221185f339fbce77397b51d52c00b8c08938cae829651c9a43fb7eb30731bdec112132ff638031a5cb8807936de9476479550d6f6e07f8f19dbb4796e8be440462c12aaf923cd108b4246d94a4f336946ea60a4187caac1200aa30f48bae64f26530993a8fc987a1bea2f294bd1918f668b85474bb29deb7574c71dee14c79ce78073e50e73717b2ef533669db98c491bde579a0321c34c45205fc8d08fbc37628c84c272de284db8656d97c17cd010b0910802791c20a8a4304647a9cb4043a6fcc7215abd9c843597efd11de294e39c73aa639d73dfe364882d4180705c4802180d6405fafb021ffb56218299acedcded917887660610f35d0acfa86d2c23ae0ef06fe7151073b2b663da2fac1c9f38f6346d77e575aaff9caaa8cef5ae56348ad18e34ea684412b1c814dc4c1378f3b5bb13fbcf64b2b6c71e3447f1c31d3d14491423fc4ff183c0cfcc09fe078592056ad4585f2491b51d2aa691acb88c3fb9b04f9fdaf1a6a05498c43b296b3b477834cc13b835305f391cd7b9ce39dac90e3ada0972bb316f3e49b157220b65be4b384e96fbff91b59d9e843484608b7af47ef7d3c7e677b0ebff5fc904982ad7cae998cf97eff65b338e188490861872118800f20d5f8e9b43e9f65563b8812a3ff896d36e0fd2a9c9f5936bb7f2f52ffffe324da11d9ceac83a9266ea9dcbddbd7c7ac9aebb81120b92da4f3cfb0bef43d676fbcae5bc3c597d211ecd9a23dc1f8e2d5c9157faa0c48fbfa92f406ea9dc0eb554e163e7606e030682104020729168837aa5dfb090b474a7d8c4dbf3fdeb79c7383c31b04c1feb74c738e434a7b14635a337f7ff895e2a5cfeb51a087fb2960bbc49e899509dece9236bbb06c9cedfd4fa204131703ae0a75ff120b9704a3ab29fbe2f3f3d59db953c2b47c815280c4b1076934b1203c06f568fbf5f271cd3aa3b3296852e66b34b398defdb8c105556ea342c7e1d24a26c4bb8aceded191f6e55fec230a32a6b7b8bb7c1a72e67784175cced11ed209af90b9e3fd8fbdb018f2a302804250df029e9fdb5c48a656da7f5656ae743968cc341e42d2cf964158d8832b5b74ffaf58e64dd5c99ede7fdf2870ebb4bb1b8209357b0bfa6dfd3fd083c685ae9f546fe0bb2b647ce7cb8ea04784edfc6a014952180217c23fe8a40818ecbfa0007393898bb97ac3e461f61a7eef10de0e35735d59a656e25e60a58e5e57afec8fd6ad81b5fb503893d890d616d6fef0e4fc8f5e68bb73bcdba7854e7bbc53426e6285c82290ee693f63e09c21e1d0a391d5640eca07986e127d13104fe78117dfacefe32a3f83551829cb550c4165d7b23327fedc631721c723a667502c05b8484d96fa7cd69fcae5dc5f8fc29438b2275c26b679fc5f6f2e4b5d31786fc2824663f01dad7dbab73f0a7f0da83d1e6e9d58520094cb64e76886180ed07494377f4a83ee6f36c410d816a91fdb645e84ee23b4154f5b3d22b5e312b02d8ae563dfa0ed010979374053e926f2d67e54bef2296dc57f9b6992acb7f1c8538c4cf6a552eda5e8320fc2c0371fe5a5fd8320ba1f0339c809f6787a087f97acd2976d1768f2c41a9c529e89719f8795faad8a795dfd77988efd8018b7e8024f92617a5ad036d26b21bb687b10f6bbc67c8351a9e500dfa7ef325c999a6ca1f2bc7e5207f928329bed72b3d69b27af236f9f9b45744196f6a79dabb319d297489ef91d1642cb0ed707b938f6650bd424a25a4e7abb7bdb96291fb0c0df164c6ef5d964acda18583d184c8c987ee9889b23971748b6f73cb1eef24c602030da4a9e605b6f3a4aa77deff5e8fefcf1e4139df01328cb10c23a9f8ae1048e3b476b4bfbadb76f1d2e2e22d120a21bd3add5a18c2496203bd697b1f148a67416bffb7e32707309a1dbe5dbd074ffcd693695865ab9e1994218735a8b9ceb63771d54b09a00d5b3c76e4c34c752c36e676aea9282fe282e1c8d031b7c314593085a80f3d1e2c9f5fc5111525d9885b42c8e2eceb1f632f460e5a35ad4bbffe05fe5efb19c0fb548dd6b77cb6417b06fbb6073d6ee38be8ed615e3948104a8fa04ab9cdb9f1b4eb8b9286e0d7128d6b5037c17066964c434a63552db80c9c6bf80a68eff2d825ff0c001bf5f878753811d3d38887d78fe19b5d9c571c0ad67b052e3fe1f7f696adc8f47b892bd8fb6ebab99bb815379c18382c2fd3982a06b6c710f50f87d584faa0e9cb30b9509425ee04ee4d480f0c65acc58ab861b1f437f26796975cfd79f7550106afe81354779f79aea77880eba5ac4bf975ea2df94fa310be75387a2589a670e83f311ca68934bc652965c595146e682e9dd653e7c0d5c46c1ebf3bb8d4750740c89b4d16e257ae1ec38838f585f8403b2d35cc06ea27c510a410506d35bda151809e94e1ce3f3ea0f30be2026904523b5e564b8221ee396533a14019eec4924af2c3acb48293d2aeb9d01e0a15ce21adfb9c01def1690e5a19eef36935e169a7d04d4fc2cef2d3fb0f0fc9a7248bf2036f01e3b18a2ea7732432624d4d098a1f1bf4b2232c71262da4dac1d95a298747ed70ff00d77afe8e890e6ba525143b5f60bd6cda4dbe20ee04db3040d54521f37b29dbda0c11ecf13022a7b5cd24c248e9b1d14a4eb75cc94f49b2af5c737273f999639d8a19d9669fada6fd0a6954a2d1d735b6e8e61670eca128f1a67fd3fd7f9703602fc1e5208b32a02442b67edfcdb72d6549d3e0f2857bea6e12df77f4b92114a9e08a08e6c7caa6b5a7308f38a206e2f2163d8d42de92ecac71b76fe0e263e16aaff0332908274d10e5e66a15d6d24ae76e5a58b140abd2ae3e0df0e24b9c230d0e50744c047bc14185d0ce60340058ac55a25c0684747f701ce9e07851ac83281242f4708c7abaa0021bda87066d4f12f9ba6abb8ee065114f72b7c1ef80b9f687cd5610ae867138c91de22c3f92060fb9a363e4d77a3b00811f95297ca65f747283d1a3e4fe1ca698296f1b60a5a30c0228b9273e53ec506ef322e6bd7c348f923b9285538914bbc4217197a885399bb447e6772130240b194f1bb8de11a722a21714baf22760b5c2e9ee224091c7b87a74fa9f6f5edf63d0e07fd9d812aaaca46803518db06d6094b16bb27fb840d1eb5b0666ba0dbcdca74f6eb2cfeeb28583c8cd61527878b96fb1b33db06c1c1eb2e9867236c74e5af7bd38e073af6241cd2fcd8de2e5be8501c80ccf246cba85d7268c770d8f52d55473a76bab33f02f6a28e6e169ee4a94680907200f7ce00a2c39f53d0fa2b6c3c0459709080302f122d3b27c3518c8098c296c39396d0134fe23e566fa48e713e9c9d627b34bfa0303cc88e6727983cc0d31a0fdafaae83ed4e3fd31474b33a817961b63770ce4dc211904126cbc96bfcddbbc7ba4f0af2a0d054b35dd93bf3f00fcf2c9cb68adc68fb0de84eb8275606a1dc7bc65bc649a50a82720abf79da99d9e61e349846f962e5f4346e7eeb31da1e9f9f9e4cc0f67264caf1478567f36e6db3912e27651b2e6482b2bc4f3728fc264e9785cc4c63dd71bf886eef067521c84bc2163ad95646ee83e47a032a9393b6ba176f42b7c399ed0a37b17aeb60ddcd460237480065b0243a708f3e791cc7b56961a39cebddc3ca7d6295f38fea7ec73cec4963c7bd3b15a9674abe8b676fb41a50f62c0b880bab708635c5638baa83cebd2a718c578922e5afe6291f2ac97790b0c4e28fbcabaa6a15bf52027e42b97c25a7d3b362191941dd64591b3e9de6b529eaf5e03dcd0f1468cfe9d5cc7366ebd8d129beec819b3d4d52bfd03d0ec5e80b39402b0e93e2e7fc8fa67715a64dc44a79cd00b84dfbe1468344cf7e751abe88499aaab4591b20794938df53d1ec8bce69383530476812542e18a8e39bf003186503748632cd92695bca27307be8b3a759e3b3d7a77e3a7a5cedeaad99f5509c4c8733dc3e8efc2f3dc4b9ca7796ec0ecd1f78357dcdf3ee9196a7be515626b92d007f0b06bcad0422a8f5c79a42618cd7dc5624b4030dabd74293fd6685e2a882470bd6de0ab4ee462ec5277d9180d1a58105463a3edc6ebade1ca6fac9fad21fef052dd49a5caa64693fa2384635524f20c83d78e10d35c3d9a07b0acce2f1bbafb07a67309cce6ee7c41182041c11927e1139510dc232060a31a7b12758436461e177145f02146b886481dd1f230fb1c15e31be1c0f3d44d99da104b0388ad2cfdbda97696c1d8a83dda19b8ecd68217be03ffca9124e83c8e57b1914418fd0f32a277139372f064adc32ebd428c09aad13144f801b3cf9c4c1383c5378900346a5611c8a6ca3a06ac1e53804c3e1d9dc0d046a03c467b44c781d20d2505cf8800d5fde4563a7a9ea4d04aa41d3dd52027f0728e4a7387873786ece632724568eb52f4527fdb274e3b05da30cdfed4de881f25bc450ea676122cb7daa41a20d20df02bc4fdb285d34c3b29ae91619c87467cf044908bb998657f7f8a181d76e7c9c9b309498154b12c58828d4d52cafe4f20db26fa741e98de417de6ba7598fdbdf6be76d3352096664352a074f1e63dc540ddc0561280bea515b4280d8881901122880d70b67fc0ca0836cdf0194fc4bb50667ce0c480ca0e357433e9cc11ce40401b9265ad7bab48aeb4f1409a9822468cb58afda74d75b61f0856aa4e80cf146662f30603c70508d3c4422e45a941d285de9e6e171eb9fa1ea48741ff664ce084bfa8117e20054785d955eab450b436c86c9d94f03f92b437cef7564dd1f0c6eb4458bc2b7e367a74d6e2a40b06d34efc623bc8e24e441dcdfcd7f4da4189a1dc410412950448afb30331695850dec52135428242488cfbeb20057b85dd07dd6f901c9178ce642b069cbe8e75dcbb06a3ca18fe648860079dcad6e684f7da24f7f9e715c68d71021d4ffe594d620701a5ff473b4b2932ce578d35e2f6fbaa00ba01a33efccf4aaa52cf1ab068ae853ea13503c092cbc86d6c140b782605c31d0a472b856b0966acc4870c710f1c447d0e08b2f7850b790ba11204b663b293b9ddb39b15f4ebeef900cb61149ba1713d8ab60cfc0b453aba10864900fa617ef09009ac183ea8ac58466c99f7c77d13b09d9b10db55e9c12b660095b1323ade78d7cc280b27c3632493debf597ac7709fafd98958ba1ea2d13b6c4a6be4561cb32a78d40d2fc3f0572a4f505a78194e8e81248e88658aef313537939d7960be1d62c285fe1e68b3b2821e09d52068d5d8180f49deb8ba671b285e793c7e68cd3dcc427eafc03d31814705bb6c2066f14ea1f078caa6109e17002aeb69ae956d01cca06497802aed63f6502cf895981d8b968b2b8c06660c110fd87416422030d1c5f634f29c36ef205a83b696ea265295bfa7ab9404b85524e7eb0efee523a95f10a69dcc3502641a31eb8a425b2ac48de2d248d7c245a73d1b52a247ae22a46fae0aa47af1684e2018fc7cf3667f5425da0098312e7249d246514d96256c973c6f5b8af51153910b5ca1dd34cd88452520a12e205351e182ba6d43b807445152cec9c8f6a0bf3b8ca9117169b807e7336c17c82f353e22efecb86c902a1ec7bcfd257a6bd6810a1fa9b8a24514ce53ecffde6f4a48dd254468ed5f38ba590e16be163f84eabd971bfffe15a39fcfac3b5a1cf4fd1f2016c8ac30f3e208552d508fb9c204e9a23b00c1837814598e727d8e7048ecd304cfff87bc4a9f106a2525acccb752a0eea2ce2d8b0dd53499a312792f90efdf8bc2553b024fc7be1d89ac7521a32f13413ebcdac400cec8be999229eeb595969a7e2d23e634ad5385ae04488dca1f78bc97ccd45225c7092481dd8cdb604ada69e4f14a9be6dfd77dbcfb18f4325bf2dfadf79dc4ec198323edb3251a0dd95b6e31d9fc9f71a6785f856dabb42d6d856e2d9b497d09263cacfaa3b3a538d44ef9d3b2a085b77458c74b229941fa75cd90a0db18fe825cea24cf936c7ed5fe96a8cf89263a6a16338be52ec4b9e5fb07b2274acc28d0d52369ee38c1517a1e4060419fcf82c9696a96da08fad6286d9452fd4c8a3c2d9bbc3d43da4914acbe49d50f3990e97d75289934d414924a5031587d636833200015eace228559a6298399a7ae85cd48107532a08c3b72d04b34314d49f148036249331f57c634dd2532fe3962cfcb304ddc60de27b3da92276456a2500f34aab642164a2ec768c9d932b10014d7f90acb07dd34a5c99fd7a2a982914756ad6063e535295d1a3b8e9483a9dcee00e38ac183f1958f6a8073118becc7d4e0327b40e1da4009abe0bf18358410e3822dc96ae51416b636f9891f85d580292852997ef3374626cf0538791e20931b5d1d9fc022b2d6ea8ee593f4165f848fe107678c97ac5203aa93bd2db642ccdd1c26a7ca6b711e4b56be2944a0e752a267b0aa013e29074dd13652e236967c37cf7b14550d86cad3c12f9f03b2cd95ae0b464df211d6e523c2bb789327b23125b9085a4dc4bcea06ab9cee3a89fdde96ead8ed4e539e99903b2d7fdaed23ec867984a09780d354448873c24b07259755c94a66825c39955c0e1c9bacecaf2c17fb1536b8993717ad7e726f120eae92116188163d4d1e2159a085eafb354e78e3dcbc86930aa89cc26ca1c174f4e3fbb292658c379621832c7fa8a4c0b4c4f6c40442d76a87bdadddb5c2de95cf620d18ec240cda29b5fa16dca8f077021742fae4770164ad4af0f6f0fd1459902e2a021f1a81ff73ff08b4849876604fff6eb0d060a331435125a1813f1de4de3f3289df3fb28b2a32c17fbc34d4a7c114f86fb00092401244a6b1b48bfaefb28c755c9c39be43e44ab147a1928b1e053386a164726064151694208ab48009a1ca1a4fdcdd7171176f6b3b9a03e7a65e2508971a5bbf13a7cc4dc7aac3690cfdf872b3237a7398fd165bc7fde6ec0cdc309b0c82c8b9e7b81f8e391b1dfc0df47d080e311cd08a21d151ac5dfee8aa50385c942b4605eb9c46a131ce6f21c03d9f4f0ba0935ea9f508a8a211f7a0576ae9e0a3c014c363cee286acd63c03007756c016aeff343fc45c45f96ba02ac9bc0cddecc48fd89b640efeb82a45216d5720cad26fb24e1c8c9db2f223cfd96b62fc05a53abf2530b02960286290e50b2317d6cd1810177e08f1ba495336e616b520fb1a64e0fa1820672e9f3b6fe6dcc8520d0344323d0f3eddca5cd9f95a07e2cd491eab1fefe2a50b864812a49645a80facdd10a1c85f6d15e6cdec80ed207a29519e4069640e7e3ff7147266a7b037f57e325a7146e71fd07f5146eefed28ba71429a2eadae0ed0044a62d73f76ba83345a3d83c5a5da5231fb8b912dadf29be01acecf3a6b8d700e92a0d1b20a08df00e07085b7380705e0788133ef8bc459f296ca5ca5e6a3c12f8792ca80ee193817d563b79647e6ca541a71477767436f0e15a2eb4c05672453c6f46101589564369e9f8f5fbe925bc6d1fee34957a0ce50cfa1f3a492fcaede66aa7563cc178cc41f4059758d2fc19bdec8e2b831068a54a276df4f2bfa4d71fde55a36a1e962f70d151c5aecd4414c45bd3f2327a56df18d3b50428e4bb7bcd72f22de3112ecf9c99054ac58d03267a747821b580bca8a6529854359e65be81bca01e6435696788b523a1763a542d7e5ba0229bf90076334e471a93d42acafa0de680c36a09af553408973b2a68fbb73dfd99d2e3afc4566cf8bacb0c0445614d57d21c4151e0e3361085fc013e85d42d00fbd4a068298e92f84b4da3bf8d41a1ca43b24ecc524511b3314c98df928c5463a51545a0f12b8ab0f9868b8445d19fa7862757ddd4671a29de164545fcc817cd61b81172d9c365c8289a4ea3352f10f20d3a8544d6fed930780705ec53bf2034e2e82f8aebbea14419daafd237d80a91bcca3a0265077653053b3d7f958f46b1d84ca929cd36e296dddc2d28200cf698dae6a08b1027709a4e20dce1a9cfc4c853676800e5817be96e8a4462f799364355a018b01b90407997e9101fb24468780c775a20fdc2385bedaf08a563e60c3cef3aba77e74bc1a06924865cadb99488b25588e3c4a3222b55d0768ddbe4b467e0926bbfc1b312e2338202d817abfab41e59a1467cffe9b210964b7c9ed382f803d0ca39eb820b2d5e4402998ada0cc72f842327472ee2f43ad942fac38d590b3b3826b322ff62b856a70c04baa944c210211476cca6ceb25830bacb3e8a8a0643338d8a7b4d23fba946516d0ad39d10d529ad63854aa2416e648ae2eeaf5ff2a6faa54eb5b629de20d2ef1c28ea2bf2cb4b1d0295a42a12581654f8d6353a5605470aaf31b5f7f28dcc09c187be83c1fe18f31150ecf087a472a82ca95189cb149b3147b593e042271809c5421ee943263360c1dd0f11425225f1a556cc3b4447b9fd743ec61bf7774f662b5827c4e9f62fc70c12097b2aa1bd4948b506340be94b2731770405ef437425954a7c6204365cb906fad73ce36acf9c892e82bdaf6d395efa30051d1f694b3750e7818f8742429b40813299ab3c922a37894ffd5080c176b2f3b16a8b1df63fb99334c63781f3379064f1d56164f5b67b997bff650803095f41ab865fc6dd26847fc074c034dddfcfc699ee988b6facca19a1ed0b8807186b7ca78ce38fcbaf6ea6ff038db465e8878053d8b0480c2e4927042958222a85b7efd6e4aa54205b01ffad825153464d166da53429a051474a0ffd51f5a41257e98225f8cc64d34bc7610eea1cd6e9fa61b3f1557bd29a481ef06c043c37d36664d16c3f3fbc6137b430eb83202cef633b01ad7c62ba029fae0ab4507ee130289606252d80738401a3207d2c1c02be66dd8115c9fb5067185639192dbae47929bbe53007a28b64e6c4d91ca8f7fcf02caf8ae0853d96a94518bd24488ef74830e813525e9d466d29945d29155883573379595cdfdf4951e49bd113dd20af75a84d179ceebba35e621e0e5916b3cf9190d2070b692daf9a78499f65c75a3dd4f87345ed153256d7d29e1552739b6543661adb58f51e883cbf65513c3e2c1ae0cfe813e76c4546024cc78807714c50d6a5aaef12c317900e4acc0d0fcc46466c17fd8ec83e86409bb4436c84692022f3f925561326421c3fe14ea10b9a913e463c50448b78a048e176a088c1ed405d648a7ff06f660b915db773afe322e1357e1fa6fff7383449edae15bd129be92da1d28060a4622ef5d6615e984501246e7f1ea7ec60b17be7a8a7000df410c588c6348a59ef7c2815da80bad282e1deefdb928c617360be1e79127ddaccb7f772cda82c73b9f8c72cc9a6b2641014dc80e42f88d872824c3390c54c59cf8f5623dd096122713227dcba4d7fd2e2378564b71434a196439849c66c09b1669a6c0acc27e819187db47b5ebd355051a62e1ce0cf0d89632e9d5c4d632228af742e89c914904e32091db19f6fc025c3242cba8041e4613bd119a4fbcdb935eca41469411895f20661921d8c334484559125c5ada4871b2bfe1a11803a4158af66e84d16f34bc457212b3b6026fcdc4fb314850625930e00c341086ee4e14d2db124ccdd192505b4db5531fd200baee20fee18d6e0c767c10a373e01045638bfc07e1082a83e3629c3c40f7920623edb030b7f100ebb7e4cc51c118402df6d68c05ad112e3d9246936f8246bc3eac974954fe4e54d32a88195016e58f1d3ee0ddc5dbd078c2ee86eca6486542effc975d0cb031fa7119497427bb3026d82b4ef4fac46e2fc1b0d7849212a2ec14820c08d4087a88ddc61c33f083a9e7509e159fcbd66b1a4a3a6ed09aa08c7e08fe672d57b8ecc2b6729a823fc07ab80a474011b734e0bec2d86e09331f884d194ac6404327e72aaa8c4c2d14cbf5185ab8e13e16eb13212c87634d6a3172675fc89ca2622eb0b234eaac0df725b4d8c666a0d13de9e47ae451255eb0397ccca70072c6e46ad75ff7e0c824504ba7b8260f305db03d6c92e791ec4454e4b5153dababd14fce0d531ed9027b65fd169437b641f4bd9e5ca111542cf371208d0e7bdcad9856844a25a81e9a3f1bc850d86b7afcce2c17af3eaa7091997e7fc2607b222269768fb610d75edd0a51731bbd9fefc47a451bf3ba08889aecae62dbe8fb8424a309412b4ebead5b912c01f111de941227e460f8928c9d057b2d3b1baafeba8b0896a36240120f559d4880161695e33adecc6166394132c0aa2177aa4605945f0fb3faec5cb3fa1bd14a59c7bf5d56e0a1cbf7c3a77cc3eb69198c5f57c0594b6808231f9fbbe8857df892346c56f4725d00e2bdba04dc57b559e1da5c6f12c33aa7205dde2aae002a2f2ab4f5b2f4e30c8070ad5cc06c4c84c1990e584feae8a83b476b784a8731df95d349c39ca3a5041b2b77a8235b78662857987f6f7def9730c29c8030ad956758f443e329fd9d7bbe4b0b85b87b056b367bea1679ab6f53113a34c5d87f7680d7a30585b32523466be6e60bfdf7342edd94d9d94d713734e6636dfd328e5eb4a5ecc69c19056914978bf7223ed202ba7c6539de2a4c953533f11d9b00a616f44b7fd2877519e6a9d7dc379b3736812d7f753b2ad47f965a0f3812cf18447f88b7c56841d7e2974116281bf2a8002cd9d824981439c3ad129f514d94ae3f7e9cae9a54322e33b8e0a242aa8c19e7b86a19a7604cd9267c36008f2e54a8273336250d249146051c5c92ded448fa1ce69292d954b01298da7d0ca91e3a5c75d28f8b6063787c29fcb2de08da415eacfe68c2b134893df67e9f2ef28ec3e9faf6c0e937ee64a643bc43ff6258367654acd334904e779562493cf2fecd70ae43e0068f1d5c4b7a89381c74517a4c9770f9c8b3a2fa7a06a2d42b7490459e42db0f9891709a8711430d271caf3cd810be027549e7a9be0e4816facb834a8a66b58f2e3a8390c5e7d88e1f91c8adb061d4574ca987704e1d649c1567102c2f1d01e1ef8802f4b924daca1eadb8bb354cbe159f14c87286beebca0567bfde56b934addb0289bc4d7380e56c20c5dfc6e5b5857816beb7eb39963d9a6dd4ba5867e902b02feb9f11928460cb742cf81f83a0ea867c865c7b332d174521eed26e60e932612c7c4a59fa3c86b3bd8583b1bb72dabd0d0a9f80e1d5a2e91f846d1113428171d81e985245833ca00f734560a2a855e7b5ed154e1bb1850b9b1f4541d6b7dc19d50a256330f71b7f1ef48819f198bffa8c0436ae9d36d0f79307e8d1efb9334e1cf3fdca42d537f38369f59d61c7fbdae934b7dec7f1b500f4293e97d5a512029a41e1e8e5455b1c059e41a39dce83652c24410820d6aba8f6c52ea2d5f52d5078a2b7c8a81549ff363cdd11f6335d3ffc11f6fd00e4d22975e99008bed925302ac609a6b09a041a1a8c17f937f3f84a88b8a5e20f991bc7f2c44702d0c9139068ddd9bf6ac31bc787e7c4b936b9ac811fba9df1395d91b33a65357c960b9e9832367a622bfb72b50f1e11a9997faf931bcd8a33d62ef07573353d0f0c48e60ab01d6289154b3cb25920522a5f8576dbd7a1af8ca495e48326558981819950fae54f52d54be206fa687517149816c42599b622c270c31e9993d3483814e93c619be8809ab2e10ed2966ef84635ac9db9aa2caa790e322f6da00f6e43d7b63e7fc76020a268e61cab6f59bd2ad960384c83416ffa78978a21afab34280c80fe911017ed30076984c5e2388cbe99c17b31db00501d2df6a555fc5b992b1a60d9453521c0eadcf184376a9165aa789040bafa4fbb19a9146b7cbe234d0b7207c136621fd20c246fa95c825309025922b52fe9382a10baada47b886f53201498364b9180896ed244d2cdd505d682f1409365d695f92d1ae1f9b7975a2e472741c764ffed95485253d39e6c3eba11d8544d0b111c7247b42a393669972c9c03aee7ff64b411d851fca329b033dc6609b5a0f22ee017210cb64296bd2a9d6f56fe5cd78f4818e17782bea833164c0126377d4c28f8c911d5ae3780f5fa5bde6f0081aa1d6bf2e81ee17396391dcf4196a1dcb18be1bada34bad1b99322ee791139a2883574f7bc00f10729bfe59543385aaecf7c0236fb1e46e6f9fedcb9783b5f53bc3f8bcfe1cacdc4fd0531621f73db7e08a11bac0bad49e7446523442742e92963645c6e5c3213a0844a5f14f9698abdb316717ed32e11a3e420301c9c9fcd0b6a1a36728a86c62fe6cd0060c4774823e2057322067e427a5f458ea7cb0fd2cb291011cc26dde4df904863891e1652c5c78d212211d9da0b0a4424155063a88ce9eeb425bb3ba84444d1d8f0f54fad49e547952fef3e023d1d5cb4585edfd80fd5cc65f0d514660c786116033eeb4f7d59c6be90565681cfaae2edfb73423e6b8c4a0080730dce35aefa7fd6ac41651f550ee235216b7757217a08eea143f52ce9876880a67b9d197ecc511732cdd2eb089d60e8d55b75bb4a7abda36187ad9ec6616053de6c76ce654c2492b09c0fca085a90caa747dc4f6b918ab4264b98c0ac128bece8d71d19916f1d07b49fc477aebe0454c94485aab4230022bb24c5a61561ce32b36c085068b3380e6a3b9b270b39eab5461714e077e40d2692d1c28f6bff805c7705d496c1b9115284c356fce6425cf3822477502f2942a1de70009473a1c50df0e092bc7fab923c06c1bfcf8490db11702c0f71328b1cb3a16ae8b8302e888ebf3136edb11bc662092322e5434d00758f7c7d8931275363446123e0aeb41dabb95f8b4ac2203f78ed8fb79bc254d07cbcfd080b8908152befac56e3ecbf63790628e0530c2abf1237a84ffd1449d216cacac77f7361ee55239aa366c42d81855120c05fb820002e600bc08caf381cae5db18dcc1199aa04f66e0fed980c4f06be559f1889a6309a89ae1dcbeda17acdd7011b9a3e09f6eeb652594882b8dca1a65bd511dcba8f3252bc71803c79d7839709b9208a049e7491c621eac1945dd898ca9e0ccd283641b5c16d3e359c85c78c0a67312f7461f9ea9db57578f2149995a8f81780a8476c6a5d7cb3cdf80ecb1bf8a3de1d3dab18e64b90f9342ca3d8698f7bbf7e141d7eb548c089774bc594f49da86b953a83644df7b16b7124b8f4d215fc6c21068cc579846bf6e4c024435aa44c7f48e256deffda586f5c0771f49591191081d5dc221b037a4fe7d3bb9b16b417f3c2b7763d0c80eae69f0b243d2a9d388cfe26c7c4959d75a784f75182d41db2ee589a16488fbb06c4f7df5a6b95e854abb9e41ea978ba28a035a9b448b29e458277ea6d0c124c58dc473db3c5705a51a297a6b4507647d329914870cf5270cf4da953fe8ec0e6dca309a8828571b5dda40beb265a030c4a2b862670ac1bd480534c61edc692179aa46e8e61162ea208ebb1288fe0fdf7554388d055ba3e90c0bc66f311eeb1204ff602cd9379444c8b7cdfb8fccfe80f847f4ef0c34a305fd261a60ff8b7345b773800c3ad4084c47ac2680045a415298afbd7684f2102fd411c03060575ba471c9854a4a50ddf4696d700efa6b91c0773ede68b8e3e8aedd2958acc0df3cf005015d279df10aaf581f3596364e6b8b077e8e0756b9da0a221bf5eb526ba88c0341fbb11d5a6252802ad9f88cea1b588e8790a260c6bfe1c2a64b698e42d433d3e762628ed0a20873fa4ba8e8baf92afd6d0b62a7b4bb5c9cca3d488857ea42ab83dbb58fb9faaae866440b420f1df189962788d0d2ed9c052e6c16993f38d2f2e49c41449c4c0f8ab02ee8ae8501b5664fc93a7582a7caa2f5b3728fb07184780444823bed55e25cfbf15d42eec92056d6b30a04d061b3b5bb554b05d4db3dfa3691e0eeb08788047a287341faa5b83bd3de6508f4c4106462df3107105f8910c1ed0143bdf7825ee42f57bae72e5d8f3df17448505ff015eaa905103b022afa08dc7a86ff0c060947f75002e3578ddc3ba41a78d16bf98bd7e3d0844a94fb24b2e123129542f8c2d1fa7a4959fb2b567eaa370e7ea12ef4945d88147adbdc3530d67918077b78a230d6b9905a52eeab835833d21283027103def2d82dd3593c2479cab2b730d26ebf1a18aad9220fa41f681330eda45f6ab2881157451d8a42a5f8c8508ed2ee08c1eaebac40e488eab824945395ce77dc5c510e94e9ddcf2519c786c141a9ef7afd49577f5626ecf1a2f609b06f626899aa3a5ada6d61b970c36c3310461e8cc584f6128fd73289ead2ac2f8c58944ee6dee36b1552ab0b134cf8a79d149b862a6d8b5e4bde29d3ff97448cf59c50055d01523365e1f70c98c0a4a7046f564571cc6466f9b5d352c6a980e671db2b9e4a806f070cb20885ff819b4090d75607daf0647b134ff07502dfc3916729e1abf49af5356418c62813f02cf718daed1e3fac2981b3e3a5cd20bbf4b061e7ebf075670332bf905de2f296a755709d1485a99c02ce54f85061becc5b1ee3afb571ad3107ec56ab042b573121cfe99d26cc5425dd74498bf82d529b836cf932e81d36798cdfbe76f77fad0d87d0541339423f105dee00fb77560060ef0207dc0a523b304c9b1bd85325204a7cee64c3aff95d86684c7ee4f2d292a394e06acc90017daa06979a6a70c0b00ae4afa6fe180b10a447fa15969dd63a9777e2b383fb915ccc29e97019ac3cee0f417ea76090ae371b68e8f13cad67b43beecd3f7aecca6d5d9cdb05c109e066560f52047babc49fd99cf2406ad47a68ffebff0f5cc3432f83eb0ec044afd2bc63900bcb9a765abb7a96d27a02f0a51b533b9e0d6fa779076afc4541e2718bec61e2b020f5c94d07f9e65b5cf12be67b61538dee5f9d1889e3ef11f5ca2f421f589b8db5e57b8d8f43bb9238abecb38ae41870411ccfee300744a67eb509dbcc7dd0e5cd01ffd9f26819c7d74f332b0b7c5ae9887ac7fed43e8001f689219411800439003d371c0e86c63fe0d14f1661b5dee0fd824dbaf8381f764802bb26e0fa924b492b52a6aa352af651464604229245e34fd50120074e558cea98742935e18ec33d8567847e86f798d09f57c7647e22fc181df3d557f5e6642df8700fe4f0184c4311f100909b80231449fa1e5601aa6fbd50bf4f0ae3a73c64757e0e26746246bf90cd9e8cbcb44c31b0da0aee412a24e4ab324cf7fc545b0b1b55811db780736a24a552e6e59902d55569eaa85266a0f725cf68a54cc526ecfcd0076b7a101a302d3241b2451f9e42a556439a865729f3a518206199667ff1e5f2a33d9a43ba8f0aef71d15f34f6e066a27740bebe0b6d96245ed09a5b12f079864c9957b90804b5ced68e55d145b8e13764cad40b764857e1589f2195e87d54a30ac295c73c6233c7d710d0270912f657a93b8210c994752775a54fcb58cabcf9923dd2c949b6f7d720e5773775682a5070068f22282e1569273370d3bdcf1ae2936d1a3fa9827579bd3c9a2f04c7399b6d2b237f5a6858b368e3f41e2763cabf12990acbb1e88ffae5a040725b6da9b071c628253b94de858173152f2fc7350ec779bc0605e49333ac2b506ab84b7c4d3fc206f6d5e5ab11a7084c87ae73b2fe565300dc33f414e1bc7526a73940b08cc198f88b6a8626c07903343a174dc3795606472d1a777f0bf07933d8866d51ce611d8e82b99097a7db388373da22ba4138990c3162cdb5d9c7fd65080635af4ddffe8ec74de5650b443fc04d235de398108f84ec434f9ab58b53808c9f613ff2d4568103eeac16051c11c8d24b7ae21718bde8da3f74bb294cde90ee792a6a7a747ec5dc237c0151bc712b4d3fb8f0bcf3891d9f92e17c01e1d2830e894643d74f63f980d8188ceaa5e4205495cb081c20784250038d3bb29c3425f52d6a97bf6f3a1eb06c29d29056958d5c343d029f2a11191ec1b176608ce3d586c277566360ac177f27d53f8b110274b224034304a228511a8a0c0507761e8408108dea77389e921b6da1ff5495f0de1437a52cc54c5017694bbd5dee122923eb0f9158a79fa98e813888d5d93a1cf96280970dc0a0a23281fd668869474c666d8d0ee563aeb1cfc18bb7093b036041aa5fdd6d58e06c6646b9134f0f83f30696ce043476c30abbbde4078626ff4d16f791c98312435ac92e9e67f582d508fee173200669e8122850004f71201d2a7c87569b6535193ca9b3a7f544db6406b4e4790137647fcde63ff8b9fb0583c54b24264e2cf3d43161d3c89e3af38abcc4e2f1679db3d304b1686bf8a18dca7d8c497fe59ba5099f7ff7422d38818fe70af94851c20e493496635ae81d09a697b5c8d284c1a9a4b18292b2c92ad4f9c4491ee9e0adedd875e7387ed496140a782b383c1840d2f0de731464d9a783fac7fd7ea1fcc8280145bb7fe48cc72f01b3d8d6dc08141cf80b2949a227be67c058a9567a7a1adb76a93f04ecaac0152c1ca73b08d4845c05ebb7b2e0288198cc183f86b1722b3d134b407aa450a5216a945c6c72b144b7fcd4da7ae3374aebb5a359f12e5cee8e50a09955356adb322f3297cc530a495bc32bf212d7077cae954bf2efac123b5dec6b9bf82f4c77ce8663844b69deae29b05a6304b4b4706ada9faccc78828406b46eae43c87a0bfbca7df4f4e0870e89c9c546fede4973871e6230ff0eea6fc2e2937e3c1f78225cce18583c1d9eb796eb0e425f1b305dcbea84999e3c6c929e87df2d98e457397849937783c414ccedb489f71990775515ad7e96a9eafdf57846a4006020d570fbcc060190cb2a9603490f7f1a7a22246e334fc0090ea2cfcc97aa15e5c69ba095b341b9d3f0ad57ab2d8e8bcf20380093684e008cc6466f616fc2967c726184a995896c5dd5e4302658359b81385bb7732a0fd6acb3b6b505c71b0d9c5e0dfd0faac54bad7df93ff4221842d1aa94cdf7660263c6f305ee8cc19bfcb744424305dc9297ed737d245c2be8f2480c7f6955e19a77216f402b5613ff511b4a21763f1249c36b605eb5778ea349068a10923807f23519d45ed1b236bc3c923074c041030ab64106b4f7c5687348b7870c737b709261994cdb4d84707063c49bd4f1116b3f4ebda165f49635a2d7978e0c42483b1b220aa7cfff5e41bb15eaec5e61b1267d80715befd1643e678e42ea100fa1b708dfcf1958fcb5319aff9f49aebef4fe9c1aef604180e5e747fa4f36a547ff1950c135eeacb4fb60204663696eef9c49f79de64e3c41557f150dc4c08efa2bbb8fde72257c08f1bb3053b9e1b98d6639faddf3704b810495fcf12dc028801aa66e496c92f6ac6354f90f8cecd7ba21f347657613a0d48104a9e04ac4805e5f6bfc773e4c4bd2cd16acaf3ab40813d3c3d22fa4ea6fa841258ab38747a2bdc85776c9172a501b51f657fce9afacc869103f67f2d5ac69aa1c66ca1eb6274a1d633bfe6ade41e92a1a4254a797480ea0410c1875dcd614a908610a19a5ef9822c785eafa899ec5ccd9f1806461b3dea290a1343874add7906641fae086b3a8c54e7338aabc21e9bd8dbc687ad960712231a09afd822431ef22914fe6e38e4c605a8ca27df0c87c80af5deb95d0ef8d74854d0187e703d78f7cc5b1c0eec3461c5ebb7df45e0b03af0ed95edab7267255a0e38243b2da4581e2b8423e2b0cf4280a018fa4d19f43b3289a84c159c1233e88863af2ae4ac769a2063d72bdbee7ffc4683a10e4133a1a083b0456220775a55fc75fa899ab9578fcea21c3a44f15587543a3d1fd9dbb9be5db7e9144097222ce80b83602c5cbe362faf6aba03b5fede54308a5089928451bda0d40b3d8650ac9612a777db0d2dd29a475e051e92c21ed981002e82c69b2da55996986c6bef7a51dfadc144a2fa0ca7ec66f157146c95f1a80737db0f6c8bea9c2416d2fb657b08254f5dc0109f01245b2363a379af36a45cc8b6af51a6190b6c91077a494d0c2075928e45f8b2ac2fc008e03e92d0b04bbd1a03a9023051496897d862ca20f5e20baa935d523c8cbdcc3e140ea10a5226405099ad7337cb259b889653b93d09400412f70858d8a2d0c83c49402fc06098f371cec59db15525fa8f393945884f6ccbd7f9102afcc8f5e506290f8fb6924c42ffc7d43f968e35f34d03e804891b6465786711317e937646dd713a9faaf4fad7772a1406f7f609c9c11c3c46270500d3d3dae5ea87519679c4170290d79a398448c754af81ee7d5254281c42e6d8a7e84d7fcf40384659054e6a4469ed50057a214503e54afa1d0ff0e7e9718baf3e5e38fdce03095d2a54fb96cc67c52dc76af646dae82260be931ccc738574574c33f694ad2913cb06c46dffdafe2f1c2c8bcff5d75c7859f9f2e8d4d13f196ca8dfea59dc025b5f54a6dd2af9bc1e947e70cff92e28c229c7b4902d09330b3e7ca56ce136bc275a74f9fce9c7d5c27b49635912c980d62a089d89df3f48984a433dcabccfffd564f087d8e211151c5e12240c0f6886c101d298c5f6b245b120b173fc1e6cf9033dfe02d380d2be0dda3ef6b7975d1f094bf15740a99c8d7d85edff0f8fbbb0a976daf26488d4738097af008caa1efeb73be0d8ac9918571ed46308457c0a715586cd3460fe4170b95b14d65ff301593977ca26aac07fd1f7553a6dc7c70046231c6a4111930ced2132c7afff8c8be894a2ba91ea3d587b51bf5d23135a9c9fda0f0fd4f9b00971a2c13b1cda6e28b0f7f413d96369bfbddb1cac6f458e4f50413a9f1d7005aa403684ebc5f93232f6721eedc5245e479e873a6566ff37e77c64b4d3651f4e6632a782e1e126b9233d4ea21cda3caea00434700f533bde2fd006c56142e3d89e28e287562a9c71087b4179a45e149a7f38a42b7e01551d61b6b276a7d059e5ed19523c7ecfa5516a957f065f355c2781d588702507cf25ca59ec25b00debb9273c37280aeae1aeacc6bd69375b99c59ce8232fee2a8f2400b16c1f43d63a6031a5298fbcff898e50d89e379938136695f7d4e4cfdd2a4fcf1c0cbafd2735265b4336254786071932b6c5ea307b7e79a942fce175a23fa14076f571b78118eba68c3470b5e0152ad10e63a776ea291f88af7cee6cf36f7df711a4362f5af6cb2da4cee6ef0dc609e17e83a9e72191fa2d01f05d5b4631058e888ed2b658c899195b67afd8d1184fa0284d9793ca80e4c83b5b381c5021ace9fc7f649fd5128d8bad98093ac5142fa4bc7e5c64e72c11fb446ad6ccf434512788b5b865253208af09805b9490b0dce994391499ef59137c74441ad2674cdc4f4508786e71deefb84e6013e5018cdd00c39cc8fdb34afe89417b8bdf52857c2ab662cb268640754834bcb3c431175bd2142cbb9400b4a16c1fffac3e5d1441334904dec405f42deb570d289200910e016db5aa8d0b52966cefa938f73cb1037594e59be8b3e06baf45a0e7bf10caa859ed5c00c7326f2b02b271fa319763e0cb4bdeb1176c178f68e05896629d392e9317dad8feb048edc311a9be884832904ad7407bc93e2e177650a3da2d3c50121b8f07023323ddcf1e08d26210e49a2ffd495aa4fd097f888ee94431aadeb9d1bbded2f58d18b7a4ee3131dff61af35799d51008163e64231546fa7063fc53a157b03a84e77110daf1df47a706ccc5dc24144159975c98dbafc1266996f3063f2c59ebc6a533fd11246d559447a68a7aaec8b1a3eb1deed1f54c953e09570591fe35ffa7647741b4be5e6524f4a496ee949826dd1634da260aa9db903eb2072394183b461146c277e28cbf0a97d87b062fe79b3f32f54ff597431d2d7413581d7e2814ed1d051cff5b3ed40b8cb520002220d8b700e38e8b0d3b56bd84749468f67e0e92e0715d1f3967d72d9c85897acb5a3e9c00025b4dc65ce9b00b494549e8b9d27c368203cbf25b7fc91d101e68110b2427cf09a7086d7e4fdeb1d3c29a21279601dde1dc2bde00e0361db00ade5ffc06512ae0717e4aa4638e1f9ecdead50acc50985fa710ccfb242e84b63a0cad425ab8fb64988c9752f95c0be7596a28b8c3ccb5da481d40e1bf27092bc97e485441ce580c1ea9223c64de455adb91ebe0fd6ece20c24c2da87855c18cda28ce64edb35ad1a052fd3888c6939d38055d660ab254fe8abfc60d6e5f370e01281b2f1c6418ba0560c5f6a405b9a330679f92c1a8cfcb4434192c34427d16c8d3cb57049d410dba41f1958355a606748f6ed2c6e44797a64c2c919f17f2658ff198926f037f96c75c94810740a0fb4095d5f16985eaf14e429ac72421d42d31c96c45c1a722d3eef757bfb58e827a3c2986401f42efaf5f52525cf4d76929e933bb2fc50d66cd07b9d740610bbbafab81d222f3a7989ef86498658c325bd482dadde4e94b559e6850d4ca99ae1f490c5fde56553acc466c1a21398628de882d775204fd99d855c717a3c82c7524df24b70034a126ced070bbe51a16441e24a20d60797d96887ae7ae88c2e578f24710353f018c7976f110ee9b4041e75c18b363ff8d90e5dc0c0e6a033ca61fa487fdcec2b4b6b0b184db9bdd8dd55e5f808afc64d68e13b1c41f8f9d6d3f32e060e0a9857233e9784663e50c225edc86b54880a766ca53c7c379c0b7ab1b91905a101fc4c1d9970d10aea4ae46aa681e63a77a01e4e2b9ad925f4d0e556379b3559ee6be247522d57ea89207fba5c0acc0de5591667550fbc827adec689bcfe31a752e708aacfd7466678154be9006cbd2c53b0b15e39485a62560c4fe689bd47efecda9f997bdcf3bd3225e0b1e6167ee141821b8073a09007793aa9598ca4c39ab24f76b348a1e42d022b8f45b9f599018be85d1deeaf2e0b3ca9dfc15261cc58df4f5c1b5ed6d49dae35c69d76b9a4fcedadc03707e1dc22065b72f816145156e65a750fc686996d23081a09e28623063020ba5eebfb345acb2bf574cbc0c0cc25e6c523c98b923fd6495201e5b7a35de1d5cb2f739b84927d57dd7c1075df714d29254312b23680a1b7caa0f4e37e6be8e21adabc05df7ca013a71b9810fd1377e0d9d103a2205f93d82a6e1b9fba702e874fcfe6f6bb758e54c6377d49b11f5f3bb5b2ccb14ff7f28426cf19e9311060f873f8cc088d3b54f01752a0f4b0a8535cd9898ed558995887d17ae4e110be1fd7c271eb0352514a74fb6c6fd97e828ba95d26345a4ecb6ad3dc4a63fd79c21eac4848c15d6c53a8884c28d46851ce8d6a874c90042c2c0e3ad069ab484fa1616612dee5382f63a3425d67f4636aad3952bf4836763a7a689ab1bb70b2616f19a253fc0dce0ac85f768ef87078dc5056f90874f655bb626b7c58827c10dbc7fd6f6c547763964f5442521d763da4432636a12a76d0325a6da8da5ab90b674a967143378b7c8eca5d45a472ca18fe2895ab4a9c02feff6236f8092e5a316bdd994085721a3cbe32413477d93942e046a68874741b9b093abd2fb1fea6623cedad715a37af2623734332369719c6102ce3c9c68f2e3678f7d948f7bd99e45ae2e6242f0eb988e57aa14d23f918a5b291bec6345f777868a7fdf742e18674d75a0bb14d25bcd2f4ac75ea0ff396edfa8378eb466a48c1a925c949398ffc7ea3f121bf9341d7f4af53ead359caf0e04b523d9586bf04a4157515af341b3f12bd8b0ca38260fd051af124cca78b841f8c1eab2690b602ee9f0662b83fd26b9bc10120b90007434f2ebd026e76eae21184e949252a9ef9ef6079a3094fd2dff5d5d36e760839d6b91c012397e459b05e8a4fe878247a68b5bd2a0d5d069a855a8f644fbab2c84d87eedbdc1cc8526db5aec9b4508f3895d95595c92f61738dfa4414a91e29a677e74afa9333b80f9f507653587f2d420419d580e8aa4d6dad4d90c1624a082bb13ea123d1505499899d96df7a2e0e143bcc4e5989d0d35280b8190bffb19f77bc5dbb2a6b4fdb3843cb7fa9d4c071be64f6351b549e4b4c9bc57b18a52a69a85498154a33025f40770898eb87378c359e537cd7967f0d028649eebb3074e479dde4e15a78fa1228848271420e3482ad318835c9a36ff8cf44307da0714dc852206c8a79a310840d8bad6b8996e55350d8ce92aa55b8c16e42d79db66f18d34fd90dead6f7709d355181cfd523580efea29de139bf38b696734e104e395a75f5b7ea24c583649409a8017e55dc85ad4df67845c239a1559a8ad18f55bd6d731e6ff9d52a2ef6c59a4d43613e44fe225ba9c51c78035f2e18a1b447e2650e4202f2a43c45cdca381b4810c8855a3b6c132b97b6a99e861fb39c371334744b84d14ceb074b60b0fcba3d760b7dcaff3aa8446b1add0a631487bef70b8e960f05fb981472b09db7331bc8ca39fa09f1081609c28d31b90cbc4d1b7b03677f5ac3bc58ad890ba3d9f4dc8079839d20c2644c5b1508a312f77432d7e38248b0892f92a61a313e3c325ce81a901aa279502abe0c4aca3b8d2be25cb4db5efc02a19414ef3bb30a542589277cd09901a8651c9292f4bbcad392ff0a1ae0e00b53ed1e8d01968c0c1b506f22388826aab7d58c515fbdd7f76fd672a9d32ba3ec1178e4b83fdd1ff2f3ed26f750a0a459266dd8f7c01c43ddbe2b0fa78437d268a9eeb4f9f145054be3d60a725f1e9fa806c5bb34d622a4dad83ef1240f87f8f4ed787a9187b4e54febc7a36bc208f208f5728c1193522738a50369d48f748c9638e7eedac9e348d838840934df3a51b0469636d9d2f87597597a09b02d48f95c45cc094f3b7f7f4aa4a0bf0f4c737248e063ee6ee98eb024160a3f98d679533d8da691e1bc08ada1dcce9a7c055f7dc6a35b85c035e71110416fad9601300a661d2648f554aad97efa8e9670b828eb481662f53aeb47a840f36bed4e0db5c3fdfaf93d4ff553b79d322663d1e3c2e2b239decb7e87f6e0c5274dca15c529ecfafb2e81ddb3460b3de00287639d021e9ae2505a0dd8089264106e1130d7d8f487faea10b02b1664ae4f97eb2ead614d0f1e903fc4287b08401062cde5e29a6aef25ee4d79d617c99dae02e8b74006d751472df05a8a621f9c7385301cb5cb1e9060d237f2f0e14aec8cfa3fe58e7b614e5e55e94fd7224e60e20fc7306eadff42523b314428ac89f9ac470e267924241d5f2bd53a555703b7e1cedd9e94f179cd20e81660818c53b19f8a85417820be0bb56be3486876dc031efe0288c43409499dd0300d42e9ab01445e14cff06f29f0ae769e8b80accdb61c5445b61d8948921eeeac0793062b4797ddf4a60e048aa2a0c0d8fb3c06d8fce89d8db9cb489a268da5553d06e39d19f142125631b22c3a57d94d04c56f67d90946c0581d1a967790192aaa11ad17c4782ef99ba5884b7836ba779b76d7503890c41caef3e65c2554e44fdb3e1b1bcaa97e5777da891611500b371fe419802c9902622ee3425bd2dd2d842cce7ecabaaff6cf1b24ae5fcf34c0bc7fd5135a4346f444d4d28a45c4342c68702749b45e28cfdaa581592e52207df1cf2bef71772baaa5e6aa35519fd790577ebd1dc3406ff946d2891240bb42914a59f860eb6027f22625d4dccb78bba6e1000c54df72b54f9f270ccfcbf941a375559356c8ad87842c414907d7dd32240966d1b98dd24c4d13aeb8b4efdb47803b7d1af27d02a4ff723f0c4e83fae28c9c965e3891b646072ec204ab53c99a6e34fc11ab2ac597120d6a1f375aa042122af34f4fb3542d02056153da456827f6386554f98fa0ac1ccd4403e4688175049e837812abf0d4099c749eb03260fd23a2d1b37c9b523eae1595e1eca45b34c6e184717b140d226bf1ab6248abbaa970d876d7bec2aee608c94bc64f71ddbd83e36af0ab1350d3cd788befff31086319a5300bc8e5c6a9a57ea21af04ac80496f168a3382a31bb41c7e9806d3268ce5694c54ac12cca2392fc6b459dfd5cb05088b9fa9e97bfe539509191d26257b43ddf7483ebff74cf62e1e0dc8e1c58232131df1059491c9d8a0f83434664098d765e97a6392e27a72d7bda8b72d7ab4a33c322662859e076f2ab7fc74f673e888ab55d7e125dfd1c66a85bb9677d4acc8acd8e990ca8a018154c0829868d5a303844b9fdd8989b782ae702f98d82884250e027b42cc6a3e02836c5cf1e69f3e6defa2392d3670264401b5fb5ca0779c7521c049a5387bf33db33aa80e5255c154c2caa1ff4dc91740d8cc8cf9dd57754077abb15e6806376a3864b1cf652e2f4c5fe905b0b3d8c920d4b61c33dfeffa2a17e391325a50b706fad5e3c05ec35ea81ae10bf65eb8f72cc455ec4eada646983e6f1fa49c8ffa12cb12d2144142de049436156a0332f60d796501b6b785141db3e0af71cea3e8d659e355e7c41dd34419f00c7846a46bcad2e9235fe985f4b3e5dbece13ec37645c053a09df19282234a9469ff5dce0088edc48779e2df0df885800079666d6e3031830b2bb0e283453196fdd338bc5008ec88a7f0b84cc8815058eab6a46009aadb8c96254887b8a568cc6cf0d1ac6fea7da3f52b33d64e2e54a13af9bc2dc3d0babd0d231514404b6f7ce61af64e747ccf982e8ded730bb7fe2cba2cee788b913595392e161cd059c44daea7b98d7c438f2b69b7a56e6df6515dcabb45f608f28f1848a56a45b6ab55d2e10acbf223af0391106116c2ee50540608cd52ebdd6c836e4b6dc894fb32a540f6b851e64a4f30279e7d24c35d808d8057118252d3803c729ef3fa0a8429929c4205d6e394259c99d3ad3c727d84c87a3e86c0e7c04bf92ef8c520e9c56cb3cd42144431d38906537464d4104f4270ab729893b3ca04cf8275a4a5690c10ecf25859097804bd41b690a8b51f17d08ba2dc60cdb4bbf5b0cc2664d39f4b4257a263cb3210c01cd73811ec46926ba8930d9d03659b8c5646118512d6daaeed61bd0cab75ba70e8725c59278cae923044542e021fa5139841b285f5c85831917e8c0be978d2b1432804eec9056b8732118bb145a74f121086feb284da36e8346296145df21204a3768c07dee45ab04cfa330d49d47d74c82a3773369d652bb4014f036ddddc9affb36f502bf75f5cbe5e60d59a0cbad40575972a4df46517f74d56b2489f92a9c782762a362708846a93258c8c81213d017317399ada812fae07b1884f143c71d9f1b04a3343e786041284d79cb231aae341b49a055d334ff5647a68041f11575bcdb2ca6b019471c5325a47a9fbc47786b8287f98df40c030bc47882b29b9f202f567f1d3bc4c73a29e616d88b15d01c78141a73f181983cea48d78966a7b93463342a5a61cf097eab7df94788a81d1397a566aa34b20c51e6e87a772d10a6ca0fe65168705a1f677286373ad8c16112e29643104f7d83d5d8fb97a33d04a94971b759c5528acf93fa30c5d38e90734428b9ee418384864e2dc50a5713159e30127338b8798ae5224b672716849045b72d868a45939a7fba3280223d370559b8d58899856344c8bc6725c5123e9f1f05273dc42da07789c5475e02e79c87d63a6e7f1ad95e1df4825f5037780a2bc0ca485e1d5a46267f2bc20301adc9787086e5d66e142c294277ed022a2683ba42ec891122e0cd34e6561b48a7b9f5b93a5f2b65a2c35ff0e51242c78df4281c8c5ff206d07d1463a474dbaa5049328c1c875f7b9645c189cb9bc2ed368f99306564e7cefb5e5f539696db48304fb7beb7ac3071521c98a84db92017c86419ea7f4cfbaa801985afd4348b28fbdfecd4d7cc2231a6e718a91367160a939154ef35694ffa39f1827284c3178dbf2a1fff88f9c3b75e675a9dd0f4a2fe9982e5354807b6790cc0d37c1f557c6ef754c16a3b004bff6d3468279b44f83fa326fef3acd7d2300360ba535c892de4d64317fb2b8c6d03dfe80bb890ab395401d55a2856bbbdefc1210f62b7e561798cf592db6111e2901163870cd01e53620a89a53a417ce9450448e72fb3b9e84940021331771621c380b968e21d3399002b091aad1b9fd0ea7e03daaa5a6fe99569b1675d4f27ff5959b7313783bf08095a8189e191b5043fba491e04c39d2de7495d1a909846e070e01c4d253e8821a6e00f9da2aa53f413300e4533940d48bb710184a4785a1c43ca19058dcdab9d47e6a00a09b05dfa44b91af4592ec5792999766c72050387829e2dbb116d6734720280305880f08f4d2b3110dfd96113c1c71f63a40b5cd0d352029f4dc71d31183fcec637a002324f902ad45ff701b52781f90c5220ba007711c96834ab47002eb955f32cf51228d046272013d33666ca269002eb6609767d3fbced64c85bc3c22925f07a562d7eca0c2392c0d420e387249c613d3fb5351da45baa933b658b2eb24093e12c26eb204d34ff65263bd4064fdba05c5e4d895bb19c9a8a9e910e67ba2e983a301839bdac8303616b341c3b4b7a079939b25b07b39927e8792c20c0a223e8847221ce0ebe3a6b1e5e9640154ee1d341f70b8c8de0c4c66822d3f230f847af9f17af04c3cc5bce84080ce10304480e478193e3c3310c6f7c8ef2d1f0692e1b7deec0a3ffb3bc5be56e3bd2e21286aa4dc82480d7188d36aab1c82470d2003b10f0a24eb0e6cc43f0e2e790adf362588e14ed74f6e8b2013431765fbdbbd0d11cbf87f140015f57ddf160330f895122331ba4c35498d5b85abbd1b8b3683ea1f79630233ba1738e01d2d223abd51b39c4bdfe4c9aeb1c755664afd37fddf82008f8b81011c5cafaaffbc9db8b61e33fa1359517b0e8e4232238bd379bbf95a6f6fe1c0ae2b7911e8b2db5321572c22e1dad2e665b7df296b3be162d4be236263b8b013274f93e0772300c5c80d3fa6a21d359087bedbb78edd059bc8bf5ec78330e302f8aed4b9dc27c0f2503ebadb7ef6a92c9e00461d512c92c035d6a91cd7f814fc6816856139ebcb0a47881d436aab3c7f890bd26835343d421eb40b4fd2e18f8fb066996d5ebfebb25af4d877046ab1cc4e1fe8d874f25117b6d8da7f848f2bdb5b75a9c80a00fec3431a658660bf9518807046c91f9828d74d425843e47eb72e486bf9d36763ac91a73fee184e1cb7bec648032f76f47dcf77bdfb22f60afdbb98429edadaefe1bc3791652cb2c45d9b4d0f4d3c1340118bbbb68ae9a155c25b9b54ba3bacaccff16c0e02e100e65531a79afcd05b18031230a233dd0c3f4f2a468d0622484336a53abf44a7a367fe35e9af10fab57a8ea262c00428ebee21741c1c6c478439b082fa90b9d645f3c6168cb2651ea3993cd65b313402c1ab83407fcb1b2fab7cf657ecdafcc3f78a62bb9bbf56fe50e0ecf0f5739655abbaf2d703d3763aec70d9cfd08ae39a57eb6aa50ae90d148c49bf12cf485931a3f9b987cab3d4680950fb1df2bd5e524dc096e40daf809d9070778e40f58358fe96038188f2e487640671414641979627c9b87c71e75b552acc4aecef58b6334615e73b78de947090d0de8f8fd715fc5f733f85628fdd62b3b9afe02cdc01de7724e2cf773bca983831aad70d605a01e8a66eb2477066552d200a09053add0935a3209850b673d36018aed37ce34927f2e5d5beb11a5e69b876151d5390d027a2c429179bdc10e5722188adc61e069d7932eb6695bd6facd84cea0494c23bc03dfcff1b13498739b4a3e045b3abc7ede145b9f5efc108cab321d394d689c9acd2c513581fddfb2603d6ba03c6e326aa8504381258c4053ba97c7727e94df4993508fbb7f858df1286622c08b182adb60886df0e426088316ef7e29071cbdc5141fcf7d648b4b19a12002ce7494dfbca80c549361daa7f4857b390dff18088020de0364eba779131458e6801ac98a6dd72bc3d180e6102231c39315077ab68babd54a935643e30d9ec08de9fd96119ccdcd1cda34ea5314245f442a7223e02d364233504ff8192826c7c66377fd1298201dd869b08011a1a60a1e191f7013e83c75e5d3b80f06ce2d8538bcf4994a86bbba8d55517ef881de4809db20070948044ffa0c9b4a65a9c33e0f1db59d7ce774457130cb41b7134d8b578730ace55d9936de6ae9ebf6194d921ce8d1ce2f401278da31b3bdace9a938042e94e88e268a7887427e0c550b8db01958e1182a467d8ea83412020f4bf268b4f7691835f45759536c9dd612728aa00cdbbc695fdb4d711953a833e9e562cfe55ea0b5f694efa94d7493a62cd2c65ea5fe02289ea85b6431def9a968ce15e6f7830310bc4442a1813e82eb1398a1c3a88b9874f4dad0c6066c319d76bbbd360aae7c8178968442988ad3829f0c792e01647205fe49c4050d53209cd5a6394d79b0242dd804ce01d276bc3ce787ed78f98c6ffe87ef78f9b43d4e449a866d1242db22500a202b008a464d5d4b158fb9f7cda2bd01585f73e346279b702138ec3ffee3f7ff6ea49b888890901d460df30c800ca77be3e6dec099b1d91139b0d98d9b1b37ee8836c17b3f672fa114d188a43263e57d471fc18223e48f2872c44cd3418f704196af286dc90d3cb423ec1257847c760b7ac8f2c618299625b2ac9165912c4bc5b26658d68a65b158567591e0c6cd43b9cbdf08a34f55967fa1693a4c59fe06ce8d26f4d98d9cf75adefb7bf73dfc1e10efb904f15e2fcc5dc1ceb7f7ff92a39fbd4427595e22aeb02f334dc7bbfc8b8448c83595e5b31b3759be3d350d877cfbc0f6b39a7aa24bf2d513b7872c2fb790657392041cb26cb72a24f64e341cf2493c94c4ee967c029a0e7a79d966b349596d230c87eab84e0d7744955b29d75a2f075fb01e2ecb3b77e772d3d19a60312ebe347cd3e1f20b8c48b03d77bc97174c891724727489fe6460d21a7c31ce477938e93b9272d3c605bc6c34a3a0422935009385d0cfaaa5eca6d4da24721fa6bd26fa54b9f75e73773d0426cbbff4ee0422a13617282149445f8cb8b922e2e11f8a62188a847e5e09dc200dc7049ce99de228224c7e6bc8306d1b184ddc17f607f6443b71178a889b9327fa04ff1a19f18987fa4199386152d9fcc97b4f7a0e36a33494a6e1a04ee8184c64ad75c2faea9c5c32a1c4a1d8e1198cfb96babbe7ad983426ed06489768e6172f09857f491e4aa65e278143e497e4a1a293e8c494618ae6c84bd164eb0d8bf1c27ab56ee66c1c1663b925f9b92dbaf4b07cdd1ab9be6b5ed5ad204d415a24933173e00c034e2770e6cc26d6b46865496b76faf07ab2bd505a1e3992df254e7525193375e4a1261549f283583e79629d7cd235bfffa861d24b962c49a5e413f9043a2f6e32182f27a77370709c83ed60b76c822373baf4603bd838320c39068e655972499e4adee5986cc12a79a85e62d3d5e91d8a62d1b84002899e2122eb999ee9197aa4924f82fcc882a59959cc2c6654d54a55b154158daaaa51552d55f5aaba55e59c9286c36921a9912e3de7856b3b5abac636f97d8b2e3dc985d4a2a64b4f2a8938b016cedc16945a5bf320ecf7e003e33551f2bc80f80a1a4963d14008e1f478b0183c715c4d5f1ad90a77457e3d9f01e993151367a6afb0661abe2154327120ac9d8b3e13e5d62e1deae5c4a663c9a3b894ff1046376eae8897f350b2c6bd9c9a9cea897364d42b3b9cfc1a5340f612115ef29ee01c51e1e68aa8701adfd9863bdde0661ec4c8eff3e67d2a51929374e955f3736a31b39859ccce82ce2c66cd3c328fc0fe3c82a44beddabddd74f2c74389ac4535305c5e4f2cad39e784b00afb859d99a9763db9aeeb7ac47a3c2cfa8a43e8d1a24def5b70e16a6e606bac68c4668dc98fc69cabc132fc54a9aa1955b552552c5545a3aa6a54554b55bdaae412c9a4e1e8a24bcfa3647ae6bccec1b77312a74daf3b3f1ad886833d623111e5f53264034b1f6b60dbca6aa5ac2978456224a4b71cc248469d8875e29288612422105e89783641c124dc33167ed63378ce797d5c3c5767d15a9b42439170909705d2fb4267617f489cc6c4c623e391d1b0e3b11f14502845e2d0c0b6fc46224885e82308a4a9689adc338d09901f7d823d3d5565abea5355285505aaaa5055a55495a8aa2cab9a9252aab2c242235e355afe0a5b135349ab59cd5ab97eb72116d3c7e60d169dbbd48f6963e6b5aada8d336a45cfc08e2e7a4669268a54552e35d2a67719945e53d12d949ed24b29a614084a5d280d825221285532baa26abea107c2ca73b312e4caba2dc30b3fabdba2a8a125ae6713278c18033a5f591008295da40c424a21a41c42ca929426296d4819d338d264741ae9d3c4322d5fd1a7d658ac74a7aaaad9b73a86f5bcd895692b1576a93cdf5030e07a36f10cf45c0d938138beeac11a79a895beca497fa7345409fd3bb5693aea5fe3152646171d880a2689b0c7733d1eecf100e1f1b8783c41783c42783c1e8f1e2ce961b8fad1986031b10a9b351a2abae4e87c261b7ddd20020700e455c44ba5a75d752e4c448c85e119ec855d912e615892643ca1340f356fe68d6dd8af61a75f6f76c55cb8dd6c168102c2dc380341ee5ff3a64f0d876c4d8d5b727b412feca78b50715304e706e57a5eb0f30d74354da35c1b21ddf59f176cd634d9bd3927d95d24baa48fae0a90d155b01474f4c680884ec25250236f1a27886ee33122351e3d034157e86a23d879d1353fc34618d8eab09af4a1e84bc9ed05a48f4890241a5d910a9bd94cbada434995d6646477f7a44b9dcaee0c58e4960530920c20b72c98618c4c695cce1a93c6e474a96031f3ce4151ee9ae802eb562eb8070bff4962abf71f26533d9b22cf09595866bb168d2e3df24c4ec9e5acbc588c24a34bef0e0eefb393df2116496c601a5e0169d04c6f44bae8fd86df162ccded2643230da5f27738f3502af8089c812db0f3310576e2f409477e9f4d1a45adb86618f9519ac88213acde72823c5153011b4e91225457c17914a14811acabe03c461584a5caba130c9cd964e63cd3a3f86dd1a59ee9525331efb3e9ee9e4fc98c85df2286d2ac60de52eed31695b516c6d59b9b4e8b962b4a1357605f67434879be4bf9bde18f86f38425c6ba18c0015746fe8055e1c02ba38c6cef79fd559f1bf678ec0dadcced97131929bb3b8464850aec852c9e4baf1658534100e457abd7fdea2ecff73a1037161a355a7e3110b0062a8135b0c6b55cf348fe115360b9a0c56b58ef6837869d38a333496cbf6be4eafaea8be54eae43506a2d8cafa38bb3d354787212db031eed477729ff2862b39ee9237d723de36a7aa671e652b9a9e8b6a2675060fb2c9f6f0b25f10476a547e562029b4130f27b4c590846a34ab049d331e12ffccb614a155f356f7e61e76b4d1e22bb2a9ebcfad24cbb72ce72ae3a77398739d771cee39c754e49d36139ab5e58c414c045174d53b4088a5ad1a6f71c39e6cdbc694a336f5c72362fa5c17a54d9c254092ca37ae66a1cced1a5f7d24ed30cad8484766a3aa2fce846983c87e36c9ae6c833ddf434c3eb9992c45ad0927326e76c3877c339229cc3e11c009c2bc239da5cb8aaa215b528b62a2afa516705a5d6924838b32f16ed598170c9c909c3c983514e5a592e415c708cfc0ec7804f201930ca492babceccd0233434a520ae547eaf8d6612a6942a29e1c03fd88cd2a0609ee9f54ccb265d2ac99c86e35dc98f8712512b0c20fa750b8bfc4edbd5330f35c2d48a8a4e4ca11f9e12258d4ae2d9341dcea666d22ddaf428cd1b915e519a9ec971e18c92ac1d91488e2a21c3661227bf7903dbcd49e7ace6b4e6ac735e73627376a06b898373337b0a71f591a66388abba42eb421b4346c215a0746548b82a6cdbb86cdc90ed068637705c45bcb4112c34829de162601b0ae04aa5522ae0d15e0370b53ec9dc4e457eaf3017ec837d024424c50a04481f7d8449b0d2277dc6496f3c4440462b10109160a53192958bae32c20d67ce26df9e6923de5566dcbe2b4ab8546ed8a8d1ddaf3eadf870ef3b71201f6cbfa666c6d5d4bcc03d58f795eb94b411ef33ee139bcd9b774aad25916e1a13a8079b3d2528b98d2ec24df320203a0933794a9a8e9b463d2e9cc0120acd642f0f76bea651f699943c2c58580770b53e7d5c1596477bd571b58622bdb926341409370d7e98e4b290dfeb1197fbc28272bbabc2f6290da53d43697a86a6547aa1345fd8876a3df34cee0b0b211e60e68c648712bd660cdbf2e11d50f41ddac1668e0a58070b714562c70f4b49f625240a50aa06b8827d7587c91ca0c2b04f06b89c58f8f91eb4892e954a1989e894c608a5314313989e7928f9e4592d9a86ceebb4704b68381c139ce9fd392ccce4e7a4906aaea64b4f6cf6ba86d474c0bf518d1c5ae91dab79a6772ba7922e6cdb70749be4f04a9f56ea4b02383e584a00ac4767aa05e502188f545bbbd7f04528e39497b6ab68e731fdaaba6b9baa7a09f2b4a2aa5c7786afee56892ba2fb0993d25023975ed125d7997b5fe7e69cf40a2b2016e3684d633d689cc37bc030142e673d43b5c8fa4829532bae38d2a7c6322d63918466d127882718357d5a7178dee48943b5e8137c698bfcfec24586c95de46799e4d77836e99217f91dd2c1dea0288d83134e37a44f5d5ff7e3a25194a64d6fe287c5b0546447d3a73607fb1838d3279a3e359a8722ed8858189de37e3cd2bc9960e0341df30055b5a3aa7255f1a82a04545502aa2aa6aae6d5a39a377daaf27b63db39cf3a21d99372f27bcd57cb34b7942113db875474f3e88a0097807a80abf5e9500e36c80f2edaf450aea64def642419e34818469ad080e1bcc85c0d4b566231d14ecd82566aa7a6a295b0188a7b260e3df3848c3e410424a0af9877f5908957123eb00528003ed4a3caed46b5c7d5fa34446e974b1e6a84258e944bdcbc559ed3d52019551056990bca27223c6fe493f71e588f5286343143ba449b388744f47993c43d386ffa8812343dd370c041d6643dd3272b3fa9a44f99ab3e2f95488705eb6af290ea0e693759d6482d6c905f43519a669a41ebe720a6618eed77ce1a132bfad4f87a83cd280da5a146e81836a34df27bad10c2aee8e14ab7452f92d1dd4522aa19e11a12e99fb775dfba6b676124a4ef68476a7a1d13c74597de085bd8a6666953bb4f920b49e672565e068b89104a48fb0e91abbb264e7e37a6dc2fe57923c23fdebcc9efbd3112d1abdb3f44981ae9999ea1346eb0f4d6fbf2ee42310426c3ccc289fbca4c69faf4e6ab5b654ad3cfe815f9bdce16512bbaf44edf45b875cfd074cf0461dc9cf716456e070f9d74698acc819961730dbf4bd34119d40c3ac99e0feed44fca519e82d04129473990148c7220210cfa7b870dad0c8c546231d6e7f3c93e79be52faf9b6d97e5e3f34c3cfccf02333fcc40c3f30c3cfcbf0d3197e3e1fdb899f0eb638ebb7cbeb58e73b5ecb7db5ef78f5f68879deba3d5e0f97679ed8c60bbaf0934b00a7f07404a33a622b67bd27a5947256ec72d7e58acaf6fdb0aec8c980f03abc62224ec4e9d321cc515d6e60bcdc7e3c144c9720fcc23629638cf1b9f7feee0e6d90360202b9c2ddc056afffd12719a4c262e490c624d74311f3902bf23b122f39609a0eebed59b3e122c3acd5783398ebe45e50224c961d10a813238afdd81b651c025355ae72315eca18fbf0c413711e6a84e9933e55345dea433b553368154d3583764239fc8f56baede98fbdef7248acac68614a382950410aedc1d914d97379b3579365c471cf2e23dda195e0a913a7c3de55344fa8933e5533f40eed54b920e5c63734137ce8463a34133c7df25015cd33cdf429e274c905ed14d9d04af04faecc910d2dbea19de4d0ecb5ffbc5e58cc0737eb3cd7c55cd13cd4ed8539eef0be1c715e76b773c481d7e5f88686a283cd4eda00ad19917db22b406b03c8525a43a2b50064a32a67e7f31ddd33a7dcd0cc1fdcea8f3e7d6eede1df913ea57c7e60ed3f4779b5ec3b163bf8a885b51fcf7d97718c2ce661c8abc931edd25cf1908729d147d04206f9fd72eeaee3b11f946b620aa8d84212fabb486ae80669133c86c5846e078b698c24f497870ae188037172e85656b4a971457304081f71629346e56813bcc32f42b0cef62d1633dfeb760efee853670824c83fb9351cef7c585d3f18a5bc19cdcfe1e8bcb0ef5d1dc12aa80d27c7bb1af9ca58eee499ebddf5e44aaf1999604f8a49724cf250eff1f1d1a649390e20c7935cfa743dfe256b5d2c79a6d879b5ac4562c943b978701699e4d8c1585c02734997e5538897ed366f1faa3fe7679e7fe91311795ec6c35a5959d1f993961071a88deb8e4bb04e01350da5bda04287d47a9e3d8a87fa1c5a9086ac05914828bf2d953e983659df4ec44bd3d10dbb63b7ec9eddb4bbeab6debbb0985885cd6875da27ecf0976d3a2ecb7a9625ead4abea582b4cd87b0ec4620f6ecf04a43d0ccf3071f6fe2e275f4ded8a894b2291c49b227eb7a17ed6e5703039eef2de7b33ce42587a839e52a8d2db8f97a3b3fb8db2686d554e528eb73f6ffcc3e6ab75d9f97a5df3ca19e51de6230099763ca545ea55701ed60c9767633e0290fb34d2cb5bd9902ba25fafa805a06fdd510b409f3aec93c4d257987689e2f91c7c0229574f73818d36847fce461e49a5522f48a5a8b0030a15c2808623a9548a0a2331f73fa9249186861552476c17624a071e2b2cb9e2482a95b2028b8e19602a954ac9a006b3b1a18193542ad5829927d4dcbfb8b0049c542a7503185ca1563187974aa55236f082b5c4492a9572010cc65055610b39681c1a6598b94f8b3049a55237b0703eb93f6974d036a9542a0675b0725fa6e10c35a9540a0730e8034aee4723b823a954aa8a544a072f8842b349a55230782a45032cf7df1568b8f0924aa568587cd0ee3dd295a75c0ca18607f4482a45044fee3b9295589272c4d7116ccb5fa0213f9cd13ebc1a75f1a041ca28c8630692daaae7e970ee79baa64287a29ddc3a0137a6e1e8e14cfd2683f5c21011c2081fdec1038b4496487fae4f41de833cd4fb752c8294b4b586699762a392877439880f5eed06f4ea937b0f3a289e43c1eb1e8d4927c620d7f30acd603d874ae0a5d91dbbeb19460e0e54d24f7afe8c3c9a9c076377913def256df38cb85b871192f1c449f5289fcb227bee923c71a797d00cd67972e73b1a763c0fd2a7ce3d1ecf3b2ec9d5b97b078b71f0419ee53b383459db1c694c56228e105aa089355877f86e9d31d7614375eeba31ec14ed16505b6bad41f8427aa8ae0a1b7aa5ec7266a37355d876712517f81285fa5e0906891c1d6271b9bbad07117dc70293df4bc6d10916025162619036bd6320b1099d638cf114d8d1cde561210d070fb5f61cacb34d945c0d9a64223d82da5a43554fcbc1f6df934c327c3f98e11a6a6ddd2e5d6a53b40b81a336c639fb2481f48f2efd784672317677c462dc1b0e225ea9f44a0d87126c3fbb2edb2897ee183b4608a19d7758bcc3e0e39df55d2e24540551b38987aa70c9724740ec60e08a782fe1341c07a183584c4761ab9daf14c57ba656c4fb6b5938c093121eac7bb031306a7371a1ecbeb08e446a94f59e9f8247bc959f07223fe925265597d8b6297103522f2ba6cff4acfb449bfa6f97220d81689809a3c2b471e4e70c89f69418f6e3416d2e5953da9cebfe6c9cc1641a773963e599cdf0f20dfb5164e5335e6f56420f32baca83902efa8e6e0f458222009971d149b08257ec553ebacae30cbc62f14a0833a1f2d181a86020273d3eba2660b89b68456d47e368de4d8752fb485929df583f58279a8e10e9f0a5bcd9672f7b7046b2231922a24d5dea12cacd9ee190e1535a293f79b35206753604c61255e1aec8d05dd156348ae4b06814a4b9a1b90e8c36c18faecb7926e724c35b32ac05854c1bbd8dee25ba34549214e5a144873f89646d8321eb49095d74619bdec77a5242f60af5e93ad2695c177006b6dd64185123875279175d8257b98e499be01219d8ccd194dc122b1a35a2111da67c14baa8434668f660536ee6926498f3a4866e3b30fad472131786938861975a762e42c180f9ac31c5afd5466b0c6ce8f00e8c3ea51cdec1bf5d7b5c1f0a1ff399ed12fc75ec290ffd55b9af36f52b94fec7fedd941b72385d82eea64bf08e0f36e3802b83267b56024556e5ccdd746e7665074f81262cd0a78865da9027fa14459fde65598f19b4d7d21873506a2d297bee76333be5021b5fdd3d7337ef158dd0c186b0134f2fbc3a62192d64691a1a7f6830bff71e0c4cbb2dc48073b0b04bd4f5a8fdda9709cc014cf4fbbb0d368410c2c6d2c94090bd808179a8f6de7b190c4c2edd392786936bce83608e75d9f118618411461881023f168e1093a9c75ea105baf43ee4ad4b15a59442940fb4f7dcac8171750909384676efdc0c3ac9f133270c27d8a5500c7b4127108af17213e95a955c3fb9be6a28586bc5d91018280614c31511df1a894a99ddc8af8ae18a70508c8fbbb4509b17eeb258c89b850e6f06ed9567f5f68852aa6559b6c2998bb11e6232f19dd76e5228745920ad5737d6dde9f674dbee4f374a37a8fb9adff13e97d7d643f76993ebe77bf5ddb57627a6319c83c5da86b63e45eaa3d6fa785dbfea65bce8a6604bd45ce36bc7633f28a050ca3531051c3a2d728c31f1a1b49505f93a23848e84a250bec1c1caf604240191c8b2f450cd921eaa3a34a2ad5bd10bd350f4f2a587a238242dce98bc2654f7eadab12b72c38d2dd1391b41a631b55b37ec7e0d477b077072cb2d0d73b099cdf78924d8cc79e1bce8779be852c321a336972ae59c73cebe670b36b3b36163890d1f6c071b9c9dab4bf1b155d5e7935bd54cf12d362e1ae581857777340f9523017deac727211fb1c788023d7a5e59f5ad0d80f2eb187d28100e32038372e1cca54a9f8ab31ca51c9b93dca60ab3c4898174293e01378976448b2ec5f7a48caee6081735cf1d79d1d94c2f54f9e6923dc75799063bdf9e44a69f373a21a4c4c6f85871a84b71c76ba7775ce423d9c5a0ea5bc5493c13bc6589c815fec24696ec7ad6ebd717d37040f9a48b1b3d9091fb0916b93191ce310d07acaede4188072dc816e6706357c34eeb7412d070c0777d57bc5174091eba226d82af6e6b231c8cc2a51ad578342a3284772209583d6b4c3ad8023cd7c41410e58eead6e1ef2767c7837db9e1e80c71d6ca90610b4386cf3e19666d0b193eab76341c100fb65fdd4b42fcc4be060f6d327be5c619b6830c10bbcb249a8e1d34b16b155248582a6260539f2459fe93e4a13e97ffd47c943c14bc7c0a4ed3214496ff2cf930f980a1e9b81e9f7d6cb2bc4ab2fc55726d2e158270d27494649beec12f58eb5556378318d87991c0cecf574d8792a6a33d634932446649928d8c64f97683c823911c6c265292e571b23ca20b9bddb851826aefc64d9fdcc3829d6f1088b7971804e03ff8c6cd33c9db7b03e799e4bb0b7607d61d918ab14b1a0ef9a8039b5923d626b1461eea48d3815ddef6a0e9b86e8d5825464c54b4495a81753cf683020ab918d8771bb9e3b11f14502825429767cd933eb50032ca2e69933c932c6f9091a5a59f8922413104539ea8d62e75ff83020aa5884601f854154a5581aa2a5455295525aaaa515591aaaa73dd00e306ce43350f696fdcdc7842442acbcfeb4c60496085c849351d2e593e5e61df33219670c0e57a68bd3a2663adb0346847d82554d0f4c9b241967f3664dd7a423b5a4d9fc427562423cbb74c491348145849b2ecceabc32ed186a36fc1d08e10e1d825b60bcba4e9f088d62086bb74ee21b1902acf1147bc0a1fa0f3ec084fd5f18870446b70b9eab48bc5214b396469e12c3ec9f2d551d7af6384932c6f84131d499a0e20b2bc114f8c20e394b2deabef5def61ef75def3bc67dffbbcd7a44fd6017044ea88d40d30baa6e66baa032e6d6a223a87128b826953bf7374a9e3b31cd9aaef434a25c519125dea1c6ec773c1816488b15d6369d4859fa8d825674438f128b59644ca4839879463e9735f90329213d563ce1098157779877b54b97549ced9172483fdd128d23341d465aabc630cdb8650f786b931d815e9449f503e4ef4c9e6273ec442082b9cd1aa72a24f9dec449f3027fa746527fa542f27fa6439d1a7aaa29d151f569e97b28f5842a88d001cb4cb4106219d8797103e560d07c450c615d887a9a8cdc57a198be70a3d00d8ec9a82662c19ba9042195e19668833faebc25fafd4b23e3fb0efd6219c9044ab3ba40421ccee5ed802a6c8f1115342a50b372821c747dc289a6d5c55c43a7ec13a78d1492f2983a79803e8eaf0e860b350cfce5cfcc431461ed82ce4e69c4d87a42c3d1f49218aab8c237691072ecef950975842241e58961a67cb59e871c09591e5437d9a54c6df151f99cb795eb7029b59377169cef9ec668c320290bed2e75c734d763221390e7935d9a54b13af5c2047bc323f459e18aeb8fcf2c42b3ee66481bd393a16d82c42d9fe4e146aab9eab4f5070c09591699cf882514e5a59ae666ae5aac6055cd7c414b0a39d1716bea8865c1dd6c395723774ce3584a5dcddb2837d0865aaa8ae41d72d979a0e97dddb3927b5554fa94ff2aa2cd2ed33b96ace39e79c73ce39e79c53b6883deaa49c539620bbfb26bceff0bdf79eebeee79eebcecde11e9d9f6c0a85dada43d5be55e5d6a796524a49a594525659610ab0acaa03fbaff13cbd3b4aa594324bb8c4bb584cc3c3f8daa64b4f4a299f7c70e5ddc5b81e9d7b66017aa91c8d60b3a6c94df3e071a0fb01a869dc11ec6e6211ec7be6ae9046220d5c91e91c448a27ba4b10a34be77ed0a08e520481524a29a594524a29a5944b9604699068849bc912f94ecd85569225221a25c4e549edd44ba40481e4619678457e8a2aef8a0f494497e0cae8ca2c04e82e41bc76340f4579c0b791917c10f22e5c0822e5618651360823a85d92081a22b994faf4f08b854142a6e55aeb859d0f217b3921dd965bebbd3ebaa1c76b74833494a12c59b26c9144e41c594a29702591deb01189749823ba14fd113162c9a3d19547870d3f7aeb13fd68f427c299cba325447874e56824e5e87274bfa3fb3ae97e70e6f2e77aadd7557fbd6b263dd2e8dd0554e1ecc52588b7e0ec42e09370662fc240fc3570466b08812dce4841bc717617dcda44e328d0333abda3d7eef7208c51ca3929b502937159f4d6a766d1cee8580a3ac933c12a0b0b8a019d7c2616f3a181d1008c11d11f2613b3c8fa3dc4646016390003cd64828f98cccba257794d4c0603ad04df3d682578297a9d988c130d07bc08f7918603be464a69a697e6e6b008043be7ccf4ceeca494b9638cf9c1ab82106668bdf732bd2f4779d5eecef47696580fd145f2a1eb32bd1cb5155d8217859a3012a44fa1211e63463a10cf4a390e71619be481b852882b25bda307e95355e5108692a64fa3775240a08a06ce4a19a40202bdbacbdb123bedb1b437436549cb61cb3b2d4f69394bcb575a3ea3e52a2d12c3b7e4d13fb78dae953b97e5aedc19377bc9592f8102dea6c93e2d46fad47212ce86c0c0c31c28c610accbd75bae1a7776e53aa5c76a47e534ce92f2eabd2b93787fa9f4f202fa086749e46cf42130192404f4969f8f10080402812490df3309e41108e482813491412050088f0e0a921f0804ca92c8ef59127994723dbe2b437f387b1d70524a29a5e8a08bae0fd1abbb95818f5ea2fb81960c7af69169d15d612288bb1c4810b83d930b067241ac47940dbe7611db86e3bde100dd1eae0cd05fa8454545be86ca6ba8a8a40c8101e12130b97399f216969882e10a0d16961589490c9871d267904824d20cd257482ba4ab9270fd4a7dbc15ab2b2b2b7fef1ec2e718e50eaff8b82e7f61d8e9e73ac54eaf530c048249a2a6b0885ed59419a4635145a376525870f63f94cb9b0d81017d3ef4738a33ec9f4f86fdf3fa7958cc1b81de5814829507e10c06fbfc270ac1a23c83c92823ec17ca10988c61fa96ef786d5beeb95912b9e5108b59a901735d2d979b13665e4a295b5e5b92d8eb8a483a4f983cef144bda04bb7b49d32ca16921b55811ce48a4116e69696969c1cd3a9c5e82c466bdc4c9184bba60e2c50d18384d72c2e8d3932d77774682f4c98928f2b3409fa494f21287ae2be252f5ae1c74551e2fd07b0fef7811f30173e8b26d6428143a1613baaba96d830fc423e8b2337ae6941c31e3998bc2076c9e114197152441a0c7fb9e8dab79c2b309dd169cb9dc727957565edf4a5656de367daa5f7963312bb8d95eb955e6d09d0cbd1933bef2dab9a0f8ce0505a12dd0a74b0c9297972d128b697975368a2e4971f981875d0a420829a5b973a99473cedcb973ce29a5cc9d2b29a531c6dcb9b1aa2a0861ee5c6859d67b2f77eeabb5763734831dfd1a8dae725deebc8f40a74097e24177984c130d0724c5207d8a425cf4d62897a7bc352a8867368b84b8f136973b71903e55195ee556f9912e6c38e281b8f8c65644fc8c0a9a77a967ac47e8f18a40af6fb90d74ad9c72339a4567b919298b3014305b193e0a295caa489f42b5d61fd82a95b1faf9e72048e331e52b2caff17ad047075dbe826ebcbc4f09d147bf5913398a222882f04ae8239cadc88c2e710602bde526328804228148201288042281482052e82dab8c4eb200e9a183aecb2aa41938a482b326f2c8959143f7548ff1571341e029009b6488f9205d863e3a4806f4bfb712c23d5c19598441a7d4cdd952be182184f13dd91d55446f590576097451eb12e8a21ea18b1ec2b4e1005de4cac83b1ee8c6936e16fa64b988e5f12f620d7039bed20b74456f58034637035d843f3fb0207cec110b61b9080bb91e894410261233cb6bf578bdf388b31a90c8731803245e79c31890f2959720afc8afc4bb02fa1bad3cca83fe5256de597994073d914738eb9cc8cb2bcfe0a3b18269bc43e3f1d2c0199197e3bbb39dbff8cedf512e111994ffc0ae28e172ca5d4eb9c442400eaff8a824ceac0c1202fa27e59f06faa7fae773d008bf9b3591a55461792b2af2a107c1a27a79472929779812d53f1f9c819e92819ef29a72b37e98ccab0d93115dded15b7e84b367f91defc9db8bae10d069e829b7737df65c5396e81cc24240af24261233087f3e6df6dcac89980e565d2d5b7758059b8994b8975048a9ed25373db0d5337773c466ed0666faee33bd53e4200fd53434da4792a50961906772a9dc44903dc854f1886d257dcae0167dca9a174dd3a76885912b8e60d1a7249d45d7b4ac051029e52920c7b02f55a335405323102ca56d4e2765c7f82084efc5ce39a33d5e0482a53d68fb14ce350bba18c34e4f7ca713df5a8cef340c93699fced5b4cd8c81187bbbd66b8db8822d7ec2f6193fe1773c48a4ab2be47a0972ecc0575cb4ce55b5585df7c486677b46040aa1bf1e23a50daf5c9f7f31c6b709abaa6de6ad0b93b16f155b62b6082f6bdbb4209eafe2a4f4ba6ecb94da29a488597791b3f7798554b4bdcff8993d583db6cd7b6caf0e9f0db95c434f7bbc59bbaaf889c9b45b7711bf7b3e7717e57d41efdc8a1d42781d56bf2a08f10afdfcbb9f1fcc2157be8e728940ec7e2e6c13862f88c9cc0ba9aebf89b30e4c9a85a0355c61a6cf88c077658a85c42157ae4e277c35e4725ae4f708338d37735be478a745c75397e3e35deb74080bb55f2b7e37bb8864faead65ad5aa56b5aa55ad6a55abfaaaea55b5b26835e4ca133ff91ea7a0ee49213efe483622b72c30c9c9d673c55fee966559966561e7b2b544cd16c6309994c343e7dca1932b1ea90ec405dd4a39bef24e3cd4cbfd5fe32c3348a2f76da1b1a2327aad74cef83985d4169a93c619c2500c77c47c74402c11c259e77a2070d6224772331c8bbb730e57fa4af14ac8c23bdaddb8fcf3f63a42dc0e51bae7ad4f280cf061ddddba93bde3e5e9eaaba76032f1eec296b8b2f5286fc2d94b0967a521dc112182b88b7b757950c564e285549cb968bdada358f758c7ac5beb1d0b6743603ed15d56151673d19843b7856ecbd439f929a48856152d4846ceaacb2b24e525c8ceaa620a7e069de44abe9af138834e7295f268bd724672d03801c4e3ab945b17667a9d7b28a57a18ae08eb149349f9773c202ee8f8869e725b46b9d9cbfd4562e330a74bd643bd3c53ffe28c1e67d4d6c09965c119e933708e0a7e79c9a0bfd45a6b67f4eca57492a5b5d65aeb2783c918febc610ca8ef7cf00af6d0adf7522a3d3bc9832deedc7ae87e7e6087c064fbccfa75d0c564ec85a060cf21b6c495edddcd6786884eb93c617192fbf3cce5e4fe746ebd73cf75fd613157bd2d7764c6b210e47aeba1cbf6090ba9bf6e5d89ebafd677acef681bafeeca71225caccbeea19cea8ef66b67e3b63641db17ed52a8bbfb61cef2c1ba43dcaf694a7d25d9904bca09a19470ba1b7d6a5dcaae0b15c368596b755917cb93f6bb6a9224b151a224c2ead66c613ddab583305a8fe6cdbc992346ba6424c21aa344b9ac5be57ae33a1e44dc76d239cf94ea275d7a62ddb88d471c81254586115e588cf45cd6a519b3eecc1d2ca6ba2ecb0cfb041ba8ad2b73eb13c5626ea4362ebb498f2ac73458f700549dcbb61d6c2671ea4572e3f222b181db0643d24a9ea9afa4993c532fb9a9de20f5603168c871f60c336563d374341b377e620e18b6c1f8607dd3371063584c552fd265dd8772d50b6b724ea785adaf2a97751b56f0b96606bba341588cb4555555b731c7796c5682be101653e158065b2dac234f722af6a1ea41d791dc78b5711f13246fc9cd5bf270b07773635b975a8d22576fa5fae0ddac95ec0a368e09a5e82c4590e15b293a291b96c0cd18c3bebb2360c8c6db922e1eb4f9c2b62ebd08c9784f9e3c2cc6453258f7e418d873d2a51e83756ff31531678dee422e966031cf0bfb725e8efc0acbd59a8e942f5c16bc104318c0c0c48b0a3b8d85c625869c411b11b442ee472346e217bcd0852eb8b005234d07ccad8525466216a2915caf8a4e791ad0e686c98e224554701e287865a8e0854711505ec45d05f602e9786fb7dc11f5ed579fe489d8ec79fb3148049864544405e75104eb45808288cd9f67a41c4434216c0c3d104499af95e223e6033e12c44f8e12f311b3cd734e4fc6552b458cc9cf0628e6c3cad567081c9d18f31133ecd00e46a399228e24b9e36585f9f86703988f0fe86296b4a49c9694ceb22ed0bd9ea95f05d0800cef79bd016838e263ea634e003cafb5d60b746b5ea955945d584cad145bd7acae39af39dde59cbcae0b74adfceea7e188af17a51511ef2ea915117fdd190d473c0ead5ce063516b8620c3d88ae8ec1ce6035ea05b658fbc5c8a10144cca8e94b323a5eb58f7d34af1f4a6b4527ce7aab4523c7669b452ac6e33c59b8cd0002c315b11f1f356ad145f5dac95e23f1bf06021f0603edad3b940776679db23816b45c45bcc87e7025d99e5c7aa2e921b78e685870dec9a297e3ef602dd9825121b7717c98d7fac1b9f2817491115581e363ef3c2e3062803f57e5a11f1376cdcd64c28988ffe6c0005f361f3753f102fcc20e724087481eecb5186ec4c892ed0edfc4162e3d745326379d8f844b1718f8d1116230fabbc3335431b256de6152fe70c9cb151e2589d3d1907aece9c9907f2b51a0e287128b63ed0980f2b5bb14a1827684828e3151ff5f035945231a40283337006f401fb81fb019bab63b048975a84c11416ec3bc909512b227e84f9203527aa38cb327c0653b01879114d1192e1e7b3010ceb40865505820c631c412bc58b5e47a1ce7cab35e04bf69c746755446761790d7c0f106f11e242981ec45d8678c973947f44f7783e04b48136900bd8456e25ec510ebad91319f43a95f880566a1c05672b4bdc7b503e71b65203fbb8b875c9f3969fc8f3a0ef78a09b813ee37e5eebacf179872d8172cf12f6a07bee339a576a601f168370fbfcc7733dffcd400f996e4df7fc73d2ebbc1ae0b2c79abea351eee70716059ff4862d61ba070b31dd622143dc732210051381d9845b9784f86788875e7211dd2304beca3d380b02b72eb91c76c905672a7718038000e22d07a265b6786e0bca3fa0967be651fe01a2e52a2df7cca38070a6d222f27c7a700bc657c1f75c8c33973d9f1aff783e7756e51f957f4ec3f3f1d0b8e70abfcbffc42d7778c587e8f3a24f9c59b986901a67b9e82c35ce223a0bcb6bcc9b3d9167df0fb4791667347f0e6af9bc191198593ee328ff1da684e82c67c1598d3fabf1bffe2df17eedfdbca07f6e66f3e7f31d0f25fb7ce5f70aa9f114fb4f6cbbd4622d1652e3a2dfec8389c05c03b33cf41d8fc6b52cd973e8336ef6440efd588c0ac94926f2b2e823cc474a16bdce9881c58c2e924f526ee6728a2423e59e793946e4c28a9ec931443365d339e536a7dc29f24cf59363c827219b36754c0837db6cf28ebe56b059c47a5bb9a4177d6ab9412eac6065187dcaa4189c18583c97056b02c98d5ff7460d2cc6debdce99cf3d9e5f7d02dd83332270de3953850f863643ae67d0c609945f9f7b4a281f0cf3f51d6f62d69ce953c3cd7a3c9808a6c401ca28a38c3c577c609fc73011fc0198718379062671641399d372413cd3a59e291b26928b3eb52ebcb801a34f12cb264de2442ad80cda5ca725b08b3e6543ae3ca38d9db348adf5d69d3352e4ce5ba36ebc8333eb3315a760e7b3992ad2a5761895c2e6ea2e0be6eb3a6cd48d977ce3b67c67112cd7c094a087b706e66662ce151acac69c5216245b2ead541fefa7e1a8aff73a06e3a1cd43a1cc14b45c35cef514cfc8f51776a140b63e239e8752c809bb348fc406865cd874063147030aa534782cc6e5cab9c1c9dd6e96d8d6fef250d0264aa887931c23d376498668e455ed08e9852ba2be5b83c062220582c082dc58424409efd56c2bc5471db4870a35537c5f7ae1b2ce99f422f7adc010988f9be169098b89404ad80f93098b8133b73e4991abcf8a9b938e6198b018b9001396c4121b584c9531f1b04a99031b65e315ce865c3247e2481cd9c4c69d45dad43051e6d42a5f614ab4310c610c4348c065038b391a79a898d3a6a631c748eedfc0626295f76a94b479a67ed5270b3ed624918285978159489b879aa9b6c9fde2716031f0119b29972b9b5857e6481c1b9812d5e34956186224256c8c610863c8127ee21c5d22e507f30dec0512c1420446ea87238403b3d69217898dc30a0419dab8ae99e20180f9a8c2884ebad42f028b8938e644c15e5dea9cdc2f02a35bd8f66255f4e5eacc4f3181c062208635883ae9acac3aaf89753cd37e26ca9c734e5068b61b40474e212f8693a6d42e076154f76ef1faf030c9b04bf23b3ac618638c7109ae6231f041e73274afb12bc310928d310c810ca4f9972591e1bbe478b4ab4f0dc47befd9676a3a9cb3bea3dfaddb03f14a0fb5e399fa01ad04d3a71fafb0e534ee5f6fe835ee7d7541419c185535ee9ea304e3dc9b8459b092eef8d127980764cda6e52c4fc14fe3e38998039c109aa9cf816692988c13422bf539d04afd1a67dcb9bc8269dc15f7964fc183e5b2fc1e08cbefdd2f8db760297e1a97a2c55561b1165895834e7a2572ef941958e522b927ddfb06bd435771350ff5b71ca5c6abf75d92a623e54db3b5513c148df64e47b4d2e7ad9d608234cd4e8884b40ca6dc7b89e81c2db7812ea170396b4e9c106ce643912e0c33df3fe2e6e8d27c8d4b449be6218d4b9f699e6508ccc37a4c9906fb3e717b12b6198d01e13de7dc7bef3dd72743bf37df7b584e2105cc8161bcbb97a59bae3d834e1a9eef3d5bbaf5f9d644a1a39ce51d96db9e69e55295db9e894429a5209c914838fb4b17ce5e2c3c0426cfeaf2af7a500c2846b39942a82b3edc3d560b96d2397346a79439a3324608332af33a6332560b34bb57abb900336de79aedc92472a5d45a12e92f959600ad30317aca2790f2094c912463173d742b03e9c3645e03da143dc8d83b5e0feb1143afb2bd7631761a8e87851eaa7036054dc6309cd5832ea9e178ff5c9745f7cff42e4f3531cf47a2589c599c91487f294b8ab3971421d8a9929f0d4acf23d5c73b7d1f68c9eed92737cf0a13f1f0402286adfb79ba5db360080c0a165a98c110982a41a114e8923c540a0e510ab21685444ae2449bfad502a59f447aa23571492629cf49fbd361d1270be08c66cb257149da42b92c2cec923c81352717765231cabeff62afc3967bd67032b457a72913dcbb739436ea4edb33bc423820c58b771c7899ce9094527afa50286f5eaf6e7b1ee5cef950873ea31e8f07745b9baca753e71d72a17ce4dffdfcc062d8bafcfcc05ed87a95af845878c2e75e9d6221eef3ee13c7e769c945e580cb1de861d10ade761fee8589f64c118ba9139374563daaf79091b5c2644ad9274f8c095aafaa620eb0b018790b6bd768676232133fac47752963e5855d984c852f7655ec479114a4a076ae0beb11332beb6355576badd5e3b157552f0b8b994c5c98cccc181683823900ebb84ea7d3e9584b3fd73525cee05bc3513b1786c54c263c98cccc33068439a03d6c31998ffb7c3e9f4f6bdaf96032f3d53f588f9a27ae289787e60a5f16eb917de8fcb8fc286e4ebaaa874a63a873aebbdf753d88f9b8aa0a215c49a24d911b16537155fb61401a93990f92480ef0bc33016bab0a62f535b66bb453bfa3eb5f28545f61aed1d1ebf285c9a078de790a3e2b4c78deb905f2a92226f39113f3e19cc464eca4a13c2726e3a117bd0ef0bcf30a03d281a1329deaa257e67abd85f9b82a4ce6a2984c4a9ed81215b786a36232a17c5df4cab45c8f6149b45c5f5c19f9c22c142c86c9b85c6bc5da61ed591decc7b0c795911bb6c4e572c519915cadf8b088e04c56cf0abcccdbd111621fef2f019cc2ea3a04979f61fce4f9aaa1eae7b4de3cb8e7cd88c4dc5c19b9d3e9743a9d4ebd122083721419d05192c89fa334b123377be13d197df1c299e8b66692b7351c16ce68d54cf2a12b5fdd29f128bf4fc734d47e6d3aa7943142f85e63e17cc0f7ded79591a778ae6740243e954a1189176ca67e854eb00d5e9e22b95ee50c6cbd9503a651d7fb3b129044a3b05f2041daf4430696fe01b29ea874ad35b5452c9d1a11010000006314402028140c078462c180442cc9baf814800e8ea65a76521a2a498e534619460c2920020000000000000851de2194371f23b5d4780436c6d162a6808f0c5f22a5ec12efcb07bc765cd60b216612f4a8e7efb7db72a8adf378b8154861071d59546cd655ecc013546dea521369002b92b21f9e1e59880a312090fa13a78d10ff9de5b6a6667f85887cb43d5bcb1c94fc7f4ded8bae4d12a25cd531ecc0843c873947e75ad97a2fc74348cb7ca6b70624707a372864a30e4d4cd5988320a054b25c70cc1619bed109662c802c512799d9c6aff4d3c828147663124a3cd1a345f5703f73f60b94ff5bb131bed781155455d17006da196e2ef36621704b3e68e3576322d1c87e6f622eaa01f03efe89a4e6c6c7456072f919d10686a058796491fa073972adba3f56871eba531e30f759a4ec92ac465499646e655ebabed9a5e102f3e4d3026f69b13c014285dcbb780558514843cd92e0cb9c64661992055b651a6dcf209d0a0489394c6b69ee6db969e85a590f57ac2b89ea9bdd8566204c05496b40c65c3d362d8f36af095945d820c25ef27c38e1aebeeabde7d08a538bd2aee1ce2395628ef1a5e668a41b14f3afdd72a03b183781729b56090410dfcc65f6122d583a733fc84b421372a4c308cec2d602a22e4406cfc95a8ce62423147693f9541dc5a8d360aea391a79bef03b12cedd32b4266ce7c2c147b7bf71d191fc8eaa0af4267afbc5c534ef123a4ee9753103a7a869a258f547ccbb62d1d3f046c6294fd6168db6a59bbc0d7040266230e24cee273ebb7570e29e36585f93d6eb8258da5da4d0c6c612e28461110a3228f49070f72fd49057ccb570b9908d5edb92699440ba61de48457dbebf392a994c09ff172502a28c1109c26ffd1a1b0d5d3f70b0a1533fc0f0820e3906caf3bf2ce59b59fbe489239359ec7a12efdb2f8a659406f96a43544cb54d1764867c2715f9f8c025304c937824ce3996a891211371894ebd5d410bc397c9699a3747a022432d894f819052ceb318b6d4704c76dd8899fbb9cd360d6c2609f79cca86cdc466648dc2b8e257fb8e7dfeb390660cdc6094104c28bf515191b1835dd4e8846106c81c7ef67ac24e4b3a0df6dc2ba687314367c248a9d573475ee7e7a3feb44bb173acf91c11d5f2d9e20aab09f0ee2ce0002ca9034f003f8eaa5a4ca20abf6a432c37ce29ed5be0eaefa21977b812d9f565b145bb38e565f04d882eb0d6aa2aecec1893a6d28d8ca3390cdd41ac090d4f6835ce447c92cacab1425eba4f0d1fe3fde39a1bbcac991f0334e8ed8e35b0b825326b17701712e4cc41e5cb869b767889fdcc6ac65ca3758c0ac1cfe547d05567c873bc329b418c81f9e7e92d9d789baf065079ad83de1ca7d09f47fcbddbe661bb1478788fcb67f050d40475737ec2894b1846582a197351fc20ccdd37a597dbef3f9573951f9722b21926b3da757a1afd656944cc5e605f793714906d0e81d7782f3325c0de9ffe2931b9e19755b806a09efe2a589f6756de131c036661c1d9f02f691f77ca08a8f5edc3fd4da94011a1c4321cb77d9c7a576bca85494991ad6b9837469124e00731efdbb5042d6f168a2c5de42a56b1e1101fb60173d62026aebb49bb70386ae763f63a7ca60dbb945a4d68fc6d73b970766f66667fd84147a6710866e0af0f9d7a8635520e7e99b4028550881e85f029c0714d33df77d06280b47e3ec12b82bb099646c9e8f5e845d54ff5ddf943d00405bac6c97a052cbdadfbef133bfd16f166047ffb5ea492878a1f82dccf01dc2d5e16a3a1c2006ae0bf2b9f01dc4e96ebd5530365c12bfdcd57b1f38759fbbb85e9d11bebc0fb0fb8f50d5e4eee64789de7352aeb4a75747604247ef88aeb2138d5b04ea7ffc768bb39c0df725128c82e26de6c19a85a9bebe383805c7375829e855b09718daf6b0db4adfd5fe5c90a718bfb4bbc900a5d11aa22e35c662e84bfb1823215c2dfbfea82283a5a3d54c1c142d6356b23f444f3330c3965a0cb845ffcd37a5d0e3e673cda31f699d213ca1cd3ab16ce2db90c6c1f433e0f20876390a4dc43a997700bc406dd069a7f86aca1bde3134832229a1acdbc9954037e3b954d541ac5d77a4bb5e9f53a23d703b648de5bddf0528c188f59c197cce3d7756fb9e15221a73e26accc1d2721e1f10ad2d318601dfa4e8309e2a2e9b25c742219a3dc0790a1799806b66badd4c7ef72ab222ba4e36883617c06fbe562211ba365fadbb86444c9ba820bbf66a5f1158f71a3278af53d2e7b770b01f54eb1cf3119b5743708430ba727fa584d8c84dcaca7bfddaef101c1cd52efca7e5470d7af06bcaecab4e704afb860688ff50ea92d4ebcbdf306571be00c8fe6b85936862a37a291c856d142e2aa5a598693d9cf97c044c69ca7c962a080b0dac5961c5114fb253f0c00627e047ca327a92220af97ad6dc65af6ea3f5fc4e0fd7997d2150227f145d24505742124eb23ae15b04ad99edb1cb5659465f4720459a2e811450ce97e43c9c2202ad6999ecbe77f52241bca81d26083d1cd6719fcf1b828b124d56277be48344751f362a679b94876967d53061be6542bbf4da5f7ec3ad672e737f95a7bc879be33e4a0f6d8ce100f3a4c8df30fb72fa7532cc885a10f2c5ee87e95000219b23756dc09a4e057d405a3ee64ff4edd8b1e3cb855e7269714b5e149e18de5efe47bb4942b06fe9f37449e54b1b0dcc3606bcd6a6dc0ed1b71808be88264842d12cfe75c52f695da43ce1953f6bc64aa671ab4e4ef6880d78f75748fe100e597dc936a2a6b05770247a550719b4f1cb5d09928e4e7fbf19e8c290a73ef3e6f432bf15d954a007f6d72afc1c9720f9622142163bb2a4931e3025c39c34aa414a2cb8139ebd0a39d0c0dc71387ab46a6abafd3cd9bab30409b7bf88da84241f0effa3d43cb5071ce060aee1ef6c5cb12396e181c7fe0e8de62876e15bef6ec7e41a3d5052e2422292e59957e90a2ea55341f7127103b2ad192d8bbe651a083ac113e770a1f8e1d771d4a05fb81998fea4e61d04a193385a71f78a3a6eb4ba771af4599c990cb272934c941eb358af46d7e762a5cefc40c59733550a61601663fa5649da88b6a0f85c7a191a0ffce68153607c08a469098bc9c50408af2a7625ea47582cd1d41c816db1e183a0e1b33e00142688012fdf460f119c10e4aa72eaa31470d32d56eaa70ff5bda1ada2fbba3406db9188f66c3d1be535a9c43d0268162d663b400a7c1801583f68889106e104dd5429e7a1e2e58becdd0c6763fdbb39e838ad31e3f19593414b97303e429a16e6e329ccd22e89065f7ccfcc6c09cb4600b97a2dbfe7ab64dc3d0670509022a0cecf4babf8788e9160d8accf2e2f0f78c01258188f7c1012a7f265a517e30cfe4d1f53e460f03887db567122ee71d8526c91412797537327df7e02e3e31e469a30f22047b97258c48c7576bc25038e93d18068d119e8668430db00d2712d189589ea73973485327b94f5036bc8cd5cc804d01f042abeeee678e0231236e047a5ccbaff67ca894191c03567e7e6516ffe15434b238ee98ed6e6a6927c18d0a581dc3460f64564a4a7e08fcb0f0c9e84132b3e9f06ccc6fa57232906e91e463cd4270f9e9e8ad56cf81e341ebcbc2b8862063064ac309b10d695e6a9b64d31712b6c4a7444add06714f06ecfb0ca6e539f668dabb5482a0757f939245f8a6ff1a4c02e73cf3e1a4e20f7a506e32e8ed22bf96630bc3c4f62332b65f5802b4f0c22c92f5d811b9ac4422c2c5fce8caec81e4a23f641d4971973b516d024514db27bc24b9afcf512d489118ae1910057e4329cbd52493f33f47a92490d9b396a265d9e3443a7df3f08240afd30ad3983a18d6bb656104f3025b9d84aa495c62a793fe0c86cb4facd362bdd130a7bc4cbd3b24f1f75655c2da6618073c87a1b8245ebbe4697d5cf4a937ff3efc013f128862ba818a3ca40a908506d177ac652a1ee1f4563bd7c41aea60cc5b153fca1407fac22314a466a2ab85cbfe2b407d23def16a8a0ca6d6b4becfc5dba54cb7ef71c3d5d1c2cc31568cc8ac91c1b826177a3dd5f906765f0cc2dd7570aab3018ab2e3fa4d27c62f83728f1d75a302126ba3697d1f134dd5865f2931959b9b014567221a359e8e1e9f5f945e8d5fa5d4194f8c01a91747a541ed890fa65f63aa0bdaf6078840e441dec6922b53971502b9a3c406691304dc552a4e5dffc2ac53f8ec7ea203a6d9b55bc265dc7a7e2f0843060c076f84d5dd9cf6ec87424b0321b5a84dc4f17b6a26a8f062dae7b3965a0aec0cca80fcc8bee634ea9aa06678b4280c4f28c2bc4c9b0e9aba7e61159f144b6050ff90ff178b98d0c819dd5eb6cc5544cb3a817fcb38e40321699464d5b823b55d2473ef13bf8da3c26981518b1d66af02dd00d3a17e3d5bea1187446ab6802c3ccb1722ad1a4918a76b07b8cfa5a4cad4ad5b6d2e46535d48559431f61cbb8a1a62605a7645961337991d294337c2ec83a60188b531a2d7e9205e3b1f0237fa48deec21c6ac1d3e41e9195283206175a8018b6dee25303020bcc9c50b7dd7f7cfd3159ff3dfe7b5357b9cb666ea8b0f788a443219108cec9d6391a0eb27fd10314f5ac6a886801efaf6c907aa1a8a67a63accfa54ddcb12f3f540435d762b1b003957492423d982d0a1522150699dead2223920cecf94d636fd4db7e559e2ac07119568e7b617b313d2822957a3868692f59d6a1a0676dc71b169965fcdaa09ace9df6eb69669ef58655a925f603ec2c49f57d10dcdc31789549bea7a1e2198d4c013e9c8a2671c5327fbf4848de1eb716288e0cd60d91567cd57260ee4a3efc3ec0eb028ad3bf5fb1f6ed82a103012a7387ae517607ae1aa2ba964655b34323a9041063561d221a5b133bec75e71a9a544a5da089726db14cfc377a127ac3c4d3b985c9306b13db83c3962eb3b258c089d16f3c6edec9c7ac54dc9ba088005fef3f227b211a0821f510522dbaa38ff1f7370b2745ecdac5a39f60054548df71fa751a7a68b0dd6465c589192378d412d1222b5a4860894d68512f1244d9c707517ff40bc87acb64ace10e5393db9b814ed0e3b270900c8335a0c1e1fc1654c00be5f8471e09843171929b25cdbdbeb079bd8a4b2f3db27e8ebbec1beed62ea4876ebc91ec52ca8e773b6db21131910c1c226870fe911a1d35a3ee9390444434a42d77bef9b691cc7572b0acc140afdc20b1dfd01edbb9eea3106dad2047620d8daace8ec920882ab60fb1fcf9766f9b99b96a1b7344465ffe9efaa7e9946a232ff9e3e8066016bb99fc7dcc42c7bb1fdcc7f061a4c86536fce07b62fd0ab796555ebf6bddbb2f6e5630e3357c7eaf156e1b133ce017effb70c0cca6b98bc5d1577cc6527d73eb157b7199fd59da733e1be95eea129a31a5659a60e9e1e5a125c3df6ae290b9e3e97c33a3aae865f442965ca0db5bad708e9c4ff61e65d181652a2498ebe2d773cb4f4a4920f81686e18552f2f01ec606521f89382f0d5edab366af5d6d785616670616320242ad16eaaf360b28db0b708d4b3b1a574d65f1b14e9b67fe3297720e763a3d1d511fa2f1bf035040ee46c183975ed828450487d98c94aa929d5eaf0558088a26330f8b46a4fbefe207fbabdb8defd66df2ddc91928cadf1062652abcad84eb9355a8e41df39130f5ea963901975df6e845e08d24a8b20ef6d5b9a3070ba6e7193d29c242d4640cce058ae6bcedcece858e5f2e604274b1d5d484da9727a96e698cef30fa6bb1b458be643e3b94592cfb0f767b78cb686fad5233d97aaebd2a4708c980e3cbf4d0316f9f7e2daa23ed703aac192530ef1ae27469dd8f5109733aa2805acfe27f6387844159f08128c67667626b3c58b6b352814771847334978075d75a75d371db7c9d3047862dd59707d3bb0d3f13b2d69c1631b2bc50f555afe5030895aaf50e6f141bdd08361dfa05a0888be88e4a48a216601bddb3d633eff49a800d6acf69703f114f5e6b5192684148d7365cbcfeffbde0c590ba6ea1c2ded590a3d0ae629051f0d865ba612e78cb716a5fec391cfe8109969efb9b83aab5664372460d6a167dcfa0856650a4223d615f287ef653184955465738d0d32f462602adc4ed0b9dec85e361086b6855f58f1ed1824432b440970580a75fde8a909b29179c4088f7ae3dd517c913a8a2bf75c080dc468e79dff1dbe2c43e3781ea50ea8281858f94ef83c30fd5f8aacc132d48a0728371006466139510ead79b97cb4e72a3c43717da0dd74d9f9004d3612b2e5ec29e0af949ad06e0d3a7f63b2a4b583ba5cbd6358f3c4c10ff264d8223cc62a7232d98877fad9f8b220cbdd498629e2d54ac7a901777288bf2c990958a7fc0620c46458b742c6a54982ad195315cb83867ee37fc3f857ef1b1bceb93b7da146c4d446e20322a5bb4f0007148775544a0a30ac278a91a9159779ae49169d68a00baed911636e23ac1bd2ca66641945589bd71f664c700680b28e20ae0add2417a9549ff377f68efa193860caf96940ac78d79b1fa0821dcb8ab27da7b1bb480fdd037dadb35b010652925544bcf75c4c2694988afa7ffcf05a1848351483dc524d277f85bb3d240500e025923fd92e1e09810069899cbfe219a029b0901c5c443520532ade5795ea2bb78dc3060e7b42d2697eaeb679c6be9de52022947239eefb6afee81b9e426dd156e78e4585ffa798706aed36fad455298a21febab8dbed59cc27717a5fc586a2c0a400217206ec33a18f1e6b262aeff1f390d2ed2597d0c03d9ff9ceb275133fe79b459842a6f8bf1cd803f4ce789dbc895a0157a958ead98e48fa02d3d7aec87f688d7c473e7c7e012c0823c1e73eef5e67e3f4828d879b8bb3c58185de9630ba2a643612e1e15c6b2e2f594a79d40bb81c0fc7bb489b937403cfd0962fd85a326b11ed12b796022d85cfeca66438e07de25e20df4b32491b337169ad23d28b25bd0e44f2fe0af99a75ee3a9168e6a1bc60ba3d9d5b234442a879bdfd718ea3adad84c5db32956416261ffc711c077c0ec0c0841622d78963a7a98dffe8fa433f52ac0da25d5da7f54e28d48f0b6ff6e8252fe524e48ecad831f51e917f25ba06e3168babdd7236afbcb6976ccae227d41bf93ffa32b5c4b7670f18ca05c1415381ed746d8733c0cfdcfb66cf41cebc17f0fe9578e42b013e53f2a20e041f8938b0fe8a2fb557e0738c87e78ce817c16a36533c045d23fc8f7da70fffd2e70fee1e4fc3bdeb3ebc4ca541c896ee9e5bd298b58ecc575c14d80104ad83e23f7f822ac290a80a5cadd44981ce84e9dffd2fc002689b1093fb2a08663a3cd3c7fe8fed5f1dc844ca668a33296e4a390c3063700e3cb9d4acd8006c7c80e258c473d440bb6e3064f12a12a6d37e85817988d3a20f75731dcb888c0faabe52f9c45360f329e89b79cdd8fef31bb257e5ae2509fe75d3d00e8514da646c823869d6b8b5fc129846231275783e4b9c3b10c7a31d8f863988ee18a8c14eb1302db7b6bfdb2c96dd0df523e0067f7125c009e121ccace4653f65808d623fba920e7bcb3ea26afd4ab833f6ba56d79871ec3fe4cc4a76447e7a3e9d2f79706db5e55e76af8aaa88e16552ae2d5c3c31b3a025706c42b9d159aa260a47dc5eff9c014ea71d41fa1c7cd123fdd3300b1c9226a4564e6fc50957d4a4601a6c82a6700c8c13000616e50c9bd5b3ce60c49095a280bd0a22c8e760dfac6ec923081ac8a3dd14febba90091d8072ca3eb63e38819f2a871e9504a69e000430995e25e0a31824c6e9498c65d69a174c9b2ce7e76b15b73ec0729ae527415fdf48efb21b2283da80750cb76d164c17512700bb100a34e422b9984a3dbff4e8db7eddaf60fdf7c942e38dbb12fd10d8d5ec418270509d93a2bfa0f6bfd6790e8acb4124ad05837c18d0604fcae7d746d845cabed91eb439dbe25c8cd606b9dde81ac34da45c99c0923b79088c4ad4be9fd5e0c5d3c87cb26482b8a78394aa5ac1f7f50e6e10071f9514387a2f2c5cf56ea56f0e1497f02192aee71e3ab8304d3a200c4b9d56bfb9ae22e3803ea42966190b4fcabb59b70977d4cbb3627b2e8d54dee96546a7fbf05cb55fbd099a89932f05518ec9150b5c7399e0775dde9a7d2420077fe1d43d9e50021a195ba9e66031a066bfe8935057160fd20dbbefbab4e9654488402da67c603651946dcd4f536f53b9805e4170a1a47884f863b10816334fbdb5d7e762e62b1d72bc9660f02d02ceaa5110103610349550e9687445e9b1b98126dcc8a32429f796617fa1e1c7aede1fcb6af09f48e2af0ebc917d2ad018eba8e66afda236b31ca5de69aa84066827abd9a3264bad0b58067029c90a2a8d8a5a85a6d2616f097bc0e41b120208f32807e529575a48bf3e0054a3a94231503dbedce67a1a9cfb7fff1fa2d858b2cac2804c0b4edbabfc9b0a58978e9f6930fe0d54890e1006a748927db72c2e64d36374925c4766efa9eae39541243e0142af94d518067fec00b9f34e915be4933e31bff57dddc34265773a3e38c90a43b35aa6867446d530e0dfafe0cd02948b618a81f20b3583ab185a30f56f577c2e8d9c5bb7c5ffdee48851413e6aca587174216044fd6fa0ae81e7811f0c9f912b92be9656158e24bf8911cc54b8b8b618d8808d4266674860211855662fc917967416a906bc9c307825f3fd21c6c182611844f91bd28b01ea455bab788d9df682d310f931c89ce472bd835c768a549418f52b3839c85d816e4e9c410b51fdc3831fee80031ce0607d972fdb90a219e0e8b5e0db77a3bae93f072bb507fe11217eef4a056c3cdb1030a7078de237f4fe6f5ddfe552305bbb9ccc8b560a8af5f46a620d125cd9e013348136614bb3046ca61e3067dda4816201398d849ec6a85e5f4567bd347c62016191ab1379f01478d80d56c0b13c1b5f8674a81b5e6d9ebaec36bb0a55ba635e27180324573e6c233291895fb0676e0b1564fe0734a54fb66556f7f4219e3b980738da0fb60e635365177a2f0f111b21022c4b5d203affe0cd866bc80bd22a149dc5e171b88ee9202ff3bc582fdf299387507c01970bb7104dc506ad5b3a3434a02851f8427a38b00c74b5404762003c5b92ac88bcc45b9dd290a440d319a5f0f89d69017d924dde140c19a78e52f0757853ba2ba19b2bbe39ae18650deaee60a6b7b5c0fb45837a18d504ffa791e5c0a587336c17e685ff0e2dfe5460abdaa36fccec2181c1887c251ae374a5ff444328942a4dc0b565772fb1dfcc4fe32c11d4593e7e6cffc6b5ae27cc26da2c4fc686745436de886c261c374c62bef6af5b3e8d00b3db95349c95dfcd1f331001a049d5d8b1b1ed9c63baa5a8822f710f01fe173429d0d03802213058aad21301bc860877244f41066bdbaa4ad2e39a4b902f7e3a0a523fbb780b880ff07a0db03e9052abc496e5f1c8191cb00258be6e5c245fce75b4be094da92da707ae71ddccd20a4c71e2f599a8084a75438bc45061e2370cb66946ee3aca269f32b2fd1ce998f447e0f19436b722593246080edd0c2810a81fb5b3d7f1e7b93eb1c3055e5f33d611e95e9e6f8f6e2e4a6959a19d28acc6e562d02aa447749722d7d75ef561e0ebc096679b718b52d4ec85b8379f0ec2157514054d2d453a23e819dcdef478fb981d49b2788116eed546f8653ec53abc08bb3b3a25b8f74d3805c60e6529600015c755abef5e6eee41bafa4a78ea02ea5972550b32af3336001310b9938b1558995e18a99f2cbfccccf2ab29e14c02b9c56da1aa7fce175370d1bb5e6221ae2b242faee38e2e62c4244ef869c9fb3c7b55eda0880c2c61323c94ecb3eaad463ab1d1340d23b9a0405e407ef41218c00220361d56f304792d06dd79e6915535b2888e417845e9bc743585be624df1bb92de463206cf98ee2ef8b26384911bdb7d92ce40cd767162072152d23f1f7fd9a614dfd4899a85ef7408addc6fef4f080620d5f18b0e5f638a979ca2f0e69c777f426ab6a17287f0e6fac2446c43e94089207b98b2365b3b80202f1007ad2b8f8f3a7f4edc2ae0c87bb776d9e2caba6f884fe79dc70e0ac3e721818fdb1aceae3daa26d79f7a5eae2af675a05e6dcb41e7ce5b51fa6295361421cfaba4d5df1463a9bb6a5945bc30a1c2c760b83f9bffb3b97934bc4b313bfea14121a9462d4ed2e13fb2d740309f6c56935dde33eb7312d42ae894b7b10222115bef7b7e92a3ab2396e60e62bada8ac09f5aa4ec404185c1b016df237bb95a2a9af1b11ef49292322beac60e579bf9aad239c2dd121991101b5d2538873fc8b5e307394e4acccca6008f32c84539ff4944a34adc96bd8aadc631228de25c04ddfd3149ece819803b4d791ac3376e0bdfad57ecf8fc7666f1c3c7c422b3db4696cacbe779268276ce2e086e250ed4cdca4a8ad2d1de37a47c5cea70a7d2786db20ed2bd056738f878c791811208363b045f30b2f5fb7eb7d005d3abdfab3afe177865b4a85feb772da3568ba57e798aeda2a125c663bf52526c398c597ef8d9aae6bcd8ba8addf070e7831483879d54339ae2b24a9a89b21ff1ffd01233be7726c219ccfd76318e949990ec41a695ed9b569ac6ca6d4765a936e15846d6304a1abd234ed2301a06cc633fed59e7396e940e077b95844c334bb2b4d1bb6f45c51d5c8cebc774ca6cfbfb3d7ed56aef70de671ccd77ab4074118fda5f31c4b1fb08e23f98306ddb5ab27fc37ade21ead73a39c0c4701c2e882d0a9c6e4de177029167fe5651e2887a42db80685f9152c616aee6b5ad8fad25111fc02e94f5f882773a9d0a3a80b3521e2581f67b298a8390f23b9e8ee10cc68e378af09362d75084eb9fcf194bb7add6d6ffa2d1f950830b122c76575b8f4434233827791b218d4fad0cf90d49273c3dc4fe9e46cbdce2b9d3cdafac6a2b078f2cb99aaf1925586224bae8e980cf3a622462671c7e0eca3a506ef68efe90d1a75466fc7714b346b51d2f30cc282489b0bf4504bcc26d494b202f6d72707c9332b81afa7773c8e5b1f8b81b97ac08d800fb07765095828ecc1cca8b1b3575ebd5a48f8c08c8a3df87ce0f427626f12b291aeff20d5abfdfabf00aacf39a257cef35706194c59c9072c3a2ac15aef27e9534dd0decee267600b5682cd2a5c0949e7c1ae4f74f0a6a13392f45f27aaac0a040e7c893bc59ea6036e8f3ccc845a77aa34f8330033dd70bf15386db2763032dd4a9888e4871cc7e5c0fbb652d304f9a2d857f734bd85bc005f669e30203c9cbd5957d0c62e0cfbf843f248d7abd8953f27bc7880f342c8ad761ab5d6168f686e2fdd9c2620f4cd07b0745f840d8f131ee027b73e3d8b5e9fa79e4e3e285ef19478a2ea32a2f6850443dfabd0ce77d6f7a986d5b3da54bb5fe13453704e8a38bb43489ed833190365c26f2375134b57aad444ff5a957fae6e9ce295214dca5cc9a6f5dfc61f98aa335b92ccfa990d6120ace76927163666c5b5040af6c19cbc7e0304b9c79a21d30df7e4143e36390f555e4ba11c27e9c5cd26d99e275284bb0d7c6c718e80e45e1406ed1783b1d90edb4309c1657f22a8df67fcdd3d3a74ee2f5f2abee1d25e63921319ffa1f39d58a7f0850effc751f1e923f238b06bdabef3d700b272c33fc953873ce45fd8fa60d2112d3960923057e09555936fd8aaf6fccb5324f94842dd8324d949377ae2c72fbab454b9f9455a6909821c099adc5491f690a573fc5f809d2c8aa49b6e467978b036ef7e2d88b3469d2596c11deddf16095a952818aca978b9c215f6bd52144e4827e90da98cd61f7c3745a8cbc3237230c4589250ba32c7b07ecf88ecf5a082df990ec4d9122ea8bc146f6902f5ed2cdfd4cbcae8ccfcffca083f77d4e1e4963bb3ed7caf2cf67d1acb7757c6eb94fd2eb7db7cfb4e60446d0e03db014abaf90694dfa56dbe561b6477f41b298c55c126deeb3a65409e3ad576b132f8ec823d268d942186aba7736dac5c2991f076b2e92af265f821f670bfbb2232e2471651581f23e419719402d86e49540c3733f0b479ee944e4a95a37656e60353672720b201cb973b22dd868d169af23d18657d0ea580f2e316dd4bca7d122f15ae28832ef09fd4b36b8462bb08368dbcffd9e702c561890dd989a980cc3c2b25e4eecf4ab80bc9031cbd00e2666fda5d61fd30ebfef9c2cb0657c67830714fe5ba7ec0eedcbf4aba0ee5b836557ec18ce1d4c6150941369d257c07401cb1e015985de76ac5f5391b3607f257dbe5d8d83847e735d00670dbc5986a0c4cf224c7dff16c4185453ce00b432e6e94d418499a3c6baf5156e2af7ece1fab1ed72fe7e421584ee657a9036274209d72f054bb4e117bb23986e136e9fc6adcc4444d59fc671301d04cb4d301e82fd29d85c82c9192cbab5c6c23ffb0e3e04b549836a1b78d50b70fccf656decf6f54159157149f537a135d64badb1d0d04b716122fad6d8cc5ca62c2922958146c55d4d7de85d7bb832a1c40da36d488481b233a4cc7a9f6524ae1dcaab2aca144d2aa9489bce2e4599c43ad558da4dd530efb0ebaab13c041d04ac0998b17c52cb4073d131d9b91aab19d0d249a6aaf655d259a76d7334b1c7007fb839c2bc64d0d1f96342ac283ad55889a2953ae8dd23c7004bb88a0a0632ad49b383b5061ef46a4daf8c95876b61bfa2f1f5af635e2e32cf8943a41a8b3f7d409e2b76f13bdb94053215900361d66eb455daa8c632b5aaae67d3c0f313118b97d89d48a51dbdf39dd70b8f2e8e819af3421fd3f65be2ce49554d55221112d1d931eb974bf6a2e30872acc3f49a2f8df0a41635233a8bd9c62e07260bd834d19a7fd0e69196cb3b8dd98c499a26bb37ed7d9962403a7ad9dee8be079badf441844d6f56d6731c534a2abd9e061be9a0927ecdad0b7449827c47814fd961de3859665e5e592ed305d44e6d8f63949619a9b76ba3e3e9a5221dab4ea1e65aa98d671a7e09cacfb64c901a40e9512daeabd0c8fee1fce665cb95df8ec8cc5e77f287c272df2c1cd6f25251be5e0616efe58dc5eb1a81775b1bc813007a0c8be20c917fc743fb98e1f7a4e438fc078cce50e76f8591f98e59e183535355d94fb88ec1c152e8885bd0d9d8fbc00fd5ab46c17c0d1ba08c064b7042a5b85c747ab561f2949b1b6c7d7b7263ad669486bf7ce46bdd1d844cf6cfe018ff5278460b474d5b2cb05134b746fc2c1845bb1fcc6cea310d614651e9938ba09d1cb40cc0e595471b6c58a10f92e33ead0f8f9d283a429513898f588153048c5c53ce25a06d41716b8c4d85be1ce30aa4539d269e1ff03ac5fb04647d37fe6725bcc94e778440a5236e906507f181ed97c3e79cd2b5683f9e491769bc5e53b845170c4d5faf3d3349d5f33c1eb06a33f9099ff85fe7b65b1ac4f4b919c5c407ba42f7660b76bae4ea775cedcecb56841cd2109fe580449502d07b22401e275a42d4154ff403f3d232c8dba6b97b4f737476575044eefb9181772d3d097cb19206ead53b8a603c28d34ee69c9081831ee31d07ba08467cc970b18736543336aefc9e7958ecb4dcf2dcf7bbeac9808841ad25bb9b7aa938e45c60ffefa1cf16c7624a00d2ebe466240fd8bdcb5dd1aadc38b32a6c9eec84a13cc698877688221deacd5b7107be3da46b3d5f852a59b6083a4e1084d36ab5d418948b6a7ae3c528dd37d71c96fb0c3ac326e10ec511a3440154c842c97dcd128adcc0d242ee37f3e364b739041fd792c0eeb130ba2796e5de91c43da6f8f6047bdbfba0c5339c52e210fd59dfcf9c634d3057d08bcc4b53b776d102eef416967b734946ec40c4b3c17d47e1570db754b2265836705f9d6886b1822d2b4d4f5051d996269875e1ff10b41c18ed79129d341394a7f05c1f8c38b024dcfc25828054c050416eba21f439d8c812c96cb18c703320b1848788e16632e060471479e910a08681de55a37f0dc05ebbf6fd748af4c543a203bee7add07bf72f478c03f752bf070da493cf895be1a3c88c98b1755ab9b5e0ea354213e1a8620ae58250797382bfbf443219004858e797785d0c68b9e7aa572b8ebdfe9263f1f3477ff1bce2c10742cc1e34bafd6b99586993cf2db4190beb6caea173d959bc108b8f8f4217bf1472cfa97030be69155588f903a9c0dc9427df474ee0776bf3ab1e178757ff7d2995110c1bfc8e1e39607c5b3e92edf066b8c59470fde914a368ef391d6619c812c16928abb6d9024d9ff1017e75513ee5355097ed24387115c9cb6b9b5ba7bf07df315d88cf92ce112d61d682c3e375a8813ced69ef66fc84750bc236121cc496a2ea5a14f9fc1874957fbd3ae5756ae8af039439a0f76495575504346625d0153c1fc97ba054db8aef47da8f005eadc804ed8ccbebce98c2ab5301f494a520a257c1bc553a1ed706ad40a125630b817a6c13914731d96bbec3643ffa0e26e9f357cab62bb9101f0f68d6a9e6c98bb636b95c4f05e4891889c1be012bb8c2768d657c65cb7f1ca9aa0d2462545baa52feb8b3769035ff942d38a58a7999a452503dd2d6a7d4e5cbaaa8fb61f53dc4d5685df37df370c3ded986ab89999939ad0a5dc59686f0c31eed99722f987e96edf1b3ad469b35330ce119943433597395b688326af61b1855cc57fe10c13c60a5b9c19173dcfa813c68680d9409b058b94e6068c720d4a8c78255a57b6b0701f4526c562d9c73e943aa9e89b574b6546a76abe3a6c2f8b8626414f2d554d37163f34b4f2d259e3355179ff1f64b0a4d3bc724085209b248183c21f06aa50cdef104a9dff4bc9143fb500cd7571298c65d1db2f758838d44a70f8a3c60c2ee3a155668ce62e0789b071cfa272139ee3e4eb046eab628464b9f2e8c3f8658ba3b06baeaad3af68c9417a871e88d4f1534144e8cc674755acd06ee88abc8fba8d9210f03ec8589d14adb4803cb819e5d04173ff1c81039e724697b1814b9ebf79889b132d45ea6232656ca30cc7eaf38f1a1cabb6b8964be30afedf1db0cd56d13f515e5bdd6fe82b971439b70d4481a39d71f6a8f7f2de635059f0b45ea5287a804648e9b6b1394c92b2ce1c3bbda6b79ad24ef38eecaeb98312ef573e8cd1dcfa63ef20f33ad97eafaf457f6618bd3df193d9ec7690728b5036b5cd4c497ea01837a5e8730b7f4b4bd21a6b6b9c5b085f0e72854171c7b4a0e6d011d5f4e59c0a9e17d5d1fe39038cc35eaffbac5442b2730a839296c66097ef21d372edb5682906100eb9b846d2851d773ca32520175a444abde2ab5707576ab05f7dbdf745c53559f2d566ebaea43e0fa4a90e45fc90cfd2dc06399eec287a3e7645211ac4c221000ebc0647300fcd411b24b182caa20d968142c2a00b2051c4e75005938008ed1620de8b0d50c412072664605746f633827dfa51745930793c0dd92310b3ae877cc6f573c4ce0b6ca8582cdc1776ce3b7dc38d26746bca82912d787b6d28c60e230b2c3aba63081777129f07002470be13aa72f9298a035323508d29f1e40ad84e659b9ee4fae338e17b261dd501a13bab3624fa5fa2f1b73dc43a6ad19d6793078bd2460745939cba76b6ce6266a1162c224b6cadabd41eb5be7aa511e9b285544ae5107141e33290dd08a565eafe455170aba68a45464eba53fcaabfa13ff27758a03b47baf441a387ca9a9e3073e389951ba7aaa30c84311e49fce080c85285117f9f602db74d9d43bf15e58b013043620fe7f50faf7da0d06fd21e8c441e8546d2685beecc22c612a0b3933513c46134227931afc21418d9749efd71818912782319c3386be54fdc08811b3c07887dcd366611dd299862f4764fb9f752d6e4b67b2a5371b6e45352a163364c542265409468ddeeb5c21a6085cb42212c9f79069b650e64a726d6769752385a08886c9c8fa272013f24a5e3a06964e94270cff0c87dc102645ca9d8355c4d212651cdc19d3bc5462c1eb5b05215f7555af0ed840c3683e79eda005baf0014a3a632c321406161ff62a09afc6c63f2351d50eb78a4353d656e8bf2aca4d3feda4b63d08fa0b919c5f9b56a79d2cc91c3407cf2bd65c3a175d31826e35c3d4cb541a5624880a0cd10df46228732f19e5fb3d9cb745a85828f979e90a3791885a91f379bee598b2bcf016cc9c3d45e0b8fe1097a1c25d840a428fea2ef69b2eda457f6592109f101e41156032e8d5ac4b08e1eeb6e5983ae5827c2b815ec3f1a3ea165ec9e4d9cddbb0b34511bb25985700592003ca1e0e7808d4c4a3221f953aa513deb67920d3e752387702d2ef58fb863d63a0ce8da9097578e598eff6a8055afe0a402baca703defc06c505019ee87f8a11355502669eab5c0babb00729827129840a6549a2c28d5017aef0473e1f70a0d7cd817c8303a6ddce54aa9258254c784aa9ac2050b10035e31267bcb329a23a10e282560aecb16564ac0cb59ff81c3530bc6c27effbf458b38dfff14fc7ca9e027e43251d0aab6a11360e53ad0a1576fb0c3c925bba21da19f8ac8548ee135575b2b62f1480d896b95fdc82819205980913648858de4a17ce29d1c96550b5df2288fe0db357e5ed46e7e30f819ba2413123fb9a26f68cb1bbb0e6624d622cd743825a07f7480ef0057a6d74467bbc84d28856157a41c6bbc8e9cce8d6f35e227eaeb36d4f7af2e04cf7763a442382f065f12ace475422cd850c3f9160ca7e40c2c52a3507b707d0259407d71f6a54a3483ec6de60fa231619c4a682511314348f5e5a0cb7ee5c654b9d08364041d394e690a304d156e2ec3258e01ff56283cf386e2c1f294e5bbab87131ced1f83fd8bad2bc8b3150cc58966e674ec1b62662d0c00e6dcad1006ca0bf9d950e4154bfd1535b2da023f985aab4422d60da5fcbef7151b95ea29f3375a10e01522e001ebfc0a5a894a81e7ccaf60fa953e01cd8dfe276bc971d812b34823b0292d4a853012e149cb65dab07ea2315cccea6f4d183c7deb50a02abe6e53e485e31faa4a710ea3cab33bd2dd2815608b28e66daee05a88e0142efe2afaf3d9b43ca0b3086ba65be42e02881ee05063b42a5d65fa0134ef6d2b8fb53e5282a85deedf58907b531cb4ab1e63b690ff6a170cb7ee222ede550b5cbfdd7bd70e32f5fde74f6423eb9a6876e8c78d39bd10b51a0c205d0a50cb19f3795e30489864979f76c6e82fb3898ee8871029064624dbf99116e58902427ae6763c07b4342280b3ac37cdc22ab8f88aa32c055b8f0350b549acf99247360c9a41c349fb4478834e94276676badda95ab3f1fff0699b83c4706fa3e8071b6baeed2e003ff810216e67eafa8565d4151dca9558baac8d01f55fd77c3fe80b10a8fde813e20f9ec826dd4780cca49d5e207ed1cc571cc4129164106e0ea1bf8f44d9d86e28fd5682cc5d9e142e4d3db8802fecc1deb6f07d1558fcbf8637b9e867c68c57fcb579ae20e29dde56e0ecf84d2e9381aab49c06d972a79f418ddeb6ca64915baf061f65453589993a29a19844c82a000d5a209c49c22297e64d87fa39abc3d4608dccb3f1239e17f163cecb06a668c6ac5d5237c0edd32a248aa42b63394458e2e26554ba6c60cb4dff278c0aa472010324bf2a32ff38a22fba2dbbb75c47d9e9e61603cf255ad3a1f0d28f88bae8195106070e7e61cff17659c4ce2d10062faf174ec168ce4f5b198d29902cc579abc4ae6548e438cdf2a39125a916c6cdf6b1043952ad13749217d0d0254f4cb36dcf3479ede739cff10b66f9a3a266f44f81969254635c10600184e55b31ed570cb40fd9975cd08c92c5d88dc5aa8d90890bcb56bb6eaa9aec6ea9f6ebaaa7e78f4d4ad85663f894a6a01116cc72011f9edadd90da6e4900ac20d4d206b3f4b93c04f2d9f0b642ea1764c0493ed3bbd0d490051ed8ff072e747fb16aea79692c9a9ee0fe2f17b82776358a9fa1b065b98cd5f80192a5b024f1b7b1cae15c7f12a9178c1b51d566af1e1476c1ad81fe67b749d65dfb7b89aa303c54322fcab4f2771504ec40f3717d46ac57c3dd1d140d2726226b8b297895332d331257522f84c1cb3b3288450920665fb56b7f4dac3983edfe22d66ad380ad4fbf32c204aa4436287b3f9df25b905c306fb37601db870a6f2dfa0b93867caeebc896234e6d2116b22d6b93408c0711452db143cb72c68a27aea5f67eaa28b124c6b90dd779465d7db3d770e11c180dfe5bf60c800fbee10bce939d2cf64d34f08ec8789eca968c08b1a5ae1fcf881069ccd8b1a957d51a83a5f37e69f4b9340c40054a809423181cc0a5b2151834f3e42213eed1203daa4807e30193e41979119bca5606ab4f60d8708396e8cea6ea03e116ecbe5fe384971ddf9dc3758877a8f2e864f06b8309c21d6f1305feae9b35c0c3ed83838d5188ff3aba514c7538c54aa7c0c379ecac852ae1f214efd8a5e08a0d8590ed9e4ee424a95f16f7bb015f0886bf6a9bd11f496b982d7f1e0322e909938455dc3e69197a061204bca6ab018687cff88994c59a35022688ae89b2ea5d774660ead99d6d79fe6d070074b1a8026984a073cd62498ad5b08f3009e34bdf3d61dd2d2f0391f035e330f1a6eed36523452345fad049f385efe019647c340bfafa810e14b7a2233829633aed1675455d38998a7be4b60f7f03e894a706bcd4d071eb9a74f39305cab9e2aad1791ddc8f7e21e4a79c8a9472fae6c7a9577e4dc1e16dac7951b45b382208881788cb451e5a0dc57b959ac018641650edcdc2e74f43053436c0f4701b6a6be21f5317d8aa7d78dbe6ddfb0b6fdb147bf2936431ea501f26392eaf310c5248c708461c5e5a8acdfaf348831d8853d6b55b3ac412aa33673a4f3af77d191ccb30d3cc190ccfaff1d6e3f32c1f1bb253b3218ca23135de963da0f08f6850a88b08ddf58bbc66a49471509c2a6dd26559db64378a33b34693ff5ee040665a9c0aac1d8b03444e5ee147043b9fa66e7d628085e0e9036097d5d1d129c2e12a5913268cc0de92a036c3930cb3276eb4bdb13e50a9aeaa2ad0fb469b5ed4d5739cf7494cc3498b01d934a011a37e71dec0c233f502cd2d7bd3ebdb2f420576a553bbe9d5985195ff0941a518d83b08162615893690405752d985bcfd88978ca728a8310cb48cb980627694a36b6e2c49d9a4e2d682e59248c61f836ce33661ded98626ea394182b072d45614a7b009535d40fb3d5a172369615833637bab0e243d0599b7ab5611c958bc785aec88515b8cfcb25d650018671822217caf1bf0706957a273b5b4d82bd14193ceb075e4982db007b8cf1ca87e570bb75b5907777e4a6fd27be03a0fe2673216628a72f9ee4aaeae7592709980dfcf935b0d0070003d7779325e9a72326b7bb71259566efe1aaa9a180b6360fd46107ccc9c281f70a6620e340e31a20383e36d4a6af5bfda49106998e9b3250c6ddc254fa79d0c71c9be4778b60f95b3f2e770d54b8e850bee82d2043c644cc8b4f71860e29c96c0150ebe5ab8232a68e05a3336669379578ecbfb8c3d72a5ef74f39f1ac4b432b0a47bf8a5c0374026325f69314b72a55726c06a3d8c252ed48327a140bdd443c50cec8a957e6606aa51b0740af704a2223b0d231fd05fd0b76df0292770e3a46f6c057e9316d587718863db855b5ba891f7dc7ed25b7bb5cca8bb5cbbafc64f3489d248096a89375a082e54be1dc9301ca23a7b61d0e21473e759c9e049f803b19ff4423a1e74888551a9d7f8654fbcbf24660a052da7d075e3e4d61741ceb52ec1752b0f4ae3536f84cfc36768a94bd468b431968d0f27655fb5081d5a93a3391f02e1c3f85b44c90bbd303e8f73d3d570ea76b3f1f1baaedb89240c7b640f79fbd726787826a1868192b8b9d90975d79486d893b09824c3748cf2fdb509b9540d1ae360052342af72696e63598aa79b86ef1937f510ac0b045441a7c5dca842f2ad65f4095278345dd6f28716186c5a1bfc1bc60e2caf3bbcf7d024655d56d433140c060ba5da9b59ff6006015f98c1b0bf1165a730718e6c155c680a8fe58c308dae68715d408b8fe5976c4c291fde9224ad695677ed7037757de51a39e99575eacc7842e3cf9cc4119a27024d418c3059ff5d111f61b15a524944ca04b52880cf6dce8a720f98576ebbfcd25631237d2ca613776dd14bae06508cb9c8d2e4f6c94033e365a0bdc7da9e79f2795532011c5814bd63519eb251262d12ebee7f9703606ae0149d32be1771ddeb103595b8c7f7dc2c9f699428de4cc6d157b2b2bbcc6a301dda5dc343bf4a817aa870456d05d5f4b22d2a1f0f6ffc45189203c2a990ebf259d9aee1b2fc53637a248d8e29778510d2ee4a223beacb8b92488589cd707e5b24a97ae3206b83cb22036305ca77b0edf5cc6aab42369fad98f3f85c700984b0998ab9dbf790a5915a1d50bdc67e451893ced9c30606326ae73a5786f9a714bea8aaa40dca06e045b5b4e1c45232c3a647fd0590fd6e4c7ba439d9d8deadcc3b002476c26fb3813e206660a80b03c9a61117254fbed207330df863e5e44e593b0548662d4977fc3cd93f9f3dd0eaf62f8d942beffadd1f30c9c5aab6b64a0fc6a716fca44a1e34195e174813949b8b21ee28f84e81413058c02d10428330d734b06479aa0ea241573e7b893f640d18a6d6319de796a34f0729efb5518e5fcf563987b3321a842537c37b3e06ccd1bf9ef3cbf19b9ff23654f5921f651a4bc5a962417cacf9866a1c53c57443aa39b47e928cc7f3a233de24b6c7db50091c12fae7ec71ecdff2ca8ee3a36be7ef3a473986dec122122e3822f5246cc4d4eb04a0255bb59292ee92cab31bd7fd41d9a3652c6bb81fcbf1f57de57788981a1db522bd625aa5093ab822da622594a3ca2fa24cd1e32813a5da78ec1eb3f9cc6476fd69e1e6e054babf6ec5b02d177fdc8ee56900beb88b654667c6e63173001b0da0458af002234f6f0fb4581a310cb7c150e9b43e9f756554618cbb59cdbaf7e3564cca922071572c753bac1ec58cc4b5803f98066b223f1032822bca55ce10aad867e586aceacb92e0cca23988b29440e160a62eec8efc1beffb4ed449ef849c38238ef4a2fbc0645c57cb644e723c25fb0fa91c54902127df98c1b3eb586658f6a6ae5ef85a6b62686d16f76247950eae2e6dc5d13783d3160318cdbd268b050f178e84b6e2f74a5b91f805312cd963df497115ea30e6ae11fd6e172aead40fec92373d1aef3071bcf258831181aab7f78d33a8e4e6e310440db4a54c039390714eff580609ea143262119269daa5cd5253a81a35096b2bf39147bf37a574f58b7dee42550efcca0d18cc101b3535812a01c0d67fec93f8822fba17c07dd64ef5548841b2574694d378e895f8aaacfd3e04cbe87119814698d134603ecf0e6c4e2627d48d6a455966a05a5a2a0a95ad7b319cff1491a485daa94fd3458197962e7c1e27e4f5d8f116133996bc2c64dabc26215d885259e49259037d3be13287ec1b2d8f3ba0fec1bb3a0addc5761cb5f2d47cb04ebada9706d12cd771fee954171afa66c9ad34545264940354f21e9cc82dce286fc0b622c82680efb7adafef5b5a3eefb76edc23fd63721693366f235b84818e604f3223983e67c6b154847f5087ed59849009bbf3c168f0e89db4b4f491e58ec7dad596b4254bba305bf4d3dbb2e2986e60eae5c97394db244f956a26aff921bcd1da47c4a414b64851252311c1a91979a411583555eb8b4224035e11f60305f48f6d128fb508b0e7a90df901a3a913adf63f5df1af5cece8c9e60ef8bdc8ce481339b38455ed96a08fa4c0df2de231ed9152767d1eda1f29380a9f4168be5e01a02fed263a07daf00d9343be6409ca57a7d30ba77d832cc923ece69d18f7b455764c2055dacc4043820b86485e89d2b1173b964e50009898a9cb2cf93bbe4f4c338b34bc2ee754620cc9fc7ccecee87ad42e913bfb219a2eff6ff77067e15e6a99aadb0f139e2781eee8830b4bf4abdb65312c778cfba45465f3c236df6d23df9f547f4a24e24e19c5d204431375e23896c2b9e1c91fa415f1484275970871900cad43bfe549819a5d14b4c00175edccafc0f522bf6427639e9062eccd1b1690a0b63ffffbd3477aee5611d7f75e9307c42052f1649d64937395b4c7a52d205214102352dac800f20992467f5a0f1d10a13b0e797605611956d515a98d01bd3aed5d28510a8a2169d28a8abd2519ec5403929b20ecbfcd8629740b9777b483fb57a570026b423aa0b1ba896589758dc1a68f13b85498d99c8ac8fcb5a0c1393537710e71bd4589e81d043159b073c60ba4ce37cb78f22cbc6fb86b465e2a4c2003c71586860ed8a09cb6edede1097aca67356a299b7a8d67dfbd2c9fe3c63b9b66dba8f2b906e658a2adce88b8c9802271c3b955b33e60514cb3dff123ee205a101c0e6eacbab97bc023982da33ae8818c13a3258d5d49dfac3447be5e498f4137cb87fcc6b6a2be26e214dc696c06a20ebfe68da88baf2c90d5f41f207d11c9627d2ffb1a4a6c7ecea390e628f1d96fa220badc7a54e7e4c8b2f5e9d35ee378727dacc1cd6230d86c97df20043f129cf244d5f389856be0adacffd9e8156402f061c0940d33facceca81085116ff995a62382f01cc07f521867da1fff3fc774094fb830e83224db556a618aa169162a4aacdc08d293aaefe88140370c4268886284fae9303b96d3da938b3a42b0f7190560cd46e192af1f598e13d053860b129fbeaeb78a462d1bb09922b9360b1614e80ce3e6865882041e4b028b289803e8d07e9b192c73a00114a00e0bff15764f98a0883bf7621b15ed5fe455af9792fbe5a6b69a747f49f42802ba2d88902ce8e5514c5c4119945c1aca43aad6059e971c7c7afc033cf5ac3c493c6fa45506c8c3110be419252989cde786921f3c2c2cfe47583bb0003fdeacba28a31703c2fdca5a4a5ab488a50ff4683a6288bdec93b343009417e62a82a0821a6afeacc032b8920d3403c4ba0c78558d98b5fb9e62062157ee8866c5a08f7eac34a825ed3a4342be3ca75948e927deb2deb93c6af903cdab0fe958f4bc314c1d8a86845ee11d65e96e85e06666972fcd12ad398599558c737ccbb772bdcc9bbff3fe78458b065cd917340617eaaf815f504c773fd3c65fd44319a25befa28dd2f631a63936a9e5466d003f7347fd57f59a909a244b388ed430d8b4656663b5733d855e5237f6781670b77958422c227cdaa5063f84273530f22490f13760c401a8695a82f8b2750a4e96968ef555a3395d12029f166aa6cea2d51c70f22663d8ab204113e7ad45ee8d754bdfafda0aeade212910409571e14d51def4650472057f567e25035fe9c9272c9e64f54e1d1117615699024933d2ab3eea2ef51bf8b69a1a8f0cf52b608cac153db25a934673e07c550835298f75b7c856213ef099f6820a6f49d9edd8ee2f85d73a0e2e52ec2c61952169dc2f131d1c777a74b539062ca1e271e72107d89a563b2b3d81f51936639637bef3179e6418bed70b18b3531050736b064ff5cd328884710eb0338b5d311c3ad6068fe719d938156f79c46b6b01984ad74e5c8406daf6fb30fd465cb59aa3a7ce87b4d12a497f95690ff650e54612b31cd6b472dc3c2eaf1fca25aa2b91e771493f60202053eaa8bcc5667a07a7d58b5b6721933df17593f933c0f20eece4a9f9b20bb1762c6c8dc0b4a950e0466a6787828b9e40b0f8460c470805090a5d9cb7f99de33d6d53dd4b542d1830bfef9d6c2a261c5ce7cee430e7fd4433d8c477052cbf96176b03c5ed3fa41ae3a0edb4e8d4ae9e3e1003c1bcc059365e06b41b81fc8c40743eabbd8547acac1a0863624bd346ab4e283121a2327fddd93bdd1510c372a22740652d599d2de5027714d90ed74fc9637eee47025ffc402319ede208023b87a580e17dfb242669e8ea0e4278ddd07417f89a839cf0ec05312d4cb4589ef9d738ec6cba9b284903190252004506d4338366a49f6533d0b044560f1f2852f32a012db1ec92e7ca4aab56a151d49ce7b3f76a245581c5dc4fcf8e913cd28542049151fe0021ffd2288260d21f4bd1f040a5db03ca198054b0097aae96181a8511f8d2130275046c8b6ba8e17b400a0c7d3fce5e87997510edd5131d7aaae12bb72965114cf75c37b24013d3ccdc0f43812a910924fb2107d50c9888d8866ce81e1aafebcbaf92a53b8e15c1f63d8f54447c8c76a8463df7e21d33801662b3923a676f23ef4c828601d613acc9732577a2e0732d7891fee468bdae4bf9269ce20d75307487c5bfda4385a48875f83f365c87204b9e96fd23a7775ebbeb9ef2e48b6680642f7d29a7968e57d950e04e961b60cf5c84c3657e394e5baa56f56584fbb461a6d3aa36c30484011c9ba9e2d1cb0d1ec784eda77d43989cec47a80c83b0db424b6a1f6f6b25600358d58917cf98a80f0d1f77096f9ea95d8befa1d320a5bb320103ddfce4b8c447b00b071236522f9bb10ac922f02a11f09c96c3a921a8fec90c1dbb261270d714aa0a8d9d099dcd8dc647339083b9d38adf80db8ad1b407a2e1cd820c75c16b2a987adbf5d40a6bec0bd10767ff06a6cbd4dd77731760f5e72e273710e8be48267b9e310ab191d0ad289fa6b255610746ac07ce31c7e20809f4e0936fd0e81354024cd84ed64682291461ff3700c7253499cd0177a94f70eed2f3d7c4bec2e35a3311da45bff812c28e362063f2f03bcfee308e6448413518c6ee42be485ccfe63a4fa041d420b22b06b4db6ec3ddc3363fbb9be0356f4ac80e4987a9dddbedf3ae04548a2e4e183fed0d40227ceff4fc4b66f80f03713a4b55adc5fa616982a19c1da78e67057f298a80c8379e0c967c621b294f0edc7a836b6e38d93643a0a36a19091dfc12e70ae048fbfdd54ac4f949f74c94a2cc39f43f2773cd76da89bc0c3e81f1128c14cb385698354ba7909f654ac997027573f0324547acf81dddb698e1195d749413eb81c88484f9026e23143d6d5c40672419fd73a052913c914e016c4e908694226bdba0c7049009cfb799c207dea0781596e517d5c1ed492c127a789c71109ccc53970bee50bc9379a719392e8609da5d70e342cf8c47036b22b5d973df489f22c1d462e4580c11afaea6c085ca1c108d6407453ce4bb03070fb172fefaa68b058ad4cc31fe4ac47ef4b80136864230b4b0536513ffd9a6395a5f0306e5167014ecceccfbbc3b0edc18b13c13d6c76a3df880ee18451b01b950467989277eb3bfacd20007b40b7b9e9d22484dced979b9d039682ce7a28c8c5c9f20889afe1b1ec25819f10e334405440cf03f47c51bdeacff4425614cabba84d09ac49298424d0384b2e66eab9cae3c6a04eb626eb70692e96cd02785a42e157b9a6842102d1fd85e1e47e3519add4d993c1832a4b51e8fb502f0d3d2762fc19bcd8c1d537879d285ec6ee992b8b09a3434348f8d7a8fd50238c5fe039b0c4b904f0f995371fab553ccbfb605d85cff275e272ee4859bc7c313dc02ec53554af8e200c48a2b85b5b3174b46771f5c3ff1ab6b01adbc59800c1ba38e46906275cc2823415ee47c147f029c66bfaa2bad16cd8104cefb420cdcc4f6f284232703debef58114a60296c26636e9093ca4e67707a886255046b3cdff77445a427903f10155c0bcdb25b7838bc687084086110260d26cd4448ef048f78d9a593822c836d360649ac9380383d13d47e974be4bd0c3e203bb35882a71b537e3dd768a9094bbbfd51047f5fc4d25357d7118b70000227dac3bf04cfe34eaa91036dc2503a66cdd3b6cb4810c2dea3049714be85be6a229d53189d120c6be1ae708a2a5abcd525ee9365024b93c1ec870932c74bb203756bcb3f97fb87a293e2b45f4eff636cd6983993e713f44f83fd92ed0f94ab496d43675817c30346c4864dd48e82bb830f07bf62e3908b23a6661ea16c607b11cfe2220d77a06cea5b0ed60ad92c64f53aa22f154574f54924332d3e8f81cba22e3963a332b8b3c1e3c29e962174b09ff84bb38113b3653d688d7d0abb8b27dcfeea13490b57b931a54c7184cfd4641afaf724ba10474b57cea0b17b900278cb155ac7753436dfa00d6a0883c27d8cb97112bc3aebd947f4eeb0ae63277bca949bfcb8c1ec2bd23b662f74470257e247e1495b393d7cc09f481788108faaa3475d8d03c7d5ac6b56ef107cfe46a70a7bca02afc82a279700e226e709be8b8102adddf973c0798b8198938d9894cf3b606119267b6851e072221b7c1431a8e3539a5592b9dce2fdb375a91bbacb27079f8965224372e8ebf163f39dd8e8dc0c583dde78352dcfd7ca07abe30387719ab29b4d58ff31370730605e5c7a2fc947ef24305f47e690384689d0dba2cec4b6a315883b39187ddc95624ce10fff4c3972e9113d95c6485aba201181c1812a64dfb8f400f2326960bb71163f62c6b373775cbda992d72bf7d1cfca9964990c6c4e3b2fc985fc7db48c01a97bdec4521de9821864df886426e135315d67218d2a341a6101e09f59c32d303c0b256b1502a4088d33fdfca0317416e4325b9c84b004daab90abd68a81ee750d276d72f4df69cbc7be09f601c3085f0c3286629c1f6a924956b2e4e6c9e156dd4d2838a5c54e984286e73cfb3f5296601c7e1b003c0048ebf14ab497ccc6fd4a5a4948b6c214d502319654ec3e8c32586372ba8ba8e4cb12b19a44ef65feb31627e4375acb8f2eb09b6d5a70a08eedfd48133a88401e2b1a260c2591715a60a80fda92c32ea852828afc94c83bd7978739d6a988b45ca66ffc8680e9747969c06a842a3dac224f07a0d739a08518808136ed50115398ade45b63a7958b5e691d58a1d7270fae3f60c6d5018f8f24ee4760cf63a754531826cde92b83a3b9775b88f2841e669a196cb9e79541ade748700204400cd60e81c6c82d14fd0c2fa41d4cc8e81996b712411931ceea6b2962e225272e325b148b050760edee1bbe025e1c8f80fdd33690e63264e28e364607be43f870342a799be1781e6b4735d959537497ae6807a324af5e6b737ea85584a95dec7a0c99464e5b857821d9e6a9f88948a89fed1ede401deb88706d1b09c8b93577c4043531003d20f4eb6e88129303776f3af661ac41031555eb5c63aab1865a7ed059d272e7cac48c7010ed4336143cc9cec0540296abb9734d58ea6e703a363338bddaf53833526fbc72ff80f02a126c83035e4824c46a6319e745b54f757ddf9829814d785ee422c5bb7923522e563820cf1bde95c03d5584537a2b8d4c71e4bba3467ef69fe7539d28530da658c0d0cdeea95122bcdb0f245330c9e938de44346109b270aa7a8ca83ea4e7decefcf0c5710c965637c2489182a69a26762c7dc0c704f2b5e54830f59818d1fe2394ca24dede5943ab7eba2ecbbf6cfd1483a86cfe2cbddecfa001c019b2d7d165c655b21eef7c25b732ab359db33ea200232bf5e7f7256fd6210c40e94a09743c9f199959b52323aea1830fcdad2a78b6f87c344887a599b8c3e32924c4dc1b819271d110e2d8f9f0945e1858186b6648cf8ec80216696e760735427ad4734f35d9d7f15c9eee5ccbf1754a96fabf744fe7eb694f63b11c611e006423914306e563682b82b56a7afd0fbbb6f6c3190b4d57ed6faa5ad348bc69214fbc4fbbe05abc9133ea6865a88db0f33b4be9acec8df92b8ca297a6a053a75f34798bd011a2387a3090b17452492ce74a93d4e07c85b2baadd7fcc36bca4807875c21f2fedea41eaf4d644f786d32d64b9b713fd9bb92f18c4d425dccedbfe53b7e1a44fbfe7483204e55a4fe2313c80a7fb2c6136571f5cfee9d2c62e9a930063faa9614c3076c09bf4baf3ee4b76e88b42b778dc66160cb336425a2e0002ff02285c1e1e2ca6df183875b15e3633c6c5130c1d8ce27fd83628a6cc979d05536bff9e5f65b9e9308f2cbb2247f8ab701d98c581546de848c2addcb938a8c7b1cd4a74f296c6c7db9963a207f45c779c045006273e68398c43a9fd8be0c38c62f2e0cea5a82c29258cb86841890120d98be9e550df257f7ac00e72fa0a41847df864969bbc22d58665164ea1a7016dedb6870bf0c3686db1c85521772a6850d5f6b45bcb714f1de9eb5a97cd6775a284a184170940f79fddde45b1d143b0d7d5a01cd507d0e10fa953ba6fa2df01ae081f9b0572b49b5a68aba259be8168bc48dd9c52b81a35d35352e28acab988a157ad545bbe5aedba101b33c91bdaa73807adc82bed6a7afec9fe1088b5e34f57468e4e855387a806f1e0cf65194e436a7982e52836d4b8d09ab9370021585aa22e7588e4185fd000e36533078020a21d63e5fc0c2d446be9bbe412c9fd4c35601ce0e041df5950b483c62cd9c84814024773c21d9f87746220afb5959616ccbb94b006129071aa4e2c2a4a70990ec87507aeafbabdd9e87fc01718bc052e9547ac7972ecb974a41b7add5fafe97e64211d76d484f1cc13900d5fe987f286e022ae6df472318678eeb0fd99645707f3b7cd622dbcb2106dd37120852f7bc9beeb839b79155d738d4a81c619728acf7a37ab338e0662161ac2e953d0a00d3b051117fc808b78cc0c60420c03781cad0c1c7758194ae2a66ecec4924b321ba9c0177e3a19119a3c9e7d77e53b1915d7e80e3a9e1fa3e4d48ddfa558e937152adb159cec6e22dff7febf18ae407018d828e53512004f1bbf2912352b6a66f87f12e8e83e54104def4b7e0b5a8503096e8cc8a4c58aa0498c21b6c835269b3f5be91a2ae9f7511ced1e873fa54b758940850c427bd0b77d038130db46b63baf7dbf55be8f625470d70528e87e91934f3eae895be60503a1357a8989f0236d1c7823a9189350747320b2c6a3cc1c5f7008c2e1bb3fcbf220768475dabed706f7ab70f3df738d41945b160423aa7a581effbe6000b7820b5c3e84e441711dcc2f98a96061eac7c302840bff6035e5c6a632c8f73ab2d47b51e2882aa372742ff82d0edd279f6fb84a82b0039101173a23b2c3b51dcbec3690f97dbd52e4068d2aad7efbf0c392e76d24aa9b9e248649d1b1fd789176e99ef69676ebba8ebacb5c88cd05114f4128878c5ca51fa703c1836d50ef2b7050d707de74a1a74b19df75809a29a49037f66538493fc4ff86a8e31c37b8c120a5e489facf8c69b2e5ae4a748d46807ee14b255056930397a9951ab3892e2a47076e925a2a3201e1a0acece874e3145b3561312d2fec9c47f70933e51d339c53f63c21454cc20912714298b2b1b592c2c5e86189777a7b6d2484038d448dbcdc2d47c37445599506dd175a052b5440605b0599c665f8b44af00d8c9e084f10825bb89c67addcc2ba373a357d4727852dda5a0d6c520b5d40bdd4c8352aa075542b83ab39b9a82a5f3a2a8a2ea28f6fe04de0108f7c129198325ce3725a84248cb575108060a1a2e289f32a10aebce8fc6a9f24d8de6723bb124100938343ee3bc0aa9155db01ec9222a9b30baa7c774733244f907015bbbb43e033b799ae65add16aca8c0d0a5bd7d4d3c54b1b7375010ba261570f048194ea78664be1f33eb5ed8c0a238e56307c79ae61235e82ee2f8bdb41302e17ce4df8f89de2ed7444dee7c2f355569223c085524e284c0b572c38ad2cb49a4daf557fa87433ca20f4e2f5bba8b285d716add1c7f8c0524881ad887a7584758aa18e1187d908cee67321e577a4bc174d1d51b6e5febcffe6ee5737043f647e4c90e590f9eabde12cf95d5fb6210911fdb600f84cf998b7ab3bb172c46cf9543900cd23fea6d8387f4ee29fe6ea85be12ccf1531fd56ff666054d233721e794c62a912acdaeaf4be67ba73d119554451370806dfabc49fa67f96f592c831f119678f45c346a882f079fe52fa0fc7208878d712fa2cd4e8ae5c48f6a5995f8724042f556215eee892266f7c31b70b59252c00774a946bb001893862f3e20f7080e2484fff7e65e7789ad523400c3561d22655a5d3d487c06db2fe481d489c5edf17151c6723ea458affaf71aaaa2501c0e28ffa5e05d133f095cb0f7126d7c3e7deaa1567cc9e9854114f73e42cdf77264db0a111fa0234930485ca503afd004794374a382a7ce9d44e4f23fc199660a2849234f85d373bdf96563b7bf6688d1f011195633a593e6f8c7106451ffb3832bafe099df7b8832b88766879411470ec2d35ea09eb11fbc89f9d01dbdffe418a482198d44aea23afff25b8568a1cfdd90eb41bee8d537b1f9499c35ae6a86cbc96a6b55adfa39724271d69c2074576bbf36b8dd2cfbe5173387354f9a5253f676a90716e10e6f052001f439d6729406addddc3ea55d3e2180cda00f814491a505125df0f928a3439ed9065db1aa21032734dfbae0eb412fd617707a11718e8e3d0ee8504ed2ef5abca468847be3eb41ce9b2af4140bedde955a7a73a50163d53b7c76be428f48154d6c894fe47cc318d299698629fd8a2c4dfe9d5943d07b5f8465640647efe139b98b189395631596c4be1dc7aded3026c1a6758f8af41e8884aeb77bd8538b5cfa19a1a9a4a8edd4c81b9fca34c173952bfd2de1b06af2743b13b917b71662778e7467512f5e18f4ea49e78cd09dabb2739a908a88f8229887d394c7b4116093994f75d52e580ca2729203c375d26968d69286d3bc4c063cb7db7dc76b7bbdc999b47faeede3d747e5a37901720ec500a054fd9259f3552b1784682cf4a0c0ff090e1922dd0cb02a297cad1b6e5596e79e3d77ec9491a037fc2a1084944b036a68bd491c8a9c768b4e35431fed99705a01efe327e6c3bdfbb7368484a2ea09ce48bbb389d7a42d8974a8010c2c066079552a5dc52c591715d6e0d0981840ac4519340dc195ce8040f5a646f80dba8a8363865b7fa8beb076314f6d42366d9ec50ad0d391e5c892da293b55b72ed984d823bb95fe9d917ba14229c8f17edd0c3b953bcf33320ce0809af89d4bba59b00225046717cca07e7c8406b34de347038baba57ee00b38fd53d075af5a5ba42ca627694c7d82c0b34948e484564c2878928b7283cf52cc279a61713f508bb752167c3c838a32530484a81d43a8615a938cd499af75253011377d0774931d8de1442e50a68956bc7e90bcd0773e5f31245c9fab017466d5b124fba8df9153485062781edf213e025d05b31ec8977537d8c8bf7fc0ae9e9439f0e74d3899e7440736c095c63d9160351c5d5c1ac605c4b6fbc2392a7db48596f12b2abb7ac5b784a1a37f8d0229191764440e866e6d336a841808634e01fa969e65535cd0be3f758804181fd000e3651b0780382c76a66147a08340096838393f4bc346edd61fcfc6965872b625c917b2cc3a4c07e83871b28d83c31855df31edccc57281fe8b9a642209338d625f0f0f94fd02cf60fcc9e04ce3cd403798d0696d3c933aadc208b624abaf98626a131b9bccc74b6afa656ce6b6de690020a60d78bef0ed71ccfbaa9933a3d1b30a67f2896298307caa99d7da1e2716b8e883073c6a5a59311fe049118ebbb7281b370f4ebdb4c4fdbbdc71ed57ead917d99821228875aeb650521788510f5a520efd0b2e73b706dfa9385d10fe9135f43708d778ede48633bf280e07c4c3a47465d49e47b0e6a3d0a31e83adadd207d0ce5226a9cc8058668a62418dd52bea1e997a06636d3db1ab77d754f4b8ce70efa5ab7f35b7bf441d36c56ba81d89bc0f037440ae64e2bd2bb8ab9b00778640486d4e509256877eb4993b36a21cc3604ad4c28e6e15317d5ab7336a86b9eea53d2dd3c3fb63c618679090e211d5ccc17488a751856857a828f5bb90b7bf3fe06ecfedeaf3a8a5894c583f4ec9cbbe10e6a0295d93caca1248e190febc52fa4afab0c58e0c57f517170553fbab52140314f8d7283bddebbd4a9e71265e8cfdfd25810fccd60c9fb7bdf1c36e08619e8c4f19b9f5557035951af4aab31765aff5557d873dda996a8a7e246d1ba9a06204f499b6faca9588c7a7a38904f220b69b9d1e3ffa7a11ac3cb32a5d8be64839008612686e5eef8fee1a2b074c20ccf7a158598fac06a3d360f9fbb21c9263e567726d7a06f8d5f421621baac04aed304449e05ea3512a5041a7c8e17984ba288d39d2f905fdba8d3845e5180a318411ca957cb45cac3b5b537559b7d512d98dbaeda7843529516147d10244cab4e383d575ec0464a365d4ba6db67c262919a224e9f79f69ca9984e2344b78d882ca27fd9dc2f6b4f6c65513caa707773d0ce4bcc3f7643e86cab5f093f849778aece13d5c224d5db2bdad12bd66be76f2a75da3d25b18815cf602a194640c81c9ab98b84f7ea5aabf259e57d9573d5f1261108b6ccbb73cda6dbe51f68dc84a626d57b9cea6fe7c19ae046c18d1a947d400bff652a97802096b1b2af30fe95acbbc369ed1ba1d90f5c1f8c8fb81f5a1b2e70fd481acebc9f1f997c08e8f6ca73d833e7fe7aeffc045fa8bfa22577917b7182ac314d823ea86e82ad5cf3b775faec84e05e238d1a73b0f433f1aae666790ad18e3902808eec6f0f758f57a4580f1e66bc8e1aad678b80645da3891968d49cf542a8fc0842ceaa5c842b8debf598112572dff66f12c9923a8ed00cdece525f08e8658372b457852d96a38d9454817312b3be3d14f8617ff7c89336de1a4861a5d06b68751f43ac01471453c9c243816284993e7364f1d311508182c0a2c2d57d231599885907f6f5ccc6cc03967c60328290fb2446487b2df6d9b2c0be40d57ecb3b0c38f54cd3097c60b69edbc92127178f764fe153faa606fc298f23f3e55440f140af84ea92b3aeddcd1302dee3e43323929b124861be0239b858dc90422e5153b5d85f0a14458004dbc8f42c09d5bd3e986e88eea016ab5a589d7d06631201fe20eba8736c9415695938205fe395da5d7d37920d61a19874e8c3b825eb730af4eccba04fdd3f4965c1eeba3730ae05dd0688a3a4d104aa99a6cb6117d1609c8b90f50e0c879202e830257300c8c17aa6697977f2ea8421a3f864ba27c94bb3595c88e51ad34a5d051ff808c6ee31f8fa6b957d499cc91425196447c072e8cea0a8edd30ef23dd56125d35301adddc3c4526126217c1fa4ce2c7a2d8e2dd34fcd317010a468dcc8ce2ccd7febfeaff16f6711aa1cdeaeeaa06fe06f82752814351fe211a7c26cbd9dcbf49078dd9f7390b93775d99c4cd894432f6fd94a9bf460b525b19871faf7f8d77b0a19168e0655f6bc0aff866914ccf0e1a86c9453d3b1585859c3e637bb20c5c4111a07a7b8ca9438d5d70c0d3f07d99898d8a9c88830f64142e706286f2fe46eb77f96c2141e86dd8b70add35ff6560b5a4ff00726e4f03be38d378d0478fa749d28cd59ac629ab9136cf98a9b8c90687b68edbecf985e3c8e19a6d0f414522767cceb05e43d5f71fb9d6a0af020cf9b94e112bf7c0b9f442b526d4c5fa22d4824b09317dbd30466cee570fc169b23c0f1afd081e209fb5203a980ee887b19263b4e9a87267526b0be574570bf13c67ad40c8c29554e98973863a8c2652e673cc51c9081ec789ab1fee1c6a1ac5305cd2b4fc73ee514f633565cf2346903333a533756cfceb46c5e1c6e822229554b3419547086eb345ae8407fab5920ef659a9ebdd53880ab17722f47d6b80763963cf8afed68ea891fe05ed2ebca480ef83115db4ad78b8e3d7cba0043c6426f248d8f3b60167800bc163250f290bbca1f5d3e00fec10adf4c96326366b65c960602184af7a97bf0a030b9c40687719fb267c7b8a06459e8c590240a668d7bc8e45c96649b7a1b034ebfef87fa6ab3e1cb8a4d844c5cfebf7ddb8a9afa6a774bf7caaa865bcaaf5d65944a96b40e120fcfac922d0976db39f226386029a90d6d73006e82dbda615d6e690810a5d065769aaee760790b6a06d9ea157f1bd6b03fd5a64f5892e8c2a39696605ffa1c97d4341387844e1070af49d17b485b0299091766b88bf50247e7d6938206dd8af13adc4a705d89b1e3b6ea811f9485fb772887b23a41d0f4a381384f541e136e3d7956dafea3bced0e59d577dd79df13e076a017da7370a2e76c96964707deb2303d687a251fbbe5d93baa2683b7f182b9354730b81dd7ed810a685e6da4a6b38c4856a04f5d236504002a92b3b955bfd717fd5d9a9ba3136e7bf7f13c83afcc86abf2df63db2e67bbb28c538ac8314ee3e6d5893c2cd464199e4d36f711c281083cecd2dc3b7570de72e1589112cb0f658b02b1e7b845d37918da09e67420b572dc547e1748ce0c0fd6c15e368af0605b089f560b67073fa0463647ab94ce5884436b5f068efa4e13a98721476a66208ad96047266e80aa238a1cb2b515f0a2fb86819b5914e7cbfc1ae5a045823fb3798e268dd9514d7fa0d1ec901ef70be7124008d5fe369091bbe8c6cd9c3b550dbb53915a0c4b01d07b9025282a29a2f537ae1be0822130ef8c122bfeac956534cdc918afcfeb9b06bc19a08dcc96853dd20db3d1fb6bb2bec143b2e743a851ec03501deb979add33ae644f08029e8a5c43c8eac8f8a1e1bd5858dfa928d163924040944a051483aafbee95895616687c6948c92b48d3832c997a7ad0efd0240a163cab29ea68d56e797b80319d3ce5a9a454f7383ef5fe9c2fd0d8829cb2b29c84896dadb3babd7a480037ef5229811d255fbb30fbcca3369ed3c9d3ba861466e007faf95b68a65d5863066114c909dbce3314cb97503dc4f77de5d4a60f9c1ebe91e6825659122d2269b6ba61104c823c651d5dc88f395ce486642b67059b88a6e924d8af466a4e94af8d9d9a387bb84c4efd5fa226a99870eac041411265c1a8018957fd5532c9671523b5fdee3b88c08adefb346361c05f775a778ea25edb39530f983520dbf0c6261010ce35773939bdbfb95a1ffd99ecd24f7a24484037d539e63ce51e851d293ab259626501443826ab20d8d5c765907fd6c5fe161bb9d80fb0450c6c1acd4f4066c104e589096aec9da6fadcf337a95a4336342ae0bfa9eef61a3c183ddaebc61c52293f99b5e5cc0fdba306e6c895f23b5ec3f2bd87c4add6c8d1474b3903750180bbc8bc844c47e39d2af141c11c3b443c9a8027a0c91710c71189ce2f5bbc86387e2e6959669e8bdb1b1838f71a6cbe5216b1c6b2935253951e432717fcda2a35474715a8045a8fda969994f9e0f2516ded0becae8b957e6d49f62ec5977be0321c59edc37b4c8f2d36280ae973c3af61f508946d7c781acd6449a621f9fe35491b4b5f47c970f64882de223e3d0350f5752882c3ba66564d0dd40f64787f3d6f622a16c9643228c7c494abf95e81e46ef6709c992ad0a34d87bc8207c7cafb765be2cd734b828db887e08fbc5f9ce0381c4f04477dc79f9d65b8d73b5d8dd40a6e5d0658b3293a5620a78dc8cf07530caf497835994a8d63907f54637902430cd76c1e30c189f25810ad158a080396b923570344deaa4d2e934ae15294e7af11fe3902a36c6efc39a522d9cfb0883f04a0e703e0ec869496c021f94c21bebdff15ca1a4c0959a5d4bd81830096def9ac9948b5b8195abaf1fe53691156da7611eeee1602601e7394de0645855ca16f469481fdc2ecf9e349004895a6b2ee3cd2ab6d6110dd929a14a92d678f86a39ae4d1dc5c2dc4ab495c0136d5932dfd836b52274ca011c9071a38f4a029ca31b7c88399203bb1fd2140847d4ea27a6fe9ca5a81ba58c10765d78da8926386257a81a0060b94e4660f01d2ee8ef0abc0a7c9c254f71bf20fef8976afed0002e7361c6628dba3c9e98d88a419da8f061f473e37533a8fe296f5b17a91968133f932592c2108821d41303361b8279a36f0ac712713c5fc2fbd15518ee000f89be77a32e6ea7cb59dd1f0eae02b7b06e92b3252b5e22a2b5e6d05abac74c53bdb2475038f26ea39f1e54c8bc2c842e013d8d541bd24e86bc61499483d9d1426723b76f4ce8313466f200b646f069d1c46dbe54123358f95e22d1e7e993cf10521b3c06479236570088a90f42a8682838c7c3dc320aaed2710df5d6386eb58ddeec26dad308bdb815bca1aa0ea812a9eb5c31029bbb4a962a693c940c1284f921580c444318a322ba5cf4357dd9a0310b0e79fe889a659d7bba8c34de3f8f7333cff25c3591dfbfdb3206878943588dbcb8ff8608dba02f6534a7b98a772555dce46992fffca5359183c0f9c51bda0248bc38f609d77f97787cd6d541a2f1f558046d0896d42039a4e7a208e2b178147b2b5b6439b0a30fdc24f017921d0e1c55a08dc240a5e34d9647489046911764d08d1f4c4078220d21b98c1f7e06ac0ecc350e3686f1d2af3d9a7fc0ea7e309dd1811af2c2e0e6be840700f292831775019905a04f20ca8f1f8eb15689090eee39201e17b8bc803751eba6ef576c08959c019a80b1a2486abb4a88db960ff0e0a18a8181fe0a10615964720f85cc1e001445ca3ed283fd291c438507c09563258e62017f90b99e6854d30d5a6680115664d41b889c48f018e575375abacae7293800cb53cec3b6cc5cf0cbe16fea286804a68714f65873c9f5bea01499006cf08ce9c4c0d25453d7529771b98864eda238b2b5dcc784493164880b0fd013ab2cd016c0f9cbe656c60390095b96848f204100d417cc9bdaf2f1c9f606b257ca1d22a1ade7788791d216aa6b163f92c6662c15680eb0d6078ae397b668c0744ef2a737c12e9aa3ee38b0276be0e530f211961948c665a1f72d059193bd55ca728e23a938d084a42902e3d710c3da2a103b720a4dc14b0572da63e52c7d6f9b7b41827f9975735f32be033cf3735f7f8413aa56a46b4ab1210b6b2ab9611cdd77be6796aa41e8e794aa07433ad247c041fdf3e5440640ce8c8c42467ad69a69054a7a1426382ab7122645cc1eceb250c24608dfec21b0c4adfa1f9888c376d4c677e3dabbc96545e9eb49b597b605d894e6b4f4ba48cacb10ea924a8ab3b0a324c8a86e7a880898a86149f2171d2d45f14635d7d8d7ecbd028508e4463d7a4345f2b211d00b45e2be01b6629d95c194acc1a286c3b3590138d28431badb8e107575ff8b18ce16138d77a02c2108363437a3675954d3c1fdf6214bf997985d1da7e3b5e4e9dab50a93a405027449f4b929fac955a8b258534f9908cb00f2bf82efdd90927a278f686364a97239810e09a0a9a9c6f30e0784aa770ff24c1dc3a1872437f0763cb138a713cb869aa44133ee359ba62bb1c11937f2797e2db287aeb62728d3496c4a04068342342e96393f41e98c6e6107ff2a16e5f8bbadd71e93b0b5bb0d854f908f618903d2f495ff0721227744bf30af5a2bd3674d03068f202cb1828004e962604e97ffd5afa06077aaa1d6b9389c58e1d87339ca18121ece6be748b3d5cb27610cc5ccc734c72a6bd2fc2fb0369a5991be2329361472887aad5453107c41bc4859148d106ac3d2a331ca7c652035e5508830bc6b9a0b18ac66915dd2a5c28e66144b901cbbe854c3c5829047ed30de85d2653727f4d85b9ec800b802bcb3689388b126d2a3593c94842e00b1ab4e5e307aba0675fb162892164aa87d9043305b7ed60288c99436bc2aedfb768a93c6cf98813dda830126d82dc87c01076d0f6672803b2fc385a5700cadb17f2ece9b7752537d57ee0b806ac432cb69ddc290a0ba79072db4b3d1ea2248239bb400c2ce77c0e2f197017a879a55e6e76f1cb6b8717fce17c3704731085313d330187fc43a22cb6a8944b0245bb00d728a011679a0e521273b3ecda8c3b7c088c146104062a056401483bd52365f9f2e2c59806b5d7d697ecf2acae51c0e041a8264d734b5cc2ba9713d678531cdb936f03e7a331e9ffb5a0d27616327cdf6f87f54a809f2cd2b3174dffdefc600800c6d87b4635c5fd49a8612c4bda99beeb6d98ec3feda72f48b99f408556f5ed41851ff22d7d0d833d54756c4a01f229deb6ebf89448b894f2be8cc757d458660129349e1955b3951939bcd8afbd52b338304e78183eaea2d2108c9a5e74ea5d1648733ae50af76b9e9cc4b5eac4b5bf42d593ad8c75f1a547f4f8a751f5e7241c5044a422b2e474fb5c928e78db017b9ab5bc95c1e284ce3705cd342c822f1fe144c8dc7ed172ce4927d94226dd6f564f7e387e5581748580ea5d850aca48b580c6141afd6262f80fe619f9ebfcc6092392e36493f2e297013a8f7893d081393ac28b9b9a016bbe3ffb885e5bb369667bbc5eb9ed48e5e4a1094b1c38c20018309dbf866e62de2bbe8001abe4203ebc403bd0ff0fad4a3bd39c2122db80195549cbb5289d703dfdee0588090a623fd4cdc1c86b142f9e355203c3ffaf318b7d98992e21129d278171adde4e23d8a72d6d5e541c46c11c8f90b5681d980308567cbcf22c67867991cb2fd99810c2aade3642296f34c29d21a01c7ece3dadf9ae8802800e287e2129170e4808ad36e3bafc2c2ad5dc051be92f122ff56234d3a239385670bdfb094a439aaeb8a0ea68e054a88f1125141d4f1ea1ced33b032cff7b46603acae8189ca7ab3eb2073663cef6d812b77bd7656eb85975cf74a033870608294d3649e022f45bdf8bc044c145b6cfae7567e5bbac91182aa022cb4434df5f7dd47bada8bf25db0f3d1727b3637648ee5d34f783de42df42881613869cd5660ccafc589273c7d6a21953e3f40f712521ea0289dcaef37de9ed19630855d710761318978a669ba49519a8bf4b8fcf20ef2766a0e116c0a500e766c5fbf37c0958333ba7d2f6eff7dcfee959fa724aa411ebb6b3b6c31292863f7f996bf7729f73bebd13f644bcbcd61bbc125a9323f23ed72e8064a333850d893e35dfbf5ee5bd609f65316766d98413e91b01cbc49c263a9874cc5123076719d80fdc436770f37d7a9b813f01a026f6aa0f302216ff329835004481f75aa4bb19a62511d325429c17b663b623bb640cf9c114049079682667d4aeb72322c80a5d4d449542cda3ac7c41b5d52191670cb62077f2aac9ab817cb50b9d97dfc67df7bae79e9bdc7633227b85e3fde18b4089a7b44f0921461192bb7290e9560a44c28d167555717281f477adf6c0b830148f31b35d3cc4cb24414f829fcf924582b265136cdc3c674330b022b3419229ab0f8074e3be364a27890b8735b5f82beb5e60a03fc0f4a1e689f5aaff097e75a85fe59c193512f8a14c044b5500fc57095368cb043e887b2221e6e5c9b28c2bfd59ae2cda8b8f5c35f221ba6858f7993f5d0d9f61e301fb99be9e6b50b1ce923ce44a344c0cf84a0c6662151b635a89c23128d8859fae941d17da0a9d38d05469a1918e77be7972879d1893a85a07ccaf12494f33a489120cd2d431a359c77b9e8fce591f1f896f5712ba750a430f44d620975322323aab66a81be6a493b2a78bf87422cce0fffddc660099c9e555e9804f8962d536be2448cde89e2b234bf5ceb4b486cf36a4db76af1a7c002eb16d5241ff0049982d611652ffee81a175d666731bab7812bfe4535630886916f0800558b230982a222984b5171001db55de3d8c1a874155b69e001fa71ffb0798b29814f2179afd4fe9051b6b155281f5e69aa7c8bc6466f0962f2bc258c2d5c1b19bae840a398f0216416798d4520be5f99d73f056e7a7aa83bc05151cc6d480e299adf02617e857b43b520e87a48848ade328388939c675262f98e0483d0bb9491cdec26412929986148193d3812efa6994e231c53828e1bedbfe317c0f0efd48b45639bc4243d4000268ff2938aefbbc2dd8a958a3899c40562dd0688bef6f47ae5008f8446082fe1f07bd60fefe5a70e33e0aecfd02bf78d662f0b0414ba15a8366098464961605add6567fa93a8380557f5696227182147d27298619b1d94562ad08c1d3da9bc0589901862e7820035f639553151b59417ed810e584e482623a99964e364d60e05282f42ab363f75509700429dc3b13b1c53284114f70669728221ae0b2673d1e3ba4cee475e998cee75f55487135e58214531f272ec50a420f9da193360c18378a3417a50090acc32e7208e4cc0b2c70e887a02e9cab13c7ec28aa292a11e8471833a91620e0f87c4f26b1ba527720a0eef5315d64c704f849a2f9ab0bb66f0d08557bd769882aa0283b1d9fdc3c00e349301fd1394b35fb80378ab524a084da7d963da9db6d45d8f9c0541dc178eb0880c9d96f8127b11a9cd4ff02a29163383f34db10dabf58b37e609cf95b7e328efba5dfa2d03096e9e51720a74762f5abad6695d5ac8895f00176c72102143cf84e651d79dd64b88974b5318a2db6d8c7149bc5e6c3e9cbd773e2385ad611003f172712b2da44d502218b6a61de7181b957c6e9b9d58fa56c8390ad30ae8b4e3e28dcff7290fa03b762d08e73395ea76e5d5ad4586df360f798bdf4089ef3a7b78c1229318873081ce06966cd0b2f8379dcbda399bf573c8077a07e00b9b58b76af982e8b0096a1cedf7a1dc2eb4ce6cd08da312a041548422899e44bb738a006cfa452180534ef75e5b2b132ac91deeea53b2cd568da01ff69136f79852baebc85cdb5f7891cbcdbfdfe9e831279ace5ab071ebcbfa7b1d5d962bb49d7847e56631d3462d54e361e8254d35c013646979638650a7569ba9604976ce98d09b38385be2db08e00a797a959e53b0c8de9365ab34ad7d4d4db799eadae830a3ede32221a1e32f87571ba3a020756aba3442c92e314810ecdfb27a1da4ab177bf53bb4dbb5b5720ee424270f368f8ecc94daa5cbdf725b1b9199125124d3ae4fe182985d1441a5bb15b2067a6b6790c8519d4b0973cf6c398483dc921fa09693b22c3a4221c3d0aa256a910ee478a3fb8c866115dd3ffa4a90be984b65d4f8c58422f9cc2f75fec4bbcc6dd56ce80ee27b5f81ac8e3cc9f19f15f65863579e25a64298015b24b5f2d7f74e9f955f7f1d07f1c6a7f5210d0294adab3eda5cb67294ed4b63fce44cc1dfd57f09744ad4523ec843eaa017a8b4d4a021c0a0e688ca0e42cf46bed0f06af6cafc1f7e590c95e099c24bb1e89036d38e41a6ab756f2718af2b7a3c88066f4c9bcc11595405d39435c7971155c95d43affc49486559cc73e30bf49766d8828ad27ee70e5d150bc1e5c33c18be94f3be5859ed8d9fc167069f6a0a49512bd9af33ec28e0a37bf515b14426ad57e643284691d925c079b741c188483091896178cdf5590e34bd44a70419d95d3346058089cc2e2f41e8ea838855d7a16145a70f2e6f8600375d7eeb66f636a8e7ba4ba06cdca2d18ba0e04a8d77479b012189243fc76a1b5db55b5bb8873ffe6b4c5a826e0ded0262de2c01f5e2fdfbf6fe9e3bd10923b697c57e16464062c4c3d5bc322b994be09f82252ad4f2ecef844f8cdd63c39fb272d4098b79b22fc01012fde7c3e7a2f73d1002509070a0dfb1fd1506fa4618ebae4fc6fd7d05a35b816a301cb2ba6677e7749e842eff28777c3884c0566eb47d33a2c6c4356196896954af5e84dcf049bf6d278586c3f9b85fac039f0590b084118e47b2716820729b402fb9f726f8d86343f91854fbcbf627fc3dd77a82412aa2f18b7a13a798430cb502234cfe5b6f2130c3bbc9d577f765b997a0e8fa86646101303a49fd10936b700986630a3ff162e73ba6d4523e1c2be1dd0e1b99b7d5058fa01f7b78d87598c47a0f5eec0c9cf13fbba95538efa4894eefaf6ba61a662b9642b4129a5805dbe51287269100caeb87b69f1c1386bb141c690e1a990815dcc54ffdb3d3c2fc5f9aebdc8f3cd202fd2bcadfb7d26e99fac8bbbdc8d580dab67761ed626366295512fe3c8a3f7b050d6c165818edc0e469fbc99370921b8144d04d5d22801485468309fa22c32be8fec62f8be3208503fef9e37bbd61a64b8eed2ad3e999c4b887783711925010342bc45d42f53662c72404d20349a945f4a646159a6ff4ffc578e3340287932418676a6ef35c091afa446f120a21d3bf9dd1a5cfe13644f06751306cd26a08a003bb59509050192080dfab035b8dac25d1eac689a99015f34e97a7e4240415c00747428607256a93c96da15ad766cd340f07870555cec9a8968df16026f1d44214fabe8fc12fb7d590802ca1cc60268b141f7b6671ad30956ca730da9a5ad50941b818a44b0dd9595186db8b513d54fecb508a68ba24dd2598726fcd8c061ce796cba2c6e6692418db98627d2b1bfbada72948e7fa79e10141c75205c285db809436eca9e59d57c46c1e2af398f555ce200ea8e9147bdd01337e8316ee9016ee801eef50637ebc971479284072099f61f598bb29355da075728049b3b46a5d08dda22475f78db759e9cc8c76fced7a03b06921020d3bb8f8258473ffa78146a0e7508281cc282a9aac64981a5f3d8129f75af5fb80364a2592b1dcd595d60dacc8742003807a05cb21b72d1e2189d6c28b1da4c5e993f0c7c9a6d8342daafa0719e6b11eee98c60a9ae33ca6816b00cb768e181be59cae11042c649a8d056d080dec50932284206d39a6873bae0510761243e25e63338a61589898f2b01341099c162a2bda31cc51c4abac376cd70b48fff0bfa67e35c4eb2ff5460124bba6e01d3b4372775346d6fc476418315d60c7c8beeb5b746cb13416eae4ee5a0e2fb826e9a92de05d38e92cf622085172d7afa9f0db3cd5fd9396d3d2e776b77e35219abad11e7a47eae0782828ac70740247a7a7c5c0e8e4b4ce2bce9020af96e5c0ef1a12cf81caa7a70668b2aa79739f34c7ea0ce22fa0e689067e7d4e1e2394ec1573bdac12cd4808e086c41e1f83bf8fc056f6dcf6396adea9cc6ee2e9daed981f84161cfb7704d350ff337abbd66d673ede3c62fed1b157221326cf96f4e6b4ef2aac7f4ff6b79a80b25b2415536dad760d1ac1bd0e62c7e54510401c0bed2049418ac4a9193758c0ce11fe686a2071d27612ab426d391ace54fda12efdd1b67736224f0764d8162dabf93d75b3702754805d02746d18bbc1b9e995ea70e9c036b8fd6d872578e8627abfc67260a4d47a22847678f8bca5e01c6709dd967627950a439e4659004053e6ad51d844ef4eb955678f21821e8ab7ebb1cf2ef4995858337927b88e24a9b94d659215a4eba8d34c451249579b640661973e4588ff678bcc6e4f5b62f36c02d187af8565659af65f9e9e6d432e1e6ea86ee8a3dfba8618f626228115458d344e6cfa46f1ce8afbd17c76a2e0bec7d395d2d5a3700febabb4d56f2e6d32a1fe4fa7f1977e69d299b392a9e7f183f83d4ce78d58b50dff73f6b6d5f5d7ca6d1b31405c38f859975208efbbe89724361184c4bbf0a1a602888f0e3a8c352a69442eaae527ce96b8aa914ba54e2bc524f82175ae04ce591f2c319caa7a96f8b2ec2293562a8f47108108a269c8409e74d26148c560469d9465c52523d63380d168a950c4387bbb1fa0ccaca3100b5b04f714d88616deb540c4657632d63cd6723478b251eed023c5ba9521fc0c47dfa57211c29b5fb7114fabbf283036a1a1add2cdaa9c255b5a5f1ba2666d1c7c60dc57af41aa4cd1605f075f53eda9b106620cef1ac61aadccc25ec9305d585ea2c7b03b1f9933788691693b3ff14e131406093e3d1ebd4d8e3cd619173e30452b321b0c71f798071b9070831e7c4e22750611867caa2d909c8db0b3d596d520d3f3f8e690eac58a088dbd7a4317810678d98d002dc3779c2323d1ebf0dbcda240551797761f5d34dcb53a64720e57f863d45994938683ec2736d8f1e11eaf85d107f67c75114fd3d6e1d3d424dd403d4e4c168b82640a9067c6177acdb5c9515b77610431163b54d639cc7d8df794b0fa79337d470034f9ee7c99b8514d5dab7b908c7334ff204eb11da4f0137456f4f9c9729418f9ef214a45dbf5da6687914a03c14f444fa4d83bbce99e4ee0464926cd8887e203fd0d2dadccf00bd97fafc275a952d35361475d3a5f106a8021a85b815a0a55315175f05d5c42ac0b85948242859cb768a3eb9c96389a8907e53860da55f4d714908b6123b38ee3916ca5e4e6861d64cfe10c6dd734604517020ded25489de1c1f262a5cc03176d21402ecb53c65b78a42c4e329e60e2891e2cc84e17f0ac8ef9bf0da18d462f9da2c622b000044e4bff9844a2ce9c947a4c33014780db6ce028e93881bb095bfd6f9c6961e5b56520f75155c0a801e307927fc415be47203dd21c86e349f1ac8bd243c7eda7f018da8928cf2dea55693892970358c04e0bbbac14b8181cd2bd34e211bb9d418c5d6fff7c1e464e29e2a4e12691d7c442a156cca2377ad0032525041fca103aaed629659205a55550719bb6a1411f68e25449a4fb88e05b9e02b04ea11470b31192020a280d82a1469eca0969110215f93f8d24082ed48e222cc83c496ee2c09aee3caafeb288ea2bd3a3aeea4685b146ddbbaf6f7f6df7b4b29a59432e8085e095d09da64ba48b7e77518d245da70f777fa4eaebc051313728672516b6d3269933669da79fa34caefb7b3315d320a8d461e1a8546a5364b70542853254fa94b0af599c8d92963610465e8a41e7bde9536b9e36e754f3e177649bb930fe9276b417561d79d2ced79b57eebaa5a9348260e6ad044672ca4683f7dae2f39335552391291a3182209d9d741cf4470ca9eb8c0a9ad59a8d6883dd1c0d9090b55639d2db66e7bdffd6ebec277bf9bad20f316af1cb1ad309704a19acfc58e75b916da15532528b1b10e915b91231b5b1b6c0f3fcb6057a78576f5186c1aa8841276edd319c1e96833d455c1daaeec1b6261d589e814b919d9d58fe47645b22b10362d77c006b99673b2ed9a9f0f15caeaa250ed0b22d22b8b427f8d02bbfe21c48c814acf4b80faf9b500ec663fb78f9acf6935e7bb0ebab5319fc619678cefbd18e79b2f39c3d8efc62ed7a4385bac02ecd46ffea91602e208fb8bd68ea163d0f1783189cabe6e7dc47e4b4f8da9b5a2cf37b63151d62f8a19fc489b708f267d42495d67c05217edfafba80b5856aff445fbf7782ca90b89c2b4d7dfdadc3a013b87575aaf08d4b952175067ade98b3e1f9fce35856e3d03a08f59bf36cfa0a45eafa54027d01867a1b4d96ffefe7e262de78c04bce50cecd5990705da387404171c61e38c2990cfd5814853686556b5a4dc3c9630f2bef7861fa6672822b1bf73fc408c43f52a0143a988c41f28d6195d7f60aea534987cefadf7561b02bf94947baf4f15d662f0ca44a4ea6ca933daa9d310ed50f25565f69aabd3d81a5a60fc4ccfb062200c4f7ba6b8ce159b18f76094b5dd346c4c6f9a9d868de9cfa418cf80ca6a7641a42977c42111d674062803ee68bc6cea2e7486466b85311832693016e150a52e22f991d847118770e8349c061a367983260d8e1b00d8d8a4d12134b4687638b2e63184207963cf9630cc2c3675189530f45ac1cfc4a6d5828f0e95273f55be525e92ce9cf5c53a7df9b495b1679d71a12fd67b542f674b8b4f1562759babded9adedc15d2921d66a435085ab0ad3b0a6f8a9aa332e199897aad5ca1129d016abe8d49eaceca4555facf695ebeb95fc4cbf1448ebf8b6a8bf5217f0730d56daaa336f2d0a75695dd3a98b85424969be2dae615c8072dcdfe76268d2eae720c22fdfeca1a7a48e2076761d042e6d0bb08d95a14c257ecb8ee3b74e97a45d7ba97de49ff652e42215c1919c5d0fff644f91575287f691e8494e94dae91eb58b77fc4ae9488eda06d04fd65b5aebcbca31f6c0fbabd5ac34d731b27988adf65a6b2d0eae3f2a1555acb5d68a84a903ef91381a0971afc86bc969e32e697897a2a82ccb2fbdda62a5972fa2b175f4a1f926a7b6ea0193df4ac5be2e8e9e268eea88bdf4fcd549d1929e74d12c49176b59e671f4f2a6e4641e451efa929fbe74d28baa8fa592973e3a8db52979c8dc4199d8c2f2fbe947a76459c7df417909857a6c61e2d78cc341eecd02a95bd411bddacc91d3ea0fb174d1692313c7eed10f9bba45a2491bfde42517fdf4a5929f4492491bb74872d14973741a8f71e39d6f76948ef768ee28f9583af6bcab570fd49992b963e4a38fcc1da5e73d66523932ab07ea8be8a20f5dfcab73ceb966c76ec9d1acf973a220bd92b3d129290405c71fbb3459d10c60f2144051347958327aca512a37099de461f8a18fbe0c55aa564ac8491e7ec8c5a7e16c71c4aac1c70e4944f8d822b388d70e4d16193a19bac80c4d9c4d7292f834d1b38b5a14473d5e95d441f23014b144b3061f3b64b242be43e4a287442eba6834f2d0cbd0c9a7894e47178d1e7ae93714864226890525c9e431ded0dc31bac8dca17a1e238d64f218f758aa9cba094a65627b96989e42a14a272f9d4aa35289e4a558f290e4e5a954f2902496c2d054324d26a7b1e19b4c5add6159965efa1796e114401024812008925c2481e0e869387bb4f291292a475efaca696ef9a38f9ec66314710d9135f820957cf4a2974f1b77e957e43b462eba68e4a28f5c1479a9749a4b7abb4b128be43b4a1f392bc7e8221ee30e99202d71788cbb475559510a788c4770c1115ec06354e1fbf98e1cd6b589494e94d63d47dd11a98d61ac33c658639cb5cef95a7b03d156129041c47ab980b149dd7e154969fd734ab357d72668bfef69dec18387e3fa9302042988ec30d49e1b1f5bb7736a63a761a8427aceef0c7b7cf06c9a751ed467dbdc7290ce60e5a849b6761a68d27cd8a436ae426acf571fea72b383d66b924d03593668075d3bdd9f0d798736417327045a98758bcb5488d4026d4ced398ea20e1d32bf3f95a50fcad1f38b36d8d841d1b46df0c3dadeea5017ec3a0afba385d8410c521770c439e79c73ce39e79c73ce1608df0067ec34a69d461d8bf45eea34bca9991d7bc6f8cbdfe7f933e9850d6107860ada980f16352482e8e373b2b85d9d6671a6a012a9a440402318d1a65ec2a0acee6363e4a68e8788e088de7befbdf78ee0f581ab4d824853689fceb62e42612ffe546468d0dcc001801c6c0cf4126c5c02ea372239b6a9d3da220a0ab304b0327c5b51718e8aad7140350eb4be5d991e626156e3dbaeb5565014d532448ea31e6204290c399578ca0765dd293fa5ac1884acb75b1454867d4031157526f3ea8bf531d7ea229e399fa1897d70e27dfef14632c7d7c71b3faea2879cdd8ac3d11914dcd457beea2e2c57aa26d448e98c71c6cd270eb8ab188658bcc569f4c705dfa62e0394e90cce8d0f6e9d6d6ec76aadef25b3e3cfda6cedc2a270f1eb9d1ff75491c32ed8d6f38eccaef316450ffd484ff114ab6806b1430faba9f3f878d76e88715f76f06f508fc70341327b48ded852e47d35bd0381c6b79be55bbefe10383e3eb807e2e32a700f16e26361d6b4fb33f18ebad4689a07db7a48ceb287c81b3beeb478fd1e2dae81ae2cdf2eced599af565facdb96af2cdfb353792e2c0a95070bc1432cccd619bc03fa8289f4c0a485f00e0aa2f86951c427d48ab3a86460ce9c825dbee1dda5658c0e4be6206dd38239481bfb875f6fbdf220ded5194a5f44b73d5bccb71cfedd2b2ca44b0adf6e90e5690d505943a1ad34147d8ec50f955af1a0dcdb36f3a8972b9f83f054aa7ab352e8a8d05d950a5f9c2a19299d516e2ce6bc71aea7ddf8c7a7a7c78950d59f383a75bf32165ff116cf3792b892a20cc71dd2353c0efefd68fb4b27e9e96860babf1c0793f58f837fa67ffe387c66cdaf90ac7a466e78cf79afd913490f0bbc9b7ff150971c6e1cc7711cfda56fd070e242196bd972141416a3caeb70184f83c7f81c1e7bd0657f83cb3c0e6ec4f7700b7c11eee371fc85c65fb7f1ae19fe86bbf899c3bcfb8bb7f1980cf8051e09ff5eb4537ee7084739c2cd1a7ff7139d7b816f81a762536902c78df9283f47fcebe5273a46dda8ebf570f857d00b3c77430ed7f9167098aebb315d679aae7bd37528a6eb3ed375dedb3d9b5f2161d566376800514014f067ab5e27ad9c01247a14914301fd45ceb4bfc81bbc6dfcf51a0f3a8dd73ef32df7f145b805be871bf148b8ccbb3cc6d7f8119f845fe033e0df933838fac4519cd6bcfcfb5ef92b39f9d518a88b75945f856185e4593516ceb3927856069e85c4b3701766bdc7b38a7896eec2acbf563d0f94b05136d6789f79fff1ea61c0dcc180e93a17666d985ea361bacd9ea91f3a407cd78192da33658c21ee2cfbd78eba588ffd4b475dace9740a994c2693c984b211f1abde85b1727ee800799670a33c123935533cc121837019535ebbf900f06fa3bc0f1608cb838c0015bc7f1bdc7fd7f0dabfd71be66911ab5eca56b259157296b2a56c30453ccd8e0c8eca8f0d776b4dcebe961698ad1dc6d7788c9f79ec6d5cf6d765fec65ffec4673e87d3f896d7781c6ee3b3cff03478ccbb3ce541ff3e6ff37b80db955bce732c24e9e968404f7bc3692fa6d34e9aab5e2e2b94a49e8dd148b99de35f475a38fe65e4c5bbb19925e9d14077c334cd37dd7c999f49c3af7a35bf4272c2820539035d8c1953b6db78f7d7d3c4febaca6f997f055117eb4f6281c8ad9370a2174f8c7fe172a350f9f2729eee23526e3422c1c4bc70f1ac1c7b5a9fe1593618cffa41afffd531e30ccfc26d7c0baff12e4ee35b7ce659fce467787e192ef32b2efbecb187798c3f1dc6af48f91d1c3fe2fd02ff46fc5be01f05c75f14e12e7ab81963ee14e16feef4706fd1e2249c8da9d8ecc9021a536962d4dd2a5099d780025d99eb2e2cc8c69c47f2028d3916e8695fced35da52a4b528e96223de82dfec573f997917fb1fcebc80b88ba58576942c566adc3fe75a32ed6cf7fe95017eba3ce6ba0bb8e05e78d2f2fe7e9ae5295a5259d96b26deb2c7ed55b21b1e7c9cee62b578592daf33bc9198a8b305aad083cd915c5a4f9d83d1e9c7d2c8a60e1bd2b5bf52ecc3a089665cfe665b36ada8673926e4f95bf19a6f277e545e56fcaef10e12844982b241676cd55cf48595d8cadc0629c2b545250ccf718af13578bb53251c52849a1629c4c316284e0f739cc46f9d7d37dd27299341f5f0b643ded4bb2adaf9ef6016deb26ab1e4bc7e27985615b47ad7ab4970c68af1dd0583daa4d5bf55e2b78d9008761d3563d707cda4b04b4170a68af166cebe1d3b0154234d60ab131d0ad062f8fd0ce060a851e30b16f68a7834ee1a39fc9ca41fbcc9b243d37497ab64e2244dbf12649cfd6e64d9221f6ecf92ebe9755ebb1b255cfc26ca6ad7af86d153b7bee54744e3e84b055052fd0bad01d52afcfcf45b27bdbea9e7d79eeeed660d34cbeac3555d7e836edabd1de570be9ac11421f7b4790bf13042b9da1dd864076e7eedc9dbb739fbbabb3f31f1fcc0212add6da16c651ff5e4ba1b3383a4316e668ddc569ddc569ddc569ddc569ddc569ddc58535eb5dc0e972cee7dae80c0cde7b2d126b96ec6c66207be62216661de6cc47ca7b75805c9d0c54eb0de495a0bc97622baa6e6b2ed9f4a66ffa664febfaa6b2d58ab4d72c85485368a3cfb67e751b4ba1b3a7d5b57b816c5a4bb4a9eec3d0e7863ae12e046265e313a18fde853e7a17fae85de8a377a18fde853edb8eb8d0a7bcba5067f4c95b105b25393b9180d27befbd18536caf88b6635ba0ccd3b79c911cd13948a806b22d0d0264d34bab69553b0775a1acd6b50eeb42dcc598524ae9b5ad18be37fd8485598da3d6b3112b038f58987522448a143162c41e3982646b1c18644f0b86a0be41ec89bbb71087bf5071a84193bd4b706aa3f04761b96aadb5d65a6b0d3eadd15a6badb5d6fa027ab5ed7741f0662ce82698d03affa9c5ca44e5bda397a2d6e9a4d2210297749e5b1c4a949a0a9191c13e469b8b20d2149a58dbd65e77109434103ce153cbc66e98b3fe00e8b45c846dddea26fc669b4f5bacd9712441495365d979dad382e0bdb5de7aeb3569dab3e7d192397f4a8b8dd12e14f63eb1ef0d7281ec7b7f8cae5b245676816ccfe47175e0b7e81194201078815417e8029dd7f67668de9c084a6a4ff042b1adad15c414b8ba219a033a043a04b5088f8782db0990d4a07a449ba03c2d218fa156944d03d14044b9eadacd9011832ee26c0c567dfdd3b8061f9b25fa8e9083ce0a813811e03186aadd818829cca626a557a7b431dae3e1f1f02a499253a4784a3c53a450a512cf14289453b284429dbc4424c2ec1293269e48d23c9924e9550a720a1e1b2379e40935050fea419356532929a64879e549a578a9295028d4140e7ea52c04f7dc2aecae44c596a2ced05d322b4fa69578c84b292f392d7ba9fa2d475e864e2a79794d1acc2eb93d79c94953343ede3494979cda7124b1a01c993cc65d86dc149ab41232e424d2f12ecd1d239197a49b4c260d66d79489e3b44c9a628a3a232a3d548650268edd2793e6e3d6908f4c5ae5d9a53a457d29890f7a09c4a249ab2538a3b1a3c7f60c893df0de417a764ada88bc96261fbda8542a9d92b3d2c8452413db93741a3bfe8eca471f9ae0e71d5559aa1eb4b090936f499beca127b9e8474e7e28278a31748a83b749a7e0d93436654545beefcbfee173080cc3fe61fc658cf5f7895e63683ef6fd34fe72aed56c145763ea82a3b8f6bbf6b3d908b6e29bf1cda06b5007f60fd39afb55d7919a906ade22386a8d5d03bab6c09252999b349cd3adcc2a1f5d3443a67ff4d3387fe0673f4bdaf04a928495437b766d8e3df2a6f6a4a2bcf887c6bac634c61697cb01776b0fb7821ad4a3b1ddf5d420bbbbe96cf1cb3a37bbd3d13a22b8401fd6e967e1dad561fd374050b83a57047667771054b980ab2bc88116610ce5d59f49c7505eb7b5ac3da776b21892907bb967695ab7b55f9ed2c67aa9943309ebd56acc3fba91ac3b7b9ad41ceec2c0cfa45fb54d5f981a05b92194d644ca92ac3a190cf90bf948f6028924d2a252e72e642ee4206db2d227d24364880c91213244864e3aa49de96432f95464ad694d12331544bb5418faa0c30f103f00f1589111d0200158640ea66fd72236a679a6a7716fd0e896fe4c562a3795784a65527bbec65a6a4f99348c3af9899c9d5a75af9ed6b8c81c01219873f6cfb34981136f4dda407757679dc39006ca1b126fa974c5f1d3a50d01b5542a2a74ce5e731428740417208102e99cfc699dc9f069fc969ed8148ea4907e4e7102b46b2da646b0470606f626e189c749671c023f9d595c715b0d73d2feabd58a6849ec8b75489bd507b4272664ddf5b9422cec3abde40ce54bee7f72f34dfeaf6955072abb4f91a0b295d8cbe98c13c76ee94c8a63c714a4b194631f69cc1d7b49632ec77ea2b1956357d198e9d85b3466e2d89dca4ec77e52194cb6c2b1cb50190bc74e43632dc77e83c6583216c79e0395b554dbfefc0ab1e71db281f273da15b2afcf1d72ea1293fb97dcfc21707a5776c1376960595e2f457b4721f6a4615ee965af5cfc33d12a2eba7c4e14f70917bf389ccbc559bbbe6e95bfba7b77e4e5b127ad56e472d9163708bedd74cb3e49794b5f4a473da667e9a907e959baeb4b7a96befa133d4b37f9163d4b2f79a72ee548cf5245cfb2743c723c7271349658f6573a1e392efd034b2b407474c0d004fb61b385a1d379736eedfa17125163e9513c3f0b23476ad996756e417a1786a4f789bc151bc56ad92363cbb441aac7389cbbb0abe3d9d988afc2b3ebc13e78c8e396c7401746e21b75b925637e949cc8e5237256626ed5c90a719dba3e25bfa3e2a362e2297266e252795a63625a22f6674545999d667f9ee472b15ca32223d20259206bc4f2ca929ce5ffed7a7c0bf204d6ad5861e2dcd5e524e55942b9899ca15ae7d31a540e6cda2acaebf7dde66ebd4449edf92a9136b0ed32314e03b7fc272dfc6be1628bcf89c25271b23c2754369133ed3a65a185cac2ca45c5c5b43a3bd67661368bbbdd6c8ab4397bde9cc9d64f4d5b23776a4fa552d523352848a5ca42fe94899ea1ccec04d628aa8cf94d9bf59417740449b6659d7cbbb05cbb3023f6ecb5beee96af3f3bd587e52bef56207bb65a2a95fb79c2c0b0764a885c5c31e62f6d169f6db90633f244ce9e4117c6dbbaa65279cbf5a2af9393fc24213d3dae93d1c5ead45faffc6515bbdd77f2125dac4fdf9dae8ca3ed7acc3372e4c464e56c326954165e1e72b19ad4fc176dd8e79c855d3731827ba8276c0c0a3ae3732a2a0fcfe73f862e56148a72452c8c792639ab351f318259c693e9fadff3931bf5181b39d2b3a7145465569daec4da276dc88d6fbac632e61f77eaf1ed310e3f61f2188ac73c17a6bbb020f6ccd9f3baa94bd27212b7ae50d45c5881dc1ae409b2e240d4d71ff7fab771820842e2d61c7b5e5f41d61acc787a7755a62b4aa7afc4959367937f27936a37e597c3c8d9ebc5cad39a570e6c0220e3d06127870b3b3f0217769d05f9c38f0d779f9c6872769e2f568f83e8d3c4462cec621ce6d99889e9068de984c1c8598ae6a260c6fc78977cf5345c66c6aa8c83c0ee4efdcee9aedf5171d863de8ac741b87761d75b9f6baccf39a7af4c340b95b9b3c24ddf03dc25e60e0b17cfcf898209af397d85b40937eae2f32b8dc9bec2e2e1c61f8b2f2fecc2c81d70c53b8c5461de956110bcf12ebead90362f1be3caa0b2e262cc6f59f2d7ad5b62a41e07c138728632f12d0bd7c5162c30994c569242c94e26992c3bdd9ada18c69ecb112dd7f675721443bc8caf90eb738754dbd7032804555bd66d8a9244c8876975c8808eb2d3949b244488d8fc36d0223be79c69f66c6d919c79d9da5cc45abb6f92181173bef856dc04151d0a1a013f1745eb634f5b2be8748815624ffb09819ef67e3db987ca6a8e5fcf3b2aab1bf0eb9987ca2a137e31e0d7738eca88f0eb19476555037e3d07a1b108f8f57ca33120fc7a06426312f0eb5987c61ce097c6725aae9d61702ed03014eee70386e082b60b3a711ddb80c6c0db0e3a8387df09f80571dbcea8c1af5b3ad3436c88ba0404847840107edd69ac027e3d85c628e0d7a4f108edac107b0ef9517ed6c70ed13ec4abb810ffc28378175e819fc129f0307c021fc3797ccc77bccc692fe312f81a1e819ff1cac41be175036f01af39ef03037f0127e28ff0bac4e74491e255039f13c58b9f3804624c7f008ce380fbdd016fc371c0ed0ec4d3b03d3646c2d9f313028d915840cfcfe7ca48b90b0b019591aa4061f6ca4840176663a4207b5a921748b9cf8794fb7c48b9cfe7f3f97c3e1f52cf06667f1e80477100bce936fcfb7e779a7ff98c3f71199f5d14f3080303b3c54a8592e6bd985f80bff81f1ce615e02e3e013ec323c0fde9b6d1008f3d033cc6bbc3781fbc86124af8cc0ece021490a4a7a3c1cb96f9ec0d608012bf8067d57e7896029e95806721e0593a3e3c0b88f56c6ff65cc4dbdc8ec55d18cef2fc5499073d460b22ecd52d35f4f096beb45ce5313d5bfee24ff46cb57c8677ead20229ac55d2b3a5a267ab05fe166b60d9f9eeda025b9ec999cb45d1ca388223d826c9b03cb748148a41831bf148f870398d07bdc6d7b88d6fb100618262475c1a4641bba405ba70399d48da7c4da83c0e0ee36f788cc7e1b177b9ec73b8ccdfe0467c113ef3a0d368b98dd73ec3cfdcc5db38ccd7f88bbff198a7a1877fbfe28823fc75dda4c1bf26494f47032438dcc083c3cd977962aaf28874f32b2436b391eb8238e2ce29bf57a9d993d4bba8de45f52eaa87eaa1563d6a4f14ca4892e40c74a9c614dd7217ef82f1d9dce6a37c4562cf5ecfe6d8b3664f2a6a60cb02d1d1b141ec4d2452fdaef12f2447041161baedd5abd99327e7620618af1d75e940b942f2ac5a50558dff743b2b87b4b94b98c4fcf517cb46dac0f63559350dc4fc01fcc51bc061be00eee209e033fc005ce67970d9efe0b1d7c163fc89c3780178ad394aad1da0003c7cf61dfeb5d3e15fba5a3b80010a40800108e059404ec06aca277fb23f9044ce74ca552a19555a3b9bc8d9f5dffe7a9aef572e88306bcf85d913b9537717b6ab3f3e954756a01f20939d2bcaa652aedaac54094a95b2d9186dd4e960bceb66e673701a7f83d7781d6ee373f80c5fe32e9e068779d05ffc0d8ff9961ff14898de73f8eb86243d1d0d2cf049788faf353ebe9ae44ecd3f497ccd5d18ee078743c6eb69fe6d40f900788fa7353832f08ef3db85e570838e1c38a4523b5dce743a85422693c9646ab16c3f745840489b6faf7a361efb1b1c34de65e35b2efec68b9f794c291751849b60cbe53d7f9da06413168ba5e3e35937d7b9b01f367b7a8ed77ad42595d2f5426e7aef657aefc4f41e8a994def7da6f752b655cf7683869ad7bba790dc1cbf87d9b56cf99333ed4fde6095cfe1061c5ce675e4c071633e4a0e3a70b821078e1bf3cb8df22e1739d3ee226f708d8be798f2351ef3d75f3ce830afddc5dfb0f12dafe1f299bf0187cbfec6636f03e34f5ce5b307b62612f0107020bed630e02b6ea7de2ecc7afe81c0575dcdd993562baab1c3f3e0e0db78fe99b3fe86b79e06777d8d03f1b4a6c603de738ebb309af71f36de6d5e9b21ae82d87c9b556b62c5d8e265fef232333ce66bb88b5ff90b19def2317ce5679ce5630e2bed06b80b0c9d951b50b3e9dc70a6dfbcc6fb0fb7cd78af397193d1892d1e8be7e2651ec8e3e9b06a9765fba103c49e377b0631af49ce504ed2878242ce524e7e7b8bb73183c33c4d8d19322d966bd3cc60c3895b8d19322d962b85b4c99bc55bc8598bb7903778c35ca42de30ecf83cbefecf0c285eb6c4d0c8153521a26ebfb581f2b538f79cf79af3971d3b5e0356103499bbc61a6cab8a2071a6ff135fce5affbdb70989fc115f0407802be01ce80f7c15dc2196ff998af7c0c677999c35e862fe01fe03fbc035ecf830cddcd8919322d96cb793f3916469382645b4f416263b49431a48c61867ff56cfc6b57433743a6c57295329e558bfd60e9dc1c66fd000700d1001d6993772d63bc053973f116e40dde2ec8fdbfc383bf7ea70777f1f042a707ddc205e3badfd5612d415d94a02fd6639e95c3b2fdd0f941013a063c8ba7850b93551bb7cbeff8e0ff3b3d78ccfb8f77d085e93bbc0dace9c1f4db85bdfc8ba7c54b4f1637e8ffeaa12ed65f7e4ea26832994c26132a888d8767d52eec870e901b4c8befc3edfa9a53ab3f6c051243561d9d079170411ad1fbfedbae17af173856ef173be4f400839cb5982c1816c70ecd4e870bb30e83ccc19e30481beea6e13460c4c490b39d1dfcc578f2da5b7ccc5f5ee6fed7615ec6ff438ff919eee265f88b5f398c8fe1b09ff11d9ebafc4e0fe0cc4ac6cd09109c31593595dab64e4b419282a48719ff3a22e35f414edc64b11a34616b992cd36566f333633cabb67a56ce05c31d3e1623672f1759e3f778c3bcf0cf08a36ff1dfcf1541169048655996655902027b568d95d3f22c1beb870e7d71e17a96cd9ef67bc5603c8abf78d35dfce931cfc277781e1ce657f8cbab788b4f71f91d04f8eb7776f096dff1c117f0aefbe19d4701efbb04bcf720c05d3b384b0fbee283b7be07b861e64e0fcefa1ee0363d7f0f709ffef9d8984acd0834a6b284f34e40652a2150b1a9dc622a4e38efc7793fcefb71de8ff378d6c5f35f41af23af15ffe22da1527be152fe75e3a984c0766594aa3841ba75951bf9f2729eee2a55593a6f5b91d3523adb7c560e8beebf5297cf595ac02f839f0f5fcef4ca4f0fbf625935564dc7aae95835db0e2fb3df5b99efeb0665ecf0e02e1e4c56ce0c727662b26aacda8c4b8b0c16d8c962854a0a8a0c5346490a25e364922183b5c35e99341f5f7869acc9d358399e9d2bc1c2d92008b7570b76100696ed858215c8c00a436c2cfc21128636568d5513d2d383db142509928f03d87a8224a238aa59b72f7945a48d26c7ecbafc46fc812290acc147968115b9186691c845e44c081bbd452737390f2793079e6d7df41b2d8a9c92365a93a157d246889ae486e2a03b344507bdd65a6bad96d491daa58bd65a6bedbdf75e0cde30c639e7acb5febed02c6f40963708914826e9207953725289442289b039d9a5934c1bf1e66497e453fce91bbd45261dfdabf94674300c796aadb5de91777978d6e211bcf1eebd99bcc9f8ebd91663acc91b9c7b397fe4cdd5349ddb9634c1310765e8a1d1c5d0f891367c9f83fbfbdcb272809b74709334da0de9a3f973420bd9cefc837ff6d38ef0d93cb28e644f64c8ba9a831de820eb423b21e22ee413ea09fd849810eab9b210d085fdd85828c89e4ca0b19017423ddf1702bab250efc2826c4cb485bc40636228248a31a031a228364163a218124551d4b9321da228d224883232a2288aa2b84365278c7b09ca601e75b1ae23ee6a30722a627cdfee0c8af56b28874d16c63456cc1b977bedd047ebe06ca51a8b6c122e79876210cad1175019e8d633eeca405315a2c1be2a9ccac848978350eda1334ec09e7c8b09c2a6b546556585820d81b0b53c467090caa3fc952a199db0ca150b0b98abd5e2427f46e59b9cda99386ba230a94e2ea29e6ed4abf84847940b593b2bfc5b5959b122b52275f2759f2b2727b62445bebf522527ac950a65227a915680e8e8806109f6c3660b43a6f3e69cf0aec7e787883d792eac24955b916ab9fc7acb7581781756bb3f2a359b8e3d81bccb63dcfd41198dc8196ba57271655a2951fdcecacaca53e46cd55ab14e4e5627a9b23439f9fb7389dc2237c8c4c2bf120bf3f22eec9ea9142b559232efcfebc4bc403f25a994ebc4d2a8d39bbeda2bbe5a59b1f22a4995a44e582726af2b784a0be77452d8930a7bde1e9fdd856128ecc963cfebd2e272e5ee4feefee46a2ab0c73d3c178a223c552e777f7227272c48afd759e6745240914b95a460278f73ac974967e1bf8849b4591ef32c4c0a1610d6f1a48ad898cee9a4800265bae93df5b8e43114580a1eddca4495bb3f2b257f7fec79fde42fd02d728ddcde85dda00bbbbc1bc4822a49c14a52299692d4cb687af7fc7af53b2b5ef23ba7eab46262e2c2e4f54a95a472acbf44ec794f2a282cecfee0d84ab74a398c9c95a430eb699c983232269708ace47756fce4775638cbe39ceec27697b5d22613738785b8024bc152278b1ccee5721768458c0b1897c8054a99f7e7fec462b192142a7632c5621bef72b95c2e877de80f0e7da0581d5d107dd05cf06b356df407fa2d7f507e264d66830e8a6e53938820f8d9cf18e37cb5b5dff87d18fa3e10f410fcb249a98b493385a8496838360f996ded05b112aa2d63d08644f1f412768010e7acb5d60af82d6e711c4551941d33715db416679b31feba4710acf8de7bc17b6b8e5bdbd704af082b01ab60e83487f2b3d82b5452423ad4a598452d7e222886624814c571cccfda2269b2c591588ef94bb648124d60e8a221348561479139c031ff698b271125a6c492d1164dc83d6e31b4c513707f7a874f6b445344115344957185b8023b45d9b1a62e180331f0696fbdd6669b9164190d0bb34e83f6c474e8819ed6451c57f6c385d9206c0f3446c468fd92b31c72420eba256f74e84c803521ffa1da88a0b1da04356bf8350634c6ba11b6262cad2f9880a9a1348656a7b031ac2781c262f0d5276ceb655973b6b43105f62db7c6f5d8d72b0c579c0e798d0195ed504deea83ead7708da28e07a2b8d1b306034d05786511cbfa5fa42772beeef4f6519daa328636321a711fa917633e09269c622eda1befbbc32d2840183cc4508557ec3827e611766e2b031ecd66f0080ced034ec696574b6d609f105b4592f515efd819a9c81df97f3282a9123936357b5acdb18c9f1b93398733e4172961d1c45e4c8c54cce40922e774c2a13a9248dcad1939c28f148ce48939664a934f22bf2d0c8a422937c5a33527b86b4d3ce0da3cd9c030174c001a1c0a8344c58eb92d42945020000000000a315000018100a060463d1581ca8a2e43e1480117f9c54604e184964598ca3300819658831841803004004406666441592259a8b57f7a4033afe6bb10fcaa4236fb53bca081e2e5d77e53cee8575c86820c25429af2228dc690d81ea05b1d2768fa6383dbfc10e25b5d72f0b49ec9ba9874713b9e7893f9f0bcc7d4438f503e3fa27bac62e6b8aff042ccb0685232650b23a0361dc20befe7fd24eaf28b2a05798f1c732e6c93cb90a9664e955779b447bc68109879ca9ec7e6f558de88f2eb7b09ce44ac418ab78523b62bcaa198b655867774dd69068a12f87f00e53f0228965d84e1e22e3a51ebdeb405c00a75c9ddd5c26e997f22f53297e4e731551ffdbb73254051ad69e424b011e16e9c30938ca0c53d85d7ef8ef251b0c91ed4e76864c69e41843a5da8a6765b50d5855d984b8a75179fa58abf26e8930efb20b752f1d83fbe84edb71d7d34e29b82b5afc6538d5a1dfd887d4c7ce2bbf4b487cc30bcbb7a34e88a0b8d44f51e3426255f8a6cd22e5d8032f949557db04af9a3af5fc42be425e93621d25d9de46b587a5b306b58e99102cfcf4d8df49cf0e7ef0bd9ee23f004b0f2116fca07f0510d0c61284e238b16a58c81045394144687563d34cb6f65e33362e6c6d6e76e43f07a4d2ee26d006cde6f5015b16b14f552bcf2934a98a78a98242bb520e260c0c2396f7d1e886d1e052605fbde5b0c0e434a970ef04af8eee0ec820d12ae11fc4c0a78395ca5ffce85c2b1750bee50cfad7759e0909caf90af239f4d016501986010a6313406e84fe0f0f57ff889837e23d7afecee3e3cb452b037ce7bb8d527e7c61749242468f0dcbb234a0323ae24df2d01ef3ee46a0db3ae7286e62ba5001588ce6d6fd380a0ece1dde5f62360aaf5591ab9ed457376fc70766d080736a590a8eca06a595836100bdc2883772e9544f2139fce52e5801c1c08677f32258dda896d1cda21eaa515695f2f653f53db0f32e17a7948055170e80dbe394540460882ff5c02fbd0314e2348714f432e3320ad0094823e7fa434f72a3d6f3aab449aace6e2a82ff1510a3139b47d5ddf029450098528c77749330cc1d08c946368a1024590cbb65b47c3e7f4f66754072e2c940b4b3a5b757fb39f331677e733c1d12a43e3a763e3547c49363cca3e795f2e72fe74381ee091643e10c9c82fd87b0b7235598de4c2ca54ca0ddc7f46e8e12f0a7f63609692140e4645f689454f02664f880791b4df1aa8ff590dbf17c0ecb6480bbfe069efd8e42c47b6af6270aa28241cef74480430ea5ed9531878bd9903a32e56ac1aff42030149439864402ad15564e5b44dfbd094c3bb5e1d3c5d2f5740e0b20fb232e1ebba2d576b7701da938014e2e9f80215ee77aa82f5e5137c6cdc2c00c5d222f82e1265a797eefd9bb716fef851259d4b6ef1a8bdae438d1f8c1aead1c3338bd0872b288b00b27ff9150638a90060814345a4c67a8a646fe65499208c9a887a66fedf36d20e3389b1fa8dcec29a81da2f7ee99722b338501be1bff60848bac82c82cb4850c798440ee0e43488f47fa2ffe0cb8ec9198213c1e41b01ea7cc4143fa9888b3580010ce993940a7044dfc2faa2ca4f27f69aa01016b44bc1e7a2a003b59c414600b229bb05321a4c2b27cfba7f0836b1e850327be1ea46dc3082db145d21b688a6ac0c4edcbeb4b9260f467a58b34f58f7c7186804ea66ca568aa8f7afe90008584e61effab25879eeb18aec23ca973c5907dbf013cbe4574abc1ef82dc83a476733b8f7f1928bc2958817d71ebcd876bd7b050bf464f15ca3cc893afbc89af16c8134f30252b7aae0dda6082d333a3adf7defe8cdb27252853e2de845f93d26e294921f8a57b83ead99450bb55f02c90891020615e0b33c4a26f203b3b4fbe8e2fa84c08c93aa8dffe94427676ad5f968dc89e5e8b63ba0b8f148251d2d1aefdaa9e6c8a9d3feac9ed1e0c7ec3720cf38975126c48bed1a663a5566ced3b7fb47ba66af6c6b40aec3b25737543426badfbb199deff82217c700ba2e6371085f9767ef5fba50b2e552743f0cd058036c7f1804d06ff446b086ff067e4287cf28463d1b79f639442fa0eee1196beef3d7dadd2a7d4f733677f2b1099ddcf1cbd2b5311db5bd24a9ec6eb1b0b203bec1258925d5340b26191d0866e92b0373438ef9d62e98c8545dcbe08de0dd0788fd1d31ddb05d4db0603e741add328c6f161e6c12e60ed1492b390122ff6bf85154905221ac21b9bf2d3314f73de603160010d0d39ce297608a8c1196ef64943394b7e7817437ce37713f81c212aa19b2b4462faafe1d49669d88e26293e418f1c5aea65eedb640fd25894a8a28a00b5821289fecfaacda5129203265a14a2020080670a87f884ed410789a481442f5a500b0ee1787a9bc82737b95883d514548098741c5c673bf6e0ea381c00f2a930d19348d2145235b7bcbaefe0701b0d52587198280953d594068dba4f7ef41f9142b5911b6bf113fea89ce4c73a74398872572454f17d1c60ca9eed74c237dd1da24a6ae03c2b57193d2be80756af08cc2034c6fa6b07f08123aade67b9cf833737b7fd3a3418b919ae8404a769edabb7b56a99b162c68e662349d97ff2616eff137f5c1da270fd4483b9305163225b0efabbef41ff717950e10fd02caae83a3a51dcafe9d8781821391baceabc32fd02045c833a9e053f21121bc31ab8b780962b0b32a5bac0a6040369e8a20039e62489d0bc591348b417d92140f220405788d60150493c6f840546d8d869041b7ec312e543a63e4cd39c8b41f30abfeeace65beebdfcd9d5ad43086719b57a9757659a149af79171cc4afac65dfd3b3e0a462fb7f60c04d950fc5a03558929267821243d6b48aa2dd3453231a049e7fefd717559c89b817a0cc58f90f5d4433e6e0fe66ca6e1c696f147d4901737882b1697a8c1008e7fb0060103e97b699143d4ab05ed64f367563f92577d6f51fd3ed7d467037d3ff1d3846dfa6f82e12067fd7b50d2555f93eebde7dc9bc2198f82a87f418d618f1b8fe01475f7ec470e2203d447d41f1784b8f4a27ecaa9d47ff23858db2f4ad108a6a95ccfddd44f1e4e5d2702925e1f4288ee898b5f2508eadfffa0703d76f0610b336ce052874b784c4358f0e3df7f0d4ba20f68400722495a949adedcdf75092640dc1000904bb309fe6839d3b7183e148f1c2dd8ce5f2dce0c927f60eedba21fae92432d763b12d757d89286e39307d1a3178086e887437566df9a1cce35bc5f0f05a7b2853e8700c1ff032a01f992ad9d737021d3c0bceea178b0a40003d9ef94a2c76c5eefa1caa4657ab4ac33d6aaddeb704a4fde5b1a439dab374c8f856f5168afe2471f6bf4340a9e85fb40c07e1a1db6cb372bfdc06c64d736a49f4e09aebe94f75ed26fac66f3e5b36a39190ddc4d1eef74efe5f62fda9ac528ec56aeedc3f3c4c95341736c9f8a095399b775fa6161fced97cc5a7dace50ad14a417fc7159ed0a15be3498fb22eb68c5407f838281b492110c516cfbce32f74bab36e65819e68fd4914ebb3cd217f414de11d0aff809f8343c684f6447a7a30061201f38f260781cd3f7526245dbf6902311134ca701d307385fb7c890c90345360f89e8ac9c7c02eee8c133616207d0fad0b1c107fa1d63313a17508c1d5a40f776f6a3b58975356930fda99639cb172946c513b651d058af7d496ced03c8191c32fc133deb693967fb5bdb23b007733402e4b115b6ed94ca62edc4160e16912cb0112eb583df86fa247335467e3a942470905ce0cb5bdc14c5078349a499cf44dd8c8592255c0144679cc69ef910d6aee5b34cd65aa0c67e6adcb342b24f9d4e3af34569b264c9e83d0c632dbf6590860a5369767064a80eeb15d057420289691aad427c637350ff81636982495993fd0f1a45a4497174e9e4b65226929cbf652adf0be7d5f0f6570667844031e3e001353430edea862007e24c082c898f4d1e7473287863e46415aef8a668cdbe2b13f2c113a83434b2ddb27cc647c31eb4beee4990b4ac8e43a4077d16e05a0e00a03511c41bc858235c64a23826a0d1e150b4dd7cc50be02045e3692e1a96b9a9538747023998424c6ee5c6f30d8d85e936d42a6a4e8d79e06fdb79991c804ddb6326b3de4bff77cefe816cc51269eb80920259e12012f07e12cb95be187dda98224fc13387d8caad8fd90c998c3f877e9e2940f08c80fe86fe60cb06967d6cefe32a399f0cd9dfdc83c46e595852e3b38d341a9bed51e12ddcf32e09c0289827d373e900a07eaa8d782bb3a0327624d44756ca80b64e5af810b91b427bf71cca900f6c7a190fbbb004659e3da025d6e4a6e29a47ed369d5ca5b87d169a734269f64ddf6436a4677f735bbc8aad728fb319dc658b62782aa84c1edb53255bad96103471963994664b23ec3abf79548696f7f38b0709f4251535bf93986d613c6f06da760bb185d018200d5880791fd0d98d0c5bc88677175d3eda0fa4733c001ae2ee672fc13b15e3cf1a8d284cd3fe3102e5284dfd67b4aca37fa31b2f5cd028169e57226a3003025d3248f36df8699c9627fdb50835d68a7a428e95a65319c637dd34602bdd9c6015731e614058851fa9249ef3425bcbc03e872db118534355ca9558c02e800500307d7fb3217d86d94ebb207bf567e7b8d49fe40297905df3c090f6b62c2f1ad2d3eda6fdcde6f603fd065609218d9cdf6f9c1fc3556f5485c7cd64c802ac63ac043f1152394566a195faad3af8639087a7d5bede18a3ff2229f3792467cb9ca11490e40ae5b9830432cc0a3a340b95a29549df703e2ce351605e0b43078d13f207892b37fef4f5f8ccdf725a35d9608b1cd001c16efdbb1c81e4573177a9b1b3544f14b2c9878f9486911507e8c1ae6c46955e97a804afb2faf6499d9ec37e83cf0ebbf84211926897426454923391cbc504912b61b05eaf48a0b8eda27ec04f42e66a6f61f740c77e7f745f2184b00ce12e6106a0d1ffe62085af08530343723ce4bb333624ef04611a81f9d6c3327f6a4d508737823efb3fd822efa144a84384e00554980e1664afb7ac98a2cf2b279d75a5215fdf5fcd19036e50b4be61c4f0805b4515ff697e62ea04ec79064238dbbd2fb671d2442bc951b6748a78be6250d42dd42d77f19e5b5dd8cfb53ee0d7e1007e87a4aab7f6310d6f32e947ba51f02016177c9e913dd70cd4deea4828d88ab32b2aaa026cc991bed0b9c419651fe52e4d03a04edb04bef2bc04df1c6de2e15f55375cd2c48f050f324e88b78dde475b1d11834474b4b4e129c0845716307b037b0d0636647fe71ac96c02d6e04d73d2310f2658d7b1718c2ebd0a70f29e13d319715a71a10b12f4648c9ca1603353cba5e3e93927356b58f4a9090984d91763aea24d04902beac2702473ee5b96077e50adc5331717a48261e5814b57a5a4f0b46d914e15d46589e2800964cc71f3f37c1e071ca2ff4b8d74c8865dd2bf78d4730c8a6f48fb0ce7e523642e6178c254c3682b460df2846a7c7151d758d34a36c3731cb115cd9ba064d4b57838db09303c1ac02490ef60272f4ba309db5079729c13f04e00fc296ccd179cb90c8d93d12c6c62881ac18775614738d8d453e45d3946c1c0d7e8a39c4368fa59318d04248ef3da64e748b3f4a161d34f3bca6f57a6eacab7f8b35717e993452c822799e6ebe86f263328a6282e91b086ea084aeda8dbbcd8f6cbaa8c5c1bcb0a566805f9b0b1ce15de50a19cd0f27968317b3f51fba2b0a9ee94339bbd8e75d7ae097f8160272813207723b0a3a4fa4fee659422a74544138a6ecbf6b249028fa690ea8bf65bafb224eed0b1bf1c1d4997fb5d3b3b677f1098ff540fcfd7626f54de5b90adf1043cd5ed0a8f079755714705c365a0d317eca753c187e98095a4714d34554c3e729faf882e2fbc223ccad637d7dce1d407f0b0806cd6384d3d4b436ccf20d6c44d90230592e408db9cebe20a5db935ee0294791c70c43b56b550833caf5dd37386acbe2b5e07dec36cd6516982642a564cdef6f7888587def5b3a3c37ff09460e12d741c28223b79756832f546e6456ab32b9bb051feee9ed87e8545d2687baacab54661745250916087bb890421241442e6a94a0923561525690bb2818a412e940ae9afa0514794ee6fbba3a22a92854311804b45b623f2d48e1e6ef8ede9c4c72a0faf1c0b1d9ebbd29936e8202f5b63a17bec2c5590390ddd92c734abf90417ec75eb02e2e0d59b3c69dd65c732d245e84673b9c9ee8a84573c61134009e4f662c38fd6aecd97e1549f74573a2c86e1bb00900f5ef3456dc52fdda49c052c151ab889c220a0d615e7a44bdb64c00b149a16d35e0d02149bf885a9dc9e6ac1974811af456e24c1a6ad4c7e8380a7677b6319e1adc54a88c332f30d59382157501db71bfdd0e62fc582d93d066448172a68ee112ff58a76090ae8938fbe4dc633b2efe20f6d2fd6ea769fb785ca077b12b766cdfbce02d1993cc3293b27a411d2094197be1d2c579fddb8cfe2e8d126009ab67f3d80213ae13f172e009a1c7749eb91f24b327d1ee371910fd5f86b266d93e70c10ac578c61496f9d287900a2995ce3f311f293e30e6e14346d4a80ecc30714aa32f24e3d73fcdfa4378507dfc627d067e353652cb29ae1fdc7dbf259e8d759bdccdd4752ec884339055e2387a9a1d4e54b21a5359c1b94b687ec29f1758987bf3b2e7135f17326a07fdc28f9897a12aa69ea28f90124108d8f32f809aa92007a27439b649ef1cca04d8e2ef9fd962d236145d5ffae7c9bb3cbf39405d02ecd4fa088c3029ab7849278d1d1470353edd0a8bacb1b6792e5f9bec67db582bd9a55ecf9dbc0e92718f208875290326896ce9da9225599d1f741ee0a7c2c2f2315fca924993f2437285a0cdf03d385d30197c85e6a47963b165e428667658b6112d60fef5f572af9f058486ee05b5c2c2e9408a522a38d556d7c2c23e08f81c883cd58c7f0b32d1a28a7fe0659d5f6fafef3959f8b60c9447d6a3df9748827e3df56c9e3627a9026ce110c858dbb4640056a016afec433d96608e0fc3de06413152f8f58cfc7aec07617984e5da647591e4d4efe4a13a98ceb8af5bfb8ca8a844ed36e4e5f545aaa48c77efc45c11544b4966f42414617110026184c2c88dc3290ecca29f3da15271ac60df0129447f1c46671e04bf63744f6c46ddd69064fcbf40ec56502bafd85ca9c6e248e113e2d6c8bd0439f295be0cdf6e54a611b38aa99dc4ec55171dd92b525145a28c3b81f273ca24f1faa59bd1f2b2e4eee35f58a99fcc982762cd39984f56dc64a867061f864b1ced5510e010c34e5a4baaf69c769e14398922653ab79338ab79b6c55e29911e3b2100f10968ad82b851060d8996b44d57ac457b8ec48521fdbb32cc48787f9e5a4a15130773f90eb32e0a016dc30c573d6294f090edce0ef62aaaf2e10205f0f0788bdafba59596a4abfbd589e74471af987103a03a860c8dcc6ebe2f80c154d35faf56eab0bfa3aa7ef658ea54d3be4d2deac2da559f2917989f6a21be3061a32208c90a84bf5e5ddb121c25ac31f296b682bd52cb3b8da51fdbb1aac1a08e40bb8e22dfbdd7abdd213773cfd432d77d26663b145f31d3cfc5ff9f063b9e755921214c44da4da48e640290d882c32bed62ac19187e031a24f362cf6b7f709225fe13c5cbe6464ff0faa08c105188611d8c1687f7a3eeaf3f5295fc1458e5ef0f5c626f49702892813b8fdafd341ecff8649476e455178a247b45b2ec6047081f44e9476235a623579484350eb607f70a94501802062bcf1e8680d4ec99e525217bc5bc99993be60669e16b4cf1fe727d53de20d13ee4a5acc0700ecf4fc128b0b419ceb08a63195da7f0c138449f736ade706b7432ed2284d70cd6195ed1fff9723d0cf615247b029217d40eb4b752285b16778216d4c0dbbe7ee502b10211dbcfbb6aefd13e73adc5d1eaaff28000d22eaf1e4a7dc88c58aad9c51a6d8f0196264391074490d34dfd818ee6dbe9973a5c35d50a36f6eb686d49517ab6b0fb4b62e5003038a50835df422c60341de4429adc24a9302b9463bfb0ba3654f983d020aad14882eb1e0564a2fcc4f5ad934d19fdfc660b3a3765c003ea14290c9872e7521c2b708814038714d5ecee5209bc18ecfe931f64ed66e55bc848f69c2f8398a3e687ebcd95aa0b648c2588c79656661f6e0ac0dfdafb177e00d4a380a30dd765b6d8d4ad041d441cf78c0bd34b0d1a34933db88a7236ebe05848144c7406be1ef695cd3029841402e2f121c0e26e4760bb8b048a52f2c88ab340ce926a7c1ad76b87e62cab0625beca5f319394e9a82c5928ba655444ce547b72370e68e280b94ceb017307929ca49f61dff55755ba5b4160e72e222b077a3486560e805c5309af8b923160bed33d081e83cd566ed99f4226527c21bc40ee199d3fc4bbf0cdd61062ff6f3182ed63069f45e43817584162234bd9440e9f40b593bb48b62718554cadf14c4984ca3fb614d13110ed577854bde69e541b3e627d5e8e426375521acdea8b132d566458fcdb20564f4e44c52283f8efcfec6db34d02585c1dd31385d516f0f1aae38b7d34f8e109643001f020f2e1d85957941f5974d59ed3a4477924286cb84c5ff4215a883cb9745bdf4608f36f0280ed5e276648704218460c09c514ea83db780480740054a508013d03339d0cb47ab416882eeebd05f34c7d5cc105f99323731d495b1d1a7209c11aea5c515c8726cbb3b9950407cea7f6b5df3c448f65de4ac4a7cfcea0278346890e098afd93aabc072e2963d4d0701613a4581d37253112cb10c865aeeb489b94114613336c48c4a8021d5656d2d01236789b1fbb8280612996360aeb444c6850d46e5b41d9cd2978e85401eca92bb0ba55767653751426bfad2be930a2033ee8390ac59061a4dd5d940fcf0d984c474344e820031ead02a0c41172c9dd4a70a5ff8e904400ed4ed01780bfcabdb790ba840d75936b4d77547fa2caebb3f0e80b499da43066280caba1e7193a87074d7592a589d87d211796f65ecfc7ae5e574c456e0adcd176443597b817d61eef9164fd611241d01ef5be5b0a2f58a98c328ae1cf439f81f1d15aadada12e55bcc1a966160b0fece66843d02b9524cd3592b4b2ddebbf663b64dc87969f679673e5c37e5355088e8a4c85d83d12ecad6c6a5b2e8d760c7e8544485df5c1738e481fa24f7c4505836bece4ca3ad31422bbc48e32a8df5b20737a508e8c7db5401ff4f90c13ff70fe11831ae42af842f14c6a7fc61fec5342941665787dc95ab215e4aaa48187e036c5c452002a61cb46f3b01d123984e01f52e091218f87804d201bea784d6f096cae611a864c69e0d0701a09ca856d5376c2733d108b3d2dc07befcd753818a8803a2bd935189bb3fcd871a08326867cf50b9332ad8fd8aa9c09c5d287f239b1453f04f39e84665c7019800ad90fa230c8deabf4377e1fc52f53509f141fdb60737f7c2e0929c53e31d7632832a0e67580124fa55773c26a71b13f478cbc1db8e0b56e9056ec632968078d2446c4834010778e69023064b5b373f70d659e85b11dc8cf45b9ae8f4510c55a6505d64d1b6b99b023a5bfc43e1ff0392dfc0ebdba1cdff2401a4617e2184cd154622732469f694e478aab225f3494ff35444c797819f737ba66f56f6b4ce80b520b4f259dede501b8fbae030160ae5c04936f26a834a7e240a4dcd736d00e0fd8dd12fd2ec3e72f00055e4a5539471c651c400e3f454858d0948f293f01ff52a85d695bbf502ca43d16d65e0e328b60491a14f7aa93c4325a5fcabd3cfe4dff2d6cdfb9c0f72552680186b021ab11c3c5e865c4f35840a18e7c38fdc0aaa642ac53750b20c4fc500645bb37faf12d9d9d25f2825c46393636934af63be8d3e2ed8aec272774bf9c72a1e45b69c1409f4ce537317aaa52d9fe535b69d0e00fa7193401699842a453ca243b2a3ce25706a0acb219d5039c4e861841f322d98976b60b96a6f69c40bcf615f797bf6b7c5a51c368463bdf4e02b5b3b4b26ce324bdd51710013ce0d59d3d96f41e0e20f12633ca9390f90bcbf2b8cd17b093dace0efe00fef4961decfb22d3220ef95f530f2934ddf3200beee576798f1a250e66097b7f320194a27f3846384604c2de92c93469f1603c2823f61ac456ee0d5af0978b9be6a76316c2f1fe3227d4236cf6cf9ae5f37159afc503d108e301277b9aa127f0a07cd3043cf2d0a7e8417fb2ac5c4f2aaebefd8f76003671199be0d499799f3b36b0759e99629f9b624d9d404c7a9b272c9b902898b1dbdccd1cbee03ecbcfcc741ecf1008c23838a197e5e22c907930d72eed60bfac215b31f79439bd841623eaf6090ca9da70137359f0fec0b679ce58748bc5b5927ab725dc5ef38ecdec890dbe322877e959754897263e9a1a392ef52e1085096ce3c8f85d1c276a229d5e78016c1004d0507423f8a3133c0a73b987ce86bbb16f58cb37773a9f4a3142816dc28f961c0cfec5bf6f73e243c69d51ef71d82e2f9f3380bf9264b7b03ecc4eb04746804ab7c815aa99b1d0f569da11b97922844dd6939643e4997509aea8c4ce89ee4016d568145e7587a82fb41f04b2588ebc4453dcf529ac9702f845f8c15c3904775f00588d9181204bc51136c90e890061781024c1356600cb823b7bf1f8b93e0cc36f7823e9bcdb3e4664677c786ce6a6d19c88d9418b9ffb0c39a7b205a3c230b05aa486f38480a39744c6c9726821e6c97e1a245cdb8c9ac93a0408af65dbd32d6906ce484200e41ac57d069a7e26efe12385107a5acabf7e2330f819881b790f91844761ca829d3f323e38bb336f1a31d248f706ab9972d315530abab6e1f2bb9ff9fb494a15d9b06c2d4d60cecccf47727e8cf8d15e7922c9e900a9a6a5c3f94e6cd9893f01476cb3c3c843d01860955a345f7d7a2dfaea4b5455a2021edebea1b411392348e3a095e828e83dd6ceca9d46a412d04029c7a488fd2770dd3a13b5829453b4a87ed17144cd2b3d74580124c58d6fcde10a2b3cae25de0dd4583710ab83171d4da016424ef15b84e798329d519001c17ce1e278b5c293920776da84d91bd8a9c9839278c726cc0c3c9b9bc95cfd2838af164e0e94b426be6069df64ea08eb391cfd408bb39d07500109485adc4cf30d98d063c8839f3bc96fff6870cacb310407880654c45906c3694be995af5cb44f0c21cf3c14c3989f45be7c4b96f8fe38edac77e51795a37858add04f47aa992a33a371b83047b6a07a34cdce8388630e3971bf8b17ad4eae6e45c2d6d595887436281755de38389f4e1d471cf9881f6a96edbf5ed0894f6d1e032d097eb799fb4b2f84fdaacb17f17b0ec8e23598cde2b9071f74848a3d2e0a1da1de8aac5872c7441156e9e0f35904632d873583de6a5245d50cb5c9f8d1de64fa6e5eddab829e4a815c36a839248526eb8569d11aa62e001d2b67e87ee96043845e13eea1245c351c116b40932f9a8ce39dcb78fbf17d25e601b9ee2784973553a336970161413f6881268424474c7a7fa620e18804b76753528c08062d6e15f1212eb09ca9a28cd2d030655c6cd75605de3dc299e5c8613d89fa491c4fd3b8b62ba846981b6e90bfe01919426177d3eb9949bd8ebd32ae00a20580e0a19dfd1b74440a2c66689157962455913302063ce3bac72f3a7a4cfc259c4c6184a5eba617ddd5e5bda999cc45ecf935c1059735239bf1d802b0ab89657d0c15088a0448a16466741663d99d06d234be1db32a55a3d3d9f62704563462d6f7eb6ba16215d8fe6610e7d7ff6c6fb4706a52ac1c5e648871e7e0ac9adac6e6a8e5e1f7075e71c4f52abd18a8c80593d710eea2c3be6721562fe5a132cc1bb1a54d0fcf95545536723b57f471806aed5055139b487d8c70e23ba473e78f4d448e866e0738005be36bd553c46ab2bdc414ea42cf8021a77c2655db3e17953cb98aa01999e6eedde5f4746e25396940c5a5269fddb32547455b3d6c81abb81c839435647b76c20ed13f5e13a4ab398c0bb5ad06b56282924448d2d2f5b04cb6c53be01f4ae0a7725039a45d781e89993d379045e539354d1f90739f256b5bca3d53a5dd75992e5d1e4c5b8246f85b3e733e55eee13c0470c2033a2230dabda8a2128858462b1492b3ad97278945508e5ec1385192d0a114790915183af10f99528664fdf13bdf3a62178613802a5e1204fb05e2b4a3c25a65ebb1bf1b4ec729f6e9e72e8d57c8ab5475be3bc391d478fbc1fe70f0ff030bf5d01976239399c1134d035834cb86c121b24e0df4bb86d59ef35725ec499563ace7d7e8403d73f57c0b4a0fefd1057a5c0a089da7a4803dd1d7bcf1b85c6101e9a94268a14fb69cd63a8bd69c68a91e697e616bb5cb5af0dc263fba5a58ae0c0d46921f662a5d7e2094eaf2818b65990e70f0ede1be7fcb7ffee2d103ce2dec891e29bfc3c6f52900f56299b7b1dcc86689a13e58e8861f3a697cef515b753b113b28769ab7d3110bc3ea62a5791394990667ae1d68698d2d6359329cb009dfe34546075765a118c303c462dc0a4c88e98f1b547bbf518de18c629e4edfd530f90d8dc1dfaa19007c3690c08d2d2278b2dae0a0b1d67deb0e79d3f0a730d5f98cd9530be98d9b62db87d42f704b33972554ba6cc6fe018cc0801fd1d8a8dca2d826dbe30676731f6e973151472963ffd4526fe50d926a6ad16f14b100d80d0ce5ec99e1a35fd9c34b8d7f767f3d2d2db679fe81cee2c98a51bf538fd8d8ce24e26f9dd5c528e9ccc8997fd6fe038a0339d2b9d495b839f297f6a233008a5488264d32498a1d714a01d6d65795a4efff482b3cef05dafe38e167f4105306837036552f9eaf61805aa6d0a61d7b722ba6400cb601d3ee6dc00ca57db1856b876391fcc8fc2ebc6df9a210af6a4ec1bd24dde981410324cb3d78b18f60f92a200d5e1ad1f7f48fa54578d3b2f8b0c8d8993dd46d35df94cebf9130c65c9a09aba7c4df29dfe62953d32c846c4085bc8237bba53846d557c058c5842755e57d1128a31043a2faf1288cd2087cbd28fb20a2ba0b6e33a135373626f663e5db53ab2dfde88e17fcac3fa7f091637e73c89f42d5b67748fbb598296190768bc35052097b92791a50dcd3085d356d6da0caf01df1258439dc6c9e78b66616c9624e8151e4d9244c77e2dd14064adf6a6b3853dae13be728749e82918279e3390a9d07b6bc3324355fd2be368e459efc0004680ef5f0c80596c8f19624977e404fed426535ace2b12cd495ca0deeb8a9abe7849a113ff0cc4186f89a3dc27739676567a2437fe6f4bf6a1a478f7f1bf0a89d19373c6c79f05af32135a9477b30f74b0a0114c2ca239f891ca34a00e5b71b5237ee505b80b6bb457b8673d3f1127249d4fe619fce582a628ed321894a2aeb9b05c1f884ae740fa76193dec2bba083d1a848675810034957ed0dfdb95b3f9250888c0038048a6248054e215a1c4257c00dd2228a20a6b785d70a6c675bb981ed86e1d1243d9da06d2bd6480126e76bf3a53553095b9f821805a502f44e5d181462fa6d41ddb383b011d9d75b70122440a6a948c13ad257fd0eafe3c2e4bb85954f85745b189373014cc6dc5d8d138596e3cebc414ed558fe3544c8967fecc91a7308e24771e8735ca0dd11da0c5134de1e274c72658da0082624a70996ea4758f67750c2889abf0fd8428bf53d5b76a88a7b3674fdbcbcf80ccd930ab530c988bbb79ee0639f9ca1636897db83dfa124b78e2970572527692184b7429bc549d38f9f9c8d08e5614941c7763ea4538af031a1186d1b20b4befa56ba13e9f6150a8c38b7a4429ec764323a004d8b3074c290f8bf7634ea90b8f3d6faee06ae0667110c1b60def7d063d94107b80927e8aeeab650f5f80f9473cda63d11fc49ab2955c25b0e6958f7f2280c707c312d163ec6907eb7beffe3617ed87f397350bd3ce287d57d260c5dd88e64837e6576c45cedf95215429459638b989b4a259d2851de6783dded7b5b20d1fa87918a8a210831ae96a94355d539f0b0f14f2e77631e3b31da05e4bf4b93a393676ee8930fdb579a42062f8425878dbeec3b760395969e5516ec29fbf083308e604e3b21fbe8721722aa60e1a4b67510793ebb942731549e45e377e64aca6383758e97a4324bd32ce43fc1e121ee5bbb4421fb5452f7c9bc7357d5720a70fa84b5f9ca5026fc1f5d742d83abb85e28e283585ed6843c1f8a8ee1073a53b1d7ccf8660fbe0373a6fbd76a79a68ab2b05a847b27332520b20d830860452ab9d2f103cc098f48568366517b9e122553ed727f4a270ca27bce2ea3cb022629dc97f32f4697f9b90236ac73d1e10bf30977999e81407362f4eb3139832b3ab3f7db8fd95c6d240501e74445d0e79231c4365dffacc83bec1c02aabe5b1325c1696649253cefb606857b6c2b116b66e11686ea1ecd9726e845880c474d0bb56cd7429936218013acd1436e281ed753ba036449ce56d42d3636999d7c768dff04d81158dda7d2e33d2052ebe4db34fd6da78e96684f3823c8932be1569642a183d848abf348d8991b91037b27b13b4de1825e05cffb7f16ebe7149ec4622fa023445e1a3f4cbceb64fb20124afdb2f0cb9c472a3e7bf10d8f1d78520ceeba065497cca503cd009ae428cb931fe3f2c08632ea0bcecafc5a0ed9b92d71c89f3529604c3c1db2e553a911e9706b694b42b819d450409052a430f59f99552271d520c127afe3337a595b4907836736c88b8dc54fa717d69a16fd9088a5c219bfa23c0dcddc6369e876e05113c17cb9b50185dcc252d04fe3878cadff469236e1b96c0ceb0f9884673d63d7e36c20d5a130f885bfed547d38c6f6ad5242c973745edf1360372526be264d744a2c3376b0730fd0a83fd17ccc81e7844a16931b5d4c53029242eaed1454d2516670a12b823fa64bc2c485cfc661620cee6a98353206c32c064194c54e7b894150aaeab0eb5cbf7d8ba5f453f4f79aee744431d3e535ec00de73c54fe2bb25941a07799f0e4df5c74f9af5420eabbeb0a3134eeb36c43fbc3c1754004364f69e7e18d6c567565d3c636ea007061384ebbd7b2eafc08a67c94a79b04f819ab71870630286efd419a40ddae4649fae0a284d370ea1ef6b074b8b4d8b604131db61105689ecc13c3d0ba8dfe5d0b6f9ac90493dfdcde5bcd0329c59ee9a5df2c23db3561f2cb2fdb5d22dc17316008ba2e42faaf523de74596a9f06c1a846cdf8aa4253c133faacfd91551dcc1e041cc5506a71c6070efcd6383fb7d91d490957ce7077ffcd50a0154aa18a4c341418846978dc9ca46e74e10eaee65007671910c2048999d5771892324aa520f6818cf4fc573fe49ff1d239dafb7c58befb0bfb1e1c1c10e046e3edf746124cd7beaf728bca49a79f0df52c4f6977699591188c785245191c7bbb27e31f5d5593ff02e36a6af29eebc0bb61608ac3e6aafdd1a88d406b45791972cd132cddb150d05b66759318316928a4a0cb3965e43ef8e2f9273c9db5cdc9876764bacd414d7c469ade4c544b47427600806c5e703b0018c03e9605f19d7b817f0b224c5fe3354455d72dce0d4874e6c4b7784dfcb9e2068659cd9ac289803feb98f0aa70455845dea05404c3b2a7aeaaf9cf62fc2111892fa67d4bb5d96b1fe4f03659804d6334e41b09dfcfe26a3c6fc89144be28a62d3e763c93c9cffccf6d0df45cbe529b0ab1101b041bf7720924886b4a754d911182497cd4ea7b32ece314381ed75b8cddce133044b269fe05e0ccf559900f0dd74c5864d8abfc2d26928ba793dc68575edfc4bf31d2bd5f771dbe5cc2be81ceb52adb66f9c4a58f3f190d55fc9460f7ffb21580cdd0e5d321e8eefd47c590a41e0e89e756306edfcaa46e7b008865e04e75fd1a0024498c599ea532169bb5c2e5718bf1a4c7ac521073b68f8ad4cf492a728e6fd78d4c637eb6cb429338fedcc616a8489a79c4ef8ba6fa8c6bb03f1197a2c715c1e4b653b7eb03cfa8483f1f3c1fa8dad2bd16408f1b2386367e57539afbbf073f68edcb31e8f6bc85a9e931eb1eba0c8e8f90a52c28b1ea753105155e281e1193513b30b5e3e22a9bd4960331f1752821e6c1458e2f70bd419b6560ec4457497d44345addab262ebd647dd2315a9143ba90bb57148fbcf0b10792a0c667161af9355b272fc9d8281895dc2498980b568e8d684fce78570422362b63786c58d2c86464e072261d47d21864bbd4e3abc014a3da071e20e9aecfed33ed168ddfeed35fef2a4393b4a78866bd3d01cb7289a86cb6c903479316497059694d4af8d25991ec975cc50d0da5fc190dba0f87e730c200ed79ac8a02824104bed8112ac4e59618b7500744895021d5db6a7de89d71e190e53de52195debb1b98376dd335573cb7c88419a35e99798843ad3b02db59a4b0179f776324bed7a3db63937a1e30d4503b342bdb9c670dac68c7089faf3a1dbf0263bba57fb7ff94f4a91da3ef7b98525a24ae16a54584ca5e24deecbe26a8ceb6ed0723e13fa23f1692b3b2e0d01d57bd1a977816ba9cea5efa3ee1a885ffc151be693dbc426e727a1d6475c174c84044fda5a61c077bab63920a85840aafc391d5d38dfe90ce5da86aca8fa6d15247af77a0ae5525d4d4eba450356a515648ac1ceed2095c8161220f14a514ab09895696e47549aca8eadd356897dda0ff0a85aeea4d3e20ba8e2879a35103dd7eb73c987147489af0927a35a3fa702b5db06de9283a493176dcf1a5b000479781c633d4cf8da3ebc81fc1e9aaf0bab132e81dfcb10aebc128d03fe2b2b0e08a2540affafa5117dbd490cf466c93a517a5f26b12db4770a786ab138a7a5f6f3570a063f9ec7760de6eab8d9f1acc67bc89bbac79fd1ae8acd5cc3f03e91db61f43b52f107ed8d55eec2db8c1f73e3eb7f8bbc7df3d3ec786c5cf9b8b6f862e3ace2dbbc1f73e7ef7f1bbc5c7b1b3f8f3e6e70dc7451f6c0b37f8bfc7df3d3ec786c5cf9bf36eee0b8da4fa6ef0bd8fdfb167f1f3a6d40de84247abbe1d7cc09e816f9b2c6cba60a9ca96c19d850f3409dcacf70fd3961109f06840ac6404511c791d1f61018ceb0b800c2d0c502ed378d7aef699287dfca8a227d92a6054af3632ee137215f8d2ed44d272fa2a72f5c6ab902ace2b20eae82027d855e048571b92dc53f9ca75d3dd41cae2f42572f5beaa70269c6756b5cf44d7c747157d92bd02467ab520e39e901f817bbe365163f9fba7862c72927d058cf56a47c63d2117819b3a6dfa6abdc3d6fab12fdd6e242da72f91abff810a01b1def95b91b49cbe885cfa8c2b43e5e330508abe045c6f4410c5d816c35472fe15d794a99d9d3ee65470dc7c27876243b43c262964265ccabc1b904c1964e6e01488af7d4bacad9a9c47b61b7979d0212f4d2ac77d67f4d8980d0ca850fced0371ba050f3742ccac05f9463cbbc811fb5fb9ccf974e16d1a2b97ee369bb3913f4b571debed7401c0949859af6271a24f8e02ef331c83f3195f1075d5f4b22c11e621c0e8ec220d0a49cf66c5f812e8f4f09e850189cb79a0c96b4158492a663dd59f49194167a3f5d52763311f18faa9705bcb69dc8b3a87548298acd1525a80239c9c094e733d93908d64b405ab7f5991efdf60997b4946d258bd12ca98a9b1ac68755c4250d3601aa64c50cc5da72883c4778df0563ecd594c12edba2063b7f694e6de15627f678a6dc1da509a056b00202a9963e8eac806e46cfede0f62ad8f81d2384ef7920033e326a803a6dc1bcb4f193d5c094a8313b193b63d2e3eec3239fae0185c1cf0de3f55bbd553786fd7a827c75f08f8fe1d8e1b8053d96244b8d852f16694f43f83826f31f4ec2f02bae8050472eb4ca9db5a7f402852135b3909da76c985efc857ac848f5fcf92530e12749835cc0b5fefec3209387c7a7e6cdd5644338142ae2c5fb556cd266c00d52853e315db98b6a102af626c376a93f2b3ae30dafc8eafb3139448b5679cd79bbdae8df7079c6c5d9d4538ec4e554bb4f9e7526d14495d730ff1f6efd6f34177ab8a145b6a878ecb30bdcaff7357adcd63b9fd604ce8234efbee7e9b74e76291f186140ddd55046a8d629ad5918b149625837c487201ae5a8029ad03e0f14a809066e59d94d98b486eb5b4b1e4854d6e9ce0ffddfefc44c9c1f94b9a4f872b9d598a56097e344a912395017a717c1a45e9bccbf9687c40c121cf489d38bd46183e1e4773baf325040807d0778dcc05070ec3f0f138f765d954933bda4d35e041cbe36caf1eafbab04235d635c33261585d349972f7f138de2e950071b2ca4e8c7a4ba3c286664571a54093f0c5e32c1e8bb2a89c4b12c871f5978e541067cf2d06ccc582d286f001ba069149d851c7b1a5f3cb6adf98b62c497088ce160611d9a2ddd3bf09c78b6eb7d42b26a359b01739bc600cc0f52429c2e9a43cc87e93459a9541f84490cc18f424f0ac53ef66058990fa06db5ed85a7034d95a9d8cf0d4124c7f495b797c7444809caaa1d45e5fdf8672f78d16ee49404119b959abf0d780b9734c10ae064a0c92efa4cf72df7531d1573d69f4eb4d86a4b94addf5f50d2fd1a96c12933cc58cbf1244acf776de75aed7050a1998840d939988f44964e6c998b2c80cba68c8022d9eee3256807d9e69da9e254b997ae5f5e62c13a0379c3d0a21541c433feaa012c62cf044c704b22559c3bbe2ce118989309b5c616963ff68ea0def15420e1fd3abee98a4003d512d6cf47b818ce80ade09b4853bcdbd9da09486e19e3a41911b939e66edbbf23fee1545a7099d5e794c1c97bb4dc195008b18656afc8c7dd70b5b2b46c4f432e01109b6d0671f13a3be30c5d76a8344ae6dbea274006b7a22091ce93a24bdfc5d92d08d11c84f39aba7c72596fde82b67118b27769d0f749d89de2a7d5c67690e8e23c0b7376d219b88fb1589fd57c9de3a4bcb586f1ddfcafb5668a431cda0954c1375fc712a791e81294c4564573babce124d7b8d1b404cc21129925a9282d420dcfe2ed2eb4479cf3a9777a8671dbf1de0496ec1b41961a29dbb1ba74aa4acb37ae0f70f12651d9844a7c7d6c2c71306e8f5ec94d93fc53a01316bcea298cd858bb66558204b6a192347c06888a281dc32856c03a29415777ceca2a9a184769257c75c9413581a20db1816b0125685e51d763578d2d479605c869de1e033fbf553f8d405c6a005d99cd714231162500a2f324421f17148683500eb10410d32ef07f98b9c40302b61e2f30af9c1fd3b94e8c5fc53b374d3f7df2e3c7a9259ba1a4af45630bd9942c746e905f6b2940da28d7e2a5bfa586d63b107cc6d37777dfdfb1e0fb84e79a5c58ebc88f5009afbb9979109278f32dcb19ef58d598cbe71088aa407196dc4528092e44a69b8765d62af47781696066ceb400d564a383945ba74f0e62e6887b09446a72ecbe73f042b8e2ad97c072bac479882cb2900e692137bed4e5e953eb56270799d2a9ebfdf2277e30ec5012ffc0dd2b115d9c5817ab59a5f09de8e6df6be7dcfaec2a99bbe52862b72a748cf712cb6d8966a5fcfe21ddf2b7da87c8ba157715fcb2aa6a5575af10bb3fb8ee728ef4d7238bb52cdfc663e676f1130f73bc04ae41d854c067ffe74e27f02577a19952bf24a38e69a6ea52c0b079204494472fd1d6e9d7740bb65f0ee9174ad74c2651694354fa3565af1168b24bc301854f24205e3e6e2730eb91f0f248578021b2bfe88a150d7361f8df14b8d499ee6f720449465e2998a57fe63f09a34a1bc223c557d9a8c305d689d40fdff1dbdc34bb5c7dba2cd137e94776cc39f42ad176b67c3dd18973e52b68091807f266dca2a3de92a3d725839f48f90e91d571b56a7cbe6b0be79bc1cfcc74363ad62995948ef37907d25d9704329d9414a6dffee5fcc327fe810e12e4a5cba038e4d89284e910533a9aaf4285a96debc4d4e594a9f31137e3c182b57ef9f655f6589eeaf2fcbd2aac770f0cab4086755df4534843b34d5b7981021ef30c7ce0fd3c32cf3788f29f452c671e47378c52150084b0936fe2bdee31c7f0e6a027c9fdc0e4ca6e5eb786b084bcf7dbe6f61470c5351188babce3c546c129614aa1220864fe1891c77ecdd8f5175831ab014b00007b4e62b3d6121f18cb449d7771ab8c5306929b5cd3dc23340aef4d09f2d35bd426ba586592702860c1937b2b637a68eaf82b54397ea439099591a6d8eccddf160070003a1f0f5b78fe2d04dcef3392e6f17ca7444ed9ad387fa435d2c009b204c93a1df9dc7c994831d333cc84023993c50d881631647c49a3adad45fb9cee86d1b5885aa475ebd0f0e1377333eebb74b9409d5a326cebfc7c8aaa1de7c15b077325533bc1026d6f8c088e9c337bb00d8e0ad44a7e99ea2b0c30c7ae95698c953bc72a8d31f9169b9470a0e4750e801fd84fed7d3ceaab049536fa8d8e3c74593cd8e2e8eddecb834e6be47a0d78d2988cd6ee73bcb5ddaf364c9fde55198150479ca970f19471a27ba9679603e72c3463fd3f48e89dd7cf4f1c09b5148edcd748f4446667e11b4afb31729b42b062bda41777a931e5690161fb29abe714332b0ee3094967d3dbc45df4b3a8de012b12327fee094414908a30f9b5642acde414fc4703297b988929794bb3dd1a6d1ff96ab7c1987ad8c522b0c3555dd444c95b31c51d9b8229c33ef51ec2862a2c002fd9f3ca8aa6505bcd74da3b1bb8a33b80e9437ff698153583a8355d5d835af11cd7940056d521b3bf8cd7becf6ee344b5540172c6ed70d129ea87ecda432e09dbe56bfd466bc0cf08a479196d86092bb859bbed46656f8f4e5e15ad7f5b8cf04da43647b0d059a98aa9f0bf1e7266d62e6d86235536a338bcedc5a3da372a79d2edadf4dcf475e6c11793b5f95ccb86eb699d7a529bfc0798361018d08d44ac1c9543731ae24a54c576823b6074727b0b8d28eb095552925edac27993d053fa39ac8fbc89934b0a4049ec48b1e1ed8e51e54d0091e53a08cdcb477110ab0c2cca10915246a11c09160162ced5cb9327479d5b50c5b2247f425c5567ccb7de0b2f704a51a602452a2ffb82f65069c58614f5ea6e73e7b295f43ba43e72ffa52267a92545a0981c1d6241a12109300ad191d55a2d89df594fe0dddf4326a162b3a02c8c0b80b057384448b0926b00a622b9bcfda55f1108ec16b3da4cd3bb9e3e83626805f1b3be462517da7f599624f28552425281240cbd68bceeeb62fb20a2ec11c00122f22e7d088f1362b132dbfb84b69567f1e5eb7c529fe12bca56e4816b344955b90c1fe4b8097dee1a5951ebf7438aef4fc15e79cd6fbabc633adc453c564a068552a04c8249bd1751a57191e5cbfa87c8fd69d284a1e7c8178f5468f73c75d93bd93b37b763dd41db2eabd2d0b86f41ccb23349ac669d79c5f664c7ad148189045fd210e051934369b2c4113b3034e7473b29da1ae27edbc02cfd41bef5e66559d980ee4d6610fa07677090da2f6bb2361da8a3e07019300d6d60f1432ef3e64419404b34acc624a094210ecf1179d32295106d5027248fc7f02efc1de552d4ae1befb013aa95e2cdf34edf56a320ee0c951a5c440763d06cfc0417582724686a2eee10a5ef7fd39c4426c3d4145f4678488b89cf8d9ca4657717bcadc2fd6755015acc93c4ebe530ca987e1f512107ff3eff0b1c9f3b742a2f0ef354a45c27f933b18993e2f48414cfbcfa4722b48c066e6fd75e777ca7104a98e02f5bc3a0d1584020ef4f17321e828ab7024d70f0b78197c0ceb57f3dd572dc1d5f462ac3e5e46b49395792cfabc1d3779764c8a4085c43ddf266adc732f461277def32f7fde886b82a14bb968f70346ec8ca6cc8a0cab2463f568c623e889761cd8610033c4078a9a3d6c17222ce6c22612981fcb30b2a925dfb22d8c370784041adcbf6dcaa333ffa53fc35a40e6853223e541a56e0a9cdaa9732f94e8f3d9ebc7d8c54abf1bf6a7b9703134e5ba15a39c7d10092b60f885cb22ddca6fc9edb87e8989993a99fa44515260cf5f8fd6e0352e1ccf753453a5d82e71e367dbe4e6109e9079bdaad6288de812f43ed792f5d48fc4921d35873a9bd7a08414ba854b35190f04cd94736ec7cab82676e15353d418d7a0c635c3adc61a3c55499a362c1f2cf4abe8a222801119f8bb44d898ff47601b8b38383ac31e5095eea47966fae6e30f0394bc535deced7402dca54c80f69ca96e60e252266827d0fa0b313e20ab8540fd9f756481fc642bcde6201fea8608b514d88a834908e8ed2097fb4bfad8cb1b1f96bdbb5c9690d57e9a9e29ca766837dad84a417059fcbbe297a7bad7cfd2d691439c218f7bf439b422a2dc6d9ef3cf65a9497b505a81ca58b56c094b8c47ba0b46318c1dda282f733441c2113e78218652f14354e1300afd737a47a797d23a0746e992dd682ad2a9227f06c45971f5b05e6b0ba19b78dfe181f92da99d5d0618cbfafa5adfc647ae10941b91635d783092db01523675203ce1d9e4a1bcac1f71d12f25c509cbcebdd85f298679a1b4a1779f0f55f585fc648e23e144a10ac08db2ed5ef0cc6d02153f6bc898edd4a7aed560c91fdba537bfd20400a6eb7f1dcc5c222fab215d11845a8045775321afe09c119ec80f36c7be57169ec6822a669ff23a3ec2ced896552384a254c0a8e7f9f4c7788d38098ce389663b1b43c4e85f2c82f922086426c1163e79047dec0c0367a396b9d855e9a5d6d91f9cfa03664201a0fca96a50e8142d51686277a65e840422e338e9d640719481a6b32bf1ef224f44a22c5df72fd613048e9238418498fe34082b9fcaf5242000133e1a0efeb41a555dcb21cf55db907bf38c6e0da9e0c9c78b84daea31c4d1f3055a46aad84092d32f3f90e9ec980ca9b75ed9604a1de7ddfc4d9bc2ccf35787bd7c559e2790b073865e8864b874589e1312a0938643387727d8053d0cbd2c5175f74f041d28688b9621ec6585ed7ae5baf030e885f71bb3c80f6c98670dba3b4bed4813e7b434d3a677760a8095287b85f8e3ca44b1aa906aa6cbf89316df0f876f13cde5333e8b3cc889bc782c8ff8eaa783822240f9608a860074faca373498809e1db1b1ed562a64e36f69d94989cee3288f6e088d0b0dba09aba0d62398233b208ab69bb64cb2d19ab78b6f26f163a43f8cd7da66b261a241fa213b10a57606535369385f961152bcb3b0c9f820618c0577d560b9279c68cc05c9a333f07bd2875408e8db3ca74d1c9e239c57c19f3d5eecb6e8bfd01a42878e1948abcd331915cdb3945cbba6dc3f89b11a2d044c4bd05cf467df21dafc4d02daa7db48d8f201eaf167d3e68b7b2583411d35184c3433bbe9650dd720499f2ce10ee264c0d675adf6f8a0d746b56fb3b6ab45f65f18ab1607f1fa2887dbd41e54be91779b9b7f123b2a1ac838abb72c1e065404ac0fda70dffd70a0cdc75801fe21dea03340101186191193b8e23815b684656b546d0c966672a3acedd1c4eda03c4edfd5e6077ac002c32c670c34ac97c18a2f755131bc0468458802ce601878bc84baf398d0934aea1f873945217425ad64266bc8b94d3e83fb268d230acc6ac5e431aad8331f879416411ba0d2404c7cf612910e8a01bcb9a0de6ea574e795868273c90d724fae1098d4389d8ff4680ac2dbfaae987b04069c768121f029ac692e4e39cda0bc3fc9077489d130e4050100ed74ac004406f5d942f075936f1ea86a350022733f4c6515d8230c5340db2e487f79d7ce2a62ebddd730450af18512793160e0fcdb07141fb334933e7654f66f440125fac5ea2660d61862a8e59943049556c53592ed4c493218e65c1b0c3898a8fdf4528b6b76b7a59a3d13a18535502a9738424c01df6886abf1df36951a8fca64c452ea38ed3f2e4e944b8e9030560792ad529af50a06debae64cd69840900ca9eeb976c57bec6aa938054d7e9752626c00b78c94e292b94456ba266c3ce9f0342089cdaae22dd438595a81cfe1dbdd80ea5115484de8268882b9f060f127be435f24535e0770ffe04f6a593e0187756e79242a3bf2abf790ccfcd52cc5d1f0f8c82508e0f4076ba184136a7478a25967a0f6b8eabcc99bb68100f490013d495a3412b50118972744da9146e9982b4b633e2188781c6bddbebdaf39e799794942037feff925ee004cb93f1586f8f27d474584a5c92349412b768bbfb2ab872bec79301e30ef4e32f0d3fd9579690936109d2379619b422bc25ea4e11a204f384968622b6262e0b9e2e88289563d355c758e5752a4e62d1d155acc2997fa5a55157241fbcdb96a0918910c1793a797a9d32cd2f5f6e8bf1daf97c22674921728b1c44a3bf1387b8ff4bd2cf0f619ea5f0f08f8c4c9de8625b0909c905de54c201397adb0d88c4e27ce25ca5e27d51c35496b0995e9a097a7240779ce9d91d09e9778ead9d458e734ce848c4e5e7962dff9f6a9d00c40b8e0859fe542e16e2fa87edb90552a973bb7148c45a43a07756f72e758473c74c628cd6e333e5f073c8ec494d802fea6d28c8fde605177ff0fc0de9a19b046799d5de808de0c704e6e4255a3f0a2ea6a88592cb1d563c692d222cb5e33573bf4f51468dede6771eaac930b6ab63fbe83a51d54dddfb6a21e14d1b166dda8159704dc0bd262376f1f726d2b02dacf8b0beb46b286b5b7ff4696b431b02d38f22e1c197638a21d8038920369b11a2539cdd7dc1c0e0266be3aef3cc35d800c22dd7c5dc9914b55b7fac2973624fa2a131f731d5c95c0c9692271362816950f71f8a7bccc91cc80bb649783f15ab31bb439d4fa7a0163561058d52e055b2447245006ac56ce4574cfc5483fca3c1755d152fab96876786e6cd0a654a36f98efbbe7cf455eb97762c38c0b00103694275a51b7d0bd54d0e4c81f15e9b5a21525c2b1825db438ce4560247da92503622eaad0915c0d7e307c551b91dc123eee0f47d5255a514dec75642f0b254a7ba9f788c7e525842ff57f01f7a775b8db705a5dd97c87f26e78b3809c9001ca7a442b6ab48b54f1d0e4a07324bbeb1912843f4e4dc4dbe3df235e02e53ee21f0a8f0f30ba0f834e51bb282f3b7d1cdda2a5f6460519f5b8c9b77a3cbb950f2b12ff1c8d0c054e02e2a0dd9518ae04c70835f9c157fbea4a5650a7b526a34480cda348eb23cde24bf835ff7a5b8c505d5d8c94a0c6fce23fe54dc4929bdf645bafb019b4d4f51cee47fa88160e8dd7cc73940050344242c15b98c13b224d58544416f1fd5eebe7de533ea32e446631f0f95a7c809760253c32f3e4ebe06a0f01e84cb9e9795e516726df14e5354b6a4bc666b95a2d0ed6198bc54cbfacb50cd21dfbbaf308143c14b9659012824ca92fa3b467193ca0290a6065de3fede3ae949a35f48e7fca98d2b7ff339dea68a89a3428e51278422e4798a7d09627249355cc2019fb93a96dc5a36f682b1e717b228dbe6e796660b72c46a0ca9367e302fd82d4f5cf0abcb3351f934a7bd54e422b351315e889cbeaf0225c09e84752e206bed6ceb90b8473900d160a5e3741799b10403bf812a98c97476d1075b5e19c00880ae6129e0eaa40cc8ccacf9598f31052a5b1a4bdb19743cdcbc7f329ff1772c6ef1f1cac92549eb8c0fd851cc2f462f784c8779a80ec3ed8e4d4b77bee3f3eddee1908bc5a6c1091e672d3677c09041ddec5da1aadf96e146802f135d92b062c5cd1aefe235a7901899936906b52544dba579a1705afdd61166ac84201698e2459084e6ae141550c260665093f199d1fb38a66a945fb43b1ad8c3f29cfabfbcfd7f967944c44ff9c10cd280ba443a748416766576a2a2142c3cb4936de88453e82a0b9f8540771fae416ea52db96d9c18e47cf76ad1120dfeb9b19bad50dc5b1015447647f4067a17ccc4e3397fc9abe68e9404c14b09a9c2684300393290b9f3c81062c61c5194b8f2002eef361fff12c8410839a2e0672f61301a85102aa69050ec2a492381fc0b318c27885e10be140897b884105b65e0df959a473dbc4abb9b302c03c161dd83a5a31e89214e708f4c91639cea40a9525f9952f5cbc44bd80e113cba91ecdaafa12c5324859119c5e38d29e2f974ebe2f29cef54109b7d7ed2699b1c6c7fccd0beb328d6dcb34f6ee413883ceb6694ed84913062905cfa8fc22d83a2e302bc815485548352415a415e40a21a9cb43406d1023a21fce1b0e07c684c25893bfd590af286efa637a2c4249926cc78c978a9660cf55be28133a7f02bf53c904859574481a93e7c599175f802321270a836704bee4442a6e8f882f108cd45df42bb31be025efc31eb8f631e3b4507949f11f6fef0688d1f2a00a6de4d72342dbbe43c34883724e152d1e03d30e0666818e511e8c381824b39be0c1ecd2011a89c9fb43d6e95d21e4e28f3c6d62e0277b0082d418cc5ba709c9585f68366ca0475101261d72d301c5b0a194bd74fa590675e5fdc1fb2ed4c80d893a8b619e1c09285dd34d23b39b53fcbda47346cc2ec1373151e2955dd5b33ca579cdcea6aa9c355136c82cdd849895a4ef8b0c0ad3f6002980e2e3b065a7a5e830c5466d6fcbc9e41e5976cea7aa7b71eda3c3263d54a911f2191499862d00a9ab11d8b2fcb4ffaa8e5431b5bcaba1194a98ad004ce292cc386acaa93ca01aa4fcb76c09652884120e887d7498451b723d03a374a8411c29a468d6ee3d1a525bcb22c5b8326b9f897b8f52f42d786b14a45e206cd980bee9811fb358a026dd2faf4740502c23d638820bb7e395a8966181b63fe5cf9c7b2518b16352b45a0c3fc43559ed6f13078637669d6978d599d8bbfe48116f2e9cdf9c7bd2b492d31c4220509795d39c18b6ddd2fa5c19695fbd48f61ea4a0871a80841af45a20acfbfdd3d3c661835d1221448bc2e65e30d0088c816774d0eae85192d5cde6042e73aefe2cbde6b61be265611b4429ffde0585f6d50b16ce2746fde36d9dcf210000c59bfa3d5cfd789dd40581e8b83e31f3334c1a045084180b91591b13f21ea29da06e1946fd0f9d067eae6598247d479db313fb922bdd3d5a10d254c0319c08cea17f3d796f28e82894579d97173e004a27ff65e87e933ca6a086247efdb02e9d250e000219cc55cd3d04662302b16ec3e137a9e47907afe057fa25a3663f1e268f33e7280a5fb581af3cdab3a09539d63ceff136b35543900b61e667c731ba4155cd0a902e8a36f2a6892fa7e561ae4c6f2600da1800110ad69d84f6a4d3e135525de78799676018596e180fadef59c72231be0050fc7e226e1ea0c978d42564574cf4e4c71af92488e0d2fb32ae61dfe51e236d5dcab1b5568fd22ac1f38a7bf6398d700c1bab60a0b6e843f39808e55b11e456083be404c13147ef13006a8cf447ba0a00bebf92165b476bd2e6b0b0f09c329bdfe7c0d5f37f38c8f415bae3a3dba0421753e3cacf40b621f46c95bcb530b14f6e03e1d588d15886c05c958cdc8849cb2d971296cffbc484f2ccc2794e01bcd196f9a417a9f73f7df7b8c7b94f585b22af9b4aec48fee674cb8939bc34b7d63653b7559917c54fd6d0a122c84f878a47ca954393ff6a6551d1be97cdf82675861e5163fdfcd2449f5c5a39a1377749bc433c8e46a26e79d8cd38ac6e8cbb811e573922d007223245f87e42205966daf96606522ce225a97005ef80ba11301867dac2fbee0aca23b5923f90e625538b9685a1bb1f60d388938634618cfa9edf19f02d930b791756f7f2ed9edbdeb3c588933d208392b4ff123c4363865105cc01f2d241cb06a22fc73ffb03fb8ab91b362f49c605cf30c260680815716e7919ae8b6d7ff7ba58bb90b93db2314775a5a02d50c053365404d68145f8d2a119b733d01178bd598d77b06598e834d54199169f910215b12e3251126381ba8a071b6fee3534774230058bf3e08d2c51059f4b9d1cb65dba6a0c1fb30b076dcf5f2ac9ae5904beddcf3d4d4b9caeae668faf754dcf6ba3926952d18629a3167c805ec519a3a3ed6caaff6bc77d2ca30317d1865e035bb4ce35d6aee802a1df976153cb77d70ccbd95c0db382ba0b289a9ce2bada33d23187f3fddee96a64478bfdaa9a7dc44f235725daf32ad6554c9cc80a81bd61a68fe89a806bb0b08533cf85dd5a1dc5d6cacbd9abc191068eb81f03bd3638bbed35a1007e157aa00e751531417833272dfbef105c1c39061cae7cf91643223de172b378bf6e5d02f6960b8c881634ab4637cfdfed8bfd02cbe952fa3243b30229b79f94358c64605ddea3ee948e8226784be3c516b200b685b1b6dbc46510da4b6a5423682b19a7505908f875035be9ebcf80800f4620e5c8522fac67c0204b8b194eac37fb2f7567b111fc5b8f5a1a30ebc208e042acad05ef12d202af89186e5ab820737e454e474a1955343cad023af0096554205e914d07b356705d09f39872190b9a8cc8b7af7bbc56896bae57a72d35e65823cd205823ccca296e49fda472e662d2a5cc405b434bae8c1ec589680120c26f1b77824804bf598b8896b4bdf7de724b299394324d06e8055306403d8da89029e4e6266cc7c155c9668d6ae23789524360d11c02df4ef1560a293be2bdad82a9c9da248dcd1ad96af607993a0e0e9813d2da73be22d1bdc7a954df3ac87cd1b629a37e83f0f82588d36d156f978e50981d038dcd17560a29a36ea7903434c7da82e8705747477a27eb3235b2190af53f384009e2cc06acb2c7f64cff8135b2425bb845d12485222832c49d59834371557be5aac4d3b64aeb4101b6ce6db3a1dccbb280d1daa81c19d05450916dcd636d28a76ea7903ca8d1222175211b808602b0a0ad79fa26311692c7dabc9ea0ae20d36bd52069a857a5e6b16b9816a979ec15420f6e4434cda0052857884cddc62153a7d422ad72cd2259dbb5812dd393f5cb59a14cadcd666db3dabe6da4a370ebbe3514f3bf1b1d6e421b1e8e959d0c25acfafd9484556f384856df6a43918375425aada113cea0309ab413d29aab3d8cf4d7272c8c9d70fee549836873df9aa72ad55b6e11d2aa7f3bb04696094184586face15cfd4548b3dd2841288c866d6ba130eadd5b246c92459a691b84ee5499f3c74ab11e56bf2dc2595db85cf4a87a427152e115a1bc519e07504f5fcc6cbf3e416130944018218ee1753886f53bbb1151e22904c54ff43a2c7257b4a2288a626d914e9c93752fa41fa041ca88698d90524a29e544c3156ea8b5d64a6dad265cad235db2429c7404cd99cc1a741cae19739d3187b999b9cee7f4ceafe78915832a0ba87266b36b6ddfec9e81c1ea0d455b7de2303c557c6ac2275b6a4d040371ce9086128788359c6d74c724d38904d0bd20759b45b162b062a0ce6268a38f00f24420cf45d1009d94bb1b0988cba2e701c9ecb937b6b003c1b9e79873cf39ef9b73ce39e7a4218e307bfe514a29a5b4bbbbbbd65aabb5d6de7bb91083de8b47889c63100c41c719e44220120f49c230e440e81fe832fce148fcf45c26f9206616a91188cba29434a8b1d647b94f2e8a27174f8e1a979ac256d91391a494524a799b73ce797a250a848952da1648eef6eeeeca546bb548d3de5a1dcaed35791a4fa7179144cef109258ead209c45e74006bd158433ca71468d350e04a1aecde867158e3fab0c8ed708d6c348fe69a22c59aa683a842131e816305a0cd11bdd3169718ddc29ee65838c65216d6e13854d21776e1a248cfafd2e1b6433916927f513240ff7c385643afe8042e67e4caf7133ce072744a6ce09dda5e6e99b4553d15d29786fb72948bc4db789bb378bcb06dc71dcc97244570649dc51153ed952b352fa14a2734c1521d67a4457da0a5125219dadeb6cd30bdd110a85cfbf9cc6bbbcc6b79cf6d67f1e7b8ee7c1e9910b22a5809032f281010d70c00372f0e8b071316379cd0af978adb68186d7ea196a78ad8281e6b5ca859fd451ca0c29a61416a99bcb6a488438180250e94147662626e7c5f56e3c72bd46a1b08df4480fefc3889597eb781f46d0b810ee6304f61cefe35d08ecc383ebc47c07ce2e7f81d37217374b48997aca88ee70462810e40e6705093b6a1ece963283e4c1344831350f26c2425258c81d5c840ce633d6604e63ac394a8db186421b53473f63ea081b9108d1efa36083aea7217e970341705a21d6fc28f60870993f80c77c017ce60d80f30370ab00977d02dca6024ef315708c006f0d4026cb0a484005868620fa016400df0a72aa999d5035dcd5f1f4a8881a758c9e428a4461a89bcbd538d7ad977906860054645e2561d7671e45c2aec7bc4bc2aee7bc4b9a8b65ec8a12766fe7fd5f0a06be5d2aa4b1fc43c59c4e9c18cb28144ee968fa44b1ab71e10d780938033e02ee03eb014f01984e47538e5463174d1d8b02df0222c4e808690525a0cacbf09a6fe1b2ef6278031e026ed31170ee5f72e8c8e182d53a64c4b00190a4162b187231b5985e4c96093331991075e3ca51df1e745c1f2ed8081b61236c848d4e5a42dcb3a0c43c25a4c9f837c5189ae3fff9b81ff3eba90f4a87a0301f31634b88d262634b0808dd8190d72ba4ad7cfe2fcaf180f7d1873a4685721029bd5ee1bc79eba7b3ca095e2b422d9cb115642536b686627fc3655e078f7900f8cc07c0733ec871dec6ec81dc1f87cb7e07ffc15f3fdcb0810369e8876f09b574f8d61001f8161100bef523e85b405a41bee602fd58732d3e01b97f3d2747569ef9221d3e4e231d63098ba652c794e692cd369b2693eba5c52f6752d14472f1c0cbb9b840ee4d5e5e20f72b151322bae3d263f333fce66538ce772c7fc04bc01df01370ee4b589d8c5835af80685bbb650fb51c37bdd6f6b14fc5bdd65adb755a617e293125a2523a509e1624aa92944baf417744976e83eea05c3aa63c581451947c36877448537949094915626d0ec94518b242717a72e2ab139be253649df8ebe51f760f599ce5e4a37f0b76eec38f7dbe3d718cbd4588478fce39c7af817c276e7d383cc79ccfb1d6fac6203cfdd6aeb7fcfbe6e41c777e1dbbfdd63706753e1d3bf8b5ebab937727c76e67b8c3cc7887994fce71e38e9ae232c471723c0271f26e04a2c577546edc51334b8bafde3b0cc04950cb58298c657496e3b1368e92c2de2b85fd58dbd179de700f5d8637dc43ffda0872383dc41f726e6fe8d84367858e9f3a77c71acb77f4cf89d72a5e09c71567ad38fe95b1f6b1586eb1b3dcba0ab658c5b1cf31f439b6824e7cfa89cfb1e6e5cf81f8fc05befcf3d789bf5efef927bf06450de4e975cea36b38f4f9b51d35bfbce5dc7b6006d1009c0481fe1a6b9f83147c7ded7390e2e86efe9d7e9bb3ee72ef81f8dca47370865d3702f1f949cd8e3b6afec697ca8bad957f218d9572e2336818b4ca27fe611cd250fcc46d265f9bd9641e31713c271444c4134a5bbad16c325fcc264f823c979a6726756c26ad9cfab451c963b5e2c03944f6a0302288b599f404dda9cd2264eab4086058f4e2252fdf83c648fc23791e185bebe058231122791ed86bf2d6e37b013f3f9d425a0f0a9b8f7978df581dbff4b956256f77310fba43226db5d82bc6ce8d2e3c7aa0927ccd5ed224829a4c2e58e241772676a5997b080d41846792f5e179f86be67e4a89ed14ea91311e6b9df300ea4161f4149e401cd843f069dfe90bddc5cca38775cf2be579a179a314672f1863e7307610bfe0990ac35388c6e44d49a9266f4a995279bb354d12b450af8237e5d74c4b36238d85d287afed3c1195ea5bb5574949c9db40109d85984f9d838d4347f5146da36410ab57ce438124abfeb15f355f607f49a52a603f09e6516baf5c10045550cc24d68641d47a12562fc7dd7bafbda730565d45c66a4dae2fb90639090bd81f628cfbc1dce1dcb89134d53bdb4dd7752e60ff97719e2715309134d54d408ef338ee7af75aef05ecf7f27c922f91b2eaf657295256ddfb96a471452037f64eded77ddcd799d44e8fa5cc03ff642d682d075ef049de842563d54fa38c558fc9d571f61e4b598555effe2465d5bf17a5ac3a090642cc43563d0c836818c35d84f20ff4ba2f12c7a1990f6aa432860a83c47e8b42a1509544caaa8b28310ca299449cf1ee4db52509836aeea7d9b347ec929581d829bfe1db31505853ca414f74eef4453e84107d52a3a4b1a1998f38aa6c2a58596f71b1b6296ef788a32108c18820f4ed02e1fee0fac0e5c5daaa92a5a26f55a90ea943aed1ad489c3de08178ab432cfdbcfa0773777a564161968900d2c7da3a46fdee401c2d0b1196b093926e4b11e2f476e9979056c7ab03717a95557f0983e8ac39107b084cd8474730ebd361604674d231ea1b0851c788da4848cfe638ee7297ebaeb50d6b01e710f13a0cf87d58ed7c979076bf17580cf83d786b6aeaa116f2af16067eff6518dc160616e3d98c18615a5a5af16a63329e8769c04ffce9937a8a7474a4d4b1240aa33e60f855d2802e435ad8237fe087ddf3f04ba55a19f07b6c67c0efb97aa78b06bccf7d20b74b58f5191a59434f373738d64430432303bfb7dda3278f0f23506ebd9f06811a1d4194d2a66975046bdaf67df52851c750435488adda8ed058f8d319c925b3e9968b35036f5c2036f66f4a7a73c0ef69bed5bb42ae63ccddd11ba2712c9a05c393cfa03876ba45b91dadede2c04689106b6dcb36ba53b34819f5f6c8bd81487d50218c22d623ea11b9476b03c39fcf75f4864eecd08df5d91223736da6d4723272a6ab5255e2c6bedd6e99e66e8686bb2d982c2ccb9bb5ddb8efb2b5ddec404271c7d58bfacedaea7c21a50c3badf8666dfe2c4a7c0c889dd215b3c97a47f35ddb282cba44b24454258b64837c45a2f78f7309c554346d4b10696e8b80d2d084ed359c9291a424eed6dc6c831041aba3b5f1409cb27022cd4059d83e0b8168c6f7deeb971b67b3b0dd2604a235dfda76efe4aa908d4dd87e130666b8d7dab663ad94881127841b42bd465548ad5748ad5748ad63f55babb5b55dceba97ac1032923d97f3c06abb4349484a50406a1ecf8812ddf196a02077bc2e2081ee7d2e04f601dd33d23c1ed312ddf16e5d903b1e1612463d0572ba80a979661d9b42148685dc99279030ea31813f66a0437dd63c1f0d64bba073fae1205317458987a690c54258084f17c89902f07618fc3ccacd6c12321d7a953c85a6d014fa6c1bf0a823669f10ad23ea1312ea96a873c95a6bada56eeb686b5d0211227d6ff7ab6c77adb5d65aab135cd5d61637a89736786fad9cdbd1b96bed51b6f6a8c7226aca5b5ee5ff25bef224ee2815969589bf58a71498981798ab25338342a15035e5271892afc5bd3967cac5eb8db9b8b854fb82899d3ca4d5d09d058542a1502894a72a0a85f279f279f2ef546be5702ae6071111ee4862430c0d755e09cc73c2a702533fba7d98242523b623148674446fd5092641307ab1505260625e604988262f564acc0bccd592994955150a4d82c8745a82158bd127623ea968ab92228fb0261534e582594a695b1fe92abaa96f242f302a94bb040cc90ba66d4aacb61d69a65e62a27e342a8ad42898a7d206e5aa5545d59290269aa46ac9bfb372cc5360622eb1a74280c0a85ea6c0c05495546d4249591dc141cb8b9512f3024bea5810905c4e08612f3129262f960a2555574540151598d4134a4adfca0a4c24929454c493abfa62491594455d258a7431315f9986b05215a522ad5048a822f89dc48d6a105e4814568f4e641193172b25265555287789d4cbdccd1f4440766880e4578a626ef24530272531af29967f31540cc451fd5a14949cd84b1f944985e8028342394c4813fd83c1569595aaae42b938b029286fb72893ba1adba644ad5596aa13e59ad458cc0b524daa446a0c26468f502bea56d4adb366c125c624555757099214cae738dd4a0aab49464646d5c8486f0cc171140a10d479e1e2850b9d9f8129b1a46656a2aa2109692525aabe2149d594d4cc4a48babbbbbbbb6fd0bf5e661318943351c5949480ab58ab54a149af56a713b0e6afcf5ea75b4793c9d5c1268d4261e9743a44d8882643c5ba3de850853f5f1222cbc5f27215956faee0f0f07a3a435ac4c3100f3dc6f849488b71e1e1a54f4cd31f1d52a2221d3ea91075b4c4622e3a5efac4461a040815c2c232e6d0914347510ebf4de4703109692a2f395efaa8b084413dce37b084f33676561259567e629709b105a64500f454d2b4c3c0307e79c1a8c05a62b6c944613019199571868526a4a9b4f0d9cbc8c16f3e86e3fc9df9171ef32e5ce6bb1b63862a4194a1e9e9994350d8504c0b9e9dee850b1dae09e28c4ec762e9c09cd061753dae2835110361b19a8eeb1f9b63c058488b9175af8e71e2e6e6e6a6bb5eee263633735ba7d3e97ef48c133939393876662f97e38408ea3491f3edd4d8080d4da2b1058e8b15171ad029ea21e7eb015f917319e268bfe38ccb84b499183dbcf499e909837a84d15334a36302e881d1c3c3e30254f9be2c1dcff94e87884e47decb9a1c0f0d0386947137305ecc18e167686e4f19191d3231aa143142588e0c9d1c786684342688b986268799981c5872383159e5a02ac92107ae67f58ed2ae3e012489cb71d7268954e972dc4582254af24aab0c52f7daa3a983a139e79c73d69e3d8988d324db6a7960adad1c7755130956586beb1d72c18b84ca83aec343c4e9b70866a8ddf7de7b6b4b6839aef33e303c618ee3b853087e5e37b6519298e5d581bd9c7f1cc6dd9ddc3ac871287d0ac1709428ddadfac08fd679a7973e5dedbc8ebbf6626fc773da20a1adeed4566c67d870861ef8851e09bc4ac33543d250214e74d88a8ae2b202772d0219d7492832d84c515397b2a61d824c9b569f3a486adcb1681870c75d1867f3c54ec950e71cddaf373de7f2ec686e1051a80aded5f33caf2bd7597c419774075fd87d1415a8c2d8db04dfbc1875eacb7560681d759af1799e77e1fc3e70c2903367fa1248eb1344b7412bd6ca85605fae76de67437086c7590d967e665cad84e1ae86c0c3b86b713f673683c16a25aa3a68db579c41edab443ce2c9449540959024a7ec992f3ea7143ba5f493a0378ea0278869d7d12388d2a76339253dd57abfa75266dd03adb5d6ba94971ba7acb6059c160dd4a9743a2f501b63ebf85ece8e620d663467abb5d79680ba6ca9f9d3ab84bc4c90b708524eba4412492081c4bd4112905028d082277b91708479c51095127cb28506ae9355aaaaaa131ceb655eb95250602e2f56a8636368fdcc3231ad9613c2171718caca95527292aaaa22e0ca8a482429a9882755d55d5f9928ec55a4835d9112a4e4a4de284c0812aa082ef930abbe327d1d03855d4161b72694139322abaf405c2826f5a8e424b552c5ac54aa9995aae457485c545474545e2f95aaa6c008718d15c81898e80e4a134a15a21a2b10d54a354b69579faceaea8b60dcf5452d0efbca549b6e1d13b23e28ac535a1cc5c5c5494cc6a217ff60605430aa17979655aaaa9438592126262626264bf454072840f1048581537efb06bec583f81bd7c0db78065e8663e071fc029fe316781d07e277bcf63c5e8187e13f7c0f8bc53533598c17ed03783be3dd73f81577f12adee2f167bb7bf60ff09b7780cbbe016ef30c701931de7de721e03aef83e7bccb71be0787f132b3d81efca2a679fe52176d179efdde3e2dc8f3d76b38602303877234a4bd665a6e6c64d8996c723e0120936d77c7802046c5721876220bb635979bc976743c583e9dbc9ccfcef34130b22610d8c8c0b19886c7daf7c5b95a7e07c7791a9ef340363a705d06cd659ffb5f320bb6359c4fb6b86dfc0a1290832ba00a68410c36683244ab810a7a71ae7e971b1b1938762663dd562ca02b080564b92fb7c9ee3f03c7fa08b95e9403723aa17c86d1c3836b62bc98c976747264b31b1b19384d88d6ed8cf3957c632303c7b686446e6c09cd3e017ef30870d91fc06dde002ee30be03c9fc3779e07d77905e03c01dc5e121517e7c2b75f2565f2223971d97e5666b1b137b29991fe146be23c33d94e0e4a7613dcb2ca2c96ab4d609c7fd5f09da739cfdfe8791cfee26d388cdfc1633c90cd6797f9f8ac24b3585c73816c5025883f2d5ce55df8cfb0f8074f1c367600bad1b41a347c6e0ea271cef3402f6cc8781fd98c24b3585ce37a0559dc4e04d97801fdd02c6e570d1a3e796596dd5b5219e8677cdb3876b86103e8677cdb9873a25dc09617c08d1d9ce771d800fab136807eb2c5afd72bfb0703593efbec39bf7997cdd38861a3e76fe0bc8ab73cee5750bb8f3f7e7ed61b58b7201b2fa01f5a8d9576d1f061616181015b1e87e3bc8fe7bc8d1bce53f3d77b388ff12f19355cf69efb4f99c566a01fdb36807e6cdf3cc8be2ce69c70c5c018cfbdf8eb3dffcaf9dc1feed8b1728d7856097a29692c76bd58372762e00e985960f4f0605b33bad00b9d5f39324a43aac993723e961d1d3b93c9662d1f4310fd784e66e446dcc2c2c265fb3d28a0856b9901809b652f338bbd99b9aecbcccc2ce37cf69caff1e335afe23d6f03c863bccb65bc8fcf3ec859fe7a07c95c2f1a2b7e1344848d1790eb875683468ff9596f50e12ecb5ff79fe13172d079ec35f3cc643b39b26fb16eac3750586b6808ecdf12ba32fea5e7635ce55d38fe16cef331df790ce338efc2626f6c66321a999abf4e3323131383c1bcb8e071c5e8c2622adc84e9004c9502465b9e73ccb1586e64dddae2d946a0e8c64492820c49dde0065c0843129ff49e220b68164c20051bb24ace6906f9052e4c21051452c045a494734a8144f641644971d449297ed0dd5ebbe7f527bb452972e075477c73ca49728549274d11a14d5b89ec8398926b48f490aceada35044f43c835ec46594561150b457033f8ba1bdba04f2cc082102d9988220e51a4a10b0306fb3b2e701cd7277ba47621adc341cc2c7aa2447185eea782b46a9034d26609b589a4162091a750963c25904ba4610a7906e0bb3f547daedb3780e843822cdb5b415eee3108542eba75acc9b1bb6344be76d9a29455148657545eae162b05e5c464a52a214989a853087e5e87b96b6b53f983f8e51ae8b5aea0045935f3d5c294f304892890a80d7e267dd3272d2206a2af8652763d416161ab356143f6415ce59a9865196c5ec8aacb5d4e944cd8b8907d1055b9f659fa9dc2a3c2acb572b8045ce2de8bbb0f0959353baff34832f51e021a799ff7a532b51551c32719b4f866124a96492c68c2fcc04ed2d07e1fc42c99886289ec8388cad2b92c99b0b540f6c81ef965c984ed045925fd0b69492c289255141644cdae9016c4cc22879286fa17023d0692197c0a88a74c43d923a7ac2990c2ba2c99c0821bb294de0e11057dbb9b526b6fdb7e82387b9c75cec971735e260ce172b63677adec968e90beae34cb963e6eef4562bc3256472b69ea155cc55e87bdeecad56f696e74ff72f5b2d7758b1c1816b7bd5d9df3ebf9f555a2a3f60897c398439975cc460d1d60b468d12fa895b3b45adad6a4039b7aa8642c1c38355533020000000af3160000180c08868322912409125d9c1a1400126082665a562a144863912086411c0632106390210018008c31041965684a2b5044f21971936d96189fa0d60c63658978a1e2594459aa95675636f9a096b245dde85537ce538ca1dc3c94afc4e81f147dd70b632971da20ae76153d0d90d1e32588125e310c1f018827b4440160d7048250e0f366c4fa27eabb0d9c70f9defd5f15a0208a6c003e692b0f5aa0b6e3b88a5397e6fb9da41c42c1125a2a36ed9bc626ecbe729e7dc996cb8c5f59a810325f98fe78ac203111aa1182347688ea792dbbbbeaeea222d59099ab3cc69b13a1904f349f8d8c680359c28df0b28b11aae51b965949065d3364118f1f064a79a9da78f4d97c2171354bd3cfc5b13a42493ff6369a222d29a583a1be455bb4f903f08779132bb58e50f4e326990dcacd86827d4731323c1fda9209356874684a99504a8bcbea429f7fe797614635e5aa8175ef8cbee18f3f0ac17c314d52bb0a4536accbef231aedf055a8fc2f72bc5ff8c5b0c102df60a6a06241ca599f80a2582d11ccb4352723a56fa361611f88cecf1b0b4970995e5fffae12160afa1e86b76a299348c20ed1a5a729bc15d5b920b6f36440f5a1114c5d3449a8643fdeb80eff91f36ca13478589060e5f495ae328bf4b073dbdb3c908382de42e178be887af916aacf58a2e765b10aeafbb1c04a1b055b7cdd0a51c25a9ebe4785c55072372099df0ce534d11f753cfa97ea00527c4ac8d3275e23f575fa3d03290cd88413ae29d439ffa2cba024ce1456c5271cbaa40229384c42da92d0cfc5e82edfd8e50fb3aee98467989281580e1448b92252651ce0f2e9fffdd51407e87347c1e8530de8f9bcea83209580b7eb04a99369fc586541ca2328f6fdf3adbdb3287d3e832e9ef05fe914f0c2fa35fac2d38975bfb0d09a2b9ea0484aeb4268a1246d3221d66b4811e804410793cf22464f0ccd0b3a251cf9af02f80ab7b5cea586946129767089ab94318c9b64e88a6112c5063c624d114370d20c50e11273cfd893a634d409aca829dbc06d49939c0e784b7c2661a028a5fd34794b12a03556a48ccd94d7121ec9d233c0f9a4b20ffbbe53504ae396a5b70d6bca32b0570a0e8fec15d5812e44c7e1d67a916af2dd534911464aae9e81e508acab1ac836892b8de3b4ac6791ba24b656003a42b5103b597c1df0aa64ca1146aa8e02881c365027ae55e4dc6b7c18a423fd108d413e043d349f0039de086ef2389f6879325260b0bdc1ed8c1405e3c221b2271c3300d03352f8f4687b5a804c44ac231c746e2355d1a73e04bf6fb0471f5e7fb72c1e2f9d5388798f43db485555148c9a178e142f41dba8718416a71c1abdc30e82cbff86d48ed46e29002f52ce2345d80ae33561b07ca4d6b684f3e6fe48bdb828feaa7ce9a2caaa1f1aa9cefadf3a440ef8744192049a08d8539054da732129632f0d83d600702292e2d10b37148ba47691186d936615d68887a22c928ab9e52b8a3e378ea442cb01196895c39ea5f45bc4d36bf274e807dffdb2e1e70b902b92d4c0f76d0f3f3197466353bc2e310791a438006833c8306f29fb358423b759325f034a52e85a47f6f8c92dfbaf80a9ae98b4e137f4869d2cc63b8098c532365081ec108e9447591b25351c9a926285c32b4e2575f624052b295110eaa1bbc2bbfe032ba9855090693284e1833ec9261bb2e3951486803c2134800f700fab4b2e40805c17558f7cc527b15b5202da7b26e36f048acd2d294123952dd1eb96d4539f25d5440cb6cbd3010aa5c1013e3a951f6e4911372462812e297b516aa69794641711132cabda11ef9577d16672edd7af96b8bda4006ac5108629118eddb1f33861523331bfe38a49153ac6d339981453a078a557b2284de2594a60f2aa7ccaece1c0b4085eb5b2885e0e5f6f4cffab1c8706c7efc006d919594c6a56e0032a55e27effcb88048a2503c21a02d5868c83391b193866c4418dbf3662c7400ca61f40e8cdc2114a77ab7551eec4516444ad93f1d7da687693c39cddbc9ffd04aecc8cad239a419382f9a413f99e81584310fc5da2ed0f9b5496cfa8005bff166a0d2e330391b599779749c5cd92343215739372d2847837b6e7be8e0d2ab8d8a4ecfc7ab1bd849e64eabc0a3046f27bf8bb5aefd9afd779e488d7ac4e0179b3424638dda478092a68cbd01a9e4d2a22dc4dea39f5c5b79cdca3212aa926b5fbc4ff0783c3ecdec90da397c56922e24a0773bf00ed26657d5e5d6741de65c4437deefc53df199dcf91abc986d12b6552468197938225ac27941b94d584725237e3f8c38f2f78c65db417d6c8f075e77708dc7c40af33a8b5cf7e474b7af36ff2f74237b59d97e9e265b5e2b8aa19859dfd00f64e90516d27a5a25d16db6eaac356ceead90346da4975d1db844b4fa99e69c6b01a8356a66327b7dfc6d3d323101cccab35d0aca856271a79e149ad1e601ebeb4278c6109972dc3937ac772a5eb00f8a506195e47ade55dcb3c29c5e74995da481c470d382fbeb1ca4f6f45033761dc36f5c8f57f52cf3a6da6bc8863920a2b502a5510470af3b089506aef1decb155508af10103a1d4ec39e36771a19422c3b0303894dad64a634429c167d883a2d489bc2871fbb94d37e2d4c362c2cf0cbf06948eb08f529531c568b65ed1ea2c0eff7f4535de4829c41eeaae377392de32b0d06b69312952395c1209b7d8f489d34f311a330ea1464ac14aa2caaefa4cf30718679569f6853c4bae94c2832d6b9c7e32441bb6c9875c2935a4115b8b9eb04d1be69d5e2eead738a7b62224c566af0ac71680cbe138b2d95b30a033a55cc4c1f84da953d903f0818280f34a7a8aecb1dcd18f0e0dc8c737536ad16fa466a5eeb5f411de1f80e82f1ca13b34cf31f6004b00d19c48deb97e520a8c60534a888cb934231aab0d78700a2ad5fc4b903fbead161237c04b542acdc076ff5dc4ba9112950a1ac6bc8bbcd20d58a2521f232abb161fbad17d8af6d44911955a8f2fcd4b75cb01139987362d952a26af4a610767452bb54dd01f032626b895da8bc0683de535c7e24a45e267e94151e96932f03400a3335738dc7a1af2b15ca1f67d853a3e10fc0e4a39517bd489fa649c1577a7f7684ea232307c4aafeb27da7fe19d788967dedb2597622c2a1fe792bcc0026e6017cf745abdf947dc7a8e7bd4847c74da2dcdaf6294428ba90f513cd94493dad4b4b39f750679947065e496c10655a3607b61009608afaa9b4cea42565d92055936860d3928c29e2985b5a754988dd4524a569bccea81166111a3c85837af14c7c0e3439ee81e229d028f939d2f879222c1f0a88a3858749ea456e5a290c1ce593a3b7bf68d2946aae4f7029e4152c1fc98cc5ea947e0fc07889bab029b35cf447ab8cc0cdf9d038c68051bfb08fc1cd912d0b0484a4f7cbc8807f91d6e90b879d397ec7b35078ce8c90265b8a1a67b62972924ababaf7a081c50180b7f05f9bb29c5cb6502b8b333167a5ca19703ac42d59719fafecfb00b5c82b0bb6901fd7ed164dbbb061e208408b387f8de9f9dc80118bd1d7688f4dfc436c6567eddfb50f7334d08c5ba7520257e6f45f40df7db0fe7feb43de4664b21b240178051c48f58ca5adffa2962cc2cae086d5c8ab50d2db0ec49b89d44b16f3f2d0c84801c8b204eff314db1e5b5a0fdeb96584188a68895d2fc4b997ea9cc3fa33cf60d0454487d2806cc89ea647876656499336486b907c439c30b26da7846fd53b78bf7c977f996bd0482433db5c7609305b7e9bac617b2ba91692e80b0192e98f0c8763d91add9e5f7623458b23e939b687d10259c98462b3248c1305699490283b1ea0c52d88c556790c030ae3a831486319529431bd61226c946b2a75f455d2495941f41cff29ff9e2b7ecf73b0cae1020312ecaa288598f2b6abfba5783f38747b420c96452f279b5ce6b997f83106b33f8ebc168829ecc946fb90a6929d1d3e5c75f1309a060784e026ef5dc9adfcb14b1ff2770695cd67d1fafb431be301c92abbd67378bba6006cddf1c840a91b50a42c61e8c689535495f1d9bf6985e80776c22d29c19b5e48ac96ba5fc8a261f07b444490c406dc1603706f415b233fe2677fd14f5198c8e3b2819bff31d167e469765e7002fecefe9a14f207f3519224abdf02d4b30f87150a2c378e288d78e1c604c68aa8a76bd50453faadacf3a424a1a030ee895bebd9a1b4a57902c1d90c27dd8b5e20f343746514d572225479c3eb45b88621f43c1f8ad59166d276747066099113f1182d88609840b8b2bacffc6f99e58d7d1097dcfcb0bb79b3d0a1573bc9156942765c77ba50a7f9b157b0dd7e5524332e369f6d18d32e5f677ebf6b080485750cacbde54227187d395e446815fb4f3d736c29578c965ef67975070880cdfabbbb660fd26f158012b5ae442c09354b4bf442276ea6f5d3d24a135e768b688a756cf470d0b77d5eab13e1f06a7a58e559dd6e47d368426b751f832eaa32e1f6b8eed2745c8ebe429160204c154b75daf1feba7ce2abec75ad663dc39702f75d5a3d7eb528f539882e06dd6e64356ee8638a4d98c5176c88a59d44d31ae77455000166f5fde87d48aea8421dc51c748b09e57b3f189f4d3ccf7e40ca2f8a8097ec846fb61ef56150f649d31f5dd50a9914c219bd642f75cd25b358f0bc5c0c321f60aea3bfcb3fbb6474498518be4d3d9aaaecb6fc49e505ad7770cdbf59eb458df2f0ae1d7b715cb13df37dbb4bef1644535193a63f9c2be79f0e6d863097e67cddbfb78e5cabe5fcb0b3166c6142f1b7f3f97380e90e9c401702c12ecb65975f25ab44505db5502007363a985686ce3fc669bf85e2e72ad5d88e311135424912fad22024404732912386e66847d0b6e6e1c6e2ffac016847a26310703a5087ca954c28667e4ddf8eb4c43c91709d3bfff918868c071721d1349b00aae3ae70e309716ea4a060934e39b08a07bec5896bd67c0ded3e35d2102a997d2334a5cba7a059d958242a0fc52b1b1fe5cc8fdca458471240aa5056ec3a59fb01718241ba0a8c2942c828db694084fcfa375529759d514a1a6409b993cd85325490893e8f63b0f94a03361add0a2a3b02390ad8c1c7f0a70a71b9a5aad0029eae681f26b3b773728d828ac6e2566d617a4d171e6e53c90d9acc876b248fbef81b4913e717c11a10b56ab36c07863d8d18209d0a127ec1339867d9dfc2b9c228168fc0699e8e1cf3501c6b186dd49037f9a889151a72b45b51dd378c56840c6e73dedd8f767873ded83aa3bf4b5fb17dbfd6b9bcacf8a3e8baaae9875a48154617103894091613df5ba6436b53df7958756a286be69c38cc93d6a4df4492dbc5b26c47578ee44e5416165d41fe79214653d8b0a5f97d888cb2be3c4336bd1b08219358817089d89a889ca202b2429ea83284a665854f13543556f4f9218754e18a3f299807a83094686843ee87b6e3286a18854406819c31d494c7452d075dbc3d353144033260696ec1aa20e10c37805903f37a63e1131a7897a2a014931400cc95617cc46f36645126b4318e2725d48625abb301fffa9eef0d8e6798f6460360a12e1fb9b5410c928c600c8cd27075534a5abea9e7598c9589d79f230aff80569e74863529da4d67b7d6185ad687f999f142607ffdc1fd98b4dc2ca72e275018ed24541093c5618aca9a3618746704eabacec3b8d4e75895c402fbbcdc9814c65a6ea706692b1cf7311333f149f9550998127a184979bc54cd701ca645465e6a3f72c7f0dfa4c689799b78b4dae8da3e0f480ab38342033d37c132cc7fd4b715698cffc3d0d89187b537a9366a627fbd3d22914ac7e648d33a365818bdb798645a1064060a4f0e43b50e7762451ed69947b3ad2c6508cf176eccaf4aeb70331a829b4f1a49a4e99d6eecbd63adcc9a85c4fa56f574ddd651d81d2e24eee4389d0723586d83db6092d6f59e2ce9287f2275c2f2cb62572679a6d6733b62bcdb7c7e1e254c7ab943bf534a2a533de8145d5365ad9ea3418457fd652a49911ad4b98b8a52eba4374b9197c31c279a53b2997e2d0bb75c7d82973856d30358d1e3e8a2652d7782a0042f9f3f4ded5a6f7d636bdb7b2a87bc416c5fafd45263e6da795bf071197f0f25524c51568bb3decae4c8a036bfefa97897df52a700d2b60d47d7f2be9b179a79c50312bff298acbc5db97cc0ed0aca7a9073df9dc5e1dc0bc1b3e00afadc840aaa0f865d9207050cdf6f4b700eead3e9799cf354bcf55cf962914dfb7873d238abffa66d12d8aa788ae3ca3b585e81f741fba07837468b475c0687713b21ee1a1141f37e6143d6265d15b599df47367d4aab55aa517d72b7a3b2fc58154a2cac3d993e2c834c14446319a1c2b4806d95d11a31d567016c95d43469d5b168a7f28e7db287781413e752ba22d424e4247ffca11000e954bf0fd1a2fce08aa8c281050501c398284971e145c1123175d29f7bbdcec9e70ea2fd397ba655a097465a2fc899b1d2bfa1b390b6c24f0e84a062583d82dae91c0557844cc0c2a4c8d8e2b455d393f914aaf5d572ad8a848ef76b5e111f00bf9e4899a7b9df88246abca6a4dcd4993e876b6d1819cdb26de44543ce1c4b71ef925483ab610dbc1e8373d7a50cba9f089ff6e80183ea6e24f4e36ef4e287e71f08d50a82741215f1a52fcffd513c92df076d81407cba58aec3dc5779008493815533cc5195b05d86e15d796e223501104cbc71e5502837221098ff5be12447843dc14c7c9736a54bcc6e471590c4bccf7b513b8f4682afe814d0f544915976a7a2e106926c249cfcd70abc10e15272b1ce3cb0cb9a3ce20151f01e01aeaedd996a11ab19e88457d530e6e062c9fff7cd1a838b05e4b020290f75f30cf3edd0804d1a4f7da6209688463d6d1f49a7cf79e23e60ee13e155f105e559c77a807cd6a157f9fb08f3696593360e6de40382f5358eac02afe25b2f76276f5be39f1df7e151fca1fcdf0663b17c82e491fcb5a9db333d64f7c8fbf34d48aa834177c838918496bd28a731d0bdbc1e463f94c23555ae2a35ef1ace21ff6aebd8a83bfe63865c547f555cd7caba8e8dcd1e7a09d29248ae948732868f43c595f147349b24c8abb0aedfd00310d100d2ea0e02929d1c9b2cafe2ab4f701c474407470815e07e26a165c5ab267646c1e953063cad25044ddb6d5891d6b1f395616de39eb382ed8622b542a147825ac6d2c4b6cc82db3f27457f1ddb16575890ae70997c5232f6a30fb057d573a6cb29f4476b1ab38942962032de126dcf2db651982bb30f0159ff22a1e7f86b2219c6130c2ce7e2c52a2217b156f027009688edc903f38b3cb7d14db0328b03c9e644813b8640d314b22f1757951c5b3a29b40d914f06f07bd86090979551cb0956bcc55fc20d2581d2b0e77080837cbc5c6038cc27492e0cedd8a034d575457fcc064f247ef2c49037ee65705644869944cdb22ae7c514cbcd24fb260323badb64f466957db41a48210076659bcf81c3257f14cbb96c0563c383a573c358c74e115673d88f55f71f4fdee4f8d33de062b8e052a237ff3549c96c6e6441bb6e3a7e4aeb1e64faf913bebe3b47c48637129b42f45b6f597d74cf4e56aa8e5f881f285077b37ec99f1527f0f0d7bff59165f733250f7ab55b1aac5e54fbf33ff14b438a2646a6917ab7ccdc2174c801677c8a4491c22236a8e708acf5e1d6fd5342f3e218b1b8ca68acde2b88622c26d6f428b03b7300d1f6bb9113ed71d74a93042fc6de3513df6df862d0374a39029c902ad25c4542acfb7495169f124e055ad6560c53d06c004f53d2ae39f425ffaca11b1f24701b9f82a3ee0b6d15278ef01bb2664e3c7b7b81fc0af1902b4a5b92c01b70c0db009c62d204d4e09023fe83641fdd39a37be064ab689e6fe43fc3b1446db2406274c0e4b347a798a47ad9455138732cb8c88266c5e24f3ca82c505cc37b4d89a99c741889a000c17105e4d6087481ec635e103c0b462c2ea433ec579471cd989ef3996038db38b134fee45db29a22c56a5a01b56fa276ad8c6388ffccd09e2cf3ec33b38cb44e85819d38b00959211c7fc1fd7b2b0a45b2832015fa4d28d351dda0b39b0fa68a8af379507bf14eeb44e602d9d40d7f4339ec04559ca7b617176a41932efc33de1553e3de0211cbfc0ac2c0ec06bf58700ee694f6eaaa309e53d815166a5ec06cd1e10e5115a867cdd67287bf213beb0934fa3cff88d7f366b811f425e550e475aadac266a8ffc8476336621ee3ca01e0afc0951520e6db757e1ddc8c29a71fd3f212b4c7ddc6028341a5c9262b1ef2e20b679ca70e40d11169b3c8001cd500b14886f0814626287d8ffc542860e65685343332b145801086fd9274884eba84c31f2ca7a4e816e0bccd01fefc7212d21983d68ca48a7096eb68155c1fc7d0601318d60562eda2ae104e8180972227ff19e90806725309ccdc3f735282ac13e5161d2a518af8295ea1f83e9edb89c580eecb17260a80d80821c7f04dcf53a4690deef1b9090edd2360650a30c4c287793c10e03f679a105418256ff2c5db85c8bd3df6ded9709be83045c2a3b25fe2296f1901d0d5c10b56591008c85a7e2e95cf351c72261f598914016ae6be248386aaccce0e0a6073f12a4d8bfb849501b07cf51315524417dab5c819df6945a64030af93b1a089b88a3eeebe84ef1129e5c9584dce97d3a650f8f73492269a49260f6ba24f960e6c10dfb2a097fb3a3d1c8065a12c08cd2f30b5f68969b521426812f3d0ce8034a60d6300044499854aba8394fbf81f4a9350913003fd333adf439bb3f6ca47f47e9e3ab3cb04df606ecb004b437f46f709f11380949554900fc9d136ec570b4922b8a874d4f03ff78fc8699026027e101b2088a7d0c48f0269275d7c1b3b9539b4473fa57899cc3e930d304f01b5707ea5222184ae8145902a7bf81e240f541e6086448226cf0524252f187d9fee1d2c6252024366cdc123ecb7bb7c6ea1259ae12fa1b2fa0039580bfc3b6450812b1fd16038c12595009e0e0f72107623d0eca9c3cea311a2ac1d98a7f268174b1434e062dd84e58098a70892ab5cee33fe18f9dacd387c17b4bc611b0045ecead3100470771861a8d35cb80c16aecf6b9efdd0caf2ee3b65902e3489a962081c09b624b004ddac80a8ed4e75b4226b741b9043152deed4e0fe9e225ccac2bc5e01c1c7b09d1b7d81b9abdae6be9f2b7bed773199430649e99ab294889694a86317f82c3f1f3d8d97a6eb826e3ccab65a5f3ffd0d18e84267bb73af70892806e4a8c2f03593b9270cd51d34cd4f9c946753185e664cef8f4b860cd6c0af5aa85c824b839903f78b834a8c1d5ef46a441b52fa05ffce1f08db3ca24089d042550448ccb8f1e49e455c49ee64b889adfc2e362e51db742ec2cbab6544bbccb02f04380a72ca184c701f8865c9915bdd0333a4625abe3b9a5a20410998c7a8d76a466e040f5a2845721020fa7a439475fd42ac8804a20499cfd185980ba30c0f06b693a9530fda50c07768137c8fc95e62e9520064ba0a6124e38fe4a6260893dd451c2411c2dd0cb8b0153c21ba3e17e80958061a01afbfa0a3d62f4d2d584b7843d4540197db622e693ee0b959718877209c96aaedde2ab347d280642286a3a9469355710b58eebade9094be3684c5a839e80638f60d3435fda54da69cfa4083d67361d5bbdd32698504b15bd5e4856f525549255d32d6c4a1ff10781bee950aac171e097d2d053f42874b31d920e713ae977b9934fd571fa4158945a2520194990b42c7e20a559b991926597f0a0b7f430d337d8dc64719bb091834f9646e57409426ceb05fb7c596687392633598d200fddcc33a70324f3c1ae0594ec9fd4008701c9081342a4d0e94f5dc78456152f9f892c0c640bb4f4cb78c721e4b4f0b0e6845de6cb4e6fb5ac1832b92aee740eed3b5d038e70a44e39371625dca28089eb4d2091ec0b9076c21ecf25d537539f88a79fc9272f1afeacf74f8b0caacbe30a4db962fc6b96b97697587458b74f000d5355d7dad35b76f7d7c955f0e926106a7a76d35556396697f0d32b53408c40713edd73c0e4f72361d82943dcf1e8239fc2628d9f411344d8a2febba793646ff9d818705b558e5b30dd7628b2f9bf15d8e0748037c836fe1bfabd5544ff9bdd2a55ec8d8ff0954f84c9f1cfb9edd889b18e4f4a10ce9dfb71f24e6def78c1d9035a1f6ee774052b576eb51c5b493d6a8bfb588e9631a4065fe078b01d21804ff8a567b70dfc7203f023a5f2cbc4397a745d9aeac42aee00ce022d8b0d197e9d4a2fa88a9c25268e5e6982d50ee03ccf4183152a0904b83ce89182b91d7eb586fdff9da48cc9f82397026989ebd12a7af493aa361714f4b299591a37852a3b7b36d69c655645f788eaf6e3ac89efd59c37e79f34d86ceda9c00abd7e17970c62b4a51c9526d01e6949614c71ac5ed0f628b72d73f639eb4a0f4603b43d727875ce1edceb9dfb21b1d7c0e0c202f7e8dae5f8ed774cca5e5db587f5c5ca66b887b5e55b1f2a71cf2bc7c4bc4202996aa2381bb8005fe466b3e78a09bd271b6e76aca52fadcab9079baae869f884ee01aea36305fa7d696823e91ebc6798189dee5971b62db41d70455f30c27a97ef9e748ae4b0a0b6c9ba754f29db68ce4cd0f4ec199f2178cfb0013a31249cabf4cfdfab320e9ccf3530bea6925195074cccf3e95b48d2b0df0bcd3bd2ae0a8018ca4c15df7307e92acfbf71ff4ecdb6f9b91fbda23ea23095e34ed4924403f2f7d85f72e1b320192805ca3068ff3d5befc9b30e5e1ea566d61e395b3d34f03959fac65534083ed894762826c79306f56ba7aa9cede043ce08a6761d1b3e90544d9d217bd42fc07a411789919248d53f9f87ae46c341420d74128cbbdfb0c3479cec89997df8b08d5b6d6e761c9d33fea35ddd5573ae9d699699611e041a5dd019d897d73b521fff36d44adaaac6d9c661149c2c685d18132874f1ed004cc63ef9997a7d97efa4142a4890acabc9cf84531a9403027f1b15cc887a920423a5669f208e6cc07304724e3171a4cacc1abeb4be29413e821065179d19138864c8a304995a31202790b314372bcd2aa04a4c673d4ac28c61a63843f3f41943a2e8d80c16378021134476d6b448169e893661936319bf1a9a0c21d61c8cd58f962731164e5ec86e68f8602906883b119746196aec30e21cc4d2707219a118d759f5c134685a118408032044a04466a0803df277ecc398bdcea8e33d2e66b1d2b415a5cf2203a047340b320162196fe82693a139177aada20eede4070792f790659450cc5716da8860f9cf0c8a8b39e63c7682456a979db671d32152c7661ee5ba9c75554de95516b1f45409cc4b2a8125b0573e5dafd4cd0c96fb9544a9965195264afc8cdfb183e27b81c36daded430701b9f43067410c97aa6cdce5cacc9c5a328a6118cf3b7a8fc7f4da24d8058f4a7766328a5d3cf84d8f279959d9bdb18279c6dccdaf8349ee529c02cef14d13ce297568b36ed46230cb325bf86a1f43f61a6c48372d2c0d6a5c919c7f8f71fd171a568554a0171754b7030514b304d1a64c58ba1e7b915c1ade34478aa453c52c8804dbca1419a53f525d2c21ba5f5606220b057109bccc228347b8849c5be1cd2718adf84c89ac6945f2fd5465b36b05c2636acb2e805849d61f1f70e033b3a04f40d9df215bfc279646dea5575567a7e75de8cc2c5664aceec554ca8066f2cbac0ff66696636c997deffbe44c7d39c879a6bf4c635f6e384b0ccb53d6b985037416264e167e9ad874bf2206741d07c455766b62eed40c2cb567d19683ea1c572f165d50e18024fc2c4f34cd31bd7ad68156cd7d7f57a7afdf672cfa7b1cf940cb6a1c104af9f7649c17b4a847848576d1092d5e52919bbd191d74801eac40b4e047c368b26821b3f1970604ad67710be971e77199ac407f89bc7f0e7d2786ef0063754bf01bfa4323f6e13694dcdac6f6e72fa05d82427c1eeffbe6938d43ec2606de5a2269736241a3cfb9526ddd366f25fb53a08bb83dab7229fe958c042d99959d6c73b0099ae2a526b464ed01b591247d36c7a66ba1c6ab8ab2667fed07c173cad634a7f557d9f4ced5aa88e50921297bd1605f14f2b48ac5af0c1e58551795a9175879c20370d403190e63049969287b981483f7e942aef3c2164d063df4ac978d1c1c55f54ab81c3558fd759c0c5683f7792586f3f438a8dee4014ccb7f1311e31bea015468ca83bb628b1e2dff1c5e650637afbcc93c26f381eafbbae4d80c6b29843c9cc6a218a3d82bf481c79945e5852fa2a2f0f0d1f896fd49dfb34869abbc4601f2ae1406ebbfd08240411308015de39a3c2a122e08dc40261f3e0fd02971a4c97c41a525066b9d10c349e5e885daf468e1f1365040ec20fd19b8d2b66044c86c20f6ccbc2e609a3d5ef5b6f47440e136ae2a26c68479add601d94c4b9e1f87db464b87c15961997f6bc3fb9383705b08ceb6e812e1a77d114a37ebce4bc71c068a8d3c26390c874b0343ee380c8702e0e6ddd452d88cc3480748f6b977c8c7d5b8c3598254b64bc2e582820a2d67293e40c640fd705bd4f4cd8aafd9acb7e4c762dc610499d9ac0f81bc94e387b33cb2fc9ecf470eac627b69a55e71a5f1f737bc4dd686acbe5c7916a71f5f1a1d375aeb0ac66c449a7faa5b9f1ee6fec04a2b9461a19e2b8c0a0d45844d0b4634b72f86eeef85e9ad81d63b0bfd81c84c9efc438d1724f54d67d964d0119cc0de66b71efe17b8d8e2b97dc15f0f2049031a8ba0f37a91f14239d54e467638cbbeb877bb1816d60e03e079151509ce77361b05858c103f9c15a124875bd465fedf82943ff0b736162d3138e84876aae2805bd7fbc8febb460c554b6c75c30d57951436acbdebf5538bc8df7d813a13b9a27ca701ae8baea57f9497835e7c84ac023600b6f78a79e75a846aea0e4503fc39d444741f965a66726e3529a1db9534c179489be0fc205914cb258ff841b6d51e01aa6c908beee8110b952e90917f534e645586e6e60aa693388b82c4be91063b689fd0cebf1581285deed7e482394e232171161ef7629fadf3a4bcef54d02072332189b3b65187e10aea4ea2c2a0575f8fefecfe45f47115eebece652dfb585e9a5114048cfd5631af9b10b8b015ae4ed8b2adc10a0816113dc75224028aa3fc1925f41fb87347a3b34b6a669cd5d61622f020bbb7122efa597208347fe618db7a4125a26723131bb1987625e6289cc15425448ea8bd7bbc48775bb814ad992f6841c513b531f602554540ddcccbb1d32582ecbd7379f28f13f355b7de4daeb5adb21f63886513a8323a90aa2fd55633393ecfc8fa79a673c65ab397f96e0e4402b67401a84fa9a6b5747e55a35911ba0645c3c23ea340a3be36207e69faab3fdfe195374d0c20b6259603c983cf74af96d7e25d39f74884505df43665d9e709f44d2f88b11008ff89cbf9179cf56f9cdfcbab27217fbb8b8f2ab6c83acad74a18918c139b43e883eca6727d60c7215b31ea5fdfb82438e4db2f83f3a4e914f46a9085c4da2628abf4865154611d0b64858d6eaab3904995f3d9775a4859971161b779b6e5b781b0ce62758443fd03a6802c42942821d467c5ac37e19e48211392724b77eaa1ed16110e06712107344dd5632e76450373779bc86dd63d75eed18882cdb19e8ae2db2c37665e35f14896629e41e2f54bda097202b82a4347387b18bdd6d795133f2858fcdd6065ad6a4fc173418affa38d6396e4d31f49164d6051007eff0483b6cca26e46b618fd1c07e28a6687bf58d6c168d471bcc47600459484989e55d2488122e8c1266fc4ba5b484bc6078a65e045236fbed2ce7ef3281fc73aa0a68869adbea8e12a5e50f604cb4a65228b105cc3c9db352474891c0baf2648db48e3d0c28a2bd947ecceddb1d236c37d9c7892281cd5012f09f5247ea65b6adfbb7eda53088eee4fd259ac61bd5d2f5a2b750e220a5e987fe32af1142508b72f050a4093a4b4347440a908130dccd74ef112602949ac4369e6508abf3905d1237061f473ebfb391fd16911b6d5244af7005154194b77ce6546c955a1ca1e1082541895d291b86a9c1c156632b2a0cb84f6a8885080071d56228407fa391f94844454a4c344c86319ae2181e46d0a8514d97d60555e01500ecd3b463220ec916ab5cd6c98c132fff42b3ca374c9c85562492911cc0e9102acd2a53b4f94facbf829ee9018ef81cc16d319bd8d88c56e2ea0f01954d5a88d56f026e1bca321640a7ab72d4e7e98303e39650a78fcc0330f1e4870ee54f74975795574f74cb301f3bcac69a5a8f71fbcb6b11fad85d9405e31a0c07f9bd135e301f2d7a72b87b23a65085e7340bc70d3ae2a3e5e0badd54994143d6c3c5309ba906859a0a0504c39496a604b3aa4ed61fffc409cdd0f270264a7f4d0afa60b920030ab304bd51b584ee9e99eb13021e43c47c66e4f9d8d915363e9c5f55a3e487aa5b981a3f1022404013ff9a4bba263a28ad2b2ba8aa09b040d1d95a4768fd53975f993cc553a89e8a2b8e426ca8b0d7e931461e53a0746bee135a1244995138532547423b7a58d23294a4f584f30baf604301aa8dd6e1d90ca528a304565c609e0d6b43ca364f320d81a9aecb1a342be0ad7c385932893246c6cf9dd7427b1b6fe9f654a0c1ab39a617352c66bab10c29e687919f5d3e3d0ebe299aef6411bf683bdbfcca33f70c6f9b21abbe2b9abe4c9995dc518c9819dc76ce382e19c5c315583cfa0c0baafd35123e2290cd5fba2dbe61724199bb705801795cf2337edd77bc4130ea848966f3824aff16fb51d4729223f925485350a9886f747250908e467afff2bb780a650f0aa1aa5c74f61f92be7fd2f9527e89349041e3c6ade9b08a921c30f84906645abec407f95cd06f5d163139540e8f2d1be3609a4eca52fa9a17971431945c4a4860859798ed4906c76b205745035d68f292292bdce4b9301a4be160b40a460de6edcc20841fca9e41a6f7ed7733ab62ac33dbe5e6ccd75578e121346c807a32ca2a50fe57b036512d6b36e16086463c85455f4f8663685fe58d03c89d87aa72db1470f79d8be42c5eed0759164430985c8c9d802e18ecc1935b35348210fc9638b97da0eff4429499d122d811b0dc501fd7a8b32d99b44b29325e21c18a5f7edd97d37be7cd9c8b61bb7e90e6f60a0b6a2e73550fd2bc1f9403be51059140d4ad7c87988b563f6f1503a9e3c17054c2dc41d2a1924b1eaac688e4d4c3857c532860de1a065a1daf8c11d841fe048dfc9892bd9bb10ef67809fb87ca80581da4242a2395f265dda993c346649b185fa40488f34979ba16a510fc3b4b93e2baa953fc4dd4ff5ea2ee1d5fae6fa90a376e7954b447c81bd2331e778d5f27882037d307d0f194e59db7721de5909a925eb077a6839fe4497ebec9a180c353ab10e2e0e1c349e1369861f872117d143705f549c7846687478da2dc1d026321afa2725e6425409b00fc86c97de7617f0a562a9d9256c5e8fe0c5182173b18ab6c5df9c4ef451105f0e5559a2fd2828d18b61a5521723002ae10a6f2dcfaac919633b5141542307e464759c953bac8c790ebb882569cf610e448c572de9504db7c6e3d40dbb5bf3a978ff045dbc61862667b133e13b9e327c19cbb36e719393fb20fcb534a31847e006a044beb14624e96068ee51cfc360080c38d49d26e12aadbc57e31a139807927a04a7d5cefd000640d2b39b726a824711a0b69b00ad5be4a70204f6b7e2ed59c457e1bd6cd97940349584ed9f970bf6b97bc30317eb512bf6143eb0416d881f4ea3c1dbd8964267a022fd49138ed3d5f669229b64ebe7b63ea4cdb7697c21c844a3a423aea039e099a6adabc03ebc21590d2ff279b9285ed5ad9e993c7f561824f198f3739116c6c7ddcc0a9f0b01a99ae5e1f99ae3336b6fb64a7c67bb544b6a3ea7f689b6118619b3d6a0e7a43dfcb9c13531a9d84d7473a5a75819de0da034fdecb8461168dcf305e1a4fe8e6b56ece5ad9bc02181a0328e6be6f7f450f5707682386894a2dc4d1981dde86a406f756d07ea5545b7e2bc34948987ed2da723d640d4e3d832e29fb6795214f853f615e20091fecb64bf1348010847199de61cf5dab074f6437c512257b34685b8a6e077183103b1aaab46af6b20008f9b8830c9971412c274576f6080c44dcd7e4201a5f936097ae19444120e74795676ef125387b498a4ba4bb2b6176d73c787e9f96b4fda8c0017b52fd03b3a948e567401c79925fff84ffffa1f8503a85e6ea1df38b8ad3c08d71663a5e9fe7753e9c3a2ae61c43550d46e090c1e1e6c3b27e6b26c85b8ec06043a8263c64f8e86ab85061c14a210ab056eb2ae53250591aa5b1d04980839abb2b55a827920116dbec0d678e0feb4530e3a65624a3c91e97ceb5f3be14151f332f7bfb3b0294e6a46601c7e76680508bb3cf12327d6c14b08f9121ff0ccb4bc1902c6da71962faa332e9cc935fceab2ea03894240810fa84a6078431f50bf8963504bcd4a5763fbf6543c0355eb5cade8ca2c0f287e04dcb15d3c8c1de37e51591c258170876518e750d6568bd08d7d1584d4e582a3d0d6c940fcff454e2d89667d395a1682b74d30bad08da20222a023f473015b327402f6730fda369718f4264320694535daa57d0c9de02d61124a1d5dba7ccf6b078aac1fd02a37a16b933ef021672df26c18140920d49144506ffe0efa5fabc019100d66cf92a1b36e2efdb889ba4c523a738d421a2489cfeeea1505e98b06a177470fd9ee70576988955f90642c994cb57312fbc6de1a9a124ee920830c2a5abf4e84171dfc3acc1938f00d773aec9c8850d1550bce41db1ed62b170ba2e8320e749f74fcc3e18dd4dafbb155d2bc16298128fb504eb4842e8195d807182d12e8ab7d5cfe26a8f3ce7755055ba53e13baac6e760806c093e340182645de4acb66a0334b092388dd9e4a94687799d1d80a9fb550d0099e56bb02934c0ffef568c2d9153457f1042988c289ad3c53030bdd0e1115c1e9245bf3c9828229049d00a08192eb9faefb855bfce04c18181158a59569e7ad73c59b44ab92409173a61d64ba948af70b9d5050fdcd9370cab6804a317a40470cb15c7aeeca179d0004af711ed0202d72d149cb688b506058e4db694d874309d7e3c14609f69d4ed72cf1c14639124f1f759f0dfb702e716e5cb3083e8394afc73e989e56094d34051c107cf993e2860f7363915915219d48094336438e457c525683fd05dbef0025962114f1ae2c5991e78975c7bf265265abc08ed83b0809324bfb3be33bf10a6a284d5e59380e54ce3951522037400a0bba1acb6745d5923e83e420993a1020055cd40c489880ce2912fdc2568683bd7f8076fa0feba24752a2cd67cab172772046cbb8ac42025fd3919c14f87ac79ddd85ccb58418f76c87a6f4acfa64314bac8f1915ac1367054d977248020808cef0413d4d8096a0fda0d8df1178f7c3e09e94ed32f45e45e7f2542f084592150233d76743368f5bc160438006bd3e55b75fd5612087530d3d3372a62c6480aa6151e38d7a646dab61b7f3c841ac419a59c66a5e1cc81b9d8b40fb9bf4ff03047a9b5401ce4ed085c505cdb8ead24416db2bb7a9522ced93bb2d1bd95bc2df68fc91c4f2f774243fbcf2f0f7428a0ba2568a22d983296881ee33a24aed0bdba5cf0881eff17a8f3393700a8fab3d6e7587f5cb205ce63c47b982ac9a4e7bf56c4541cde3a24f647259897a64b95b90ac635b9add1a6d45c35ccac973ea3d20c0ab2426594cc6bdb403a72120a550d801994de95e0175ee80d8a8803fc14037385cfb3fa8263f364d9790e68f92876577cc23e599956f159602f3eadab027bc8af7f06f5afc42f2c6290ffd3c946cba21df8733e931701c2048772ee162bfda6d009dcc969693acdadfc72f2064868afc910b0c465ae84f8e6fd85aa1ff2f5c752ce2944ac6dc83210be2a7d66e60a1188ec6847163337e70d5337784585c8658b03b8c10676a5593402d26d10fa192f0c219c55c3784e9af576b1e5e3b58d381111f2f7afdcfa6f9c9b2bbf5c11385e854369e63a00c2eb1b0243e5e4094fcb533e7c66bc1d2e7219802d0fab46782ef83076c857b078138a7c450dba8f9227dfde880892faccfe684d9720604a5e24e10f55c45a2f1a4ef897403fb08907d583451c83162cfd2bc42bc444e46b394947932a011b6ca9871a5a01166031361bd1449241193ad9bba34c179245ccf43794f4c92033a078f846465c686bc0195bd60031ca607a376385a42aa5e231b3bdb3cfb1d437f38ae3dbc4af2302b507890ce1303480b6b89bacd74ea4ea420fbb84a7149b228020ed3c28ea02f473791b935110166c7f719f8e501410b7aa4fd9f9445f237e282827f65834b94b770f19be537f0c775b7dfb9feaf8c5fdd2765a17b3ae1ddda928ef9330ed5bcffe8eff9683a4375ae9b31dbc515326f8b07a046b12b1a9c287c67ec08e956b235cfa7f9c30bb9d5596d5d75b2c5220be179e7d61159908b45f0b4c7a81cabd6f81538d3e2e9b75aa6255258b3df1e1496feeba811963cebb6d684736f93ac664df413c0b7ff6400f1e6c5aa37a5fb6225873b5ad7a7f2dd562376e1247df57ed4d989c4b5d3fda5def6f524fbbb1db7f4cc08acda435eff638dfb102c5127f8915f40d12ca52ae8f4bf9d1a9da4331e04bee71bca60435a780cdd40b0313919ff8085a1cc93694897a7db3bdc85de8f18995952e218a8e501b6fec171f128efd8412202179e55a80bed3816602df20e4747f667f3de7fc6e67fe93ec74b47f8159a2673bfa87077b8cba166ef9eb89e142db020284c557d0854501852d2c58dbdbeecf1e29b210dc8104752e99f1912fcfa29098e9c1f4e18a0edc200b3e20e77c5811bba8c10041934ea177284cbc946408038db93eb258594c9b7c3f5f198be45bb36694706bff2e0d0378bbaef55ac3a2041cee27738bc6d05963e994d417c645c64018435b53dddde0ef76d1e8ea3797c8debe1b50a10841e63536d23050c1253e3c0bac21463cf435c58bdb4d8c3767c9376b86e1c14f937c26b87286939f3539f1e25af895495b01b132b236e331f4e8520a81e0af1e38cee3fc50424cb54a14960c95f905a8d0aa87985739bc4a4dbf450d0c0dc2f399a9e27f3180908a5a4735947e18f877caa2bdbc075b7b4fe5b7e52af347e9b800c0ee818a8f85a9df00455e3e62ef5537b296736e8f429024f563a79c08068fc716ea258ae7d0473c66a9c17555c717e55877ff88f7e2734a9bf412fd408d4729b4a530abb910a64e241f1d82bd04a66985126095806dca0f5de26203bc2241db69f1983fdadd875ae621279c29a0a05e8c88497ad0981d36fea20bb81d2c21a89b89dc141c530bf2f598e3bd9fea3e9ce3af7e634b57302de0b170369279e1ec8c8c5fd95b2ba65682c981f9101bde31f964850f1ebd75b4083ee87c3b6f848a93014db7f124a6e9f4a2b070356551b5b9cd186c63cd46a1e6d4e73c6307a9cc5174490c86d9442920bd8b9ce55984b61a19929e666aac4a15402f041789d8cabc4d852e2531d6c8ad6b03655e057a689529545f9e30df6ce15701dacbf7658881d24aa80cc76e72ab6741d4c22f26641b73cf4b7381149940fa9a371822224135c10824b605c1dec28e1b28d7ee0678dadaa5d069c6fc0a661e78d7bafeb7c2dd69fc8ebe561b2a56467df104b97b0f228b3604fa1d6f3a5b4454d1555f4cf694e82cfae6c2b5b3957f0cd4b80c2f0c1f7ea717a10535135046559ab720d206b56ce88c1553856e2b15773c2283b6fbf59c59860f1e7d9f43827c90932b6117c7d4a8cca3f44d0725edfcd9549a07e501ce7d976bb023ac5c6c40b0b749a559c2ba80d897125f45c5b8f22e8ceb854a6d563b47c9df38f3c13260e8904dd7c60088bdf3a5ecdb88603918a135e762bcebc170ef57c45f140b2e6561a82d4935fbc7660cfa3f0b581d8da8407b958ab2e5e8ac31c27704477d3df9d54c51316f76deef0715a7a6c68fa143a148fb37b3e4e3ef6bd40462a2731e1e328360b012d95f3cb7b041b5895f83825b7814ae7b5e9b8815a8d4cef38df88fa9a5ae6c8d2d340503ddc9b4e839493f9add332c6303fb574277ca41bbb982cdd019bb62a06996678d88a86ee3c21d362870fad4d9d54bd56e28edf02749e5353c44b7f36b5144dc54bae9aca5f9721f49902f4eaa3dca3c46fab906b9a65ae3acd9f545a0fdfb2e2d55dd5f4fa0e367d391f3dfdf6275083bc6f7f1ddd22574076db07ec6be594dde26ad5442b812fcf6981d7dc026f6e63716ea725b3732baa6ce49d996e6176953b09840b65b7ad13399538f0f03210f2b701812f2fbc7dbcfb9c9be7e1ad3ce66dee8e05104e86b7b7f33614ddebabda87f7cb771e4fd27ba55a9813cc1bc05800c46cba7609a2fded1edf287395cf77d14673ace38cf7fda1571300d908486028c9add4707e28ad1ed1341b81688967c53da0e15a1be402d550a7ea86e069a9e41f582487c675c43926717205eee463a99c717a453faa8e54d7168bea012dbea24f415ee51b19ed9d748a10cf7d7736959e3531c90cee94d42558adc2fa4faccb97a2d26189a8527f95038411408e063eb40f2162813cf7b29877613e83da32f7789fe9102228e2a3f54b932207cfc5a2f6b45edc11ec230eb5276782501d1121e2791f8a98a9d0d7be9e56286ab697fc9662aca32c2eed9870ddc6cdf0ca534f4b643593edd3c5b81def011a4464f9ba11c258662a31ddb8f08d58606a919aa09131143fbfdeb40ab7a444541728449962e5c8322700758c302594482dc1d52232bfaec3bcda26341fbcd8e513d5922b4869f52c638cd4555a4b17a367e2bdfd07ada5ad92e408180c22646df510eb8a888d40221b5accadc54464064c38f22a3e0a2e55ad717ad263947a98c9505ef46655ffd445210481123939b1a5759dce7a7214bfec95c1d205ec6cd943e24c64106a74a4d4dc2017a0d872b5c316160693542fa8945729e31973e39e954833e213d341cdaba31b800a7a01a32d5765331f93a0ffbd8d7f28ed0745bedc1e4d9c257a76a953647a1b3449c63e6270c7ceb9879ca234d5a613cbca8e8d2e5761684e6a2601b0fe2961c7988ba6a926bc4414a333e166bad7c8d6881ac8af1283089b78ccb971b31e10aec9ba4c57602861f01d38ab727720c9d6b146124ca6fba7edc5d409d835e576036646e2ba1c4c9b7faa60d2c59097cc0214130a9667cdbdea3aa96584cf0d485293150281924d4307ffbf46207e32be4bb5771636ce430441a71f9f381729ab9febee4b9889eead1c4ceb4097f5739faec7bfffa7fd8240fb146a8198276de3f0db166fdd999b7a1a9e06bbcb727592b6c13747bd7742a6de97f2ca0b58a3ae998a6eb6c7867cd98fc5f8bee6ebbe1141e5e87594e472babe7594a54841a38612993bf525fc3c64fe9d4a763877db9f6bd76faf00198e33600e581bf6aaaa9ef41deb8057337d479e1394aeee850d4236189b81be47ee625d43eec85556077be5349b41b0b634a6f168f75c405b9b2938188b89b6461466b52546e71fe036233431cd4908bf5c3afe9a21aaf5a31b77d9d4457ce9602022e0baab5d02f78fc91977933200124665806b5b570b29c60007fe781e0dd89ed3ba1e975022a1ec4459f697484dacbf7d470a353ef7fb71f6f25da36ea31ce7526f30b2bc96136620e8ceffea5ff89ee1d1d237ae1744bcfe043e7d44600f501040d44e3a8a15d63a5dbb5ceb74ed98b4715dc33404d73a8d592cf5568ba5460deec3189e7db894e91e04b7da2edfe5c1eee5a726ab0802dac72bc1fcfb2dc0f241b6412cd984eccdb67b6f29a594322f0eb60e8c10437edaac9e0f3d5d7b2e72ee9ae643eb023de7dbfaf8cc73a19ee73306e03f7de82782157e3628f4b351bb9f95b2532c3cfe089c3ab4f47d3ece31ced1e8875401232f828f7e4811f0b90f9d814d7da7ce225821c40566f7fd8c7e2dd8a08d22f187a80ad5f769b77a57c88cebae98adb5d68afe4138c8c531c8f386b73e8af0d643ad74cbdb14148483dc2fd0bab539bdf9bde0f0ade17507913d446b256105b68e906bd30aee8bb87fdd711ecb8d6d7a4d136c306842f5fa9bb11811c6697dbcc07a7d1c471ff38fa288c3d03f0cc3d0814c3e17edf59339bc1d77be0520e47b89e7fbf73abfee39c64b42289a733ffb8e7d74d1b7affc85d7280487bf1c7237abc055a55ea97d63e00084af1ebcf62dc28f41bda1ea34e225edd72b5386dfe37dec4cd8e9035ed23e96e81e773dcbf09be9352e573dc2cdbfb3fc8df956b3376adf1e7cf6ed1c9c8f7f38b73fd1ef07ec64837849fb389e9d05f51efa503b06f1d77119ed551042ef702b3074f257f6cef25e294fb5dbfb295ca0f60f58e3156b59def07883081c9af21e4bb0c1267bc736ec5697ea07a5cadae0aa12ce3948d02fdfa5ec5614cd08e40b0cc75ffda09f4d71f61c757997cef302b5dfdff8e5c4e5056ad187fa2e50742da24918df51c47dd147f3041be88a28920968465d703f496f5fd2e8fa9617a87d643bb17b2662b3cd194562c07d6cb5ee5b8d94d17affcf17b831e78a265510aadfeb79c309c2e29cabf8e2b423b4c553dedec69a4ce9724d1fecd4f52bd6b1b8a09c9d1c9d13848873d13b5cbf4d41a44edb5f9095223f88a85d91fb90cbd5aceb648d52e5da485c2e97a343e272394749b29a246aa5721ff2056eede6af0c71e82651bb22a8082ea98e503d8885b1ba6971b45b06f6a2b58220fe5608718176ea2e59b7556ffd2a3875ae108224ad33597fb2ee408b9593605b817e81b704d1c5b9fd9fde8678baeebb5e3f54ad73d6595fbbc24a7db8406ba7429bd182a7de0500e13507af31bcf6a1eac4025eb27ef6ea08e5f9abd7babeb7c5797d57350f2b5ca065013b59af2cd373564457b8407b6fd876eef173d8766ebbf5d683eeae81ee7e0a3a9b8697acdb34afb4ed81df936ed3c6f13c6dda933e824483ec1ec33471eadc15edaf557b1be236d57bf32f239980fd3a462f8a82a757c1ad03b153074fd68ed8c893648592d4fae9bbc12020b81297982cc911631f47c798c49125ae0c22490f224dd3be0d5daca1e730beb7748d6eeb38ef80ad0a76e8220af837ce5930e24b100cc0b98eca697f204cb7cee6662dba41601f3dc48526846ea21b04e94196b4a457b30cdd9aa4873f106136495b62377fd8ed6fc4913eadedc7c1934beb80115aa310ba46b7765c6842a8bd0c7f2042af660885b3f6e182da6d1afe6a5dba771cc31a563c4bd4545891b28211245d62e18526c694902c8052eb153b2df5d14366ac0b8f1a28e906513162d04982042caa7ad940c1cf5e6494d363cf1b629cf5e3c7e1c29f2856f413c544322fdf063eef1aebca7addd731265a0fe5b19b2c8fdd8670f090a5a53292ba4e54f6cafab05ab6ca5a592c23c79569c033f43c96389e5b13aae720a82384a036e10a1cf2ec2a0c79cee02bfa21af43645d1a72d2adf9dbf508ad19a2f5b4e691878eb37f9ed65aec167581fdd34d9301a78f38cf3eb2b4b294ef9157164de5f29c3ad79e7d7cb63777e93c67adcf2efe72f69de921f412ecdcd54c14fdf410cd2e6432e0fe910aec8bee82fca1ab40777d74c1e90ee2f4d1854c0f2042abb3e8b2ebb481974754d7ec9edda5146ed38966e7991e4018b908fba287680976ee6a96a97ed7640088d34558105984fd3cd5ab37bc1e5a0565ab9c857d43e8063aba472b7571465accd848e7440f2fd9cd729772d69b6e7ff66ae867ad7eb64a2a8721e3d84eeb4359eb3a451539f2ecf9ea36ada0c8b3cfb367acece3e62c8d0797ffe81764030fadd76fd10bcf67ff2311ca6d32720ffe3e2ff29d3fc446e8f6a1655176fb2e38720ca2d767d12bcb995a9bf8265585a5d5255686b686e7366df08b2a121eb908e5361d791e73b2f5a1273dc0fa11bad14f72a29f351f2076ed5e48641e411939d1ef3e2ec480d61ac24ef2a11a7c5288123dc07ed10936c9934e10bb2ef002b31fa12294d766e9e4dc22d767234ff29c846ea29ffd2a46b4deba752f32ac289c75cc0916ae2432e17cb76ec9f29a48a80a8cfce8571f774ba10d5e9b1e327c88aa20c38737c7cb7d363de8741ffa9115323d9caf02dbf6a10a6cda877ecb23c7e16c15ba98877fa21ffdb60df447811e67322074eb3df304ebf68910f0a2e921011fa22a48c0874615db9b7346280beebb20fcd07d4515842128f645ae2b7689503ae0a11fcf7bd96de966b4eb9a4591769e5f7fe8b63aa9c0c443b3550ecfb96bda68a27002aee246cb0af9cf05f6857cd72cd9b4519fbdcc56db47fe5620feae6949bfb39508fbd855c04eb5eeb10229645f8003c69a5c89e8f6b9fe8cee31e93669f492781b143cbaae03579576a6faec56c58db224d43edbae7043c067c75dd8ca2a3bb6c2f82cbbcf775a8d699ff39a0fb7297dce39dfdc9db39ea823dc6f40fd7a8122f26b6d9a2a6073d46efe46fcf813a19fa7bd03c63efef0afecf5b0597ae98ec97e6ef5a6e370bbd29a38748fa86f9a50a6f378bd1e8fd7e3f5ca299cad66af347fa38fa33d4dc7e6689a8e7d1cdd344bd3f4f1d7018b5f96d8fc8ddefb998e7fa5e74c289c9f2694e949d7c976e5f19e39cfa47f1e79bffa463d2f6f93d1af3c6baf01f5b7fd8d18788ec1eb6dc2e03b5b01e0bcf76a74dba49f908902eef1cef490c193b4e7aa19365bdd26eda39f26d408a51d5be10d5eb153081e00c7e1306ae4bddf3ebf378e98410d7a3cecbc9e77c03da31f8823afc1e3dfc6dfdb008f6ed473a391b78191f7bcc3cd332c093c1fb11ba1fbfe913bbaef2365ab1fb1637474de0f87e478c41863243f728cf1038ed03c03ddf691907c44918e9c87ad7e1b5cc307de8183f000ec23ba4dc03efa38f2eeaec7d9731fcf33fcb6fd0c7e9a1edc479df31c5b7db06109dd23eef9120ff772a607ec207aee26e6f5b0f3963af0aaa187fe4a32a423a47144fa8d23ca1b31835e6fd3e047efa19f7df07e208cbc063ffe3646c2bffca3cf799eab2c09d87968bdc07cf5dbd74332726cd4eba13b5bbdcf45dc1f7b2e22f7408c6ee43df7f57a758ffbfc5ecf6bed8df8971fe937fee8474628f65c6543f0f9063f0cde0167c8f0ab99ea027d59d8e99ea11a5c890320081e02ba814beece1482332d8580bae37299f38d47e3b845e43d6a404160c7e0a36f9fe3f0354fc0bee448ee4beef37b869d02806e2008e80602d1ed02f00ed0ed730de83e7f67034037a0fb1400fa01ba7da3fbbc5e0048e1a5eca71ffd34387009ddf53845e8fff916a15f83fb1c8397a6879f83d0d0c1cfb19406bf4074dfb4f7b907529ffd6669f0fc43770718343807374b832ba1fbd430bacf51748f189c34a13058e9f75ff80e83c76775ba5678293765f0d1736d42f2d1c7dac4f3d1cbdad4f3d1b1f9000cfe4345689cdfb5f67dd95efb79b5dfb4db74e4daf30c4b827d9da992323892f35c7b799b7a6ef53eeb7681d9917ef6edd7fbdd282ba111dd00b5f2652bec3eb7261492e3b009d543914aa8df730ff57b68cf473cfe6dbbfd47effdf6e83e0c5e4d0fe388e7fd44e8c780e6193604ed48bf24ed86f3380a59dcd1d1cffed9d95991d148ea67e4da3cc2a3916fdf399a0ca823d4115acf337ce2d1b72fc86440cf7b46bb1ea7918f6e64e4d884321abda8c85754847944bffa45443efe46af260f87ebf9f8c3defb59291bc2e8bcdfb6cfeb8047eff1ea8f3f3b7581a30ac4ef79873bfe78aefb5953e7433f9c8ff57ba66bb79be5d9753f0ff54dcfe54c34ffec39baedf2ec75c4683ea3ceb12eb2dfb6eb3f53817007800467a77c5cd2444187e672be2ba52c09e2e9e358da15763451c0fd88da15d6c3e838c785e3cf97e4617883bc03d69df9b76df9db76eab593a5c6fd4adc18c239493b359a764550d00a4b820ef271f4a0a01f7f2baa5d1164a7743664637754fa6ca94af70e0ed7ba34fe458364116aca849dbcd6b3baaf7aad3ee26bbde0a8f451f1bd245cbd4343c01061f25a435f0d43b7e16fc45e2ba971e83e4fdf6bacbdfc85bac3efea2234fe813d7b918b9e67cf67559c166d0c3155dada75f16a6c75c35ce27cbd70882d569bdbc5aef396cdba47d5c7b4120a0e67af9c15b556041cce9eb5ea2ad649268a3e1fddc8878ec8f187334d27d239e9b95f09e209b89c99337366cecc9939df4c6f229d4ee6481fd19ddb25fce8bb8427bd7e093fbae9a7ebf187dbf978929ef36003bdce738efbeda7713c4f9fcf1d08dc4c8f433a5106d840af43733e7ace47c799befbed93e73a9e93264e67e67e3af2b77339d4b15713059e9b28089eeb5010441ee269e7d0104fcf23f2ea472691896e231c0e2744e2469ce7489ccfe7f3e14e321c4e1475e66f3fbd89f3221f729eef92908c8a86784c8ff3dd5191e9443d21740399def4d3740cbf8a974cef80cd5fe9b8df0ee13a6b7ac0e17e3ac738d7a1fbe971380694be9f9e9e44c5b33e95f084744f179603a57bb107aee401762560078efd76e01c748042070e020804ba5b57f2db842dd002af2f2bfdc23556c9e93b496943d299f437a876c6346a7971622f3fd7114c8de4fc913eaf23d4af18c5be24df0827b69824456cfd0e51cbfe5eef707b75047d75188661188661188661182269cb7c3208b9eb3cb7b401060dbd2134c92883cf0320071d201d01e0039d4ea7f38048c8d10c453ccfe1aed0efe7e1cf7f3f1c6e8d340ab2c1b392e3366ce86de8252979909434d4234b0cbda124231f11af4857ee300801a08a8a6a0ce22d4d494905913de0506f2d5bad65ab35af21363c3a68d536d4cb601df48e8e90928c8a7c1e4439392803c007bf9c86977845bbcc2b4a32f2111579e0e1909292cf9741e957539f51521286a45e6f28e997adae7ce42d0e784543bdde063d5f0fcd5657594968c61aeaf5867679e86883d206a5215f068be706494a1f804919134623015aa44099296c9004e1d265c3e973105d0c4a68057b04b5ac5843c017fcc1ef0d5e5c0210f362f3e5f5d81d08e6c2633f00d308213ba2d0f1e3676aac4a93921c1e2278d648c5e1fa33b6e7be2d7b494a53fe3871387b8be4048cc59a356dc4d072018e00f199996dd163824d15aa50cf195299df1b7cbf458072c64c9427525c906264ca8ac76253d83c76129ed01778183df631e7a61132fa24cf67cf190a94cf6e007c44cce3de63fb6442e1289f9f3ebb9309955b0023460d1992363618188bf018c9d66319cc00f4c7ce16ac144b9a4c244ed83cd9faec057821cd2ee7ec22d80dc6fc4e7aacd47526a6c911b1265ac49c0079ec04d0220745b60c890308aa5cd0c0964c8559a2e6b1d892384c9c74cd78ec02d062082d2e3af070a91183c68929180c9a20c09610a4c72ef6a4304bf185878a142976155cc4ba409ba57d8b58a20f310b8b4ce5e7de67aeb0cf643e2bc1f159c9da670fc197d5c20a1b606a94b455b148f7f939a70583411469ce79009f91d4f89c7dc44e950d969a3234e83c01a39166574144c52c114b53e500e4335e35f3361e7b792cf602db633fc51ebb4f2c8998c7625c5c8f1d04262cf18a7de8357822dd97eb4e5daa0ffd5ae1f8d0f7bd12c0efbb55274896a2ce1fad2662d27db1a050c4e872d666260348ba6fd6db75ba5959511f5ab3b3b4db54ab448921feb66a4cbfad5b054425040f0d2fb02bb574db35177de29009c923478b59ba6d9bd875ba54593eb4571f627de836abeac36db542f86dbd5a90a2ccca9a34335751d26db72010e88a13216e4ea896a4db767de876ea3a895877c97a18d6b50f9d05b10f1f0dbdeeea66832f52a1398954c1bb81692c0cd58701f81b418e94c832c2e50a8e140573f088a9a0c3a58c917457b20fa93e04418a1c1d64d6d8303b5395863a72d0302b73064c983be216def235cbef241c16e531f6f174f3584cc9e331128f7d0350dcba6f7f8fbfc5adb78ffd837bb5ae532ebb5961578ff37c9b7e8f73008c4ace3a36e5e3abca07f3f224e94b2614799e8f1bab13ced3e69562079e3e44adb7fe45e745d13d30a130e91de4aa2b5e8d3d005e3b07232edfbe98ab1330180c96f00a06d336a5320a8bc12f182fc267d7604251519d5917b982bcdebaa571eeec96464651728b44dab3eb1e8a644216f27c968e512413463c896e23f7f98817c56c4592a4b52f66a9cfbf6df4f3fd3626222222ca4137a2b6a222f739aea8a868cde7f3a5bdfda2b3a2ac8ce5d5b5f5360bcbeaadfddece798edbed76988ac7e36129decffe0e07f1924e57f642b91c26fb13a7d3e9d676bb9d7ddd195eb2b9329d8eecbdf092cde5ba743addddd2d92cf367bf2449d20d87c3dd36dccf3ea9b5ce64a2287a619cbbde660d1a3c6b40f3165eb2d65a6badb5d65a6badb5d65a6badb5b66dcdab6b2b2bc4faddb22076ba5416850f386672d811c2064fbacf0f379cd82d7d0164e2edad8b44551a8ee0d66b4d860a78c1538649956020b70fa4e4aa48545941a58cda911b1b787d61184b704df9ac4d12fa33318fddebc863473a45ec60b14566c78b282b0014013494e4adcf121245c49c00b2f6c8840aa79c78ec19bb5107a6b86041812505933a4b47e2088db881040e1a2862c2b029abd68ee0b352b6c03cf622ec1b62c5448a1332359850a59b69458a31c60ff472f3d8177062b11e41a014a96233c32a15319109858738a8665d0c50c3fce6f0e57715f30abd899f0fad883979f3f5240a14171f3a53fd8252250a8e0fbd84db54bfa2b47de8bd30ae39e416af8916219c444d8d89b13f6448f0492bf0e13ad5b660309822c5187bf0f8c6630f5c4093c40818301a6129761534de9950b8acf2bb27c2ef24252cbf377c02be623df0431fbf98f85e7ce85ebfbac23efc6ae2e2433f9fa86c6121260e11234f8e7450654758a8011d6fd02c6163e2ec850d5dd43aebef5ca65ba2c6e1b1e7b2921132f2431f8590253d76537fb1b8127ee863135a2e4101f6d8711fe012a788d5d412185d1c80b930ebd8892b397760606db9497359999d3ab788f5d645acdb54b3d975caa975324809132e8f7dcc4c82e4d042c3c58a2d1a55fa32738e68b1a3ccd711b0207fb0a442b48b4a6074f0d8c3246fe7d763cfd8751eb162ca8a17c07899ba0147c3912cb8203f6036d0cacabcb5b041b20d73d91a970ef4b1673497f1a01859e3552615b596ee3397f96e138a444aee1150860697af1758ac8849c36c95abaed58f3397bdf59b55075bddac32104869b99511f1a15527ddbe0f7d4cc9d3c3c717ae3b6be966fa30f40f578512b0d3cdc24b36f4d16fd3ef437fba4dde54c3bebcc40ffdc44e239294e1a366224d0db13069e840ec54e56489b9e5a0625323270dd11da2aebd46af15158fb3febe546fdd4a39772ed354b9aca6da6a4c7bbb7359761b11dc5aeaad67bf5fbf9230f9111ebb1dff525d2b5ef0452ff4e61e5b557eb0bea2229a6a5089718971e598d48cb2b4d6dad22cc199614c8a05c6189b39a23cb9526bad73baa2af6329cee84a511445dda9e1eb9858d459060505059d3bd26c57e27038dc4e682cc516a1d2344d53882774a5d3e974bcded81d25bd72b7dbed7a4343258fc7e30d11eda210954343434344451b8ca5e02a2af16f2c45d6109eb22c6d8976c0f6572fb0032ecbdcb6425ecd9bf39c5b7b736e73e8bd1f726599f3dcafbc1fca0fb7496885dba9db74a184847ed7da123d871c57e4e4cff4dcaffc90cb7dc8e53ee4721f72b90fb99cf55cfd1ccf759ecbf90ef21ce9b8e7391ffad5bb943bddf4ec22f06ee739b7bf5d8f934445605cbad06fd7e3c4a8089e890af9353d80b09e3fa320c82d023fe9a546857c07a14265894341909e4dd09f753b54c4fd93b42599cb79872b7aee774f5c16fd7a6efe48d2715efe4674975f964e3a4e9745bf21377f380ff2de6fc8c91faee71d30ce962351e9232a877e3d94a8fc918e1b7fbbfc7169f471c4b9a0fa79443fdc1ae41142d74411a2a0c5bc24a2067684beb60d03d66dba150d4f4dad90fab0624ab45909f647f7bdf78ad5436c842dc638dd184e7b55f2b7e8b6d8b3938ff69592bcda104ef489e936d5b13b697fed73e8f91d524338f7f917b899fe77ff3a79faf8ab9c51b39ff457c90a517bbbf6a9e79cb5ce39db2d02ca866198fdfa0c1b4276eda1b6992acfb021d8d02ae7eb575be1aa52bd7e879c1c5011ee6f111e7b18e8faf50a81db1c5e3b4edb0ac459eb20a208227eeb3eebd5fa785d8856bdb31c3d144774dc2138bcf59aa3706358c7ab71ded86d2eb3a875e26d436bcbebdb8656db50cd6dca5aac35bb1643d18a35ceeb35a93a70c3f856a33a0c3d6b1743adb3769b5bd8bfb7de025410aa68758a2f603c09f9b0e2c2d3dde58f5ead88e3dc4fd79b724157e709f696b9e73ec79fe449191cc98f3608728c1dc3d32d3d93bf2de24912452af28c6e24144cc74845a80926ae2f82748b51289d746ca24845a809255a2fd0b10ffd36e9b80c5e66708c6ad7951802f633ecec25baeb71663483631444062f5110181c87281fa321cacfa03138ce3738c218924ec7e8463a3a3a89888c888888b26b91c8713622f2d34522c79944f749847d7e5efcf3e121dc79623f5d3bcf034fbc3a83dc7ad0108821ef05792fe847061579bd4eee16d5446e7f3b277f2ec8d97be81ef24ca29073e9fa87cb2b447ab668798144260c79906f8d8628b14fc4a9fb3d71185b783c83c7fd9eb4ef270ed871ce6e71e933f8ecf6b3eefdf8c481749ce3706305ea728b789c2b30a9a966122aa856a01e7346f30657c80bae329db58a09285fab98d0fa9de1af07e06b95126f9fc2189ca9c71e54bdee20cf4e7a364fc08ef32027c59afa6e53900739b6a6884d13460731ba2fe85660fe5d0314b20bee8fc1e00a448c2fc2f7f9af079980470f5ac1e8bb4df8835480df97b3170a3c5fbd5204ff7aef36218da80aec675f81fdecd6af18fe76ef6f95126db54a89b62f7fa7ef3661cd0387838256aa5a2cfece639c245097b0ef085410b0e314e7bd6ce778666721e7b68c339aab1313d6ce849d8a708e00d66851f60a420e723fffac8f0bc46eb1826c103b0bd85b08973ef80eb8409c2863fc5acdac082ac4aa73db2c5f7d04b6b64fc562d5abf40f87b3dadc22ac8902ee73a6872191aade341c0357dd260d652b8efc0d79e5ed74a4cdf9a669cf2046afc1eb5ab375b23a89567de4360805d26a27d17d7f0c725cb5d368ce223ca320827c74ed1b671f30a23886ff82b093973e236bddda5c49f2c87126abceeea7506fd743d77d84e65cb353f5f9d012d5e866419058d018a4ad57eb155baf184b93b5bad6da33b6c295d4b8ea37cea3a3415e490dc2fa9057d7f8a2b806913ff4c354d6c390938e7fd68b7e3827c2f5ef0ed5e5b4d63a97f39caeaec7205c514c7ae8daab7bcdb9cea148a357c7eef87fd5b7088dbb6a57ad3a8820b4f4d144a1d438c64d137155a87f84c1870fd04ea2db6e1137fcdf2ebfbe46710c1b02f65fbec00bb4daaf5a8cfccb46c19b86ab700c4c657115ae3ae34a492f8a7a1c45d15378d143d75a24937c650aaf3d544a21845215a533c8cfa08a4343bc1874b5079244491f77880f4fa25bf48ac34eea32df2514ea050679c0998043eb0506a13bc46b1fd1103df262193d250ebac3adc0aff75e7d5da3bae633eb7befd5f796f7a2d95625cb8613c14bad749b7210d2ad6f60ba4da25b17e1368d1e846e6052128348f952f63bea270e6f312eabf6db018b79bd7dba40eb590c51df4975da7bba120ec333d4ae3d141d9b235a6f93885aa60dd8baee83ab1638ab9819b3bf626ca6303640cf7746e0432d3b87723ab17ce11cf1a20398b0d313c66887055ca79a8ea1fe2d8337b5fed147fc8896da9a285278fec2dcaff4a19fa93f88cfb359011fae158d00c636341d77e4d95bc04e461e348aa4e70ae4567872eef371cead57bfc0ec2390b48f788d6efb4917987da80a78292399a0d18d379c3ea402f6d3419cbec26d3ad1adfff49c7fb743f7e943a80ae76f8525a7fed3774d7b10272a823a427d15d29c874c38fd443a2107837ffa8982d0a1417c9e83c1afdfe1aa30846a748fe767df862272e6d09a669aa8f561758158176845c4eb09a920821542bcde1511f17a426775ddcf7aee577de867437f252c60a7112fd04ae0705383c98f3a69f616b0d388226754568c913336e4857484101769a89ad4e013a7abbea9c1044dccd40e3d68d2dcc37faa30e4b45aa8f511afd1febade7a4d97dda69c9399f8ad75d45fd72efcfcfd9ddffe7a0e4695f89dad48dce0ef4cf637a365b59bd91ae0834c1d296663b2b44877963a61461c3975d68c6c7193ee4cf5b7850c265f5ad680c94a77c67a00121c4d925ca1b3e52bdd99cf0c347578e4604353266d2236c643ea4c9fb67467af02e002047afc8403fdc6565bb80ce3341998cd09861b1d7a6cb4017a926eec258c1937aa1666586fd28da938a821fce120d0dffb3614e8ef90fdf3d7eb0d4601c2f9bd6a37e8fa35bbe9be6831188b1104e4c4499ca9745f29286bce4ccc9182254a94745faa6ddf3ed05fa7412541d710fefc50f34a73a34a5b9af44f1a133b524a042a03946e4bf537459a406d48f6f43132b5838d4acc890d3168523e56fed85082a3cc2a8d6187870c2e466ecc48b7f57a9bf6d5cb9661a73165db76edcf6f4bf6f6d5cfb5c1d16d067584dae72f9fbf6ed75310c10a21b8a6a48842e396e64b9bf4e2080232a1f545cb8f3fe93e475051f1ca91444a0a8c3c2568b2f683c48b2b2b40d20d7cbb41428a969c36676ae93531270ccb4896609054a4e29d5a4c9b5a03c27a7d6aad79680574a959b0f35a6badc7bea479bde7855cbbd20626fc04f65aa7b590152b9a94989366cf8e5463275339a8946449f2a63516a0e09fa7df2026d479f6c83ffd0231a14eacf34f971f269489659e58a65f1f5f7f667cb9e14bbf3d4ca8b234cbbef4cb23bfa5791ecfef8e51c82fd6395e1d26944e33b5005e2751f35afb789e660e134abf6d090047edf2670a171e3ad08ee430f57cb53983f2f02052c30495183ef5bc32fdde30a14c3f60cad8d024bcc046e2c9912f6e7ed2cdf4681eb028b831696629c41cc91383469a639cf5ebade1a70599d555c3e44917133c5b6d785e0c6960058f2547ae0069e1828609a5ef8c3e56c46494024062793ca1aaec021f3131cc8618618b83e7853507e0087bc1c504460eaf7433fd1d3b7a46049cc101870d6d8b96914aa70c8a1940487c79a22485a1a9f8007951d3c04062040d9b372ebe8c684245e448599f324cfed469fb6a223efdb85a810547ea87971678f132b36709121d601cc733793c211726943efdb6b05f7ca2be2cfd4e9950258f2734c246202f374ef0e9f27625ddbed7595858c13d3684044937d3eb52fb88e9bc9ef3dacbce6b7d020d880e315c7c584049b51128618088a095f82195f2dce4fdae158f27c4e2f4bbc2843adddc60f8d2af0a13aae4f178425ab07831f3650a10979cad136308caf494399265c80b6952d66d0795147584893c3b5204a92187ce1db6608a17b0401367cc559a3f43d2138555938013a7d6fafcd50b2441191c5d3266b0914124dde7c7798d64c86b1d34d10747558d2c586954def3f5a689f23c81933081b4b6dc029d99705e27697badc1ae308181a24b992f244ae739aee495e5a96f89bcf6a6e99784096596a769d4c3cd57203e69f49cd16f8c78a9801d37305f55a06ce949b5ab70f2b419b45f7aa47c19681483d8e9067b26c6f75a99b957170b636ccdd2ac8a7e5b35db86d71e638c31c6189769f198c41863ec4cf869cae680629ce3f1f918638cf156cf3493def47ae44dcfb7a9006f9a66d4de3ce3e44db7804c28d3ec9152d4c0494dd3ed1f13ca44eb796e95bd2f93beb4f3a5e7b24493f2a519aa2fddbe7969a276c6b454a565e9d6cf79afcad07821cf426efb9850427c4ca852d422d3e5cfd3addb589afea5db3d2654596ad167faccc86bfd7566e66bcc902f3225f4681d4894e439a3ca20aff7bca4e77997e779e6f9c8f39307068febb20e8f386c77ec9850f8064df40b8db5362c66ea50f1d67c985b6888f8e1d146074f5a699698adce5718201fb4995f50b4b4f5a0ea728405cfcd0d9188461e22756cf00143c444af158adbe4ca734b6797605abcf60ce6cc9cb30d3b8954546d3c9224494db2c0f624499224e915b84e378b24497f42e1e3490e4fd6b224d2ab9fc73de9be4a92a4885586a140f23c129ee7568e09c5c3e29528cf2d9b09c5c3c24bd677ef040a306127cac4d13c748b599ac509ac546bb770f42f49c97f6f30616562cee32f3132a25e449579b376ba31a1c8aaa6c55b9726617234b1ea6105e9fc69b1840820b20d1b3539412fe409a20129e284075b0c6854cd590164cc8d3069d986cd2d71e7b576ab6642e99d33ed76bb33bfdbed763bcf66190dec0bd7e335230633e4b15b35699ed2b4e855743b258a6a9b052d2faa894277dc6081d243abc71fd14c0f293a4f6a6869bb12b144af80288a54a228fa939d174551f4da358ad9ec280900bf95cafa8c575efbd945edb5971e6940b2735faa6b756750e402768e922b33d0e01c28a135b040ec0409a634a8011ac46871aa82a906d7809e369779edc8de935ea59ef44c867141f3645912343ebd3ba3453159c8b868a1a145ce163133409d8341b43226949885c14e9c1f314ce410e2c7d75860a181e6e54c59ba997e8d1ab5355dbda0b458c143c61e143a7080c694fd78e1c6cc0b9224438e09cb02e4c5b33446b2b4de89c1b227cc6ec491a9255fe0ccc0fa5233a18f9415585b7ea805d2629ab435650926795c088bd2414246599db4afae2d3bbcbc48f1aec85bcf696d6eb7a98a6ec1d8302c62043023237bbb2536447ec912058297a328384858e1f1c46a0f89868ece0031dcf8d0e1c2923a2ad22eb6cc8422b16479e2a269b49052e6080b175d803196bccdc193230a18f28c19265d5280ac904013c30d171a00008d2943c38e16253d76bb2da4df3ac2d582b150bd28bacd6242895a4b4f0e352966f090c091ee13edc88c0a684cce9e207b581c29b323b19850f8ca1b0faee85d599fb128556b5ef449f7f9658c2419723a7371644e11ad33765251b482d6b302e3b567ed56e0bcf6f30a15329f5844832b4b0adb961245d2cd44464f6f0494154ada9a88dd0973a38aa22856a14246f5dab3f6918c6dec1445af33542cac0a9717bfc0c81146c09a5099da320205ca6e8c1ad759ebf4c1230626c575254beb135fb78a0b1cbc34b9abbb1fba75a31c631ba9884d39f50e05e341922449e6dc24258751ce92921c69793df6e3b55b284ef21a4016a68a5699227596a49b89dc799da1b130060c971ab1acaa21a2c843f7dd7ab273eb442cc7934fba6d32ee489de445897722d9357a85bdbd6662bbac4ee71b74ce84751e68c8eb5ea7d3e9c47469faadf4d6e74f16403d00e159a245255c26944e4722004c6ba77592174c2832eccdca8b4894a8c869adf596e5537664c8469ca8302d8ae00194ee53cc0b805a084205c9922d6426c46023a39f3123bbaf2f122759e46af9997a9188a67306870d2349f2e498c3f4ba301ca889f5fa5ca17571e356a4068a143b506bad774348204b08b96642c8228089281640ce84701902c6089a0da8191132a64f90283ca9d6ba206518b13dc1b03d62dc88f021c1474c9f1b40982ad89baaa92b79b47c54e9ad31af756e2a4a952b7e5cf0484bb516c9b0db547f27296df8cd21ec4e189e1b6178f684e5e932e3b11e3a8fddfec8d29511130b226408db8d385f8efc199b9acce9e2674e9a254faace87ede04753989b323db4d65a6bad7998503ae9b7129b151cb039d28645581b353bac744875a864040983c4cd8517232e7080ac8f0917e2e0809122c55887357260c2bfae7ae810b586d8c82aa386ce903b5d8ae0c08dc8410608d513b03b28508839be6eace1902ac08b2f4e5c5839f2862add3ea65af6fb0234d63547eac8c1924605108c143b90747bc585eb45b01bba8e5802e7889c31664eacb9906ea6d771014331d63872cca409b3ea91c54dba4347b0616b807169e181d50766f274052a62c7cb992d485208c54008db550fac29ad1e3a4dc384d25cb818fd56d2b2c4b584d9f2036c0b9e19a2a873818c1c33bac2aa90e4d1a20527ed8f131947cab2b8a2e864e4a72c47b800aa3ab506770d3f9d161e531445d1da115cb04b58bab6644111e3d4e20b764a1d0c302c3636a0d227a8a89c5ca1d2daca622407994785169f3467a24c9511f10bb02b7e32b8684157648d8975b6c559b642490056ac9912759a6bc90e5b89a28e45efb50a27af3778adfd5ce113c51dd6a15f55763bab42e756ca8aa9a8f1a2e836c5962b5a7baeac2c39b3d2daa7cd5eeb255bf264e5b0e2a42d2ad59a14751a45cf0c300510325241a92aa93a40314ca3840c1e1e7bdcbae82b49a6602d575667aed49809ea441b258642cd6b31133f15f50245b3b230255d46afdd96f8809d442cac9c336119692e07f639cfb7c9f739f7e58ce480010606869832690e4b1118594ab490d326cd6638b303fc56da5075a786a1df55ade2a96f51db56591f39cac2e80022a60309d6092cb01d32d888edc01315448c0794a0580f2427c47ca089fde07aec96840985b1b6234ca8dc903375cab0a0b3074e16d9568b8ab6e74f951b5913144a48b2064548ec344983a058ced966a97dced94ee5bc5920f1199773aec065c24f4b3e73a865496833843ebb2fe79ccd321a9ca9273d933e03138a2473a4cb208b54970bec8d14d163205289a2c3208b4e0ff65afb18e8b5b7a007f0da5f9045ac5e180dbf373c07362fcad8a079ecbe364a1ebbb7780ce666cd63b035148fdd052614d6d9f102d3021126540e8a2da48d69f1a304cf192b59570123a6c04e172b24435014e19362748720d16da9488c45169850e20a4c282de7737615985019fb6123e74a0dd5179917914a99061115488d1b2e30dc9891280ba2a7c08412bd20bd7614581d664b199ab72651d87c4937d38f81918d3f182748b4a9d922064e9a73ce270801a626e4b5761019d7b0a01b98979e3d7cd0a49b09638cb13fe1b3c7fa31e6baba21c40d4d1d1d6eb96d022b2f7c065b93f6d957c8598f17167168402912634eba99acd29c73ce619f73ce27a4a4201b02a44d589434a33974dfadfac4e467cd5e02132a934e02db7bacb4c1a2f82d02878a7f5733b4c76c8f2b9e0dbfebdb638cb7adb2578fad8fba2d17143379c6d3e740a63e8ffda9430911484bf1d83fa8c0e4b1afc0c2d7636fe1cc966016a9209589c76eadb0d2de64a589b2d5759b2a981a358f7d045e1a89da993389eebb258224af3d6b0f41ae7efc94f50023e52cc51bb017649832b8da1263c896176dd468b48200cc4c8bcfd93ff09445e86143cfd58e2839dc52fc5f4562e04e25609e78454985d1532f10ab3d7615b28895749d72996fc03913c679e5f1b8c7e170d9accccb59521b0d2ac268a0855985d540f1d83dc0e41480b6147b0738f0849d2e1599644790fe5dab0ba4d29a4c014cd28aa630195e6133647cf60d903a071b953f2a5e4c49b950bdb87ce00d683662e420b2e6cd8f146312bd56e8f8566b20ac4a4d064ca8ecc34e2296c5184996c7187f10c3d2e573961b9f1d03be179e185df113e602e70886a8d971a2238c0b6309d89273b4801964578660b153c44425b3a247cc152d9fdd0248f0fc2ac0e1774996e6b3e76cc5c967a7c039622b8b161c66666e55fc2080ab4a51d592e78b0c1c5fe484c9b2f83cb18f1338c9b20cf0d9259064c850d6bd11a88286c208023668c0dcb8b81a1373002db49c01d0ac21028645064b100255907cf0001fda973624c054bc7d39e160a44e4f843752625ced414b5124c538eb5e0754915a3ae1cb6c009534a00945b24a20e1776f6c00547e7c760f3e9183972a1f3c9c2041a3858a04ae33a7549a17b724686cbc60e766518954a2881970b7c6767cf602457e20e48b0b26c4ec08f3123542913610f0b0c2f5250f1a2d6c528cc91393be7d38d175b92c87ee1187ee935c402ebb674961770ef0d9c7536cebb3fbc6547c7605b81673912d1b2ea694e5186300b75d99c4c6db9e321a675b699890c7571efb78fa1cf84c28d02983450ac8991c5e4f49b210d5400d172737f46c1dd1ea6042e55e5569bb18560192c48d123956acd0d9c213f4c4e84afd4236268d8e94337ab4d2b0cc68d9ab6724d28065a5e913d55605898fc778ec2ceb31efb195c7580817173379dc54809548319ad1de751a7bbd9fef2e5927fa3a7616e3770fa3192155e72d0999163ec4bc4056f4b6e5c5901e6059c0a6acf931b3e306d71a5b05881340593aaccca090fa1143cf98303133e9f6edb0f27a87161d1528553548ace0f2478815d2d72a51263efc5a654798125cad4d39e34bc2bd27d80761d1bc02fbd6566b7d67d7f9376e382fd635d75ad16cadd75bbf75ac54af2518bbd3e5f3d7b13b6b62d6e1e8e2584dd1da36bf1144851b33f311da04544942e5b1678cfd0b9f3fbf8e7d792386bb3514cfbdb1678c81a3bbd63a0cc333c478c44b392807a175092ee86549204ffc534540d6e56daa4df902ad36b1df7b315aed8c6a86b50e3467c5163f365e88a9b204c9d80949c0dab0b15ab3baa1fb4a2550a0dff9bc59a36f0e5fcfbe7e7eca69d5da479dd1f302c35faf090e8b05698da24ff45ec55e5b82415aa3755c68b95e7b1eb597b7497f4eb5339d3ad4b9ca985ad46ee0e3ad2b746b473d7fbdbb64bdfc3a26e6cce3be7e6dc118c1ea5a105b901742d4b530e3938fee4fa3bb579acf9f7c1c9d2c6df4349f8f3e7ad9d3e86bc37a7a7a7a7a1af398c7343b5a3bdad1da318f76b476b476b4a31df398473bfae967069e6ec733fb4ea62c7bc7313f017d199875476b473b629b7df7bc773cb3753b8ec0fc74da71ccf68e99c99781be6c476b3330dbeccb3e9b8139cb3e9d633eb34d1bb3b55ed6eb1ccf31333df9385adf799ee3e8cbbeeceed632019fb2b53e0bcc4cd6979980379765e369732d1b9ff238663bdaffe08b272a09b9ac8660bd7a49f1d5667d758b05682d45141b2d3abcd26dbdbebe2d11f2e62b50922f2b73dc70a999132505ad3a0b125d76cc68c1a32dddb64cecb74d0bab5eb71476ea20f6c5cb8c9139744aa495c49b5b1d3824b8c0a865c160b04505ab3e56af55ed0d9818655c74793b4b47749d39a951e5a5041a206965aa695a5b5642dc9889494bc04e754d1e2e585a846c013426ad2ce2b0bdf1f8b302cb9d74d7b5bb6448941b1b6edadca4d56d541d21789b50f0f4204cc779f519b4f0f5d5ebab77b053befa59ddae6d05834117aa57ac0f751e7ad9bb4d461ebaefbad7872170c38bb09f3ef40e621f8a55b22cbb9a85aec29e35b68ac706f77c588652760ac9b7adb212f3215198a595e4db72792df9d08a7d68c9b27c88217c31e4435c68d72c1eb70ffd06ff7c78a3867c5fa9a90f7ddf2aab0ffd62d1f8f0fad8374b8beb7a957d2896e543b30fd13eac61765ef8b017de35b60f2f9eebf6a1e3e0181cc5f38da5f0d487b80a5b7de85e40be2cfdee31a14a28419ec7e3f11c58e43c9e3fd9785ec993c2f30f29f02a8fc72392040d47203a3fdaf04a70664b0f332a2f64baf076ef8d58597add227ce95526ca8d2fdd87e24b2974be7460d894245ffad5f3e40b8302e57d3e9fcf6f1e13ca57e475277d9157ab2f0afba2222765bee849952ff28bc7842abad356e7edddfdda31a11cade758a7cd13113d51942772bf4da513b91211913361a216249400910283ab888a94a88e123f5f565ee470c34b7a5edbd9f378bcb640cfab03e5797eeb9465d946e709d06badb52f8d93d744fa430aaeb526aafa699e2e72ed36cb45b5d65a0dd5a3a8df3926148ad6732c2a2a2a2af22bc7842a42ebe969cafef7f3cb6642fdd07a8e44447ee388a569f1ee7ee198505e966559966559967edf9850659ad6fb7c7ed74c281f5acf9169089a1e3968bc419283c7e3f107caf378970a0e1d47e844492992f2fcba31a1786d4c288d26cce7fce4b3bbd206119ed23eefb2139e674f216767a1cee75c565df9104b8bfa6cb52c99cd727346fb3ce5c69833566cbce0080283881b3166b0b0b4d214a4eeac283b13d2e6cb00f498d0d2f27102ca5bbaab57ce44444444447ed9985044683d7dcc0bd79765a9c6e3f1783c1e8fc7e3f95d6342f1bcf053d9ebd7eed368bebcf651fb556342e934663e4306bf696356d90f0d0d0d0d0d0d0df990676131a1f192e3b367df78c68c093584d6f3e9eb05d56fb0815f34136a03b49ea38ba8dfed76eeb789e73b57ca3b7ffaf3bb5d93ddce53b8bbdd6eb763c99a0b291d5c6af0ecbc62270e02b920cb6143ad86989dd3ef9e0bac0e5c5079edb74cf9e5a2c69765e963e9970c986e431561cac5e7ece397cf7ecaf8ec3ef7f1d9812dcac63c852183840d11b33651b27c4dadc85d239cd8b121762648c78c8d333126d40ec763c0e0378c0985e10b878beff5dcd7ebb9d2edf57cec9ddff38a76c19850daeccb5395a84ff29ce4d7cb48a5ed857a2fc4e485dc6f937621571212722615a9908fd8690238c674d1222586b6271552c144aa8b98af324037d27dbe90e72ef94bce90ab5898d7511899cf62493e8f457d1e13f3794c0f952a9ffd7631a13299d26baffbe97593d21b26304c68a12993476b035f7b059b23f55a2f0993f27a0c94d729b86c9d506186c89c54fb2d33a13497a71c371ec9f36dba5b46188fb19276f23887b93076154aace3310f27c13ca1b01c538fed0b597a6931e8f8e16304cc98d42b4813b11a5a4c80a4fbac64bd3a765c38abf1830b9755d989a9225559ae64a4db0677385280c501abe1a60c52963b6e2c88904de9c2c1e47b3dbf5a468b24e79ce5aaec8584fc6241024325cbc5151e6d54d27d3ecfc99ec743f2bc2230fcf8d1f1f5244ccaf37b25ec0aebcbd2af952d493764dcd87aed3e40affd92b179bbba4af2c5868d8bb01b53bf0bfaddd6eff660e9f2e39663cd54baf35bc5a99850580e930ff21ce4776c8cf3a4e7234f92e4ce4992cdc9933cd208e91fb0981c203b4b859dc694744be61d37c42881a3058999584a4e915291654995386cd21153fc10e9cada2186e6a74f9aab13612eba7aa4bb9231b16961d3f3d9af1886736729ce551c338ffd869950586bf78d174c0c0ed9ef767ebfc6b71fa79850235acf310c9417995e1445dfc0f4a4e4c50f29b09ddb4adda6aa9d28fa289e22d8ef767ea59850bb166f7e68c4a161852c7fb110f239fc5c040268fe80bdc538f1e32acd7ea388bdb9327ad22f14125c6b5178a66481a5385e78ec59eb7117992e386af8b9d2c6478afd3e115b737badfd3ab94d72b95c999c99cbe5c4e40090f33af539cf391fd9c67cce4f1f8fcfc909f4b939643e979be3e67374a67cae6dc6e7fc769950b93880fe3c4f3f5de93c9d099fe77962339cc3f80c9fe19a652dc696b5b43745c2de4479ec4038301e3bd3930e387b1e87c5e1f2d82f13130a97297d7efabc819f993efb1a89cf39afb9f8ec63f6bb44c9939d3732f2cb6542192d91f23a1d91d7b9ebbeaec85e87d3d9213aff809dc654f7baacfb40cd192f72c86e1c0972825a183f5eba48f0b91aa14a8a091a6225d05ce9e4f859d1040789213e741eb604cbe7ec370956d24549499ec77e5ff021a96d5bf8871d5782fd994e426dfbd9747b86246a8f50104b6444e15143c60b272b7af884c80048113d64f854b9d27124d4ba3383c490b41a6554b0e1b22ea0a544850b3c5a2fc4181193e6458e39468488095ba1850cf2a133853a70b01012a649091f42d2d0bd888fe0173e623fcc66ec910104ca0f112754b4d8a86aa345e4cc4dab48202e31e50fa50c044a5222c81b173229d2d09d489dd36643878a2f26ccf6ac4891f3f1e5c685b0305e0271093224d49b29ff7ed9b3d99e3a49d8c4a1ca9344abd8f3a1ed817e1816c40e922e7ddc3cb99286ee57880915662026b10ecd671768dd447359d6592d8fcfa1dbf7e18ec7a19be9c3196d637aaed078f9f84a3990644a09b32b6b28a6d230501a2d25b468a133d625d5e8f60f65a8a971e18aebca559abf563cf930f49b55769b46114b48c412fa4325d4f657c86d00bf8544aa9d48b513833b31b81bd122089b1d64f80ca9624bb710049c0c412b9312766548ba854a1095870790395bb65e48b79089386361ba6429d1822bdd4215cc94b23e81f62cd9d1966ea1375c677e38311362e44cba8584d0feba90d9dd42424265b74963fd16d2f15b28c76f21abbfbf85a2feba5070f7266e9de2d6d976b6b95d24626ce48051848a9374ef70b0a17892e72c6b2cdd3baa9c0fb022526a6326c8a47b8785c20b202e44facc29ab4af72eabcb485515272ff4c448f7aeeb6fd7151e4129192db2d2bdf3fa1dda5fdf99eddddaefd4fefa0ec7ef1dd9d5efdd8ddf3babdfbba8bfbe0b2efd3e75816e50b7756c7f5d87e7af9fc1a8b7f1fbb4aaf1fbb4fa7d92fdf5f354dbe7dac9f6d74fb313ed0a581b33254a9ce1c327dde70bc07029b3e70b903d52e93e37f8ca62c76dc89a3d4ed27d1eb13a63844ad612376dd27dea39e1c28b1c6d7dd802a5fbec9a009d16806c0c59d3842ddda717f0b7ce4cce4c2e2db7736e696ece5e7023c36a4f8974eb5c50a28c0b687474d8b9926e5d087450f4d1a14248151fe9d6b990472d0f9c1d47cabca45b97f5b7889b32359e4cb1a55bf78615052dad0a188921e9d679e9d45e87f6d775bab2dbb4731abf7564337eeb64fcd659e9a2feba2e8803fd9d7bfbebb96054d5ef9c950bbf73317ee7c8fe7aae2c6776736839b59d5bfbbb737d8e58a909616b934196ee9c14e9640a8a2b30b2604991ee1c9506d85c70c5d8f3c50b9774e7d4861cf9322595254f8a74e768d8f192d6040eda0b70d29deb0243e6c50a204066d84877ce8b8c49c6f4dfe636d9ae8967ac1c2bff909564a5b965c2f86d52fd36b7c8ccb5bf6e9a661a00c8dc30a3a4851a371ae936a5a0c06022c54b541a8b749b30d093c58799193781baa4db247123ca1ab5215c88b848b79995e177f9a6249012dc9f2edcc6b9fdf5b1a6a5cb93155b27d25d4ad50193d2d366861a2ce92ea9fe6e59f3c2ac4c931945d25d0aa08b6bc78c333cdc82e92e655049f111a5ccea899674975d7f85f829a2a2c7141a28e92ebdbe4cfbeb65c956aebdf85d92b9f85db6f85d5afd2da3fe7a19dce037eeedafe38253bf712c7ee356fcc695e1d0706a63bf716b3817584973c585226e5132d28d33c1eb0b0c40447268214b37ee4e178f306041dedcd1926e1cd6df2672687411f2168626ddb8ac1159686626daaedce12a926e1c17b43253522ea280b5a51be7f583fc41fa7e9359e4268351565b2449a66d728d94112423a8e8779055d00e0a46596d0505050581f91db4f63788cd9ea821fc3911e8ef1edfacd4e8f6d7c7a08adfa3d4ef31c5ef711cd3f6b8f6774c23650c1d2625dcde7ca47b94fafb9626450a3e33eeb849f748f5378e891c48b014011296ee114b88c8d6169a1e6360b849f798a5420b35324ac0e4f9f396eef1dae9a2e7049133c137e91e5b20e611b7d8822806a3fe8a277e8b51bf455114d3b6b8f657641343e122108a36527286a45b94fabb25ce9539507ab06549b748a5d4428d1a163ff2b49d48b7b8023564309ec048935a916e514c9d2f657ec480bcf1936eb1eb2f9085c5c7d78a185d71d22d7a8d20fcc326ecfd0e570877e806465b407fd06d3a18651592d5f91daefd0db77eab63192a9790dbfeba41112366c52503ec496aa58d060b3029f00049b7ce0aa9f4a8548b17ea4335c9105444240004008315003028100c870583c1681c675916e70314800e80ac5a66489888d328c7711832081963883144400444004666d3002a723fdeb659db35e7caf883c3ec87641ca47b88737992f84aba08bfa31a496044025c1499bdf1d1eb90f00f4679060583aa92c87016546e452cd0c296b248a51345fcaf807c890e1c28fc9edc7135110e0b5442d2c634cba9177c6642cec9032651007b0c351818c48bbb7c66619f56b8644597435ac0b5093bc5df65720553b17ba4069b682114a19c654ce2c7ff86c0aff52fd2c81ce6f6c9e19f8b90d6f866fb569bdd05f60aebf57633eac03d82903a4d8f9d7e5efbc42f772797480e052ca0383607a3483e3ac7474c57108be490d5a84d16360498c34fd93da0faec94453498e970f725c6aa627dcc39b8d2b3c1635868aa4f68cbdb23051fb2ebca85fb2c079e41209e30ce85022f173b6c4fe83cef66523978fdf46712d1ee11362ca9eb3670149482a77d339efa4623c769983c92f5a2b2ec349a71b9680742995b4db691e2dd0b9c524655b4afbf03e3664aac9541f437582e5d22cd6f5d2eade6a299b2870425545fb93bdfd3c6eb20ac6bee4caf2efd8b4563056b7eeb523b093fffa4a8fcca001175beb74e8bc7bc16498f87460fbc1b3ba87340c70627188a38e046e33d5d0a8d10f0debd0bc0129f56643a9ad07b3526965416da7eb40ac2b354f3680a55b1016928bc11f77050881ac45e90dc71b5f752c322e44f6e94fde13e80aeff5563b9f7ae4e777740a95092c12337f70183fddd44bf141a4d00b3c9886373288eba0a33f00e203e37b2d88fab30a9440386638ec7b3792bd8921c85040d0ecae07453e013fe7e401889d084a5ace5da5c6811d5c918e5254718beee20c96c72944e04220e474354cfdc850fc48bb79989e383b72341ba3296438bff46df9c1dcb8218c53fc8e97b0df892172ef63dc347e019e71601ce5172e78bbd9fd3a335546f44fc0d8980de43a6dd5bc547da297d2e6dcf41beba4842867a95e84b40e2963c85156b05eaa0296344393c4c5c13283c81517ee29c25bf5ecc2faf2d5c33ed1b089239ca6e21c4548876aa4baf3724b61f0bd0a33dd12a341713e03e33b841ea8a35106a6da77821808e1a4da16eca0481e452ff9a6430d14a6bd84f34bcadd0f552f34dafd05e995103f74fd70a9c02e78e6260125fa753857d39095e4838ca8a1832372927bce98d09c7b513e3bee1d6d1914d1ed5fc85b74e8ef36a20008d36bf3c16f58d02e439164f31eb6636f0ba92f25dbf0cee6ff1340c2a4114a330a141c98d1f90388bc59e490bc67a6bb4605192575a1651c6d9d3dd3999ab568cd8df054ed5c9174901bc634c07611c0064f87e8df8e8397c215af3db8483e0201b4d0bf99ea3d6628c886b01ba87c28b9d5538e13e08d3d7572c2d2270a13bcd34c36c3dc0c67e3726696c6ce91ae2a3ac79eefb73df3deffc77d75ff7dcbd792aad2b42531e0bc4b4573557190a4d914d732acbb8e1d488bce4f404a461a020392e8384d24a695dfa558cfd3da7bff8739638abc6bcf4d1ca3968eda2aa694e95b656dada9660aefc36d96bd3bdffa8fcb8f9f4477e6cbb04cebf546e611e70a6ba639c6e731d47bed33a5840d22965852d2e144233415e7f2464bc738e5fee5ddcb7eebbeb9e3ff3d81f00a6d3361887f414ed9dadce268005baac19546c5455059fe752d90dcc3a6241a72c7a34c95b70cdee62d90818aed8e8ff1d73aaa4a4108e9a16cfbd275bc0945a68938edeb71b31558a1bf77529d1c434871c40b1de36631903e648fffe64fdd328766f5821a2a7bfefe8d0c3d46fc23aad98b8a481f64d7190523e28e4313b3b02ed112bed89ff372270838dc184ff509566a20a40a7023911025668725885bccd322926df997a5aad6e44776679c6ddc33e8af3bfde4f23b5c2ba760ace76d5d78c634ebb181d14d942fcc80942456beecc5f99af682487568bee347237f932637f217b880c58d75da46d9196d76e0a8377cc8189e2ed09f07d65c899009d44798d264f903284c59e18fa6190dd8e1c0f9ddae0a311a4fe489db28a2f48e5b69ac77b1fb0e5459796ae505ad2cbbb38d4f0f94f443ff6168bb21ac84bbd533db11f6fd6f0ed413df9a1aaa1febedb2bec9163e3ec4ed1036f47bd9f4a610f7a0c17d6b582e8a83b335e35a7ab4042513b0a1853baa639904095991c530dcb32052deeaeead796a7453cd2dbb37d4cd44abb74d14eaa21e0059bd02632c36e736bbf16ed1ab14889baaaba3f580d539c1b759d2c42d58acb12320867b8767112a7010b04b6142f5f592ac1a1e055d57e6e63014d763475be83015fb8850c51c827de6e042ec0ce2104f00352798bdecceeb8f0a372206c2fc3fea6895cad90e29feaba69b7353104605c53f842c666988a479c5ead56662f2949056d54c5b86139e8f65feda5227dcdb7ba9f46f4fb82b52514388ef781a2182e8056066f799370e826f22982b35f08145ad52be10ef186543de2583a5d4c4aaee699dec1381aee156e5ce1b46ca46b1c911e4813eecfa65b591c51d8ee0985ff2ed36f8efef85b09f77fa9e57c3617835ab3502e06c472b0c3491d505788a300bccd92659aa6504f8e77a3d54bb62608b43d38c5e608657563c081154ba1853def99bc8d6610cfb5d8bb1b9824fcb3a61b64e9e874ad1f3647eb928354547f9770008ace858b627012c632a32264bb8ec8f79e1f194c77d642645a00301ee8a5e9d9c0d7adbb5a7884e809a1d77ddbab994e273f3bcce6e179a925e911826c2f12d5c5ed6cce01627062226f882dbd5d8e57de8cc1de57b5deaa91c89a7c543c8c161ab8c016e25b2cdb83d33a0abb3a8152424d85a351c27314ca504449d2e87613a9b045f9a4ecd186365bc9bcb5a40b469b6e5b0e0cfdc634a46267c722e53f5d7688afe4a24136a62ddfd2c637300d53d523517726409b8b1b263cb014e71529244ccd6889494044835ab2767289e09fd2792e700ad9a3f0d25cafe73b91d1028e6c966ef84f9ae905dda634fa8a39e4c9bb2d69d044fcb239fb75200cde174d7d47a63336ad698e69c0bbcf1827e34f6460ca948976696141137ccedb82d1b73bd4978a27e342297b2284724b072c61dee38d3ac9508e1641fbbd23c539f28c6f77c47c88417a6334645fd4737682df2dd624a331f4d562c71a9b849a62546ffc2e4320c44ce2adfa638f504f58bf1f3a9b869e0d548da7d2bd0c038931c1672cc8ca29359d07d05ca769d40b32c1501e0807b9026d1a415d854ceb06163dd4396fb0ec0c472df26204d90064bf8eb1fd22da38a38f9266e8f5c1cf719fa38964e4f5a96eb9557ac29a2d75d4daccb7cce9b5fffc151097c6c67083980de6a4c0dc6145e5d0aefa19619ff6586994d44d072472411a9f3ab21d8ee0586e5e16694f96ca921ec880608ef1746e479a72c6b41519e08b6b6fcf3d30e8af9715bf8e283ff68f8bf63d7012c3e595f1bf595b05f5767acac40a7ed9c1609cb5487612005248fa612904090f703e0577a79317db4098ba4949a6b7a4be5eafe5be8daaa67f95ffd0a8751572896aaa5b704eb949dad431ba35441a81c89840404a934b968e81c8b0e36616582ccacf24232f8983ce1d55b1f6acb253455f87be656dc72a57adca03daab283fb93d224728e40d4a335abbedeeabe3a1cf33ed731e2f68304eab9564dea7578b0d84d0d945ca320542e7570ddfee649702ed97852edf30c8de869b8ca5bf1377e09a6870aa3c346c5666c58087e36827066001881cecdd7643fa00b0773f8345da707c9a1a1a4ea679363285dea001ff648d24af941fe764042af149da6bac2020236dd2c8064374f296c692d871faf87bbdf164746a0d426b633f4320492dad8ed2593a4f58d85019b480b082c7109f083ab8e96967c21994e7fc2a7192473e3003beb53c48c328e5aaf1958031645a7eae9e06fc7d4be1651e73ee90da996d1681c1564f782b413747943a0b03858052620734167abc0d87c5fe198e044670c6cf2872594c7bd0d2187ff30bc733f9223e121374bed7a97063cd908f90147bf3cc3dad5c980a06b933e23bad745df83b760e70b8c4a8cb9f12ac8b6fcc7280e595a01a4d4316e2b53829203c5cc8e97ec0b267940c364bac800f91b3ccb4c1edde31ada848865a1407faa349bb3b50ce59e9669cadfc2813fc33a126c78183ba28069f4809fcb392339e41d1129121a6b92c007ec562a5c60245c54b51dc1b2629a59f0b293d7c7d7c1d161e53bace79a997e2a23d049338111c6faec33bc6831a831d15fe1abf4c1a2b789e137731e71d058c74721c132b1badd335b3a8bf833d6cef0034107c64ba6247500affdb128a1f7b632de90e5631d803a08c6cbdca9c471eb06403d44fe4dd04b96882a20c9128b7e00b3e62af75aeeaebbe29a8f5a8b5beca29e8d78dabcc54bba85536b80535b291c3655fab1d69af9bf10f2d7623ca5e3432880a76a0a8126343a2c8fbeaacb055948a8ca8db1ea50befcc54cd4dcd57ec1606743ad948f4f519983975717b61e92d78514f3dba7e57c29457ae5a6c32e48f272fa508f041f99fb93c120337abe67dc6224b390b1e9034c794a190c440e1f2071a411b73eab4e82ef8b61bb3f7023f59bc19ccb1a1d458f275d6fb944ec8a20927b97f3a4ab0fc417d00c03c62d3de2b2b4dd82f12ab05c2aa00ac88d533419cab30f571951b0006cfb44a4217e4a3a600b57c6d35f77678f7a1aa500c16fe444bd226a34af65cc790126df56baf35ecc898d49efcf2d8d1fe783921f2f455d6d63bf553796a8df9bf6dc832b352c948cdee48d5f21755b091b45f9b8d217d89969944b475defc3ea2c3e6dce6f1f943e45455ec354a9c72b5c89fee56f63e7471419a185912fe189ac58e2ddfec4494c84359f28a46bf331201d1e5e9825a9bfd7e08cf4694da61249643613c5926bfacbcef3ad208e3a91f6a202e1575c4e0277a05f3ad7c1dda8b904d5e2ca849349cc4aafeeca1f22a9dbf4cedf219b5cf75a7a4a533c82d01d2a19938579e9c85240f4a077d5a90031598b3a6c5d2a0e9345a17fbf5121e20ea006ba34470ca4709fdecb4e2d1735ac7ce49e1a4ee4fe7c2579155d4ed718f78a5cb9e13041cbe129c4f1f86e04829b87094947ef9a4ce003ca64158beb84a0ea20ec5307985b13b7f1be74cf0629e18bab1eedcf55799f735934742fe52aff509365dde743536dd6ee5eae6fcf74a52106ec49a53ee756ab6185fbeb98792daac0611f8d5ac014f5c9a35874fb4d7f4987996721b95b5dcbe2070c5ce4d8edea6526ff163a4ff49a21cda370172aa0a0a5ce8ad2cbc38b365447efc76b718c5b7b2a62df4f9c2d380ebb3849dd08eeb6381063e291d835913afc9bcee4198f48ce51c5f442c455756ef2b1255376c80d32b4e722be4967a6589748be610bd704d81791ba77d7aeeafef6c526c564e775cb974232de8af21f26696259d9d5fbf567bd16da0bb11c0b6c71a1ecf227f2964246a660a2a8d67fb7b9454b999dd2c74a74200c7d797025f1c2bb9cdb0346f90af6fb622dd5fb1e384cab91f6cd0b5543b019f570214649817ab86ea9199feb230f47d0085984a0c01a686ab3797397a8eccef724b86fdba004327d122b3febf815e96aec414cb3bd2ede141e2d15bab7dd05d0fb88ee71496591461bef94ac1c07bef83894ee866aefdef8db5b70467e983bba5096062504fc573c451adebe1a5cadc4634095829c54ad7330150370ef17a388bf9ea3a4acf453b685c548766a0e09cdc89b407ca4adcbf2be55dfe21407333e817b7af958f4695f36ba8d177baab9de92b0d07b06abe4bdf23a30a26434bc9982bedc9ce69ecabfabd3048996cdbb11a2528fe575c7f4dccaecc4c96404761968dd5ec062e75ff5bd2f18afcb295d26129461098a82e90a7462393979aa8b0b9d0d463fa14934b17a4f86f3fda01af5456126cce80292458d0bd4a75bcc4666fe7f49f4ead1e917decf046d157129b7823948fa16df4336467229121c2e61dbc9c631341a8c97afec4e06e0894e86b61458abbca9a0789432110fc9f921be3ee7505cc4dbe584f82e40ffce21f447eead11df882bac5c92266b519f3c47d439a9cad4ffa6ee5932bdf69afc204e3cfb6108000d5b7aa13a2affb9855c73e652a79f30b578da8cb583dacefb7f6e1f8b9a77694c243e582f9cc12dd3c987ff1ecc656e254fcd16086a82c253cf327125bae561ddf2e4b678b2532afb92053d1a4f44f56a69e66b2beb96fc7040756fba2618dde68a241d78504b43148ebcfd01fdeaa6fb44d7f2a6c9236bd61eb7f8c18c2dd7757f89e3870e73b2a1665b515e66a69ea4c9dc2ae63552cb5e4ec3a16a56539bfefccda30f6ccaf4b08360223ede8cfd34ee1872e8766429415724a4a9fee56070bd5955f496c7726517e08c08571c80c4bc238a59f522f53f0d08ef306bbed484d69d03d9e46be12279a6cacd805a3eb8b6a21f92ad51d7656242d68863f3287526f630b66d0e7ec487e9ff2063b0ae1667973b34a19e870266870dd0f83f2f5c5366ff47673f704233b2b64514b425a0b3e6827dbf9c77d307c87a5028ac0f42329ae899255bc0393186dde79a11f5107db8a6cf7dea40373998cd50a10fc776dbffd1b80075cd57b81eecd9ab0cadb1060d71cbfc5c75de1e50db6c7aabe38a8e139a161dfe238b10648fcc07c4606614d437c11601fc5b08a8ebcd65d48812cbdb2c5765e25965934dc6dd01517593b902e8176c9207bae692c9351ffc08b597be56df64af2cbe94d476b09e27027c440be0220157e172141e362f69ebb75cab5d5a5f5c1b470b3eefc6d66f3a54d96a496d207c532b534f063a17c283b743b0aadfe6414b4b83b0fe8d20a48fa8234d0ff4c93f8cf49401fc7eb28a906f2e695ee75703482f64934dded45d2037633c2b13250ef82220ac2f1104ef8544bdf573d6761f6e76cf0f205b4e098459252d2f52910db70c2794d7bac3e49641ef40f280061c121a9443e14061dd87abe1dce50033524ca766c46cd409648b73053d4205232a32cd4adbefe056801b21ecabaaa775508c027bb377b278907987fb89969e9c0492df0621205fb2c05013ff8721b0becfe57480cc54234ac2bd347116902537e1efbe5f0fbcc17ad9ea3b446b980a3e78e8bd0b0f9956664985441da8e6d8c50b3f467d948c57c7c754149fc71775d6b83264375a429d8fd63f11ca4e10638195360e5bc7c1fd7dd92b7c91bc741193cf292b19f747c9c1be46784148dfc7dc5133ea59b44d59c988bc85de28be2f9ba7d99ba32f45aa0e092241adf43995e9fe0526eaee44666a1374442ba44653a61e673d8e4ccc0d6b91cb76b2aaf5cb9533317e3a14376337c85cd62adfe473089526d3e96e5a7f750d34e510ba808ff2faffbeabb70175c3f21ad09f50a929839acb326293972e0651091569276060fd046bc40a3fcafc25bc0f7993121cfb14afa37dc66edafd4d5b1c975263436cd9e3959c108873945c1c0b163933bc0b0b1954436d1622933d137a6cb0f13063ff6f0354fdbce2ab444fd2d9fee7107f32a9597448df8b093e61f874618a4cc8f73e35684aa08f06e9173c86b6fcb2603dfb8f0111e46556313655b9251a345c68fa825b018f41554c2f2d3c8199bfb46c249135e306a58fc82c502061b4e3e5acb74cfb6948750a948f9a4dbaa010f056493a61b5684cd301e600dd613e1d5bb25ef51e430bed74d362e1dba917b4f6b0da71788d3c0325321e575f81fda10fcd6c1a79dc849879077f0897d07496f346f6184ac386ee0a1d1a4bb8a64acfc2caa52c48aa4bc346296881c94e303d30157f598ac6d56a878504a5058ada4500d847fa3f0d70ad934e9c088130fc40e79cb83fcbfeb887480630d9addf047688788793797956afbbb36de237a19e4b99e054c1c40bd345817b17f71eb5a791e9447bddcc6911d15dc48454f4fe8c12850a2eb0a9535453f9615ff4e7578d601225afd66fe053c76b3b05ed8cc8f129dbe83674cc32769d0aef167a332776cd7b250971255194c518bf984248d80c1a3c81a45aabaf06e539f4a2098ea252f188c6a2bbd559f9195b8236b88d38f05d0b545189223f91ccbc80ec29941286c8b9729776ec6b2015c393dfa746e97fa364e727e6257d3814ff420a0d555db45e5d955c5ca213666125c482a5b9c296fc2a0f3b82b0c6a8895f5972dc7358426c2075d4282980c1075a4441a23ec229e2c53ee42c421931e1dffe196abc3caf8fdde60ff9aa0f528091d2b3b780184f97705850c26b4cb553fa239203673512050036744d4ab14d6c0897b46792ef7a960140919f81a5a8a3226da27aec89acbbf2b666322aa880ee52f640abcd312412e0d156c9484c20fb4975d2ebbb1e6f1accec35dc0950f9cb361a0ff32ce89b60a2c5f33459e60c448feadceb7310fcfa1236bbc5110113286a3c672ffe784d53d29471fd320dd2de808b176ec797acf4f859e2b83fedf03c625ccf6a295c5ca73e017cd79583f026aad3206c0e6c7f71e29d29ba2d9ac481cc29794ef1664db7d170eabe758ddc8c08323a6b4ab4d2d92342dfabe494cf0a5b780870834329e0cc535fd5a739e457c3440d24b2d7cf7dd321137f0c55bf8f2a2275db90cd52a85df6c2de43ec880b11ee8dc2879ceb4dae01b21a7d38632f6c56c380fe2fef27406dd84d7d2ddc35497367083910ca82b53df859178f91d64d0084218768558593f7608c52e58b133b30cf472663c6e1153196d9391ac55e017411cac25a4978f9d291a10f64a22edc9f4ee02fdf2f61601f70951a056cb33c080fe9b2903e2619e45e4a96568f172164783e266a11121fe1b1673c07510fefd7b2a4e00e8dbb75968988e254fde46f31b64a0eaf9474e3ba7bf7309100038f75411d26632b4377a03d7caf802d5c033955b5b7e3c6997102d1ec0e37e1600e2ab685ff1459d5192e2779ac60941b8854b55ec146a05e29962ad67c2724738dc808181fd5710d7934f7d6199f0dea5b51b0422f05696f7aa62ac3962747b02fa00694b4ff391819dc2d6229950111f83c7a8e77077212154873f29b5dd4d053568845a81320b3e80d0a22d8953d66e98cc2237f45fe1679273976811c0f5c05097c5659f303cbf3ba5bfbfe27d8cc0cd468942fa6163093f68f56bfe6ee131f5893358b131120bf680fd21ff2193c117cc8312c948def9d243053e4341a11a12ea9e5b3589923f9efa6b056771e3ea1a0e12ee0a152bcc2eedc9a1d774f754d675963909c75bd6e297badc7328f84edab8315deec4bec3e3583ffbc34a700112d00beaa4875cdd127a16141d2fdfdc6e817b6b69e2a8c1a5491ac667bff864ea3a9cf87e985b85fd0f846f10002ce1120fd698db4d07804e0f13960da040a7adf9c28938fb40b726df4200271de122080fbaca751b51d77c0c2db03213381c4a0a21f2ae79912b47b5c32b8bc204ef23f30b3033cbee882dbf6310a352ae447e579bbe3366e15e98bbd8b4a183219a0ce3abdc6c4c2e553cf43400870161c2b7d4370ab13f0ff1ce1af7127e7eae9c8a23fc7997197c969552a1a11088ed451ad2033f4ae02cdde76f8df0ee3cb0826539f2f82f5f54f4a0b63e92372c22cade265aeb80f0e5f3f0bd4944d0ff1d11ea4028c4308a5ad0d64743bccfe80d296c912d0f7f577ed566d19722e602c174190ace531496c06c738dc7dab5d50fc08792a4437d185e8cc5572e001f8b5e7f01b9124597415d1c4b53683e474e4829a0e18ff93a32e8a1df5836ca008b0eb65d1ae35e65c14832f5478fd40e5a654f12726e639b15a070fb12807cd13eb4d19541c7c92920b60aa08c11d1ad79bb3058562a27716949b35ae5b16d14a42ba80e28c2c8a2697295d4de42b6e00cac955a432812a31a0695c7cf5c644d864f5fe058e506e9a520b81d15951b0175af88f967a4b97c8794055339553cd75a410389d77fa6a7ea70d8af0f5e0872c9f1c9139a1eee21c6562d16758f6d4cda442d98c99a38c8dad958c78d0ee3dabbd5ff90def86e8e07e3f21352abaa743de6564be181232f63f2c194e154fb65b01eea9c996e57821143d5f155c3c7265fff1e27063f7bed8913574f8082224f60b9c7e16f096c5631cc24f722b85aa60df7343c2b89e3c80db1859efe25846d76b8d59cd19e8e8640d9f049ada227338d82d057c045b401578ee92d9c8bfe54e495038bb25b0a13f818144eaee77c41d78aa10f247b40762aa56c9e29e8336e958e1a5cb746d1dcfcb8c917bcd9d46a9b83679513bc178edf8f2b62c9b60acc349cbb27e489a3631d4d43d4e5307c8dc6c0f0bc1e22e700e4c7ffd6a9c183a085b8e4a2d712a270a0878b6ae3f45c51a355cf19d8ca243c0341b5617dbce8bcceb06b8d91f1b3c276a289adc6a092f2492aa7ebc9d977dd96b2fa15c9c8ca4d9922921706680d19d2a82ca2fed1c6a4d6d3a8f768209a03c577db2a23ce6e2f18ac952be634542497aee458796c962f4e153b6bc8f046acb3588131c5aa444eea7d6fd42f6631aa96ac4587a58e67ff8aff4d9035d21971f9d6867a0f94e343d00fdc52e2316d849ba0eac16dbe386cf5f3f3b829891cefe2f06dda4cf96d3d916368ecb8535c06c61cf0405391caad68f0e098b106447bcff4e05fdc11de04129cc07a4eb4353b0db8d28e5916dde8465b5440d29a811cbf307bdb60a797756975b99c2990ffd9738040457db38ddbe3bbb1dfefedc2c7fc39c943ab4e0c13f81aced1c43e59caed37071ee646e1530f7d355eb74799247eb894683b5d0df15fab8bdbda84abb91b169ba9266b5b18cdb2759ed86a0c88ad5c1623d1df4f730d253db7a45134c336a706f130370a193d28c74f06fd4c65b305bed16b111d27d14b6318de6074752c43f6fd13afbe39bc22f3676083948cb912d4b66cfe957e6632ee5b8dd3c8dc3600468fed88b03b0e6febf73c5b54d3f99f75a0e1e11560f7c18f585ec251190b9850b320f5bbf8095bc572f37aff539de3b2c57d9a5186d9224a5d89f7793ea4ec9be5dc2286149d56894ca0a8c8d8c6da1c0b384d8790aad347c90f29426f9b9442a0a644d010215e1fc9c8dd2e2480e6b19425269dde23a5303dda72e26a30395d3fa59d6aca75b972e4912bc9aa8c7465b9c41ba234ae4d07880f1bae79bdd5367543b658ee365ae625278d1d2089280a8b9406d9752a349507986fdea8b54bc05c0ee0aa7385431603e36a09972675241508021d46d25fd52730fd561aff4b83234e6f2e8279e54d0a1f65a6c63ae01446108215e9023eeb33b211d8cc601fa889e75e0be3aff01f7832bbd4ec07726f8a78257f60e88195e50916d8056edcaa919c911ed062de1eee536a9a303188e8701a0ea4db59fcca0c9096cc80ecab07da8f16dd775ae54a3ad34606ff6bdda8d02c2141df524eaf2cbbd694236c2af66c66bc219c86a54572b8a3c6678e2a8c8fbca0069f3370f9e4362c85b593720fdeb795453232b843643d3422b35fec6339a322043a0ec4de99ea97b24a435727ce296dc1d8da816f2d9fa8d0a9a4244352f188428f413adf3cab7cc659ba30bd9c0bf1cfbb4b31dbf936982da55e43e5bb52c1b1716b11ee2e9ae922f29d8dcd81115977b127e38efd11d75f7cbb8a9e2ace61c43e41b9c11569593c3a64f72d52e737e2be0120b789472a089ca19e0a81d56e68797c08f51e00e8061f930eace4215f0391b945ab92fce57416184d23bb6b2d3a8fb169c56779fb0fa172e50a72efdd72379aa3133fd740d54b85252bc8c1ccbd9712046be154bfa335a6702d1cfd9edad8aab141388b7491c08185b5f18e8a380c0365ab1f9e9ebefbc4c6bab6f6f0bcf59f99c96cfb1395ade7665acdd9c7b885c887a361492b6900e5944f44c3e86b74bf6ba0f2b00d1a8037cac477aee10c346adb6a6cb346305bcb22f84407f2316af1706629d4f763474d8d2676e01ed69a141112ccab9263e7c6725ff3b04c95a1385be367d32e8ad70ee09360af0b6b35f8a8b094f974eeae7cb38d64db3c5f49fc0998ba2e0e340e435efdce750fdd829099005ced9f40088c903d0857af2b4b76830b94e68e9e6f0da8e384230f63acc49f87754c6c6aa8fe87ee9ced83f99e1c0b70fba0e72feefb10d63d6a681320c8de50954187e3e2d6f874ef4a15e665e91604a94811766ff9e286954923e9011b999e9ab7f2c8cd8a2fee062a206d1c84b3a1cf84f1078b393636c8bcaa9e34d1a1f00e86bb5418bd0d962f427b8fb1861493478baa80d18fe8cf2cd15e1c1622570f7feba29c9e327ee753290d72d26e433fe1399e5a1865b8098ec2f2f7a4cdf270b7a68e29741a8f2f740b6b55d85fad12dd0b4263adee2c2fe5ffd0f5e131e819c5807db8ae091e4bd2604571bf5440f9f4ee7f5d1be812ce28902d233789a5d777efdd3022249e7ea96494cc7728379e41fe0fc684aa5c6253561050130381bd1caf209e09db6f96020629b5c7decee7582b9e844de0456a2ee7d78c96cd2768ce79cb4bf0ac1122418e7dc2d259273704cc7b2ab65399024c895843a49857071f11c50dcfb55ba8b2f6c3f88042b07b5bd518542d5dcc782a95b4d569d687cdf8575c64d40b74bd07327146ef5417194da504888e058bedc2596b9f54685ac6fbcda1ab78166ca1e7e315b28f9565456d98332729f92530962f66ea53d6826484f4b80c4d13628f88fe81e9e9bc890ab502840b396d0b6d1de8918d1997f0cd31624ebccbec3138425315452997e8f79f8ea839a7dde6f9ef4d1bce40a1166fff04a1aaa0b500b03f7ac6770260b66c9d06aa7ff238d0e25cf8d33fce436f99620eb8c48ef319748b1d0489f9c21614de8d825bcf452a372690b82d8f4ea27a5dfe6f4f69f4efa0f0cfde3977550f24b62062d1299b93a8b2d20eb423b38e97f560a7528ac192a73d725c830b2c82f535bd4957b9341248f3809ebaf1e5b0601512fd326933ccf0fd625d322dbfce920045a54f5181160804a762d51c4ec18cb54529d610b48ca6b07d749cc027e5a2a7d9feb59b9aa6fa9effa7231cd503c8aaa88f5ee1208b7b6652cc47a5c9323ed9952ec62ce85b8502cc97713d86418db5929b066a08e9a6806dc30b902d9f003671528f072651ab9250bbcb64f3da4bf4a1ee3f5021e600451ed7e5667d874a535bab058aa503c7e9387eb9df11161cb363ab0febd0b21dcfd84ad8ddd0b5e4fc7fe0dd29ba880f529f9f01a20eb6effe282582ed52f5f4d82512814fd4c85a704246cdbd05d26f7504d1c9de309f3ad05c8411795b50fee852cb13e6dadc990049b135e234960e49f5edcaa69fec1874b93e34208330fe388a60dcd18b2015a8c24d93011c4fc2f77209cac6b5afd9d3d00b6fb992da48967ff9c9e21f75818918511b1b4cb84fdc35204700ffd297054ac9019d1de7ac449e74856b2503c626bc31acb7bf6534acd0ade072036841662627f3587580a85d704875f7688adfdad0a41adb603203175da96764e41f772825482501f9ce59663c6a4a756443f09e0f773b3c99f930e2b4b2f695228b31f21aeeb8aedca9884ecc8d0df6736f749a064eb77e27504da1c66fb993e9690a48b9280d368e182374ec479903a5948e8060c18f10f6fdc3b6ea045a0e2ee5ce825ad31954593ebc39c4c22c60d125509742ca949f1553674b3e057a99e6b587e6dfb7e4cf1d96c2ff54ffc7153647adbb074f23d0cb1aef5e0539ab552d930017c92c852e0af28b3a151feae2bacb2e054e73c1c508711fa2e7604274efc5e63c19d0b489063d8fd8452e89aa81847dc4ca8152a9766c6bc2d3e72163439a9df419979944023ed8214474d98fe6d05ff5cc057b665542fc4376ab4fb2186af43366babe025948be8d520755896adf6795b0fd679d2e10e97a297c3f8c7f704be07a05bcd7cb59ab5af5e485ee2c6c6a9f74bfb92ba1f1acfba2304c36116d0523dce223c9802135cb901fd12b01c180e9b27cfac79730edd450fcd890d2d3e7333c8fda5248b7fe2ede4dcd10b4ad4a5bfef8133b8a7b23e6a21c897b03984903a4ce39d31865d10d23f6a009f29bf3a8c5383fb6060d965250343ce94ad09ff2f351bd3e7b71e668605028557c8e4cc7406a4d7c4f044c8afc700a67436ed1c65166e3e209f7c73d1930663a7c56cf35fc82ff5b622af945fe2ac4157ac1c33c3c8db186a44c5409fe878101ab10147ff0d2980c68b5a0027b7d1329c9c74414847f5c7b743b1aa92039c457fb356ba10d6998ae8101fcbcec15b00dc0e9303893250af0a07f3d21e4851ea7374fd7e3f32a6a032829feb2edfcb72fde519a6c94df2fa8f3f423d07805a79b6ddec5a471b90840418905c6d202bfe430373ce7beb543d2dc8e8341db572b3f891d9a044f777d686a156fe85ca6a938b09aa446666674e44cda61563dc0622e6751ab1c6fb52cfd83a278e4e832e2b4e126a03760aef25325bbe0f0a61dd1bf20cfe252169cdc48f675401f35169e1153514e96d228e32c43c7da03751b9259225bd943bb92b6c460a892991931116e08698c9471f8b86b897ec4fbc56786718d084f14cf0b1a0c1abb2220115ba83be4ee88ac7d6e2e41cf0bae78129f434c86b60d04dbd62855b30b2211b435e223301c04b77b3e0d04ed78d0ed7f82ced0a4c0637c348b7dac7119b2c5c73eb9533844ee3776c94fc820318b971834f60542991a274bb3e6d3ec614fc90ac23f66a939322a6b6147ae19d340d7d748cc83eccff7fdfd7c4c231da6ddbbdec35824aea2b7a13d80cae87132a6081060b18e2aad0d3fda0fa71e88f956b0f80362033465cd9fa3dc05c7051e0bd1a9abaadcf3d20169e3546d83c13684192f1d78bab3cd4ed539ec1ad12dba8226a9521076ebec692fcf1e2b2d9180eb18b90a1b9ad2082e5f1cdd9806bb347ec7127f866a148d85f1766aa0e3557a385d5c9b6e91e5814bc01d872b6fbfd58f98c32e2840c94de169035ad44f9f5a19fc12e4a60cdba960dddeb0f9266b54903c78d10ad42008214c20271b32a6c801a1a738eba301db01fe026e601f07bdbdaa14aeba9a64957d1f04dca539ea7543f97156465efb518d6bab78f19db1c17caae8c88c3e55a237fc0c68d64955f6041332cde92d8f511d055954dc2e0438711244deda2b134a43d68231894a833bc87717ff166963470cc0f73c96d49a974881501f2c4aa4fc671924d056967a417a023d229ef830531e2de057e5b72b13ea87e98b355dd4aa59a9f0942a0b200b90f641f82c60134a81f9a9670e2a720f7822f3e83f3827e5aaccffb07c7526f773fe2a023220030ba8a61a2948e24d02d62922e628e2c6f95dca0aff54619a96b51279bd68ba68bd6701ba822c7891cbcb4aab3e9151edaf5a0bb974f5ed8af9a9f02b452e6910cca5403c2e0fe57e4cbf7fda18cb9c909b912c34024982982436d1e588bb24cd79c6bb753a1105c6a5268180325ade83f8285ad2ebe9570423de1a464e944b532c008c027f5d511fc40538635e3716f59d1820b1d0b4b64617fd8374095e89c201a8a8d038a84c8cb135e88ab3417f50fb14fc801b19f9544fec7f9d8ccbde5a8f7f28033c805480c287916ae4111011443420816a0c5414e7e8f3a738fc74bfa46500bf7b39a441f7fd637c5b40140abc06ee2166f49a646346122bf0a62db89ec7a5d119754d3605db7d69e0a6e0443bc4c5dd8e4127499528698ed43e14a49e1bb0ec966f7d580a949af193cd4141bebd42b5e21581ad04e7d3690736b9c5e442c29d34d8a567f82c50012173cafe9382eeabe8f8335aa1a1b9314c7524badf9c1cce6ce49d57d81f5124e55226366077bf71192625b47f769d8459838743fb4e8b8dd0d79f84a765189a71a4d2256cb6f82603ea20a386c9b763cb0c2035094508ecfe158910e7d06e3117cf843805167680e8e09c745126d2c53a43d2583f7d2650b1788ca5c10ae471ef23764d3b0928b3823817ac18f7f12983ee460a616b2e13ecdb2420f14626e3445e357a05e8a8db0d1fc37f1945ecec9d8716098a6ee4c4558581ca181d2f8be602eb242dc6e63fbe314c45b3d01054c8cbf63a8fac3de0b81abc2b303aef0c6b020db33d20acab32c633b89aad4783a01756c6079dd5ed31e0acbd76ea191fab9401153cb2182e3373e208cc211dc393a9724c622d79fb414d929176dec0a730ca4d262585fa6046faa7896987f15cee19a67411de90fbbb0e7e0a1311643e62257676d70869e4119ccb2d638c46e30e3186ce0670bc98712515358a7d672d3f6b4f749ad24bb26b0ae9c7418673a38d947e8434fd9f3f6ad717867516bb8fdad814ccf2d8679aa7df87394ce05f8d50f383053118acd407713d28c7e261819c2bfe2bbc3facc7bda9a4c8ea711a62952717866910ac6a041a37082cacb332c834235f044c68b79d66669c10360c29ed2258cdebd023c966f0e156dec8eacadb1300dfbd9e0cc33969645319af5e7a0e45b582f04aeda5a146e869030022075c2e8b780ebce6d779640cc43cc21d7187ac6dcef9c34d3832dead98a268147b7ec15e913de82ac8a0440ffc370e0f7078c1e266480fb48ac754467f89641787fe0b1a158a942759664057983b322a28b9092d826671ff7211dd2e64fcd1e59e08c26be81ab0ab1b26720719c4ca2f52f444e2da44e8fbd6d50a3a0e45832fe835d625edcec256249a4d161c4d106108f31f00013aecff71628ac43d2808b25d176e568285348c51373f9d70de676e6a2ab18b849e099f908529d311915e9f8f24b1e58800372c8b614434fd312f4e785e36fcc54528d9e3435c04a17ae430b1f677fa0004596102c13738ae824043470aed74d6f90fd939e16d8726c42536867f88b75914ca2eadc8406079f8cfb0e58e326ee83a98a6b6e99ab2d8928831e267fe882e361d90996026020abb1793affac70fd5041c922efd3ad0763890790d30b73a9d908c628995912580e618ab9bcc093d3cba583f5e8ec763cc4ca8afc7917ed566a4e4a3461687ead8e701db2f98e0f752413349e4bf2e7a2a847af5fab87bcb66b7e38e4834fdd2de4d2db4dfbefc17d266d9e27da3885bc2bfc24290d0b2890eeeff07daca95a0e71bcb34263f26e8052ddfdca5a27691e53390d30a78d1c11415e596deda5b80d883caa774327b89b82eb70312d6160d81162721ec4c0e24aeebe74dab050e3f32111c5f576fb28b6ee3d3e5f2c6964e0f15ea9d1cde5ef49af5b15ddfb5cb75e8e1981254faa8771fa26f99ae38305aff1e4c4a0c2a5eaf1b51b29a18f7713517768763d252187c0c6c91ccceac0adc6e459a160d328a081fcdce31ecf3d4589a91d39f18c4560468af254ebb4f5191690ddc6dcbd3062ebd6555e0666b92d6f7f424ab21f76d52da5d9aaa4c4be87e5b4e2b68dae589d8876901dcb5cc68f76854843ef9151fde6a4bd10a81064d24f6615a00772d335a4b569248aab4b312687f0b8bb64707aa109a36e0667b82761293a4840f12316586d4d2546e75aaaf28301fad1995311399fbdc7921ef876d09d6e85ba5e52fe5200b095085a0a40baf054369ad4d402f4c8a0bddb55549fc226c339c2d6937f92ed12c976ce3b311ea4eee52419bb325cb6ccb11e08ee6d5ab0e225e0a31337759d3f78f80ec93742442e987218772094a7e80b07794e025b963ace3977263d8e7dd8fba37c527392571aca155979307485bb0b125295e59ec1e19b7233cd994a0e55d67777bb837827b6b7d36b62457cf14d9d8129eca29934e1c580a4cd2bdd2055eb3d00c917f1ba21fe0a4a7de40834243c5118187a48c624cabc91fdf9a040b4c9c807b29b20350477a9bcc27aec9a1584c99eb607f9e5b5e974330e9b584ad2609154d4593e4a4a54fe05fda0e6ec6f05067baf47d54e4cbc638a8105b1223b45ea1ab07c25085b82319a3910daf3fec41c1a18f935367af60be6ff52e62440cc3f7c10730899cc229a94d38f874b2fa6b11e049b87c488d004c2e037c81646879de618c9200407c111fb1acb0f2a5c1ce1b80902f17c0c6383afa1a10290720b08de15444b07d02d3790310bcc3c2367886a14010c78b00e2259b589bb7350d3fd07960cd44c2a09361ecd9d70c7e4f4bb34bb2bace9221538cff2dba5eb71bb7809149c96378b3cfa3ce167cfbf814c1b307326f58d43fc85086b869d4329d61ac9e91c4d6198819b2c3c24a4ae9c80d58b5a2780314b9462fc7d8141cffecdc6857d388321f12642bded289dbd900a179e60f05e6cfb0bd31474fca4c7fb3529bbfbf084712af8c2aa2240173236127bc480a1dca70656c61c8df4fb8e917b4861fc651ea206061fee2273690429fd92784daa297195df7ff19f8526556e8dccabbc2faf09b1170dd6c451b628a7521f7a9408dba44f1112aea216c867282f694510a475a62d4785097d2e1bf07c0715fab5043a4e253eb48f8f27a60c8ba3259744b00e8cd4680a60600f6d1c4a5281b6a7b74b45820e7e59598971b292780c7f3af665540e1da6147253d90c4192d972d44ae1d13b888d5b1d0a1198d6004106569a2fd8fa95db17a281869115340058aeed756f5b68a3561181d93c57d60879b28eb22ccce4fa2b249c11480e241b0ac62b0226811634846fbe30117a26abeee0c5a77eb70d1d18e178d7d01328e1c1d9daf3439262697ec1313ed4f37e91c40e599cb2bcf098315a3850d9b7101ec68597b67b0f796b4364044d82b688a9b001bd12c4d527b2e865c5dca8f72c9bc7ec407e8a85747b7e16ff284c73b01b549bc1f84fb86166b20a3ab9be58efdc7a843070b9365fc007f4de77a2cd394357750a1e79011441398ec042ddf4609aa7f0ad1fd266bae72f54f36725fce0ad9c08a745ee5408bfdbee051247ec2841987005dc20a0524905a34baa9cd680656cb2229381ccbc21bd456dbe918f04e27da5f11174233d0010b61fd1f3e1e2574832be010bc4f6448ce4884bce41d13b2c0628f592618c1663020a49bd2e21c00bd920d161eae5db40cc3f54120d75343453b52f9f38b7628855a9493a02956b6ef04f7734a642ba57c0a6aa131991839d6f09cb9c709238c08328e0d23089b82fd48e484e64a675d7e069d4c7aaa3d8b1c1d288fd05c0230f6e15c023087f01432c1a803f2dad6d2626651fc97aa1d6d70baf86544f1c97da86938e0174d72003a997727d1ecf44a1949af2ef65f299cd9dcfad08d56ec8d9bfc10fba6633a03bf2bebb90cabac844fb8c59dbfe822695b0495e813a6400aafdcbacb9f93aed65d5ed1c7c226ef7989557b709f11f4be4e04c898ceaea0f0e3b926e2204f6a36a05cace99608be296494cf4c994f961c430c55de17e857fa7d104578c3e6d58aef482e68be2623560bc49a211d728e67ada398445f9a6f3ceb9ee977d3055282cb408e4a000d049b6c73411e5fd74ac835175b2a9af8e5e24c2259887656b4a22da1b1fabea095b8e239b22cf0a837359b70100f83494f764419608778416fefbfd6770926c19f4925558ab25c532510c53cc69f326057ac873d962ad8cac2b640e7f2e903b6b73f616e54fe80049c10a102f7689a901d782397dcb203871bb9c11d6932da015bb4f5e0529c83138f2cb3056b5e44c9174ad27b4c89800ba98d1945cd399bba28217104b8b5a26db038d51e36b0af3dad70621df2a40a77846d2e6866685a09b28078c7a64354e1b95becab810222549f226c31dc05dee384c54b8ba2cce95653a82d20a23ac48b0cbfce177c8a4b0ef32a34ecdb2dce2f12601101a5d17323c78d5e7d373ec20cbe4247a2ac21bfe298202280cccddcab16fe188affbefbe0a9db87263341b4efbc584f7e8b4b4f67df0ce8231b6e5fd30f2d60cbe984e3a3d00f03ed41e71a469b54a8964b45bcfb7ed85e06924ad154b86007358ef90fdfa0cf524074326399914a99c758ee2464e4b9ec2e65ff272236031a9a00838c184070cf6f1988c86da8e99f3155d37058ba91e18a384618e0211bf5bb6fe90f431b3ac89dac970975e38d32d2bbe71e6e78cfde9c415caa2a043598909ad21f2c07ace2b53a9141530801a55876cb2d3cec40b6ca1b12f164ac0f6052e81e9da98f2f676224d86824401875693507722db7f407b4c69370fcf648eb3a8a1b6d938fffee174eff4eafc0de5d9f2aab15f235699505dc5b12fc0574c82e06e8eb2fa03f92f94b7f10f08db87920c4eae1d46fd348880ba53e21aeb0a53ff4f269e22a4baa47779c25af504d904723a927630d39447d1ee90f96504728135403b2f2a00a925993b6e93840499efa2bbd8fff5aa53f8ccc1c32430f0498e0e4d9eb773b7899eeaff81f86071d9c0192f9afbe8ce45a3ee0a405dd0104ef1fbb5367eabc4297534d32215e532becfcb0fe31ac766c6a432a74a4dba6e3b3650936e375792c6215025665ea8cc8365bd4a3a25ece4f10a484eaf50f525d1c934fae5cbbfe210838f90f439ed42bc2918d50885d2c031f755f88fa4fac779cdf5c828cf9fa6585df9e91123ef0272d12657febb40fc8238b72d3123a4974ac839027287614898b68a281b8da24c07bf028ed10114947a571aad1ef19c213fc4a30f38f8fb8e24874ef0e4b4eabeac6e938bae464fedc4ba87744ddbb7bbad725f97e4077e37f50a97906ae75287938098b3c40952c017140a05d28cbe07eb89a0cf744bda711da9959d2ef09f17d24d030e2f10195fabcaaf34cbcec5cf989d6c25d44351c9147eb68cfa61085a64db5f753640ecf6140a4700c43fe473a28bc4142f705d45c545584c2421ee7f94e26a9690d7a5e88b4bcef1c47d47c5500e6603f39f457e01064b9435205262ca211f6f0a850d6f20f865e76e1dedfb19e8895cc7070aa014da944176db210efd1638478ac7c71de268b0a38ee7bd22259c5db6200df8221b331cd2b0527aef3e0f0412ba47c1204648152d345e9e570201115e16d76a1ac3409edaec2b39d87f9072462174877b639d345e84fe8b77dd210041255ba4a85b8cea6270a8149e8af269e6c38e72d353d20109c7dfcd66b3c38b4528bc43ee73f7518cca227684c2fc017dfc4c0ce799ce9a0737975da2798950cf31063c94b4ba9658f03ef487b30f17640106b951e660e38833faee62e7bcf23db07cd905f1104653738ca0dce01bd5834c1464c927c4943be7c906a5e405c2e850bfb643625cccec838b653308d3cd4f7ddb38d3145d797118fb062f65b66416d83a8ac1e58c8fa310bfec8c6701a21fbd61c2621f7a4ec8ac8728f3da00c7820c4d239383ba2d0001b9da23e786d7a106c562194ad94951988b188f052e3f00b509e469652a17a55b9ae175afed3aa4ed59c80e04794bf8703a241b36b304b3b76814a911732fdafc68dc92bd44406f1d5199cf0ad86056e208931a272b3a70ab383251b8c877544f4706d9ed511f7551d947ea26d18949280fe68f67923f54ae1f03fe2d786d1eec1e12f1b974aa948de1d8674fca9945ca38ac2b931df6cebc31af5f3a58674498e2e67953e377da2f16a16b1929b5dac80e8ba422152784e68a396c4edd7db68dfd405e1a747d80c47005eed405ab934ecfe0e366fbd3f8a16b3d8385d2a918e30ba62ff1475392e651553cf40d6ce483a33a4989782e3adc4987e176d2dd913709c5361764ec5c20ab310d3f56c00fd4aacf16f03fbe0e8931e9d4b2797c061be405ec00a5f6f5aada1a2ac0b8ef1350208e3e873cc94b52662e2147898864934623a14b31efdd717848838335215d87191ea35e386272373890c81e58913b6e62bbf18a3306dc547c3127d3f39968b32dfe476313249b4ac390c9693d2067e43836c4d2121eb0b87cbc5ce93d386788f766953cf93c3805eaa0fc7f71628dfd70bfed6e3da21daf8b8e7e1f6813fcae27ec8af9dd1689954be4bd740d61ca50c3503f6f639017dc4db17845ee0bd5a1008093f8f1c6d89ea610b760fc95d45aa2df31e82a48814882e2ca137975bc49ea3689db357352b85b7563324385e42a0f9df58143d9004656fa3512f94a2dc102b767e193dfebe0e234a41a5a3c97a88c4d603856d4282a33bb0eff399871c8215a252619ff62a83f1e9b56dc9249fdd9c2129046e5b0699a0f34cd401f26d9cff00d5285f302268b969f6cbb6a443aa0c40c5c07af280f03e2c3000ac049ab72e797a5b17d181690939055370b1f78a2759555e10798683bfef63e46755f40a80ff42cc945ef63cbd6d9733b76fcb6bcfa2844edbe024bfd3c13c28c9a6e976a3a3df69c7778ad8ac7398dc3f91e7f6e72e60cdfbee245a770a08716e7dfdea283c4fd68e42231bf66ddd70890a5cc7a3712c9d6ca26df833e11bfdc0cbe47a3c96ce2ffafc9679161774e5ef48dc6398255eba4a3c16c6d8c6e5e2d43d49b0c922189bba8ac4b0714dbb9acaf15313d2d7ebab540460d93091775980c221577edcc4adfa9b38b80b6ac107fef39eeb7df6694e61f8feea8cb9d24b037505d32385b3d6b157d02df0752b5488f2a1f1a511048213d20cc799d8fe81e068fe29d85141e1ab159e4cedb52dac3a846ae280327f1f4f5d7245aeea4d725a72a5aa84f817abc92084b374f28097150988b4518dc66c0fa928c91cdab1b25629a8999377c129469c7c8f651098c040f0578e2ceb3366430c0241c17629ff4bd2837fd7fd125c830faf06326ce09a309bcbb2ed51acb54238610e1f1e4d8755282c40b3e4f067d4a4bd24d3faccbf5e750993501959cb7240ea439881ed82a5b8a0020e398accde9ec31fbc38c7bbdfef308aebc0d9ce893317e9f19b54eef1280dab5c9f52773ce995fafa09bc20c23843fff5b66e8965cf04a3142ecb2906668f497c99802e35ffc68bb93d307fb8abf5b48d1f45a8ccd2a612be62bace2150b6237414f155dae9079432230030aa8722299bd0b2dd138878ddd3704eaae4b76f84d90191882364eb2d1e5d7bf78a9a3e0537e8ef11c07dd55718baeae0699fc80c7bda88654b7b7bd1bf440c210d23a739bf9f736af014e9cce54c7ee380ff006c7f54f0ec791d0e5111e07b5634fa5f8f1ea10fd53c5971703d42ff711c4a7aa5bbc9e4a0f8b64135aaf06185f44cbb83337d09636ba4c071b2279bf1878b99b13107b0d29bb277733e0c9063d6618aa5a43ce82df072159c7279e9611d18434c677f8f48de3eb69f164eee5ccf93875b9831b609855276bb97b3cecae8e27a4e1493e136e55df25fe5fe9a981f7e2b7df4262eb82da3ca128dc4db0c48e24e7921e8692ae14070d80b73d299729390076051489c421583934a3310436039f90f35c28803433815e70f843006472a5a08b5a2787d5918b950ae016fc2d076ed7dc14fcbfac2880a2837058b660092e884e179e2cae28b020a36d897d6a1d924c826c76cd2d8889ceab347cbf678b92e3bc46752116f3c33002a18698b920535abd0aaabbde222e4c3645ad57d4d117f6b1380072e7fa89ca77cdfdba7eef3deb67e7918555d8ad67f3ebd71a181407e84619be97c0cde9f851129a5141994a29713866dcfc0a49e2b9a89030df0036493f4eac80ba8e6f2400181eeb7ad097e1e1089f5aff844b6b7bb93201f3143dc076ecf02c4a42f5e04c787c8a0d24279ddf2af158cb12a3bc31c4971328516bd01a0ab7922b359199fa494c461c53c74ae2701798652d4851cf99dd09ce410753d4d94a4af755cb010e39517d0aa7bb2efd68f267f64d2c08bbdb230f474a9ea5109426c62d2b670879ca8bcc30f2746805079a079310a3af5f62690c80b3248aa62c1af44ffc5f4ead75ad306e7f5c6c1e136b6ad9bde7600e6f7c02071eb117353c613205ca2e52626d9a73b6a417f5e193dec469606fd8615a71e1e9c7cadd25f99ff503e20a105182560530da003040818faab78438074d802cbc72d403848c53545b926313039f24fcf92e6813e7940ece15ea1e2240e1d31323a2d719446a7ac276fa63bb90878d7b3123aca4861025d0f875389352eac8080cddf45601b1ea2f0fd64ebc5727c57d56385de3c43519410119c8cbb88ff0b5bfbfc19969b3f22f002151cea4a756b81efb4bda8b5d128f7f8b6a8d57fa8add5754e6eb262b80007876d67ceec342b968596a7699e49bdbda308245cb48551bcf7cf0c06106911953b346f19d0fede97c006bf7f594dcb4a7fe5ce414636fb105c4d3658dd1955a3d7f4e96dd2152209f62e5ae1e5536df46de2b8d8ce983892440dc36d98c6f97e2ff5261c49c642f4ef560461eebe6fc4811d61d94c62bf53f2698cf1b4b50a0d832fda8288b8f6a67ef9aa693cdadd7243f363c6a00d5d9d7f442c90872320000728cae9ec679679383df335f4796929e7ba24c5fe6e72bbc661fd801cfeb3ab2b7ba42ed0cc16b46e83e18982ca9896f13fb94de97180b14196c42f22df526c36e28e34f0c9532e46e7ce865f665796cfcc77c9e70802556fcf947ce4e7f76933de63032c8fd75460ab47c4072234d1f9f45b941e20c8805db0eff51783b21eebc799cd78896d99673bb3aa4169c8a236f6dcaf5b716c8496175791291f31fb184ff6260c33533b00b230062c7a2c9aa8b33deff7c8439b757b7cbf182277c193a1122b45ff3fe8efa8057d7df51ead1a6b1e1a0edada2cae95a58199b49a2eaf583b67c165904e316dca46cd3fca34528cefa92c4c8fff2f93d64995a74701c2709dab228a79916f194af667ac4b33a75df4178aa2b2663ebe78cfe93430e1a523549e493354d9917bf660117a2a52a899dec026088312ffc2886c5d513e8b91a3b39d5426849defba5bd681420eec0305e5d5b2215520cd40db2e73f829504084074dd1e985aec089581a6e36df55d27c22950d3feb616eec987002963801911f36da6e94ad2c17b5346c57a9f8b2c8518f8556c7a34726887018b7579e6c32030f2a3823182e6f78ea388940b6c66d435b12b1ee1330b7da0807b28886586fe02c3d8bc80316f2e430c111f907702ca275ed3c7eaabc87174d642eaf5234b1d91c5604c9652e82b7fa314523954c669bc95ae7dbda20ebdde1b76a775f85601c562c446c2f188c2d011715d6119b158bafc2e4c097354b496e58b1efbc6bb5fb052394fd6a66311043430505afe6d55eed50fff14b59409f70a53410de351b09c51170a037c0f81c75f4d1ca7a62c1896cbe38368870ea6400137b7ef0459a97877de9558902661f003b84e73550173ae57f21066107e54f94fad1ba8d54c1c67040a5963a638d6bf0b5ce3d3b7f1d004f72f02e9b331257419c7c0245b171cbd1911b8ab297251d66b41ea15b3c5b4f113327a523d09cf5a1e639a1e1f103ad612f92170a48541121fb5ab03206122a5dc9185d4c22e075126dd8b1423c3c2a737d2f983938972f3a0a3b43323848db7c6cd1b5566f8a0ab5fcde6559d6969c62531e491a9c780d2facb9649d0663dce6bf6cd328582a6ca6a8faec9e45ba1674e2c01a52ce72eec63af810b492239f11fabcd48752085b625773f98d0f7a6397254ccc26c958e9836a80cdc1c6a74d39603bee18ca0a18ab139a43d1b224fc1a293c42c5af0b0eb925ee185226262f4191c497c314f32faa83b187daba0f836f3b1460480c87579db0f8382931c01d1ffec5fa7b5992af10148e192688eda9b082f19b4fc7e047ee54eb4ccff0223920591f9e20c7d990956171093c927702a7124168f24920bdb03f76a964f4823a727fa00d48cd6ff47b1072ebc80032666e6acaa1a6543a8eb8cd1ff0214e918990f5bbd85e75f4602009f3d4df88debfdc90e94c854d133ddfa4a4f982a86f0ed2860f5ae3953a618e23f72e188ff5a93fac305cd31890023a7d604b41ee7ece85b8196c33f6aec81bb4c020f6cb79c91d8550bce42533818500c629acd10247ad64cab16fe056ac00805e00e62b51ba0c6d58309057feac21d8c47d517429c2c0cd83dc114a38cde071e3c9f190455379bea7326437f148284471964067577a836bfa7d25ee070c235d63832019364c385db1a850f0c01a6f10ddacf577b858b4fa074a260e0d47598410c3352e8445fc5b15ee1b30a3c38ba33f70f8187df0c0f3b097faf7ce4051ec00c37f35f6d5a06b8b9020bbb4af247fd3b8f11feadf19447082dbeab7216329177c6acefa80a447bab4a78ca9f838f9e6c0425c0611f1482c6381c251b7deb0db95062cb970419a85a60d3ff5e3580bc0caea99e5816f4cabc2ea27a47018724ca3302ee5bf34e071a0de973964d399403b6a871b84169fea5bf78c346e7872787f6b25dfc95b3e02e8c8648e3c92d84513952bcc226364f14a95027ec24aa67d3f9dd4b4dfb24f1b7b373f6ea98d66fe683c4a07add0bea7d4cf0fca37246c177cee271e1c99ccc29d8cfd5ea6e912d134a350b73bc9dbf93b24b2b7f25df5b26ae1a0817276eca2cbea146c8f12d22340d574205b751f404f7b6f78eb78c6b054dfeb33c12e14d79c95bd974348cb79e11a09115d884f03a36be636468fa387e1b0832861749ce6b3e88754742031fbb24feafe92fecca33ce3f53769648a2804a19f90b9950cf9f7f3cdc2bc317a80ea559919893cd2a0156153d03a8bba120bd03f42a2439dc02c5fc4988aa6622d2967ac62f0a9a934c22260c5cb9a5fe5e1ab9a01ef89e1d7308315249335a888b7e0adfd7204f93fcadbfc81323cbc2ad9d671ab2bed6c9eeed856cf81489e9a440b5957563bf14ad648364fa3104c75ca14328a1539a586d47551daa2f57fa5480dc89deb0b8a3266d733f472d15160118d8985da533a322e013d130b0e8db3a77cb59f67ed3bb1371ea3aacc2c6360a6932b670f5bd9884a019f8d43275927e06324dbdb07bd0cbb62be82485d6655407dea0b6092b159efd395591afe30fa025ebf8d2e6c06dc462679803478f6a9da32bb38ddf15051d73ac615e55d8167a75dda3012f31f7bbb884c13c10334566eb1b0fba09a3c80eabbb4c36d5cb6b3b4efec11327f2f5e7c67ab576e27f845a79d7cd68865e279cb7689d35717daa627306923a50932a8835916d4a2a177f604536527b840f6d1306d32032055c73b7b41106e5ffdafeccea633b41eb603e440210141b5d8c94d3778e6e883166bb22cba14d0a6b63d10a4b38fb48bce6663e312d8814040a2b3e34cfc26b53454b4c657cc5110c26d8d4dc08bd68f674605342040366a573ccff805d5fb34294ae660dda256c0b3ea9f4cd77386327f8201c5d7b7ac2f03b5eaf6482f5a4f01f8363606ce10e09a28217fde74bc4cc79f361dba93f84412e3487ad058ae99652b04aa08035b406d27d396f802b9b25e2ea951e9e55e31cf92d52eb2b14a1eadff5d60bded95002f58ba010bd01ec0160784f62616e7370dc3ec913ea86948faa865b46ac099623f0802681f82855bb2490cac2f3bb42b6165ee597d0882228e6caa737c13240fba65ac9cf6f23318cb7b52872606b374279f88e851249168239d3d726ea91fd0d944916dc41df9fb39fb761af75d8ee01046a8cad351b82d314ad9e5b21f1f6cc85c95a7cafb6bce663fd39cad34336787c6053757e66c2a0358c2f64ddc672a67779f49393bee173a6cb582880719eff02ee81c33b432a8002fc8329fdb6eb3c4a3455092532d5e43a0200030d07b16d98f18e52a87cbee86606a22af83b7fe3a4d583bedfbfcc8a500f4350e589dba40e8c281bdc3b2a5a5158817c7b30b3a631494f49abcf13876d0917bd97e5b245c6435e9d4b7543559948bf52d344b89d5d9c77feeb6c99d31b210605ad280e3e4dec1a5128476988a4639fae98814496b738dbf3512e409b9a0ff3f46f9c46ff6af012779f499ca6db77dbdb772576ef4c7c8b1816da71843de05bad964b716e9077ccabf34f7b3ebb6df834577ad421e5b38a0cebccd52de59422fb72625ef168b3200814016ab9f4b27296e3d600fe390f28bc1c20640e8b820689053d91d29593adc882c6f93348bb8c51d8a0b8eb79f6a5fe07c26e019b0c4b9f0a41eaaff4a153d4971421733c3bb56ec8d114495aa90f3aa0fe71ed093a4b7a063c2cee70bc4acddbcc8122fd9cff0b412a0b8d8418ed7bcaae31a7699cf5bd074e8e27c43453549a05c97400c7fb1eea7045daec069ed293898a188ba3ce178ed811c850c2f67d018e07fe0b9a92b9b5414744fae249186fc8375a694aa02774d1a55f853517f778270cbc6f3a6dd658714b554761aac1077f8e9f0f6a97e22b2d4e2bd2ee98ea11c8138fd217571fc4261676ce98e05901be640dac162d0b32e7f92a23c72a001f83779af23d2526eb36818a406effd2a52effc356ac7339bfa824ac13cf87f3b54986bbc2e7bf7da812ae17d66c5b64851a540db956731d454f8089886450d083053b7559787549e798abe1a652616b850d701b67305aa5630d14e78eb9654163655f088ac0e61808795008d3f69f800e576d787d0a1acde5808947b1fb43c2d0d94b0840e0f6e7c72d0de0c129d3fd7f089698b24607a9b007f7e012a0cf83868b40b41012faa4c2590ea8f33a02d94876a0075a4b36282da6615ba04f2cfcbb536b78f6fac10a1fdbb42a532049a24d1ee0a41621931b94b0a2c6b709a30126f3a7435e59fc4e4a566e7f2289dd0719cb2e19d918503a40749e4015457efa9a81b4d29b707148aba64e12424ad270f817c26c31a4c1a89e0b77a2030974a4e52783f8689fd39a9357d4c4f821064ad33843fc71ac124c49f14fa3ccf6950108aad2cf5c689dea907e3dde58b0918ce79833e72f9cb1318e208972c7c8770dc035538979459f7a72e97203a7654d09b8374255d752ae9249c30f2e3f9878353c888585841d167ee7980382ef0e03c0b364e8d5f6b058450424e2650cde441fdc17f0ef974cd99c242cb1f47b7326e60ec4bfa67859f077990fe4b50ceb7009e5b6a17276664a81b0adc297af269fb09d481d2200ef56560125ddeece0933689e89e2d94aa1f3eeb1648a5c66ed41680f5134d51dfe3fdc297533a66059d134f19fa9dc9d4d5bd47ead967aca67c8e61eba248d69f269fdd190b5404552aa4d1a91117cffedcc49b0753e9b8883f30c5f8299c38a37aa32e620bdc92fb031ef3d4de4721fc65c2bfa9e9382af4a3697790182c43c5bd9e2ad255c14365c95e1f02857a6f1fec6bc61414cb2dd31dfefa1f8e16491dc601da5e3628eec76e9e29a623a8ad2e659a3b9351dc95228a0481cb25592aa3fb332da12f87e1143775d2d4029c9006850a8d49a62cccf7fa70f0b34cb14d6a71323484d0765ba80d4e64bee5967bf2c5168663f9475e78c06ab4f8a8fd7d779218fd8b83236af72827950c427d122206c5683ce75cd8f176552e9d61c1c9a706974cbd3c0189ac1b00c6662f56594bba3686541158b9f92568de832c8bf29ecd3efa77bfa30b4c12ad69d66209f43d6d64201d9f477f816594832d1b1a62a53009f7a55ffb3d1c321757895be40c09941cee5f412a8de1b80b7af7c2fb4a5e33535d156a048a97a52e7a0aadc4d687b2b7b80d9f07bb63d0f08acfc2971dd64a29cb0bc703688241c5041b16c5455c707d47c2b4813bf8caa24fe50946ad406f3939c553514fd00315cc796138f8c50a8ed4390ddb48cf1334f89cfdf1454a4faf8477cb3b39aa1037d536a89f5451e6bc5cf5cc7c8b6f83a4bf06a25d43e451a52f2c792c2ac7057fb2c63c007dfc594edd62c1307d136991381676b8eed4c9e722e5f3554671ec433074c15b5fffec730d40740c23a465e4703d3ad180370d3c2725432e65567820aa62dc65f00f0f4c724067456b24308c2f92fd0b749bae007e7b6a253e124eea403a9e954a821a7058d4ae3284ac6bd3aba9690b5a32bdcc1ff64dcb1775350139ba3a8204e80800589c16cfea3a01301d979cf4f912f956618193b659ef9ffc11c8f2f385ab7fb029698f14c815c858fe5d0c00ed20a380774c3498a504f30595eea80ea06be2aaad0c21d066288e4034890466cbe2dd35d234ddbc2b056fc7db54a19fdbc2c35382cefe5026a647cc6400941e8c7bc56fca7f50d58e5004fb6721cf3b84d956be2416385492ffa444d0259821b60123afa6d43e7244d4eae81b3ba8e168f28cfa93b426dfac9d1e334c05db14328c57a1f24cbb1df303126fa6eec8be19679ae13c38a8c63f03d2de2eddfe0cfe9479a7042b413a8332976200d30646745fb770607ef1ce5ccd393ddc5fe3e2b80a94155bc04861d32a0f791bb4344df8d101c760d97864ff2a02ab10bdb36a667a7941c95408380036895434106d222528fdad5a9882c57bca9a1ed0165d823ed541253d6d562f370d0234a7fb515f6c8d2a9b648077011430ad36d38a350f45008b564675d9a9b7251cfb4940a1f4c8350dd4876d854e292af5af10ed174388c3cfd9733e204aaa0ecd418b05df3b1ef92d5fd770e28f4943ba04d2f78e3ebaa6e1402192d58bd80f621dd9c74e9641c82d16a430052d2f0759eb54cbbdbb7341115422b761248eea14132812af46caf167d3a0611759034824e3d17242403ca66d9beb5e7095308e03ab8cb927f16fd70cae104e597554b65ea06068177285287559ea80daf66c99cfa149afb4cd6a5488a526a1bd00a0e87128c8bdd120a2c4ee7caeb51e05c989b0c88853c567252feb800c00556aa57617e59db4fa6c4823c1e265a75ec898fde09a5009c0b05315cdbc85a5cd2778a610dc0c69fb6b74c10fdc606b9c8d14a4005fb90d5da83ba4779d95f225f8d7159d40e60ba44a5f662998f0cf611a0558b10d209f43d1905306af0a2ccadaf6d475dadb253cee60f42b06540447724e5ea0232a9d40c184dcb485f82377a450f9e191d1593dd638c116d720ea4c4988766b73e096941e643fabce970c354b3981f399d60f55f888997eabde3e6faf86cf89319b5565c611cf05a7341014bb90c1520cf173539ae368cd922b71168d24a5fd4b84cf6115149db78df78d676506ee7eaf932361a7dfa85cb4af534cff2a510409941a1e56f741fcb10882b6965818d01e5411f93a767f24a2dee7403679de8ab91fcd98cfeb63386707f410810d95d853d993ffe3ee6a2cf1e4e8c32b440a637ac993a6048aede66454768e2681812fcf4d4045a4b0b6f6f1b07a2964d36b95ec808ca6d9410946a445029ef4545b4f4c969341d2327a701f6ff6a85f0c1a8738c1691b8697beb2ccbdb9940c76bb974156925ac4ece4850fc0d7d67721fc0813392cf42b09d73c78d4e43ff9331aa3a3695901a523d404dd934d9ec5c2b6af5ee16a7823285e94447b392c4e2d6c7983fc5069a66859d75e0afbbc4eab3d75eb70302fd89eef00749ff2c5468f23bd697e63fe126dea33cfa1ee51f2c5e568bb34559d71095630320a7c09d1b945011cbacc6622889aa08cda709d687f0f8cac908368801cc02e4827535e5cab5dcbf2c77c01393644e3a066b8c00d82788dc54d8f0cd441afcd2099e871b1de797b8f8b6aad7d70537c880afd6880c6930b190d907137c920e3d79406edbc75554cc04d5431cc7a7dc179666095990c23c164e61328ec33aefd85fa0d49f3c8bcc19adab3d18cf59092f5370bf59313f9d626a5e51880b4a1bd291b4544c0e5b44712f6c250d0111190665ec85c3dcaaa789e12292a4098602c711c823c6af0bc5ccbbb090655d7d19c115c7090c70410505d3397f8382123cbc5faef6442d32e505fcd198cfe987abea8084b938237d35e9fe0daf7ec6e68b5222aa03be95fbe3985ea7de6410b51ef02df74825b6e2301449d15e1b419b2ed8944ec2d85116f2b3f52df35537dbf7ff2dc9bf6a4c25b53c9acae666e30cf75bc885da203bd881da42cae2f01c6d541d34766591e0fd4418ef90c14fe7763c6adfa7034684433624b65f9b28829963ee7d95e0c9acde93fc51c77e282893a3367193155bb1780cce42b0ce19acff3d00fba4816caaeda5287e9ea44b43e3b323ddf63e91b125053c17569e79a2e898cf2fb3c570a77944b9e6ffc4c2641daf6f3947ff210e7710a7bdfb86d8d14b534200155ae695cdbd19f421ca199e3cc361c771ceba3e0fa38d4320fb6603a3671a85297e7871eaca8e3766921565046f194b44aae06ce63b67287f6cc870f40e16ae765c3eac5cbb412440b8125b9c85800a457630e85d40a123dabdab88d84ea07a76ba6a1f62508a7ffcdf5253bbca5c343f3819a5e74563712f38003b216429e38deb4906184efbc6d4278b13acfe9c0629b1fb71bf791d5d9c4eec75bf9bec287390a7e0d69aa5d12a1c4ab230a64182e80468cb60420569e752c45e518a697d5c5a15a87865da4ee7c474eb3313947b3296ba6eae8bfc448afba57f307a40a7fa3bdf583316efce249249ff8f44840050837bc2cf785a7e40da4c28eef3090a7db3af09a2e0bdec8935e54bc5a4a26d2ee05ce229f059771b31fde6efbe9983ff4495af72f5e40729cbcb8636cbd1b6ad23c8683e0ac2832b1870602090fc1deae5854062d2fe92c8e34090e5bfdc3772381cb7b6a92ce12b30bcbf79a6a07915e75fac410c7e8258ba7c76878a769917021c34c862d3a4f7cb0fc4750a5e33eb3a8d66029511b1a439f6848ef268201a94a0daefa6704c7202e82eee46da06ca88f314b7ad1af5c6a6932b3ba02eea380dad8b0ba13f1baed3eddac12174e16e93ccdaff3af4b06e627b5a01c8f0533111167c5c5868e9a40d5c3c53e7d6407faa9e0e71a0863f3d4db4b5fb0201459f2c364525cfb6c877692aa473613067f0083129a3179b0f5941c1d7a39069dc49ebb8b4200e77e85e8e5a13da3051c9b09add813392cb2b5541685ae2cf6cff7fa52f3755c4add95f8d59f806d5a961563eba8a41626fa384df7c457ccbc87fd0bab76f4675a648ecf160aa0c02039b09f8f1e5bc05301d5a060b08e2453eab47ff09b88a74039d0f120813db66e2870ba2320a4c09b95c63861a4efdfab9450a895d9ee973af47e841f2c41f15b850519905fb9d1730c9868d9a79303a3f95c357ad48c43c0dee5a4ce277719ff48ea967579f211541c937c5bfd2deaef196134183168175d99c6dc341a880ac66726741a4b7740f7e40735a682c5528519010399222c450f25591848a91194138f5696d3235d2a133dee0dbfc98597de4cad7da24e880c14c517d73944ef80853ed6a4f1bbaa30bae398c851ac499d8e04c27a15a3b8331ec494b8d7da03492a9f7213e08ada55983d5c0a455264b04b1c27014882f0c80fc45619867d6e9a17a495f3807e6a9c6c83f1dd0369ddbff318ea2e25b725d35a309b249ac381e82901f014a4e18256b676e21ca602628a3fbb207dfd5c8b7f81c8d8c5a798aad3c6be6408c4e62ffb1fc7732f64c9bd8283c16406e9e1a3f19636b84929e53603ad2d1323f6bcb3988eae0b1bf1f104a85203da7a94925b1ec078fb7738cea110aa39dabf0585536580cf53a6f050d2fedda4d868b88613188696fa1f1b80d32dc161da3f56c7860bf3be37cdd117da1677d677b17665d144063619e07d88ccf11f9a9c96d83a2b684d003a42422cc9805f440f3bdf61eee9c5645c35385e07b49d06a847ba6209d7136efab29b38caa3ed7620912e9d3a413555e8c00b9c41203957ec5a65de259812a8fbbf1c39a98caf1c8a42e9e9f1272ecc3b9e0a3e89733214fd8fd9dbf61c3951109466ab08d64484af059ef0ea342eccf703a044cb8216a41257f5d98d35a753688445058216e6e96ed0df497b6546150c300952c236fe8264a7ec8103459c2e8e9c227227e942be7a511cc363b1df85e2df318074c20b92a661d1ea5c83027854c11a91677525686c9ee961db91d082867c8b74ab654cc82123b30fd2fdd347e20af0730add21dc01c8597b0be2efc0813c2ea6001f4f160b725441687b87c851cd57b120d79923c7f61e90187ad57257e540c32d6766075cc7a336c62b339ecae83c84265e35723b7b90dbce0f1758bdf48d4d244686fa516625ade27f52d08f306f607438543660eca54c83e908a5359818004273aa821cf799431ba5e04bdb10f74050c564f47470acdeeb730440c1c6d55cfab8b9fc829f750dce89a45378aca6de6cd806755afbfed705d5cd9ee22f89de096eb354540539163863ed7bd1b407da221a19aa626064d5304dc794bd74341246ee61c2c8a6270ccac16388f0b208011a32f4421ebc71d4984208552e6301626c608d1d0505e37d83bd2a96a6ee599af870d70b9a60040894265320b96fcdb8a50986794f5e38ccae6b698241eabe96382876bd464d5e7151aaa860c025e6fbc276d0599a76a90fe22558b821a048646fa4441fa4dca42d9e464e4cf052e78320b7d5419cbbebcbf4a36c5782f13ea7c9d049bba7a4d80d01e88327b386b02cb5e9323040cf0a7afe22380aec1e75ec8b58436449975aefcbf13d3a41b8868528c9e72b3d09001fa81499cca5d196753b5a62da92850a856515568e72dc51ec0c2e85ff449069080d7d8fde1ee5f2bd3433e06412bd405537b5b130ef19cca1c315d14f02be2430102cfa48fb8e27a8a87b0fa2f37866e9f23d50445944a69c6ef9a8b2ee6ad8cadd570a35c3246dd5fbad61778a4ad40652279ceaf04e3ee42f42956c6bf36cde4f42ebfab1fde5dd4ce6f1b68278c31c288c31386c1bd03583d443cb17c87d75e7d69b456ccaf94bcc08f8194b53ce34b2634d80fc73c9c861e1bcdb3e8303c86f09bfb970c2dfea3a935e8495bb8d4edae38540bf73468ab587bbd05d1ddfac242de1ac4289d2a18a5f97eb3af590bef2ac5ac49d68102bef87219c2e50402ed982c73a6251f519ce44d06495424c9ac4f916e49f8707b947e11e4f0a3d1550b087bb7c403303b5309a7ceba8a31f6da7e4d35a57db8e1253f5348c293e460cd4f4988b7ce322c017df6c1df4172b060ab25b23bc50133b4a128494450683d42a501df22f1e730fa471f4a43a4c3bc843c6da8a7536b166b033310d39c50d8cd02f90ba07d0e64f1db07b570ad173932b55715b83bc87bfd575e83d6b5532c6aec9b690f76b6279303b8ddb42ba5f171d8f3faff327fe1937f576abff0c761f52c8be4e8e0e5b005f275c602b8eee3bbd4657a5281c937a5b50ee101417c4417c3028828f719a3e0cb7b0927b194141b5ca47ca94dc19294b8e0f55df10593404df0fea103ec86a86cd6c18414d0df4dab9410903e14b56556d3f829235eb93c83fdd3dbbdd01667fa698d1c695d6c51eab4080d8d9b14750d9c1f0a54a12545903eba04c1257703272aa5f372987f2164849503c84b0425685f1b19a6d4fe85163e2e20880d4378363f2afdcab7fedbac58eaeb9a1f81424c663185433f00d05b3b7f107a63dc1348c4fa2e65c241d110d83ea3d01a139fad1f9224ab480f141b32b5f637ba224181f8d5a83cab6b19df7b12a6ee423eb0ab6dc0a0af8601a4edc5d791c1f0b48ef0639373aa3832acf7cdda3696a9db73f6282a82c5464a5f91fc0e8ec304f28e0a21fe483443efdc78362f1262dcbb229f7cfe597e4711d444a02aab7896156508e58cf01c2c08ad80ba7c05116cec30e6e42ba3091a2e096156155f844f536ad1dcbabbaa4383dc2c8e911ff1e7308e278e690e3d9675c02ce0ac54cad6b3a099461501109b834417531e60d9244a694524a524a191d060c06e3051a8c5a3821a96afaf24943472ae3842ee96b4d8974591b0e87d8379ca08aa45e89a6f77d1f454e11fd93e1dfe8d2e8aa947a71a3f236a2647448a188025b13a61e4d3d4ffdbb82024d6c36302dcd0b536b4896111aa6aa56d8d1e448c9c8145d282ab22bf2c5b8c9d014c563b7a49b2ac04793c998cff1d164538da39034f53cf5af8a9c3d3efa7487f5f1479feeaa52112d970d0a133968567ba947d57e8a4cdb6973026d4096a4796b4c174e412c372a25a97f53ef0e53a510d4a324400016d65d870c33cee8d2d0b227101e682cf562e48158e045180dd1d305ac0e685d2c3a8c81105bfb8180e4b00287a54ead0d860278dca0e4be3ac85c40a7408e40d08e8e8c8aa0090079d2e952f9f5d7755dd760d418dd5fd7750d4661fe51e5988b62080d27c2540cd1399de5659b991207230f4018c827a74d86f9d466a681b1942ba920669cdb4706154b24d2824a689595b4d040161485464cb2b0428bcec84c0ce709888c830e47c70b4618ac5658a0a911422c86c5a8e314110403ea68ea02d805059835652589c12159c65af08c3b8e5de879712bba2a5aea8d33066977c846d916538e0f87102f8ae2b4d80ccbb28967e755d702548512d0147800c3416aba6a7ba661457019e084105106c7610808f82e8bea4e1cff09704521816207e4978fd51d1551e9b5f333fb33d807c09eea9624a25cc4357dade8adf7de9bab85bf5e793fefac33c66daff2c51e903edbc859e4a3ca35135ffda8720d0d448b753ea1c2aab9a91d7d7dad2889f278fac502b2bd9b24969b0f2f0f3eba244a33e2f9e2e0ea7a92ae2bba8a90a85a6bbe811cb2aa6af2e8e967df02e0a34f757bbf7ff4c94e890025c03251b6410f0d2e6fcc0b9d5af1ec4083cb54135c09ead113f8d002b82892bf1ab8400928d63ad33857aaee88647a2fbed63a430755754a6e403d5810f8272327c221cace5f3dcf5f3d57f9479728361cc5e6a757603ff79f73ce04f8a8b2e9f23b3eaabc9212913508a46c883a6b2b9c21e282806f478f2e0b228e94e62eb0f07098898379d13250c6a1f89c427e824a389708730fc4204c79289f2d7e187c54f904f1f3795ae1c82086a808860ed0d051966bf6b16fb9303056b31c91c226d542eb16e86c39511ddf7ca6461840e9a43280ad2b12425a19728a36402db3aa9c69953a1ffbd675810ef8a8d2298493dd3f7131a0662b2ff450a4407d7138b2608fcc8e9f5da075772fde7696d29a9c207c747914faed4797c79d222d17e061889121940337a385d2c52c8b317ea8485c687a9232fa27ef4f7d9af5d327a9a01ffca94ff15cd573a49f5523f0b774f66ceed9a7fec529160ef1afdf4a5211a6e8ab7280dfb5064d662c055a144e8af5579a2a2d2ce38e86b592956fb9faab2ef2a743a4c6dbe9678f57bcb519064d69b0f991aa0cd053d10143de50565b559e722dc4950a9c8e66a038de75d5a521ebea93cf99aaa17fe2eea010bd877c789706b0c1de4b2d6d2290502574829454796e3ffb9f9b1cd0a1998143024947436b0998d81b3b83217b56959cbcc79b9f3d5626877ece563fe76c0167ae83a10b681e32a494e4ac33c6caaa26de808f2a9bdafec6479d8eceecc2044fb899bb9aa6124a55167e6830ab5e5260cc5af0bc6aaf9fd3c7bef5cb0f0b4419aa508a6c4c1f3c22254c844ca9263871c94821a6f5288f412dc618a3b9e6e38fb16f31c65867ad895e72ee47bd8f7d8b31c638e3d57581c7b5bff1d1e511ec9fb8acdc46751eca38e38cdfe58910f828c58a22d98f2e4fc87c8e8f2e4f18c30ef0e616e20dc5db1d73cbc47ae2c154bf9211c6d6c665c7b78a27f4bae7b2e1040d0d2a64709948fad8b7521f634ce2c2a8eaa52ac4998912acfdaab3ce1a44c718e3eccb3973edb0463c1ffb16633cb2e4c08f2ab7748affc4c56c3eb4006ec6dc5d27a009d0eb5015b63f638d57bed714b419b8302e30c8bdabb63887485037c03973cdb5cf396b1464dff293f6bf2ef72af0ca4d7d8b414232b8c009b6f0778c0f39c2315c45502ff4afcbd155a469414dd7acbc89bfe5872b7c00bcb3ce3a13c57cec3127e2f0b16fbd701de28c31f6fcfd28d3516d434f57dea522a362bf62ecd3105cf73551fb56e50095e05108a49f7b97f3b5af3d6e5dfcd1a01ae56afde1ebf56badb50e795561fa5317983faae47af14fdc34254bc0174111d657e85f097e299477b82a7c87420d8650450c84df5566237d85fe95e09fead60d15f5f7de7befad85c257f8d4449268d1482a08108109a99f1001e190c4ca3861047f74d961ef9f4c0840b2ffdafeaba0da75b03e9f75db79b3e9e37befbdd98ec271ae7bce28c7fccad8f7ca8abf3ddec1ddbbeeba7730d3bbefbdcf7ed87d5de07ba5a6572f76f5aed007854da1dcb33f0c572bab0cc128ac963e5c3970572407d79ef569efbd37b36773efbaeb2e02971c95acbda1a595e2c612e8e8d78213b6d441cd3148aead640f7bc866b23afebd3d6ffbf65e15a6ec157315a9d039c8045598fa34a3550d27322289a08d45f4f7f65ce86fdf62f87bef13776d52355c8410a154b2434686aa105b090d27289d301088fc7533ab6aa59db3bf0a6a1110ccee395b117b5191463f79910a4c8e3aee193319e70c7c5b56115e56a3f32ad55c3377953caafb5239a9d4a89eef504eeab5ae62563557a6133b7fcf94eced81ea065bd85445d0ffa7ba5411f49f700e3ed47315413f66914ac69f3fba34f2f04f5cdf26c160017503e5e5b24c2e9186b6ca82660c0a23caa2b3fa7d5499a5954556d36ebdf56edb03ba9570b3ced885f051a6b6187959a7b7d2502845bdbc1115c3befe1a56f6d775a51906a3caea0ac959136635b6cfb2c61963cc3db0502c40014d5454cb3126930955c502d20a0b891fb023a70f97cb51de574f13849ab2810c95231633b532a6ce410c4b7b2c56a45043da80bdc2f8850ddcc6a09a3338c4358d31c618639c33c6ae0bfc8adbd80d0b83ac59e70ec2dba48ec15a6c5d71c61983b5ac2b589557defa6e4492f10d6b0c6d8c69c2555130dcc4f060c55223369475d6b92d0381c08f32b509a9780363130064d5662c9343127aa3e1e6c3a1127d21a6400075d8eb60c564e19ebf37b49c73ce6f586cdffb89cc59b725f70fee87f5f9f6c64799dcb6369c98367a071fe31e86e3eaacb5d66075ca30978f31c638673037160c66014ab0b2ed6341c555da0aac1e993c117b3f59329ed896ca3e78802026e2c5880c039133add16ab96d2d7d50b82d35352d316f5c18d7daf43cb0210ddd90c0697e48d138a43830a04c9b80648d379b310c3e284a1f72561d792a5459682d4aa8a570bbb041e788d403936109f1e0c94e0c2f036f1ec4725ca49a70e472bef6badedaedece7db7aefbde39eae8f498eb811e2fa98e2a6beaa7efb51a638641b73870249250689a2d8cf4d041266613c1be430e8d891987b010ae32026b322823d18463560c0c83b5b02f9a947794adc7a002c30080d99187a4389d1e3d028103d6629284f0e2ba4b2ce3a47f50ea2b3d69a98cc3a67b5f794e0c1dae1b19952828911b33e86f071ddc7186350e3acc6c571ae064609c619073b7a36449b3e92a6bffa1120f18f26893f1b5e16c2d4a3a9e7a97f952c9070c36b021361c7c602899d0c40d7809fab98115d68cca627ce52703eec24638339f77308671a61bf7a8e3f9a641e3b11dba7bab6daa3b0706aecaf410dde292c96d7bf12de9583e0d20ba9127c83c1a0501549fdd48aa90fff24b8b31c13c37aebada97ed69962f122459a9a595ec9c90b55e37af819e4671a18c099f194480be24b2e1399c9cd6a557edd413925a158feda3f9a64ea7523514eceac4a498537830421b28ada5c248996167062e8edadc4e89015e75029a632bbae1d172b764720a99c08d2beb8aab05ed2b2d41722559b94b32982a378a7462cf47442c4d461e8552e13e252a09e3d2eb8f43cbc485641e50e19a8d64b3fe396aacc03886aeeaf00f828928ac932c43dd569577f5dd71ff4c260c6e8d25f3de67edd7e5d57d49f08d7750509cae048e142845e9806e246f8fab4991bbc7a101f544552ffe0a34a34b57fe25fa686b666e811b78a35fa89ca29adb0f0883038d9d460886a2c1f462c6bde3cbc982da5f0d0c6a12969022723a9e7a97f533f447f698c13e10ff9a94779ea5f5fca62acccbbaa3d8ba37008b073a9ea09900b861f25ad14b929275786b9310026eac96384a5a2469ae4c039474da9e59c73c6313ae3ec2ae59cf3d40b9f57856970fd9241e28dc5531b916d0aae454ee9b96d69c9231171ce2546658f0c270c570efc5a43a64cdbe90088a86887ca04066cc3a5171d3a1d0c2d575e18f42b0743a71464d15239896ec45a8c129a083c17751ae9a20650a5d1c0979587343aa2219fdee57c4bab1f4c72755caf76c85c709651707b2bc403b538a5c3b5747921146383b7ae20a833af04ccf8bea02142cfdc6d79ebaa18359bbbde03fc72ff4af06a99c37857febabc7593561110dc577e6593559e425c45388ad286fca6c1e085665083a030e8a3e14454e3a08022d4ae186d6589ccf60a6a948c4a2caa289aec394750203a391cf318e73ebef111d2cf39e885c128df34ae18796482b3190b7149d34a45ced97d812e6e6a32ad5a1ff4c3cdfad2ae37a0c546b06c885b3582571833e2ef98d20faa950094c05d1215f802f1851d15e7827fd858b0eac6627e4aae9a4a306e0916d27d4b9a75621cb84fe734c4dc7be73b4f1ffb414bb37b862f73ddf7eb025f9d96eeb453e72bfbd0de15faa050c7c975ceae7f5de0bb83dc4f309882ce7148b4c1afc391e18491e32a8256c8bee8e3a1b9ea853e98e3cc3c29b86ba6a20b8474a7b8ae33751d39c435028dfb6b756b230700cefa320727050e6a6ce636655c676e4ceac391615ebbaf8308fbaab50d96bb5da10f0a8d5d5d67940550a39e637ef3e4fbb8e1feecbdf7eebaebbefbdefbc7c5de15faa07043533bedbd6d6080ebcd4f16f2b0fb50bd2bf441e10d13ab75a47be3105711d4094705abb3534d17ea3d850d4249b3e3de7befadb350007799ed1f2c584537cf303d9a3860981d256c36688e2e4b4ff117f3c3c1b282d31a37ea627c5f3c146a9a481d111c28c820a398371466ea7466d49c565a6abae66c281485d460347415812f8518a60ad30d8d9a93ca914683517d413eca74b314c1c71de60cc29d3e7879e4dca2609a028833ed551eaeb50dfaa07702c1c6aa64b5ae70e9578fdb908f32dd880d370ae7fad7b218caa06bad65387d326c0ab2e89066e4c4cc55b5dd75101faacc0e92da114bf3a14ab2c8e9e06c4e1ec457248b17577b57e8834219427b75abc939e371f0ad7b06be47add7b716a31c73b6963c22e79c33d8c70a7cdb8ab86a436d53d35823975400db9022eaf45aa88c5656f0dc52b21af382180c2956e4e272d4f81615662a73025b7825eebafad7be736bf9c1cf5a6b4de78b10b7b238f94c035d3d2284658819fa03cff8008c7be4b500b73a806f7315413f325577bd2bf441210da687bbd41cae7f5de09be7d4bbfbb916bcf3ad37bcd00785479d73ce39ef3e87c47f7e069343caa7b77bc40d229fde6f48b3c077efd8ce05ed8ee7f4ed703a23bbe63cb761ef639f4bf1d02ef0b53bb363eb18580ba1f50269459632e3678f5b181e565c99f96932ae18e2bdedf25dddd65878bae3921a45bdbeb12be64fccb496b4a6719d73c98ca2d67a383261d89bf69eea70b983c738cf75cc5e52d77475935c57ce6ec99e1a31a66d6a7bb27aebad73ce39e70ef8f0cc76aee2e283fbc1d5b0705dad994c8f7bfab860b85b1d9b4cceecb8629fcaa0e3901c0cc54d16da423158ee476b5891192ca54605be6fd86d43c953cd295322d79441fc4c33283a7632aaf2007c9489a64645f1be964d914ac8d517e27255c84d72ea5ee2df1ef394bff7de5b0250154ae02ef07d3f8a6c01038849b89cd7394fc8507001c74321eb872b87c2d611899c61d16a518bdc4ddae814e59853d07aae4e44c71a0a58cc5504e5245dc50cc3bcf9af828aa283f5e536aae9db2c0a6240e5c95861d41281726cbd9c5feb0ce8d698990e0a201ea29bccd11d0cb8d65a7b3533c8af42effa5a6badb57681c930a3f6adce5a2fb976e252e1fa7581af5731ff2a64adf5bafb1a43476bad99d85d9b5f6bcf5badb3d739e7dc656441824e5e6f0f541e089db6928cdabf5e5378515c45502face064faa0e7e0d238386b54c8b0599771e76e1daab263261c949753b83a6efd6ca7aba41f93d1ed834213a90ac9763854b5782b33c34aabb9072f79e9082b065594b168808f320905fd6ef40f59c2e7e5aceff5125e09fea9a5fd55c82cee7ccfb34ca4cfada3bf42ff4af04a36ac6333897d732c1fd73d6bdeba4f479edc7b0b871a08359860d43deb04fed466ce54db48780597c00a1f1e0a35182e9b2f68c85445c9ccb8c082fa90a144b878a006c6f2a9b777422b262f4f2b1a93a21072c644c6994439165d1318a3fb22593c7d28b9bb6b10ce39f740ceb7ea561114b7986377bd19e6d6b792f1b43cfba2f85993e51d244877018d04531c9d0a3bddd4e1e38d8f814252c25aac6e3610c1f226ab69310e792b9c1df306d19c93b1c4e415632c74ba19bdeabe2ef0352baece8fb16f31c6416197faabc09d4dec5b17b8012e2b961931ce3aebbce28c31cafd70a3c8b53af87aef1de9db9bbdf161ad3aad05e35bb59ab98408ba9faa32aba48d52573ef8f15a436d73734320824d5a295d2dd92aea4ce3c7754f5da8755c36e7b35f2f61f9f62c95170cc2e5f7e56f890b23afc03186c69216565272cb989bb67804d0a3826b28850611451ea6cede490304d3bf16b7c8d25abb265942beb56577ef47ac5b44f58e86004db0ea78168b9c81125a221f72cff9afed1f5e562cebdb2dff5945ba3ce4ce967575a83fabc89247e7ec56899b034ce89725b677ce5908e65c45d0bffd4696510f1143fe5aed5b9f5167fbe6aec9d70f677f15b818131f407b97ed644455046d291ac97e3c999070a8c1d08f8c988475f1ad935e412ef0d52c580ed6c8b169a278cd58e52c98af3fbee6d11bd4c8f6809e846694e8e1c884b29db2a0b2112665d86bed71d6d4d7be25e308311123ae5a6bad87c38d1093b0176d5509275ecf7d524435dcc882c8b031ef625345d03993aebcfe26a5648c6fce5b235411d448c964cb89fb3c0d471a2c262e8c6845132e67988bc98b23178b899633193595c1cbc66bc79530f5bb735db727ad70599dd5debb5bcc46ccb3d90e3c324f5374759314ce64d2ceafc544455175f7e611100e278c3cd94c60cb5cd7cd20697c5fa09bd60280e44c84175d18243ff440287b9319721e90fd4498bb019a7541785bf908ab7b6006a353e02b865c4550be44ea7480257d34356b5c183f1e4d4e301c61c68e26152f1b6346b72988c3cfecc8d15443d33abb369a56647ccc1fd35d0616f87a31bd9aedf385048659dd564c579329434256975c2101730e199d381a48ce8a342d24683f4826960c5f60245f6778199cc44ce26c7141a6b8cbdd77c47ddfd77d5df7d500588b79391b21aa0b835f85cc76be4684e03127a921f4c6a8e33d3f00be175a56113402f742d1ce17c8315769f6afd205c18d1105e183467115411f705f8c23a047ca3105e88b21b4d1f1bac017afa88aa0c64c82f7f3f1ab908580ab981ba3e641ef9d639e47cc6bc92be619f37ef284f28e1e3a677d8701078ad0473976f0bdd5d0801b98af10551174a585bb2e8a9593456745cfb283922737f90e082aa221123e4fa431beb79a55841f5d93ae8b6373adb99a8a073db77a6059ef2cebb16dbc435a2b302aee56e08e3958494fab3a165a20a9e444158f4ac009bff2ac6befbdb74f6b35123f1ff04d79ae22e84f3f5dfdbd73fede5b4e6deffdf36349e6d45c7eef9e03d50db6effe557b7fdd9caa08aac69fae5bdd4bf42daac87e2b0e47ba1d27c2a822a8cd27eea8542179089293b2a281a1c3e8e27cd033e3ea7ad22bc195e6b181af9d9d1dd2edafd6879e715445d019499cbb45b6a7757273cfc057ee4c8e4d6eceddef8adb078bd2de7bef919ff6229b7bceb9a7edb92bf1dc31e63284ba8ca35b6473d659e79ebdb536f15b812fdc13ae2e73d408e13ded10b121e170d5a83b188dd1e0b5105bf278a828c7fce95445503592e7d35d12e34b681a0773dd73fabac09724af2982ed5d77dd7b44248d289a818243da2c50377fef1d021497bc21b267918a929d7bce392f9bd27c5dbf78e11cb446a615bb27a1c19c60610547c9c3d1d30ceea8c57e02aa1b1ef07367e7dc29811736e2852b70728e2b99b6c54af26dc8f9d89cf7387ccfdf9bcb068544ddfe2ae8ad1abb7745e8a8e7986b1d7d7b375308a06b0e7c85748952158b151a19289a69ed5252b5f93967be41c68ca3598f89a392dcfbeebbaf5438ebbc7713c76fef0a7d50a8d5f102a05dffbac017ebc9b9551906f94a4da983cac3eaaa03ff282573ce23cb179c154c28b9e51017063ef6536b6892a4ba748ab0b47c728edaab0b665e6acb39e7ec8424a4e6449a384bf9d948ae9904a81a865a8e7a66b075b89055144175816f5613cbf9a8f0de56411cbaa72458c5bea521079984a8b44c5c499542003b80048318000000002049b238cee39a92031480072fdc5884a45c6858248d43227120200ca22808c23006c2208061200682310c195a0513aedee090e7bed561a3efe6926fa125530bcd83c7dd3ba762518279e76edb9ee518e63b9339426c5f7385de71f6117d3b3c5566f87df3b4123f0885760cd41a73fd0102906708e796af051900d719a38ec54f95c737a8105ec9d2f9b52216607f0715ffadbd0adf3fc927c3ce451309bc536d78f82a21563f094a3901cda60699a06d7e693b97e6b7aca586b9c75cce4c10ec9cc95c1b3bce25df54e2e9eba0e7e1b365622687f3535bf762aea430496c7ac6cb324e113a68789002286a68f16721df1d239c86b9124e1ebd7258be7d30007608e6cff5a90b2e3b1648c2bde919868370e4b07a1b93f899e56e1f285073660ec49e14039e0079aa0263ca3f13713932ec1293db7c48468f67717a25e5688ba11496e7f8de104452ff1b25ec58b082788e160089b0bffab616f837c8c0190dc7eb16bd25a99e17880d33d2485540c402a7937240a3e06a433eea412a1269743d3bc8d526261621096c128745a38dd908c6d4ee0736a90ca164a7b42d3c683fe2229ba2172ba24001962230843b2f726285310bb04fd3548c7fcb8d896886e12aa61bc2f4d460204c14ef52b79d113c5670bb8915bcb5671c0dd35efd427346c73601da85392569dfa0a82ca4e5dd0e64457ec30a5dc0cd9728b292006f84a691aca548d0248af0724e45ab50084f217e2cd2c38e89012566429ef909f373518bd74f3f4ecec21a4e6a8608b50693654962d55103b85106735e0739b6002e431bbed6062140ab5dc11c29ac521af203015053574ede2d05c496cd5988da385cee1b0dc732f55ca2c0a504022066cb84b56c656e0c9c59f96341bfa1560d481032a19d4a6eb9682eed4f9a7546fc01901dff00a1710c080e76d0f520441cca1f459db0a800a1490cda0ef165732e80fc7c3d798483da09a1b49e1d2b580e83034b6ac73f899d9448c12416a87dbeec4ce61b945122a44f1c05f11db145e1071a79f2614376459053b9437e5bdaa915808b361f4d81c0a17a2489d2b81e2c9600935f394f50e82baa2f6dc50fe9d38c8af93cbf90ee50d6ec70a81e9ea3e7c4e3962d5d3d4fa305183f7ca0f14eceb7160d6c49bad5f930320a8c447814b6ef5593d9e29da46fb36e30caaea4a7c2aa233c5ac72e8f572a702daca9754ec23edb0bb4c256d3a67fcd760a385e0109cbba89d915e3d8b10cbd93e736c3a7a11b13f652284f6bee016e7c2f158298565da58b5fbc7a9a672a256c609bdb94530c8aa46f46501cba9d3647b6cc5e07e306377f5ea26e9165ccc4b21bf756eee39014624fce1b3545e1cc8cc57afa8708e4bb749b37f719a406a8bed994a9f38475d7f6a090982bdd30fdefef0d2c3845f4618c505c49f5c759227a514b1f5c52008412a61f95f0f104ec25e19ba8418a90ecd0a7ff2c06f77393dba29a540a76032397e121cd205243a88fbba1f77f1d0c6dd64f691881199b8160b3e544cd779ac9b5607e0778c5bad619000df067805764366f8686084ac58241c68e1932d35db7f593beed4a89f8e207352b47db97d5b6d2cb5de000187de7d47f506798aa998341b8c923fa950f968686f146370833c52fa37c2deabfc6a90b1f528eeaba0d4dff9c773d443b0c2e5f936016180788e1ae3a052878c6040c7de4dcac714b5100abd3b2a6066f661b2d4e4841cf93ab7a2d7b444038933e9761d7b89dfc9e50bcdd9180aa1c65bfc55153601e126ec4c01d7dfe268ff1e54acb329370d4abd9bc1d822a431b8d1b8c11682f1a5c8abc7e9965c87d274f41066c52a86b35750570a184c3326579251de991e1f7d15a110e46c393bfe822969cbd3a76945e85c7c3d0b39182967047189a070dc7b160bbdba7b6f1334fa9476cb4c682458a94eab31f8cb7ec1126d8c316e24b560580cbb7c040fceacd9239f33e9f128078abbac97cf0ff7b31fe886c5c65d137e07654676e15c1817387ef970cabbe2ac45db806d7deeb0954c8cf42b713e525da595c5499f8e6268a321632638e802d656091f3a06733872fafef8ee996038919c86a03c9b12e015d56d3b5f3df8cd74b398c61069ecd52dc9e01631ba69c6e422537002238ee8a6e4c703ae8e81c8d96b75822f80a811ed64edde116a4d817d23a9b4ab30df2c77033cb8e0c97a7e6b33e0ae37ced61fd8e4d6be4e6846e7117b6c73c7a0b0f5eb73bebb1119b6e9b93da9f8e278695d8e8b921c51fc812c564c382035708b859ada6d22f1d7e2dfbd04925ea826c920873cb33ec5a6854ce2b394d6f022d81857b71fb43aa0405b7d9c45c4ed3de30c682c548b0e9bafd26f3bfaeb7e7c60750b00921ad3004ced912152cd614203dc8b9e51e6a51c1acf2bda3613ca07a76160e67ad5971acb76686e45ae7a999ba911c49496bc51c5f44c0efef8cfe7d43624c8f04475ebf67c4c7aa2da6f2d8e69d9302f674766600474a7ae46de7b6b58d05f05e142c9692a72226977aaf60da58d8aa3a32a67d0c576e8b7dba46268393e79d997d5d43504f387e8785eccdeaef368ceac4b1770925a4517244daedd07a9acb0df07dadaa5fe2a89656347398c84f5630d685e6a679c06edab2629336f8fcb5598ae0335f7cd3969b9fb8621398f0793673892f9bd1fa78cbad367908f6f76b539a0402b1ccdba3282a0880e2e55af7782f8f89fecd31dba257bc1771ece20898e2f6bc9469de3c5ffea3139067f4e7f408b2f29c109d584069f288c1f9d44cdcc56510a2b2069460cf01efd869d43386f417696dcd1786d6d073f93416531fe64694d06b8dfb0d8bab02f313d03e4c047615a4069f6d3b566eeb1e833d27b11198a10b073dc1f1e805a8463b44cc87698fd0e81ed4897079216824628ce5ef890f0bdefc8c4a6e07e3570b3cec79de587dd90901e5e4e61f548210c8ee48d023ae438e4545d0f5e20a2ee57e93da2e25a2bbf18b4e5eec4df371af50271ee0f89408aa318e729212a4360a1210e08317b444429406857b643df361ce7272eec712f0a6b3773612dd4fd7ce34f6ba9af40ab0b2e0c0de46483130d670c2a5a5dcad93388aa90a1a46bcc64543af505989a8e51492587896ba4319719c7f4816f4c944c87b2f00e14eefb52579a0358be22fc562ff6ee134e42fef8a9b467ce20991411707eb334e0a0a141b2232ba70284b5fc7a6a006cceca947b935d3eb36b59d5964fe447c099386f6a28f039ed8edaa682fb3d7459f4893fb9b9325296422eb4e197d062a98bd2bce676aaec5fbf588db79d449af45f69c635a71c3e0460ec4a9e85c5155eef1adafa952b240828111868740c7058aba2af6dd0d2726346a2fc0127a0a8bd5409d427f526a78ffc1b7df270d503cc606410ca015869eb90626814258ccc0da8458d72a8b4c00c5f69042d0ceedc51773d2c98041e3176e1a77d1d1863ee936333b4ed3740694536834ef9083935f184eea5eb4396456bde1355a18dd2d8ec3dd7363420d869554c4cf9e64700b2eea3ed1557766c1751b8c59ac00e2adb945b6a667f2545e50bce620141ba249fb04fb1e640fc62b7fe935f62b12553e0ab25a37faafd313f6d8c4c952b1c1b1ce10db54e924ce20f46be474826e0477af3b82ab8a9b2b1fbe662952b25e27649ebf56fcac611d1c3775f084c4894da0bc3e3378de73df5e85b49ca07d008f107479b0be5cb047b203527f9d142a99be9420d6747c50a4878a2d2f5a0e447047966a212ad8326dc8bce7a66ae352dccf79c68cd72a0dce3b1aa98805c22208ae50aeb487026c97a72709198112718c3c67528610f781620c21c07ce5439c8bf0d5c1297a3bbb7c00762e0e85f1c9535cf8d37f66fdd2ad65d1d20098c41af4f1508d54f3f6717dc6a173ee7fb62804e64ea30e9edc896304ca8e80dd87a2d482536d387882eec09bf6a385faa319ed435c733614273601a2d75cdf9c6bae98ecfb2ccbbb95d3be42a6bc57d8a6da86fae6bcb1abe3f46c6f04bb57d2625b480275de0bba748ccef6097bee50d9690096cb567659d8df02266f4644a1e4d160fd4a4159f4f348e9cff0e58c601c2292dfd929f2d67c9329e7558c97a925eadd239bcc0ad477f7078ccc779165927e46b9e5239258d9782be9d8fee7b4a5c48de7a6216e384a68a14bb5470a8276ef380fd5c96d04619934c2794dc563db2b1f3ac6a48d7a781680b47bc841cd82453d08f3c7e03c9979fe52857b376be9ed27230bfe4e5747cdf1e951123d70a9820b27ce5fa6793e860e69ff9c51219f4a5e337f0ea2f7a0c0d1fd09ef99ccf88813eb447783d7b5dabd88bbf68d0fb78c5cd34e65035e4900c68be48db5e4789a1926c7148309f86efdd74c47fc792972f71d023c0828c9d43a6c4c5cfbd61a9350f10bd591d4ae9079201bb201493d958cdadd4197c5d892528c37b9a0cdee1f2f27da90a4e38a8659124626a439f21c4624a99f92c84b00d5043f81ae5476b9f9a86dca503fe4abe68a5839740fd674ff35d1e1dab7187ad39e365bad63a85e8918fdd0d2e4fd6290acb7f77f5a7d4d6edd102a181da45e0e102c559de6dc38d6af2e35a98dffa17ca6363c6b4e57b6a2d437133818b616e48fe3d1367354808ce712e0b8222b833b4efdd53d00638ff8061d93cb071d0ea7633f0e6792960b173c328341d18af76d92b798f63197d461d9fb3285bdf8b5fc83a7333c3d684af8b3cb1d8d2034383364d8be0c302e9b7ca3026360d1f3cd34cbc0e741c02103c442b0a7a2de066ce3c438cfec9a8de8a1409bf42a90ab919af1d95d0345f7a331ede60a74894df74e80d0ecfd476ec8e9e441827aef39e562ab9f136b1f17b82cc6f74a6c4d55b0fbd5724e5ee08ef37bae3ff0169c60663807935ff889f6dac747cbc3e40af2345f29040f061763211fd9968dc6f24847526f5c0679d69d5483529196f234bafda523ea507e863432530bc99d7a0e268244c7de9f48a439df4d2ba2fde47586412e4103eb0beaf441435bd71e4673060ed8d86701c84d83559ad7d558433e6cb7ad4993d9b1e44800800c3808c6a4a20ddc142a8a2c58c2c5a754062e1e067c53cee7a2908b4a49f9ace663e2ac9c83a3dab6a09a14e944836fd47b0b8f8bbbaa8d9d4a62ca64e638c220035d1b665d332def587d4d9f461624788e86acd2f45ee1b0be39484fa87c31d28192bb1e9319821a4c400d93420994f11e6016f85e30e23e669b1d36de2ed7980191c62c4d61441c58f20e72a9b90433efbd2f81e46e800d8e7aef513b3991a3dd413d3ab664193e81c1e970a66a83cbe381f21b2ab2789d9bcdfe1d377134ff379e7dc2ea0d884d1cf1085fa73033b1e6e4c6da98a3ac61591c53595eadf67fd7422a39d7e5602bfdb44a8157547193e40744af258e748500d95966b7a7973d8361b75a2a7e043dc3b1aa6d6ce58d06bbaf30c679dbae8cc8ebb8a1983d704a0928493b20b5afd835e3c62cb96801b438a6944ff80df519d9ec80589eabd2f8401e4323562d130fd8c4d30da344d6187d458c0c568e3bba31fbe174a05ed4fb9de0f65c4355a0118efcc638574d68c64bc120b3dccbeaf04bf481ee9c53a762590076e42386dd0e64654ff3a8805740fe02a75fcf438444f80c0cfdbbc1e1149233700a43a3b30d7135510565ea622162e247b76a4372efba07b053e15a8adfc862583e8adf6b07ca7a2cff6990c0c7715d69df67b2c8d7fb7f1fbc199cc44d10a138a7cda2f5da28a292b38d76155f1cff41592d352f06d8111b87dab83579afa47fdd6d1cc7a3d1ec44f96fe6bcdc72882054a08e73f92525e0437c8642baba14b7e98a8f67b18a94d6aa30d5339395ac96d946962e3c93ea7a0e163c73ba34e0b0861ce295a5528bf0bf2bdde6f79b267d19545cc02ca86d8895d25283d5501805aa88e13401fcba56b8a7d70279cb6de72faa9d4cec2204e143c27249b33813eaa4ee9e396989f3e012f3a764c9a5428c62dfeca95b4bdd9db0560a499e0b7a3a8e66682f13901c7a30c9221121c41d8d54a9544fb90c2930284f1da4ba45a1a47848c9331df99aeceefd0f252f23284b84550d314b53247a5369ff830c4ad81314b1f1ff418e8dc07064a26c18afcfb29af8481478f9e6a93db7287bf998c6ebc4b2c03b480b8caf7468d0a2395516073a64026ef01175ca4f1c6492094930443e008d170c0c2ed5b52ba2c41a7acf302cc9da75311213a0b42147ad5d912a250b616dd816b8e776f1b5e84d5bda5520d862e0b31b0073eca19edb03ea7ef6bb939e5f19988f902d9ebbd1dc46f04215da49cbc5537ffec1a02f9e8fe52ef5f345d9f9c27b5a703f75b480f81429d61d194917c0aac124bc362c8c2193f851df13fd8b1884c0dd42837af964c6912c946e23ab8763fa5b5174aa50af01b52896c12ce47ca5fe46da385dcd75c6769e9c4169529b301b6bc28feccb4e3664b2966a57ed90144445a342a9930182a5beb3c281e2bbdccd8af3ec4ec8f9002359bb5090b575474915444863b4238d786a586765fd2b5946f466171f0b4a988574a37747840f88606efcb40edb8e47d8504f025f4f50c15346e9797a5aa170b5f15b32a973c0f472970dbaa59b441928747cf2b6a0be37c716aa7461b9a8f956f3e6faa53559fa6f46b0ab40cbf55561bef943299eef8a75fccd0a8ea35254e5620e16b03bc74f97d03861378bf7c70c4a936e2c66ebbeeedd28c4cae49bcde69c191dadfbf0e51298870f0fedb00d43a6cc58663e9c0315e04d02696dc66aeeaca4dee420177f9b9196ba812d01ee46d6d700c837375749bf3121343b77d36dd62f7f2aa8e923503621ecd1c3f9d121e7d33598722a87b3c4313c38b07437f2a1a6a9689dc2dbb50d1c6baa0c87ef4a658084e8bade1fde8922307ec5ad5423b5846180e8fa8aa0350244d0b55befe369906572055bf935d21ac80d2ce1b5837ff35e6672a15c2bfbefff24e60c28b8a07cc169b09d50d60c05c01edcca7cb012499e4f5f28b0865055863eae8b6a7a92c40222cb05a6fed6f480d03f6252bc1bc91abf29085e414f532544d2f17c4d96acb7ab33de8b5018ab5502ec9702780dbb17a64751544acf9db3e7711ebe2b5bc8505e4cba67ef31f114de63d410a26d5a081b08a90567b487cd8662143a03f53a5075631948b1d70d0df14eeb55a25a3e74d99db86f35d16ba80aaf064bf2f185e64f8dde9e98d9e1edacaeec0b78ffee62f0fd7c08748f5c1d169d74deabf8f655fc69b28722e6d4ad0af56d02c161399a089ab09ec190204eabf6efa13b702d6f2c2ae003e634d13ab40660494ed8d7a79400629a220354b282934caaf93a565201cd0a2045d1baf493cd604533b2d4526a1605411f52046b6ef65b39c22845113b956ff827e66da23636dada41e78800d04bb0505191994438c1202d55f828adaf74e9d9bb5841653fcbe7e76204a7cf7d5d26aa12a2565d0951b5e43723fa889f27550ffd221b1c9da2a40869123f924577260e786a493953ad4d3a66c239f1eddcb3b4f92d4d77f6f80185e635eff35eec6fc2cd6b28738dca7a8273d83293dfa6c3e824b890ed4c6e7624c95da7b133f9bf29164ad94be2ef8b85da452e8058cddd30350161518eb43f0090d1353c65c35b64327155dc9b46b7934c64de6e5373f32ec8a66ef9d2dc28e9765cf26404203d9dd3c428ee081e51f73e3f796196c6ccb2a688497df2243f634a4a11ea8e01e25719f67a7593a94d288d43981a867882789bcdc92326826a4f21a6362c9df0a70ed83b93f5bb6211f55faec96e9f3ed1dea90130e76de615be75c28dde25c2e4ffa61844b9f3f6e6c897feac2f1655b3572efa469a0403b974a27d36c1c68174ef6dae91650b2d556590d4d358bd1a913afe71a871286f3a99367b736a15b282ec272dc688877ceff07b12410f5f7a01cec383c313d456ffd9174031adc426e503107de5e61b300dbd12d11d4115282a75e8ed5d7042fb9e21f19aa86b9dee09774e3a722b88687807af08d7c14cfb768529e3a3b55778f3fbc15b9a9a9e9a1ed99abcc11ce0ada558348fd07fdd323ea892924c50d534105030686b5e38ac7c1f827d271c453256b38813af54008367e3485a35156921c9f84cdedfc2eb8ec3a542de5e8d0dcf9c7a816e8ce0b18f0539cb57aff61763864998129e2708815c97e41c5884b081c7cfb9de6880797fff44260fc0aa27cf8779467a609e5e9fa2d4a21ac99bf2a46040c2e7a7227932cad4b767a3d00390626b97e5b3d6bafd3d2363dc6e41026130ec2fefe53327a9dbc23fe443353193692a63e2ea10cf4170939fe1255bb4412f1d839f1605f891a9553114847b8ea9b4b6761f3fcdb9060bc7586169d149fab876de227e3f0a408da4e75e3c460571b5d131083204cfc57686e2f223942256847cfccf0e0e514f4c2d05675e81319b9cab4d992e2108c1e669c081bae9eb92029f79f31218ee46ae6b4286b717b084d8e4c51bda25dca71add8f5e72019e92962673e143f2de6d9f09913cc867e524b2ca65f08dbe618e913d1dd3cf42692f061a9fe0e60525eb0155532353d9e9253efafc5395946459a83b4666753061d8f2e3ff49b9c0ff65d015a27e66e00075be1f08a8797bc7ea42abb67cd01af16311647929a99b930fa108025c170386c9b83dfa911875a0efc7dc1d617a6d94195b0e2c89e7754ed8655638120f78adec48e67e973cb2ab2db3dae776653ca00e54cf8fee54afef0e0c6d3af1503b11c8e6f180d83c96ba9ae90d0cf13cbf640b1da6e826aae174b40994cec94e25869132554bacc6437d5360bb636f80a00c19297ee7269da82e242cf077367276b5539e253c676789eddf897fee74673bad7221d1deb523ee3930e0368ba37b6b700f83c44282c6f9a63a4103be5d0dab85e1ba78c0ee6fcccf42ec01c3dc6c6c5b1c6d87f1ebb69f74f0f30cc3bb7122aa2ece869ef350825d372b35abac63fdd6931ba6b933267beb6f743f65b12ba1240c43351066bc97a8873bfcd540c6414dfb27fd396caea8fc76d243b62746c79c7836007571d31b69958204ccd517ec652a07bfa8ddf24fbedf0101362a8a44d6e4761e2b16cdfaeee1baf84db448cb4ad4b5ff7f92b97c5971b40b5d91469e396816749b7f5610c1f4b75ce569a5d96f515e160e17bb40e76f99bf39727681630e71230f2c8e7df0cdb0a2640f4598431be3987545a94927f863f9b806ab04fa36205c6683df6025cb08d5467bb90220795d0b28a031922109bd6418e3c88e999828ba921a81f18f2b3665288d5515812cbbdcdbef16adaea49c2315088b8dd725cb651ca6efa75624f3959b4a140764ed820a8132bc1ec0ee2d9e2f84a0a5b10af94f51b4752ddaf39cb11a9954ea35a9de712695cf7c3a7cc94a6d262c231b2763ca845879b2f858cb728e65dc05b79289e966372e2c4f4ba27350a8dd56da29438d44f5413193dee90e2c28846175cee9ee643d18a4630edcd496f7b5020273664138a280790b40ed6d74ca84b973ffa8942137d26e85da3f8804bb9008b1725abcb462b16524dea4c8005aaef965d4999a4955f5513e9964f10009b96086b8e0ec18281c226dc82390e124c08ad6ce99b1d45e994bea5d946a6899f9901cddab8de2c6e5eb0e216491d9ef671179341168ac8d118683f2ef4d566b5e8882626f20dd60821bee9d6957e255c23945dff046e4374a17d6a9eda1e5d70047e95307d6e1b087fd1e3da7fb1d9e2dca2705899bfd43ab7a588039c8313cfe619eea11dc5bdad34e3140659bd94551af83ba081ce162355d75e34749ed136a33179d364eb5802ee7c1615c504a914b20279303b7ea355ecdc291412542f113c8067852e3796215bd0f6be3e06ff22d18f5a6245eedf0799d302775a8052d0bf37f618b7fa4836d1989e89b4e5eb72860d0710bfb547a38d296e8e36b18ce6a143fb094abd51cb29d28183ed1ed17edf20bf80635c3160229ac10636de6bac25621a58764193b13f62648782244f5973b5fa11f7655ef90701f8e9adb850720b0111e46e9eba477474ac3deaabfaecedf8e661c801a41a4b96debb21f2e05c4701ce36a2cdb9690ea21a300cc937e3fcc852dfd66a47474f33a03158401e17f460545d10eac9f7726a76d929b78ea6d0de1873fc2c4b02f7ab517a4e0c43ac837ad6359317bc6035633e0a8e865d25a5090b0f3f543ec2115ff9947687c9de7bb9b37a42282fed9212cfe14ba35fa4fb61d21d1f79f09f0f3ad92c5430b2c2d3987b355238254f1c6039b5f95fd12f755b36e9e4840f83b6d62e2936996e072b064f178ddd1d1c1ceb4f42246be7a5a41e76638fad47e6f23c5ce69613a8db36343919ee93a060f18a8f4d0a5c0595a4558a0ca1f92dfc389f9cbef164abce98cd3240ddf04b6fca3b9a1f1b5ecb35a7e4eb6f47573a80e99b158998460cd2d1fdd921f8c9b82b5ba1799ae6e7a65fd9c95deca54b15ac0db8b842f8efa870d2b925e8370be69ce9468668c411e1946638d394f2980873989f81dbe38b465cdf8680e1a16ab6b8747cc6338a200213b2cf501a2723380f7376805f8db23ec6b1e87032202c16e3575e3974a37910f1c049d00204c8eb01a1a9b58d60e0ad8cd8688c7b609095eb9fd4ca690b400b271dbecfb6707f01ce7adf70ccbd0b42815889620b31a4850da60b270ac74edd0dc635ea319c8a6cf02ea391f58efc43acee72d7a40959437aeb5462bf5c3344652a84594d3c1eaa70854cbca8e1af484a303e7ec98cf9d468965d772bca5a201ec2de982a74cc140f52a95450ef10d47f05c686ef0d4909c7dcc4b03d849eb3f14d9eed3d4158866e806ae2475986a48d232017839daa18b40e0624664b3b11099438f2dda9afdddfe87e0e2129a1b2be67f60ef8bc0cd4fd9d21454b3789edf8a4d70eef4b7d26ec1bd19efc6c9b1f451b610590afb42187509e48f87c24923f34052b1ded9f178360927ba94abb7bad546c044d3e3df48270f792da9da02893d552267c147e052aec4237fe2e64b82bbca2e7106081e2a64cc1c4fe2a6e4ceb18301e19ce038a6637f40a8c47c8586e92ba60c04de431150f167479b987eda53e5e4c6235df3ca13447f3c425d1042010bd4b64abcc8a0fac254241260326eded7d41ef90311f7139bfd075ded55aabe9247fadc587f8212ca2ff7a1c4d72cbd5025856cfe6973993edf0ded19eedc22c8ab6f27a3da5f602984eccf37977a7e288eb5042105abf543e4a1331696d1046f89fb855876747406a10a2c58619440edd0d91ae47c2f33039f977f095b0a7e0889c6be489d74e66ebec563b328b344a589179ba26c6f4cf6b422a37e2c496faefebe673deb4d97aedf71e79315f6f0d41a536b12c9aea6bfc3767ef3961149966f4ef8a2b508f97bf855affbb4dff77ee8068dadcce3aca106c90e020ecab6fe203c38e7f1da4461a511e4c3a68b1e10f481c359b7f5f697ed6e1a477e7689c706a21bb5fe98c11c4d7b792418003d0bf5d7412a44ce2ba4cab0f8ddcaa9c5e2c928ef8fcb143caa4605124fa360f396bb87ef50cdec4ecb4370d9d273d1a02c278d44cf05644e374783294f8ac995253ef26c3aff36d5dc56fbcc18dff1d5132e3bcada201336e1b36a144b8aadc3a1bf251938e0ea20006106dadb3ef290aa595747076a0067ff07d3be49b09f9129c0bad076c39fec37bd6cd2db3d9b705252cc0324848d278025116436eaac3d6bb6bb24694cad1bbb212360e4a6adc4c5bddccd9c291d9ce45bd879d800b113fd5600d1d1650742619b1346876107e391236687ff50d1b4336305f0bb227900aa040844e170691e7c10b51e281a9ab5f4582eeda5b8b6bcff810743617bd6188e48fa684cdb511f52f3de656efc7c412989af19fbfd57d8bfa39b04260d12a38d2227acb9ae85167e8d7332fe9ceecc7d73527da9710de547e442613b5cdb37f1ddb1c60e541fb836a11e39e6d82d65da279e4e3c13bce3e50967196ff166dd82a43aee3b20c07250e302c53362ace34bdf18035b1c7a8005e4198d2f5f3629aaf8ff552bb9cbda37aa9025e81455ff5c58e4e52eb968a36a5887948b8009993b0baf43ab7df8b2bb368d5656b742259d9622dc640dd0c3bf682a9974af63f1de5108c2dcb206cf5731e7948430fab6ef9f4084622fcbab38639d8cdaf14b7f3872988f2bd38d3515949a6dfff1095a60c1312bec075cae174dc0e959ab865166d4c03f7a933d4420cfad062f4846c280b3df7ef01ee47b8ca6c09138e19d4a6e79571c7f0c4122d5f78329d7f1af723e538118bace8301991f068b35a35cda2b13c5580bab4a9fb0fda5bbdf582f982cbac97d7588a09da81e2bc0bc768de54fd8f2be268a4457a30713035fa6e27a23c7c40a41b83f63bd801ea444566fdf99dbd748f9a3e628dd90ed9a48416eef1b2e1212e6217af23ed81c290d117f9d2158be2266ba647bd832bc10a38876c7d81962e677399bbe6f9643fb64661144359e818c0416162b3dd216ea570ba3bf9cb5c9ae181163127e64fb41610222dd6b7409d71e60f25c8b492c6161fac57d22adde46d179257169612e9ba60ba20ae78d11143b9f5726b79721fae3c64675f5ffcc1a7522e1313ef584abdb8df579d0e842a3515d31e53a132c0f3332e6bb0ebec69c00833383c4fac7da636fa2a5df38bb8441d10732d9191cb59d6179bb1d4b6c56d74808ad4b78fdd3361c3f5d37054becbaeb537a2840d8f59480aa607d5789dd4bdaec527695e3f456062284b9e7754faa3c1312ec6080af9b9257e42fd2336fdaa6c49cd69bba8728dd9e8812470e6ad6299eba6d7c0644e36ca2cd5c6fc2813568acef19310cd9b4819ffaf6c69a08011b67018ccf3424400421be75200c760b668ebe1e16458311415e1f31c744b9dd22d11b7ec359b819ae2021aa7a3e414bae595f1d7276c1acea30d0c55f17c693ba8c998504af172b722f25cc8012abe2322c852f3f28ab647366ad37186fe6fd487773ac419c7396f1c2ae8bbf3db72ca0d6d08eb1b9c8180e12fe74f49aaca087f70c636900dede0226ba3b9ed0383559920fb01352b8200cc2e2c449822774e742d65ec7f0e9c0e98f9cfcf45008c9e791a3685ee5b275efc2de64fafc246f9f8a5887b40e99b071b6da2176a86f66855d990dfc40b3281e921e39645d68433b7b2e43c121916c5770570a484abf4a4cbd4be6b5ae19259f3712278df93e8ce87fc31ca97ad7d75e2e80484f2e9e7dbed56999cd7f2601190d88ce3f49963e66fa4b5031ba54318e713905d247b283309ce6ae2a80597cd24beaf6e93a7d06a563df3cca83267619c8f6b077853e048b3c0481f0dcbd0590e2dd6ae1f1a4ce51d94eb9f2ad2a8449b7338ea32caba07465c0fd4b877ccfede28836998ad65a06dd33ff03485740ee9badb2bb6a9c584fed892bfbcc1a5f517d029ca2882b3a912806e4d3ef63400c6a2e8b26ea4159c9b2b6f2573d0ce07fba613dee846e5c6f6f10f9e864b0fd9f8f4ac0a33714e9ca83689cc9a6249bb158068fbcc4b25ceebc83242d929659c18bde68a3b2013760436d5a7abb865610082394e700bb213bdca5e0d5d95014aff1e25483033e648021d0b442cbaf736a2489e31d98eb58e57b6d9b4caccfd35dc2bcb0455fc10e6e7186afcb62f6aa2a64d5d9dca5e5dbe92325fcdb4d7f82bbb6c7cb5b83d3d2de4f485cb6e5b9c92f5d6530f159880c3e0498f3a95eb3e03a45d44831bbf9b41fd9d7c4e94a8c0aab8601037376d1211bf1a7d2313172bee7b0242c69787baaae4de6e8ffcea6b87659bd3e59f2be6485113d8eeeecca3d4a4327952127b2fad0a0bc85a3de07251b40b3fd6cff7cf24d58553a2e695f59aee8e08dac71f7fc4b3aae0ea4b88d1ff026858e7cafe76c939031482c7ddbe39c609b7fe42649e63ca59f38b3cf398f457ab2cb5d49d4664745a05fd65ec9f85b1e2d7b7e1e3549ad960e768ea80fe7cc8e2616506ac6a5393a79888aa67a6842e784c2cc2944aa542fd6c13a29aadf49bd393dc8c979ae68fcd1c28ea48d9fa2d475ff30f6485437e820ca350ac252fae0ca8096023e66fddc4f5160ef73189e115c2a993de5c121350248b12a90ad23e0e23c6647c1b76b7909774f82dc9a4b92a9d651a8066c4a73cb5ddaed790c775290be9fcbf6d31dd0baf8bc1b0d54e8e2a0a5826b573cfdc540ed5f606984da15ed9b66c196f390cd6c975078787110e2e989a7f1b1488b5790fe9265805e3128d24e69dfc7414959bfd1ef99aa3152d2f8319ba3f7c2e092ec85de675ae0a0d649838784de38d281c1b23bb5e3a897877af1092f331bbff8bb0500335f69432c77a5671132e927460f5ceab3d8fe4a4ccd22814ca5183ab2417078242aa6265247dc9eecde8141fcfb74f85aa5919b9753c249e27e7e96387f0a6ac8d08fc5532b046e22537c322ff63acac00cc1e79a462f044db3bd2a75eb833c90d84fb0e60a2497d7c452cb3332c2e00468846a2dbd74d85795bd83d19d13a6f93ed588005b4f679fb452f75ad782974b74a12526423ec6653672d97f0363beb54bfa32c86df35393b8637d0fbb8d291791bdcfb8f21b289d757fe8e42257a4aef5e91a3b7165b1bce730911ebdbf6a4877e6431f5d20b934c8df7c9c6efe0d567295139ea2708ca2734598d18cd46bea8eceb3ac0587744c43fdf2a387db8075174958003c5e0fc23bc7ab029964f8b8438fa4155a530fa70607b1d5246dece3adf06e9bd2b3f80ea208a6177c5e750f89706194a63ad4470ad05e907882414d98d06c8b908e2d82661d291e50b71304efa787c6f493e49103b3a3c71f46af032953a52ce311b40e649db378bef730668087e9c2772f2eb175be46eafa001d4ce0f5b077b2c6ab7888afd4c37f15c42c5e31eb80a848824e3df4a4904ee1cf8f473556ed5384adc766936ddf37d2b1b7a22d0c9309021f3ba2cdaeb2ff20eb11e16308562c2323b9e134b503913a1be1b732720fca8e758b914d125bb978315620613d17c33b195d41d3db63e2417abf4bb9eecae708b62efdd0f42fc0251241264c99affd9c0441f5b091a30ecc390aa3177c1771b8cf2642322dcf5b7a96d9656c946890a1957b9fc0141bf4467a58084053a2c8f90c41a0e840c832ca57e01e926d038591cba8c30874bef7208907dfe3a563d6643745e15937a40f0e6c3ca9dcc0b095b771531ea97da5c310d7072975e3900e9d26dc65c44cbebd3aab4ad9a231a4e660bf70f73809c81d144acc0843649123d226aade4afa199492804a0b624043088622f4334420def3a70516869bdb8039a52c55a43c27b50d09c6b8e106c58952c6b788f1c0562a1c631ee80622e2c403b698617a2b8f5b71530d059086f4dc27633ce5a9c2667aa664541885adbaf1bee0c41cbc51da786345e3f52ad00bc4e1ded9561b5a063a59311d038a29e1e78a4be9ba6ccd1536c3e4ad242945cf216e2b8993a184b57580967ea85dea1876f88688145c8f571840d4c01c965801014fc0ac1abcb3f8b5ce96341dad89b0dc9a673522caffd1d6841205cbab24733dc809d1497b2e0a3678356dd411200fd67be27d0ab0f8ee8739bf25fab8e86f1fd6585a3428b734bab2fac37f612d17845f536171d17dbc86427d6c4173ecbf4a31c622c19e34d67f8a55f64c40de275831f208bb091fc5e11ad75b3259af58f78b5d40a5a03c1a56960392670a914e6a2967c04c1c6fc48661d8c52207a7bf86830b6bf615e071b9ba1cb0319ddb33a1b42ffd172176310cf83a74e0459ff0b48338a3c8757970e4e04829a68b5b5d270a5326b0bb1437485637f39ee99dd1e0bc2bd5c4d5e696de5f8e070896c57211cca5598c3dba1cf2bd2e01661cc65d98b225ee473aea0a757d5d0227b0b644bdc0eab41c153a569ae881709c7b128532208b1082454ec6403507de63d6819f2950d411650de42cf94e0d80478f423270011dec33c4e791413b07c2e2af72593b4e84c15096a3f08d1d4e3c2d796cca98dc25f2495cd864e2cde75cd78bd5a72a617aa58b617445a01ed4749d4b9df54a77bd4220a1fa10687442e4526e69b3c5dab6dcf5ba3ed31aa5efd420b2cad7eb510234290f644fe017de33e539e8b74ac85997301df3691dd23279264015656f61160ead427774900060d6fa02a1694a4004c89695a80a260a762014168bdeeca59e0c8deb00e9e50113320fe0033f000a802d5f243451729359188cff8a5880d8f31c8550e12631b52b0403ce37adc5a7842b9810408f4aa975b0d8dd1881099026803cb3013a687556a6c8a4a7ec097e8a55060a82fe9e02b1724a0cb10e060fbc004fd249aa2009f4b019fededad445574203141c5443a50469e16fe85d83270031ca36253a6bfde2041d6ef4fd4d28efd9d025de70375c4ba785d3c4b678109fb76154686cecf0378adf7662e87a7b3cd76035c275c170b66fc4ebf280265423b412a978424a62570c8e3ae43407f730c17412872e965e076191af0db33406fd1120f020a4eed0c42a94e8ce99d94df62cbe3458090f997f4ef84cb94d05874f1175d286cc0b986226d641b2849da1b161c30f29d24436ad3199f80bebcb1ddc0dc6b21f572ae96a5ed8e3451154c23234bda0eb4fa1cee250837ffe6bea4b08a33109be5239753545d285013c6cba3a32e9d82d10520f3a92741fc71c7a164ea4982eb5bc16b677209508f0277730491cf7d62a3b5fadbd551e9ecc6cb719bf0e6be6f238ef60fd912d2b7ff2eb43843efe04b334409625adf490269bdff1093531a616800a1a7846d342515e9d613a58a10bb315bd3bea32fae6ce7d2cd8ccee2584d119591ed0872d938855bbf392a5a7c032426afc1cbadba5cb5a849bde9751af2eadfc7aa36c4629d19ef299caa362a4a09037334c3f8f5b04b3ced8b38da1148ba56653323b93843bef90ee3fc767ebe24ba07bce58b25513efe95d8d0229b1268f3bc8aee462f674e4547a3f6715ebfc45cf1b3650d00fdcb6eabd57c28dff929b1da9f5a775112c3b77bbffe550d4fddcefe43ee1e0ed1b2ebe8c3dcaef3441d16823c7abf3a8495748d419bd82a46276017603c8ef62e4a03813c56a201ef2251e430a9f0d0587ffa502f7dbd3310154d5e2eea8a673de4963af1dbda22594e4be1e514d295ef469823291982a28e131409723949e77be5608f2744a5cdfb074f7ee3aea9f25d4161a29edd41fc195899012270ac56d39559b3e6b33548bb07f26460ead59eadc00d97ce125d7f1741d224bffd16f7cbf2b2cc7616efd9a3e759a512e67c1885a9170dfe0ccf71c1ab2f52c871d0017b48c3ac7b3e4b04c5b02c67bd4541157676077ef7c6d209c745f91d456a450e84ed139fa7af36ed5803186af6aad7911dee7ed23d8710bf5d41975de188659657127e292fadbaeb044732026f0053b503c1fa84ebdd480c08da518173668c582568697ebfc4c364cb6001788ea36fea7fb1207a0e9e310cbe7bf74796af5bc0c91bb6580a97211fdb722fe6dd1ee428e50da11b300b7b5e0b408dccf7c8654cd3caa1fe7ecb79ae5560d5a4b5b463cc6a9d8abc60f31131103db68971d440830c3d5e5ca1e85477f1450dba054fc01fa6825525520d218d7014e042c90023f298d0ceae00d18169ce5b10f5b95e8d880e658871d08b878127758087c40440420027044695559555555555535eb6bbdbb9b333796a62fc7c654ff859a5c07a51f4a2332a59452925206cd04170516054cd32e64aa0a6f605e115f7c4c9ba92bb49c0845023729bc101d66047a277e3f5120d05b1c1f30d777aeff3d1e0b79be037a27ff4ac555f26aa80171bb9d5d4964808d9ac8bb4244cfcf70cc05f44e3c1c94450443882802b21ca1809d0bd51242bb1200bbbdeedb3104b1e7c64400b489ca735a1ea0270781f20f38b739551899dfd2825f3e9e2fc6f93240d2b100523702d85c89ec7c5238320ea0d5cb250a364df0dfb92e1cc3be78695265040265f83b17fe3210d893e60aa077e2d9762af4206600e49e2efbfd552801f0eb5ceee55fefc43b8927d8e0fcee8b758e25dbd97d5044886008114b137a27be7725778dd240d8ccecf8fe49e607eee5127a4955129b11bc8d22cdc306bc944edc1cd9d4f1fc2c43a03f51bef667cd4a2d050caf31172a19f893b9f0a7daa177e293ac7a516e24c8f13aff393c9ecbc09ffc030a8dd03bf1dae8f6ae646a9395f7bee189c707e7bb2f4e61d41014112228249a7e3908947f40a6959213de5428221adae4f94db790a5654f98e47c73b831effb0b717878bdc37916693bce83b28860081151aad664d51246bb623908947f40a8eaefbdbb2ab4b0f2501354b7ef56f44e3c54e97439e742a2aa36593d54445ffadabdf7de838cbdcbfb352128c4e6dce81c92ae46fe4e83eb1ab5c9baa177c2776c3bf73365c8f0035af9d87642efef2e1f49a16ad8def53eb8f3c23c19b62b332202cb31ec8b51a82372d20a8fffee86c840f9073cc271223db92ac21bd14343c7d17b7df1086748489d5bb6396f7f678f77de391febdcddf962146db2bebfc54ac584180f1f37353cbfeab73ed0a41f714a2e3c3f5bdbd97bef72ddbfbf8a92e77dd64721ee7078d77b3ff53d8cb274b58a2edc7f8be23d867d711df513f7d2e773103fc28ad7b9106faff2df7fc5adbb5fd9f31ee90a539831bcce75ddee76375a83668b39bdf7418fe3b6320c947fc0e956d39dc348349effcec22a6eda641d61e3d3a8fa70be732752d195852b471625284b7364cd01743e4d09d3764f192a2f9e733414d7c74b9f7e22183ea34d3d5b711b7b993efbe25d62ed8cc3b86733a656cb7c46e40181fd336de5ddae9b0385d777723bed8bd394da64e5df7befbdf7bee9eaf8727b77735b78d6b1e4dc7befbdf79e7b7fc6637398cd39d4745079efbdf7de7bce3953bb6eabe386f74f1c5f3d5986e5398deabdf7409298d7b94c1171671b69feffcfa6e193ed3817d3d0bdfffb5399eee69ceb77df63d8177f79ef9ab99b732cbe3f8a17d35b3b3ae7bc6ce9a578db1793293bf7df7f1f349a39ef3a28022b8488a536f179776edc52a97fe7ba2a5cd777fef79f6f10b50dc78272f1283a0a0ae242ee926f9bdcf1a2c5ce4d74fac385e23b8b4ef0994af43943713e6a57d5af3226f859265d4102321c594663344f31bf25b78782c86655c4bbffb754dd5d9a2f6ed9ae77bdeb7d93fa5916883c3bd7bbdef580524949ae44d68a2e1c223d66fe9b3972c4520ff247ced75b91ebbaaecb39e79c77b7139b38e7dcd9d4f27ddfdd96a9eb72ce3951c9b95befbd6e378a71ce39e7bdf75ec2c9e3bb18bb2cd8fdde17d32cfbe69c73df84ddef591a14df3b114acc9a39c9cce5effe3f655cf2dcef7b09a30e9786c939e7fefbef9ddf4fd15871dee1ecff0faba0c5f438577acdc07c51d5b82dc9b030c3147a61eea063a198f6ece2221e6baa2a2b362cc428df685878a1b601724cb27d9f4183b33cef3d1a0f993229b49d65d66b84e4c6a30608e707d298d077ae032dfe6e4f218edf9ea06b42316bd6f2ff019f4516f33bafcfa2ce3cfc055f382cb687c59a91b95f757f81dc5b4b8184bc70893befbdf71b1e78e7d29d230d254b8a8a8d0b210d51ed12015c46c52baf382222e1eebcf7de63cc68a8891fc0b9169c888b94bdb7d6d96f0aea1debeecebf3fc0dc6592614ca23511500c3a9b73147e0cffb705948e14df24fe724c32345d4391e3813f86ff2b64a666937c4be22fc7243bde4c2c77328b116d259c7820e22fc7244126dc62a2ee871fc3ff55feb0c180790ef19763122027b5e2c8861fc3fffda1ea4122e6efe22fc7243e5e6bac8a4d6fff18fe6ff20cae0ee9eab8448e49b40fb6205b64ffde812b56e2e6faeef12ff1c8e3dce5b7ffe87cc73973f3f017946ff81de5f917b6c2609c6e567eaeb69cf8564a910c15c69b1a2e7c5e38ef12e812f0d0240df34aa573c4bd568a62c2da79918be6e028a125fa753d53a40099022bfaa87296e6ddbc52e50c31db161caa37365c8282486fda1630a03497cd33123a604400f8434180911a8b8a5bc9a91b12812aa618fbe94ad22a769d9441fc6125a72c3face455cb0f6b236d2499f3109e73be32ecf25dd4dd7b770bfdfe525b5aefdf12ef3b5fc07e5b21d60c8a8e46dbb4c64b180428aa66052579a349380cb26d0f958496db2815c5bff8ddd5a7023027a2c376be6acbac6371cea52f6ebc979777beb14aa6cf97a2b9cfebf34505b994bb5f350f92a2f31a75de79dfc193a6b46ddfbc4a53c4e6212cb3519bcc1e6e442794d39db23473f96d59cc9c7303544d602d5929bbb084fcdd2c52749260bfd927d6c9d9a7d6daed8a8d959222eba42842d02b1eb3967f100c9c57e855d59c615ea15749f370c3597e5ea529459439a0a2a25953f17e14bccaabe7bec42e450812efbcf33849bfa8f4a417e2ac9f2e69339fd7a74b59dd6bf6f6dee315654f9ba099a70673df4df84fa2a4de7be79b7d12cdccbb797dbab830db410c33a062d0cc90a172d3a6830ae0a28b2b068da956d793a8cc068ee8697ebd5098d767118c4b4b0a4b333cafcfa28ffd0d30afcf223297a66ed9affd33f0e10fc31f7a18c5782861854c0722898d0c09440f3d5668e269871fc5118c24b8b9709821c6344c6c28565d5046b8aae1c29a2a87a68c06192797b1827910656859fa78a4a8192931d5c0c3f8021b33f020124548b88dccc584109d70dc9b4b8f9826a2e3d28abdf7de63983cc609df68e191e0e9a978d9b1545f2f17b7e58b376df92ecbdd73c61b938433694245210dd5eb6ca1895e22460b8d4bfe8c638169852fd44d64853047ddbac570d6f712446db2fe0d530008faf0877ffc61f8c79ff75e7778026a8387cfa381df4559cdc01552be70c2a8038f0b27488dd650726090a5f0d945554f507a9fa428e353f4882442caa965d03bf1d027e50628941810f7930983133f3c1290d51734d984f8a62f172cdd7a46ce167a277c68d98213c79078a7cb0b7768b000f632f027ff804ed415f44e7c95950a4eb8848cf0535053003d4af3483c28a873a19c27b8a966e070e43141efe4c370504488a0970e49934a3032568485405312f44e3812750437671a36f85445e0564370f3d5f3e55041f081de89779d4c0f5c8968f0c528783ae089941ce89df8de352c1137f0a3d4c07ad304bb7f9761fdfbabc8000f64ac1dd9905231b5b344dd4b663090994e091fb213cf20b6a08810c1102298ac30d03bf14d2817d07c996681207804c95381de89ef436914681e4f8e2370326d023421c229250bbd131f3ec919145c97b8f33a956283a4e51bf4abd60aece6a7063286b02baad66aad0259630272c6a42116c7caeb67e5782aee0c69f5b3c4a6d54a5f1014044608c98dc5edc5c40e1559cb8b68b3ad22018bb206994ccd10d5777fc987dfffba30304313baaa833aa1884e79d128391346a8a5962f15cd8d7406a8d68c159d1a90b7288f0a87528da3b524b36e06acc4976dacbc7eadab48f4de6dd480d58d813179a23fde29b72b8623b824b3aba55de3e85a60cce054fd54a36c2f946ac618b624a2800945c794da271ab2ca19d4b605f36c9f27248fe66658e860536af923b53b9649629268d4a8d567d0144b483f508830929c4031b11d6fc76689a5b0f3dd6e8f0237078d09caaab2aa5a2135f7ded7b117512356d8b88660849def989d57a952dccc9b57a9925915cd52dd4eaba0dfb40a663d12526f5f393b9c3170287896320a085c5e38666cd0f1a0e9592f9223ce5a6c81f1d03a6ba1547016d4bca1335363b2728ba316477a0b06240a31e9b249b516c43fe5b8d0619a71d6349194a2c804ad30cebceecd2b150e8c4d57e642cb536ebcd03675f868b24ae91115c6d6366bb043866dcb8ac454dc17b2d1db11123eb1a8919604d298108682f430aa28a3228addf82858d53bb12b7cfc90232a752175df8ae58440c55eb2d6bd9bd768980adef7decc79efbdb7968add3ea33070b48af3d0f78323a196ac14c4e356dbd4c7c2a62952156d3b2eecb06ad931c5f2c3da3680d798dd41d4f2c3da333a3859d79e0e5ab0f3005b3264d795007a2dd952738719869d59cb3d0aac36e6b564a87b89055618e6098cc1ad3c5ca9e656ee01dcce6b5516d5ccca439e2ed12d70a8e5555e41afbd0eec9221113c506095e7155ab6a703208c50494199d715b8ca1c0330cceb9a02976bb0caba44074498877a5ef514e79c73ceffbc467500019594f40f2e7288b5d018aba8535dbda91b27305920818a782c21837454648aa9a784bae77befbdf7dedbe380aa0963c58822f48442b59471995a406dcae0be84d48062cef7de7befbdf7e6fbcf2b555195c3d80ed801db3bab17b0fb50eef270d7a0b3fcedfeed26e83db7ba97f4efbb1eee99dd5f254db2ffebee3e5b54a61b3c3e50644bf28c0ef54a6be954f4637ceacb0b6c009c77be61f637e5c29854028f1c93201d4972bec98fe1ffca8138e678a0d88713c9b7e488e947e3c403117f392639cae93013753ffc18fe6f9c890b98e7107f3926319af1a16564c38fe1ffb6301961248322c27ef8bf7f69836e39555d327520ea07f8f0fb5f2662093b1c05588d44c53771010227c70397981b6e926fc98fe1ff2e99f8d52c7772fce59804aec4e8c403f163f8bf5f1d64a2ee87f8cb314991c90b98e7f063f8bf4a283610a9231be22fc7246f262c7319783f86ff2b4561e5ef623926d1494a106c8a889c0180f428d2d8dce590627c78f2b4f6f31a65f2695b3647e46d15708378ae01cb5c2a798eac9125b240d026ad2ce7a005b2f20ac7f2c475d4d1f4234bd8ca2c2dc4ccc861ac229183857097b4a04d5813862b759d5768d915f310385c9dc3f56bb8ba01cd4376c8f204e992e13a9d59b92d19ae69332bc32c2b7f568e5939c8ca1660e516581908accc1a599955b2f2da3b613b0f9f39de56f160c9aa491259924a73ef1d0618268b5a4c0b14a23a61df3e719efd3fa5a6c7d80d98175434490ca8a39322c508b964f9ac791ac010bda03042d19143fa8332f71649df709625b5bd9013f329f391e199c1cddbf16299ebb7bcdb7cafeebfa11342320625bd9efed106926c5e2e34521473bc87b9fa6fefbdf7452fddc6016febdb9bd81a8b18d94b5511e0da5c2069cc60a145f7711cbd891dbfa0e4943dc2cec2c67a32d91263528c5b7ff8fd6f0e5c6a8832dec4b8748a704cd114a024aa69e162c19a2e77b21c9368211dd4148e0c59138f8b0e6730a0b9c1c273063613c403b1618645988a8c98a456338359019e6c314154cea49a6fcb5135542deb91822cd229a12d5ba927ae7a6454ab6f3d8a68dc27ef57b5ec930b5c3058365674a7615f0cc740732f2d165754cb8f6ba5088398d728d70e178c0ffe75776e951080e63b6a0230f3a65a0b00d6665886dffab7d67b4b6b4e80a9644a9c5c4c2082917d8a2052b87c70da9028c1d922432205e4c5032cc7b04f2acd440729193524c0720cfba4ae6062a9a6cc085242460ecda9bd413799607c411a9a38c60ccd1799913a1898878b885a3164c64def69f316d1f09c7866764e2f366e9098dfd436e38b5deac686cb31ec937281d94d481c0dfb5c8e4cba18268fbdf7e6db59260781325e206381a6404bd26a9b22eec84298e45882aca2d48c50b827baef775590b9cb6fef5dc5b2c713cc8d182ad6da446e4c976f2d754a653a6408c8819b53e65825c1a08ab45416d01595e1a89b624989c4b8b999b5fc831c8a0ce95a6b97c4b371a1656dd94035819e682136cca8532c715054c729a1e61d7a82e7bb9661301681e150adc062d102ba0c408d0920df982d94479d2b1aafe32fc7244a21502b22ed8f6117c69a322f293a2ebca07a7c630c00b3fa311d63e60411ea4ea7b5f65a6bad53f83dc98df861fdfe3cfc0567989c2da75e00693a169f2b901c68544085eb479b8fafa397ba2d8d22673dafd2273632186cd05482e6de5c4ca981e17c2953cd6dc5623002033a0639d10646a3b508e99752e598ffbc4ac15c6a04f78ef59a77afb5dffc69486f56ee49afccb7de7aff7e3f8ad37bef5d1a5579ca9987bfe00f7977282fcfb5d67bc75d02502f8a583e5ffc44424d2579ae89f69fe0a906069a8d16423f61118883225155b386a57303695d8d26b220472a600d78fa9211e3c6915af38701cde8718a81428aeaab07675d5e74302c544aa8f1dc63ab83c2d75bfd5d9f51cb544a8b399b2c125eb3f79e057352248e28a42c5684bef396ffbf02100a1cb23917432f7488662fbf3366effd5cb54cca6cfaa243e83b9fe3fd80efbc3e73dae6e16f8df763d8f231e284798d6e756d49c39ec4b026e20f6b87fd7436ca46b9ee413fc07c742499c9131a62204d64b8557f6c5ded90c9ec400015ca4a581cb3455916e7a16bcd7a9b69031a3194a294f629d4c8f4c586054c895e088d1062c33c843b89a0cb0201c9fcb05e5e201a171e50b1b8fb01d2d3dfbbbeddb90f8e6c5366d21791f8e395a1e5623932ba344939e7845bb3d8fd15fedbc38b2a0fd6092ba8314a640b08fdb1d592e2e3a86745fa70eefb0e8b891f40564eacd9209376314a6899312606d53425e5481b632f81912e2fbcfb7ae44a70ce77f4bef78661dfe63fada72f41d51536cc76f6eea131ef767a02b11e732bccb89c80746f422bee92dee11e1c3070bc4728edbd37dfbd7995f62ccd433983dac6897194a6a8c5a0dc92fa31e85a183000250d1d1115514d9875de79df7befbdf7deef3c84f79a891e6b4834b31e2d65fba285142c5b294c412e45ed8a0b2e4ec53034a318e45c76622c21ad8b1c53681752dbd973858dd65a6b1a384fc9cf6a4e43caf7de7b2fe247419c7df3cd37d75b6b9f2f1e0b02b6caeb0b2aa85025179dfdbc56c9d5e80010ab34b5a3949b4dab45b6b236a305851a5d960e6a84516db9b0b424b36660a347c60e5792546908324c3e586421b36060b5b0ac9ab93136db7a60ac5585b074385f685ca934b9966a0296c0a8642d1caaca0c8c0e280063190000000018477224c89214ca1514000720ce606488506c585c2288452262481c0a45511c09310c04210c04411c096229d9d9006f708ba316ceb3cd74f3ea5df2674bc7965f7a64cefeaf0aee9f40a631fad306085523783420e88da51e45cd852dea1a4ac94d240b494bbc61c8d204b2b65023d1ad705d8f92353a37593055663e248275378a7ae07ce36a6cc0ce3776632eb84e0e6f8eaae7da267a8bced59abc83152d9da10b598905f3e49d3a2ce20d42d2cab69d5d941cd587f28a02603f3e93215a9afd71e689f28ad82eaa44ea701497aff478b1b71c97b470b962995609734f9753e3e5a0a2dfae483f43a2290a398050063885e41e9d5937d33058e89793ca5f8eed1f839e849ca283d452879b528b62e82659f2c055edcfc8c138a430ee44e988bb570ee28b947eabd8aea6506169eb81a184f113db726b57a9d7714f9ce57849e3eda0cc29ce7ece56041b0d4dce1ed988088c84e3e1aaf5be57e0e49b356db0f4f19bf7a7dde8accd15871a788b612e99246067b0965aed29607994f2da15d9f77bf064d2a1d1b8aa2a946f9089820392bbf01515d398b459b6a369b259ccac3311da44f5d4043d58b7ff3849cd238595769d254cd13b8dcc936dfb3e49c3f9fb88224a665633691ad2df7b5a16438764b147349e3279429463f526bc0079a722ec6e5e50de18a48b3ac971ce297bc1efa5ecaac9fbf29d543acfc7238b448336e1cebc250d6be10c34cb8d494f4bc0abf42aa99d8f033a2641263f4febeec4ab73e48d57fc7cbcca2e547d85b540c49ad8dce2b6aedc2629898e25c559804de40c4e337666121b9b08def65b0f01181eed691b9aebd0ab0f9d86da894b6f09f0ba5679d70eafc6ebd0d3de2e26b52ac04b6a5fd24d83d7c7fbea69a6bcd8f40deb9c369e4d51919eb38fcf9ca8ce28b61e8c470c9e3f0fa0ca7c2ffe31691c781da66429ae26edf6c5b7854854b0ceaa2f5916666420ea14cf462649c9d86fbb4e5509d117fd8abe702dddf7dadc08d849b3687bc0b72c47035cf21a686284afd02cdc62e4b12a0c1e6cdab3f82c22db4f8f791a45dd72d63f23f353731530f437d3b40b12ccac50e12a884d7ba2d05df093e950845e30848e1dfe0512531020b94a52c7a399801af0ed560dd9911e5cdc3d6ae3288ee3d8308479cd7aaadb222812e8548c704d090049f8626401b93b6703644e56d1373cfad0eabcb6de9d65c6f92b79da830437acf3e60cac854a160b7eeebc1c8da52a3d643758b08f478ae62f1cb11c434ccdd763d82d073774bd59fe529a1ada731b05703542238bc0273907f80837a3a26a468de47373b29f3c6ee43c68cca2b3320762c026cb02a8042d5a9dc0264a86a8cf88d613eea434ddeb47077ee733e061b1559f724ba78d4b3be8d584f00d09fc112a44b49e3b970e6cc3508833c9f606b4e424590e4a0fc42cad477c75ce020f7fc03d5388c81f43889fbce9d1d76d815df66911132157698998be238c469ed466ca92b97ee621a44d1f175053da83b8571aea58825f3f3a19259bd1a67a085f47a9f618d05f86b21986d11a2e5e024d169828f66d56be71ce59f516fc4231546a66640c3aa9fe39b986f41d7116314c52a9020b52eca237550080de985d822959d1b5a79f3eadd287fdd6f7fc3d94861f09d8f300b68d3c799ce2318109f3a36392aefe3d0fc56cce9358f03a12eca5071d4dc4b9816e762c70fe0cf438b710b2aeba9626e46a42f7081444ecb6e17ad674977195a8bb0662e599c52aa9d908835b5f5aeab40cf6807959f11ecf65d8799a3374119b7fe3475c5d91d0abad9bf9c1a97f9d34b6e2ca7fb7c10db715e57d4b6b16e0e963a12a971520c54cfa0a587125745fc787d5c6f730bb1bd4bb12c7bea156a6fe7a132ce20f90bdff74248b9f8e8a24865b8bf2a1e23b29e4418279a974be90df6b1de1e4280370e8b79061dd22ee468ecbb1857e2beb17c25ea6cbf1fce3d8296dfa2b0f7f4622bc9d4a1c2fc62c089040538c8bb96994b814f32bbf9d390d91e08599eba7b61a4906c3b299a8f1dc8a991f1897df3594855547626fa45980da89491745ce2a66a9873563968d58fa5add0b9dc80231bbd1f0dc2ffae2ca9618ece000237a624b7d10020375e4d76b24214d175f8c116eb5caa911e91c86a72abf0a1c27f18497a459658fc947fa3433ab84cd33a735dbe42c20920fb181c8c87fc20673eca86320c63ba37844896b277ce55d8140d9e949e50ef2a410605caedef8199d8b353338018a1472608bb373211603399cefe3f441c3ed21f8a51912b1c7da1923a4e45f72ede38af4a1fe73686b4c0ae7bbcbc74ddd1d3900f0758e1b38133cefa89a9d118d33a15fde503fc18ecc6d9b1ab57e1275e99279ff54faf649474e98efe8fd6d87afac6c7c97791e5bdb67cc0305e22f4c4401327b15acb13aeed2b982fac1934b7aaa54ba0c7c91fe0b80a7d521a20babded148f7aa25119aff9ba639cd6b37d4fead5a9675e8e0d470d94b592332c36010f5fa246e837af782932307f2c021e7b94a25f292c0e0ba6ffb617e0052491dc1aa24c6bbdfbf808ac5d7ec121ff989d0232ff32d6aaeff4ef90c94ec259f1922e8f455712487117b4d3587b60bfa7f627c524b8fc3ec875c4905efb48ff82dafe8b890bc83b6b27455a6a2a8b049e0a30d9ce019a6108deb2983dc6a186a766f0c188855546a54e46cc0bf001ec22ebef9d31e762c1689ccc85aae2b4c1b0081de78693be49bac8e00085b432432486d955e7a4018e60b607d447dc6abf67ae87448c080979d6d492b22c8456bef81b69ea25ee09cef9a69d59ed5047350c3d6b54582e483f7a98aa61e56421890e5b475e4f55f51f7fc5a9e33e6da58ffcc8e73504d6aaf897063550d045928064f6f6ba020b04165bac60658fec773301dcd503b9d17297d3fe6303ba02342855c708dc855d196907ef7c1d7187632101ca0fda528c9ab557cb5484f2f9e7b01878b50d1c9262631003ce3f38e6d907a464b810751550b67b07374bb407d3cbc26be9ad6f0cdd152f5da4aa4dbc06cf70461445aeeb391e5889aaecba323e60df23a3c40cfeead1090d302de43a3a9e4ab794d6d48ff717f1a60ed4cb4bbf76d0612d47140b1b1359c570714a2ef8ae2336229f786f07ecce8a6499af91100e82b51c390e95c44074f3390e0f29f49ba1341af43a14d502350bcc687ce15cdfa2750a4cfbaab34a2db4da825799559939272f9ff3874a960581826678440d96d8132771401e3f0853b55fa621a8f70a10c1c047a656c23ff3750e877785f1e98c36696883732b13e4c94abb535d4b012450b50bf404fb800c2dfcc732d332dbe291912edc1fa740ca39aae1ac5c6a30b83f07ff098dd4b065f793a04b7363c49b3e86e582f8a75efd4f740b9972db45c488bedf0750108feff7149225eb0d225f92b467dbb4ab8347a793822ca74365259ee024d02225ed392e80eff189002fefc23192b8b0eb454f2425e087a328fab18fb0c9ab0e257536a8aae83c13d7d9ab03759835d8251b665ff2a966f47018af845c6a03f4aa78d4ce12edbf68b27dac7548d5a92d0478175a74c97ef2094c622f1cc1f8eb01d3cc5f8e73a2138f4b90be248fd7b73c79184899d3e7978ef6bca5c8c87252818586400e724496bbfcd221d0789c8245f335528e85260df438460b93dfcd522f4c0fdf86eaf4993c02967ae8c5410d277ca805da5ab3027edd0dca11ce65275e3e1499026f39ab0ac6ed040d13199b9545dfcc30d5b7eb1a6bb6ec55c5b538a6162ada4e955130883afda30b98d2cd6494b825eabcab0092a23d3e9cc3b93863ca831a6a03b581ff9c712a761d39b47373e549c9cd769bd90d4af88cf2ba4ad885a4dda76cc271fc3fb9ec094a28fbcfbe261eb8bc36a48789c9b823007442357284e9fc5632ad9cdc6d2fbab6266624f83e99858390e0ce90cb537012686ec39d3a3462b7922beb51fabaf4e80ccf9aa81d4006fcf1a2c09f19863ce362bee093ea96539b31c6e4e7352d107647b91082bb0dfe62db203e83a41f26e5f69a2ab63b0e51c26229f864b97b767b91632698d71d25acca142a008cbb4a6354f6f5bc777ccc3a171566b858e8bec83878045ecc7aff5cc89e74403ac6a27a7b43558ec495359bdd6936e1c1a3fddc943f42d021e2793fc64cb1b9c90c026846b4f18df55a6e1b105eb8c403bd1244a29ef1fb699b3a482e133f5f464c3b0e451058ff61506f96bf9ce74219b2337b89e878ebc1bc13d0462b0afe3c5da5a5785685a444e1983ae3377f89da3176a32c869ffca7458ffe41921a761c5838d655209cc4fdc47c46cc748afc9669764c326ef4345c07a6d1c14d24e38b8abfc6291a4c26f210eb763335e08b6bbbadd432cedfd0a3cbbae8925f75ece3e96b41f1a316ab498a41ee7363bf912a3e1b652468c91a3f50a8b9e94695824d7002f78919c6c9dd79e4b4b198803d0020f297245632ed8a17f2fcd1a492b3c7788021bd1f86c5a193ae8c3d8c1b34698b31bc74f962216f871ca7b2c3802d6d75eea7cb366450a368cfbcbe8c9c8d2fcadddc9b58c0c77a60e8394262ec40407d6c563d7870eb105df4ac616eb9a14bf9e0b80e7720a20a0e2adc63a28450c9780593642d79e8b82215c61e12a6ac72a482a97ba687850c85da7b99c278e0978f2f2493b4952b3729084759141a3ebb7ddb50f31bdbe8cea51513b9bbf492bdfab99cc2c293e06a4dd83dee324018ca9ec374af583d60d92d830baff9b1c681cdde1ebc829403b50a289ecd72d491a770a7fbc0762d6a633750d20639a228b1f33c349c30e644b79c75e23753510728926f4457814990ecc0f17ba656b5aa8161e84bec5a36841d0ad4886f44fa8b5ff415afd1f886463802d4dadb4d5716d5f2a2b41ff75433987dc622df0c6254bd9815c7dbce79181915c2ce3fc5cd8a0fbfef417facd4ad5d5fa6817402038912b537a6834c71ce694db28fa5a9b45ff37b4e849701640fa5dbbb8d235d96ee174d5882b9752e316223ae6668946ed1591943c4fb4125f497aa79767c590445968d812858f901fd17ae9ff14a587c845df66bfd87dd45e75299702abe622df71bcec35448972600f5644e18c411180898124eac382147d5f6dd8c18b6668fe2d441f0f25345a5c85deb1cf51e8d243859e87a242dbc235ccde84e1c4643f79e1bd8fbe6c6ca4c24be028644a5a125dc2ee4d5b8842f27013bd003176a060d9ba68845b81c5109bc5016caa69e903e0de2615f16ea248735f3b732b6212799fea1d51e8528ef2db8c11a31b17e291ad21725c7df4ea9e91bf6de5d48091dfb67f8a5a300557f08ea43ffee20b2930ea634c3433678679fa8755f9000269f76fbe4ee7219a53142efae588c122cfcb5766f3831f0fdf2afaa37d3db0a030c3d46571e6bcad221e8e6417696408fb17074220914defa1eff2560ddd939494d0015b7278576e33d56365f4fbd2ef741fd254d30b7da46880c0303a222b4ca541d5271a9b559de8678424ca89c4bd2a9b41067a7e1f8eb147255c91e8edff4d7ac98be0877fc36725a2eb25cae843fdc4447f8e91e89e9912811c19666888176868f3b85fea4c3b24b40d0309ede82a232769f1564649f7837eb2fbf613a59f1a89cdf6748b35629b8e3ca923cc17c84c67dec237956205dd79c92fcb28ba44920de9fd152abebeafd0050790ea7dc1b08afdea022a67718c78df77efba6c2f20ac6a1028633e26ac32fddb34457913ebd4cd3d9e8965531ae5c84037dddbef515666bbff9dd9f074ccae5ce43e4658d16b85a84f496ce83695b50ae3a78d4237c4b614ef9b5415b866c5416356d9129a086c702998406760522cabae48d755868b61c27e8ca2c654c0e9117ec9926345193766c1694d46a183cdb6c2acb277fc2224dd337524cc71a0e110ae416f06c7cdd920d3a0fe39c74ec74f56958b106427393eacc974de6ce4b2182e84d032d3e31c807898e23b961625a3d3511f3cde13b1ec84ace3338dbb9e4e7ceb31f0aa168b6df0b8b2fc304986f676b24c626e16e4929107b8881e02c8d9891db47820f3b0e75b6b4423bb905742043d2198cd204f65a1c6cd4814c6b619cc250feab8495e981277860dc9b8ce70cfdc7127d0dc2d9b4be3684a5eae042243286924f93c2fd120e55b9d15fc17cae57a46074b61317a6bad0603aff07c702c0f64d2be9757b63da7a383c269d9c8fae0d592e53c0fc1d1e8ef4aad4a4c136481eb8850ae7144426056f28a6643c05ac0c26a98fcaa943063f4273e0c6d14780522bd95e5014bc5eaadd2007afd787d6040cbc9fd080d1cab424edf59870dac1ba4af8a5c81ab8e1d66cdd4ec479ea014421d0582cb020fcf1b1b1863e5e0d0ed0d3090743b85e85a26f813be11fb402342f0319083060fa53df25c6b8ef8811d85fbb90f774b034b8c1d1c659f1982543ef1e6125c3e419e4c0882a54768cb9f254a6bbf592a552782f0e2987a174443efe01138f4f26783c6ba5b864bd9d921bc54444992e8833147fbf3358ccd7048c4696f6ac272111adf8748818489f4ac087a3321088745cdd6c56e4bcc11ce641486c456409c50af98702e4ece54207bd46fe66c784239545edfab6738608bcedc5becc9e630afd4c760cb3c715c967ae6865f741c4522b2fab433b54805e66080f7458bf14991984d2b94548482ca5041730040bad8547c2dd177424c112aaf40b99a96de7a8194bb169a6eaa6b61f2efba5f0d7541f14a5d2fb69f3baefd95b56f2c36a60b12d2fe377972d97b561a32c285e04d8e3a2e197a6ab1cce8e246b745aef4df501e1a7af55b22d84bc898bc70e4251ce819464bc9431c960282cc76429f38d77a7cde37b52ccc77df661911d84aa0dd0fc496b3ed9e69d69637b5b27d336c459bc9b31ff0af963d13392df61ed172a9d08500adb3ae565e15989865bdffcb01775b3543f7b654f57c5b59c3cfd6ef655e2b3be554ebdad9d24aacefa0751d10ce0a3ab82eeb65dd17328b7dea2ebc6fcbf5a50b5184e8b5fe0850f03da90c80218222fe5fae3ea3e424bc07a83670b27db39302a1049d1095118d5bd6d32fbd3c8f14f879a38e7a2bf45fa4ced8d858e4b01a0600406e357527d7f3b09c32be03dc141a74a66e40786db334b9f51611bde010268cffbd35a418caf0436563c5de3b53b2ac64b522baa274c2d7bf1e4a4c9a5d0e874c9b05c8412651ccba85e8b3f9c36c14c0168a691fda84893fdc207d440b885f885600ea110d470024e6836e39464a75db4707ce7526dd0318268d8be53c1855528cf4c10750a4e24efb6699d1835d5538faa5ec656829d8fc8a369fd01fa49699062e18e132dffae312c7f684a0b755dc8bb77dcef860675560d73731163c7c0b3a09148141161f545bb6f0d918aa887eff47c5a118aea2d26ba03706b2e5c0e4f72659ae1ca88f411278b277e07d2dd381cf2358a6f4c9e4afb8fb81d32ef4c971ea9544a4ed2136709abc11f5acb5490063bc3e8c9ed47f2153224af510951195b27db3e1d1162f9fdb6c8237ee120503b4c718223b87d56227da17b2304db86748e403d26ffa64a44b39eba6da9a1eff377d24245c93aa56caa0901b56d0d20a8e0e903bb618536052c76652bf7d3d4f6688d991d20d0cf41fabca23c47fba9a2fc7288919038c674a3e4a9e5a516427ac94fa4fcf4ff63750b1a0ec177454f67b36334f297281b8f400e83e8da072cb584f8d2ad548a355fe49a618806ef310e80541d44e5b2a8d57ee64a273054548abc1b5a79052795d79e62ec6e2b9f2d2248ca538f196150806aba38821b796dfc2f9bc77b6720acb7c90acb7e63a5b00869ad936441c12792b160e09d410bd735b33d60f8e1538aeb141d2b3d7b44ebce3ea00694371043711aee7a23950316a27d1e516b610c335d757f7dc8862eead19410fac7d43011905d16629e45a0ed1951371280c5708493109cd3b3957f729f6d500c975e9d8e13c4c8cad6199849c775c0b00c4e840041ee14a62f450a5a88d5c5443c84236d7bc5e1d7221880bb99eb81f2870542b13ca1572e9e815af47fb9d8843395e25520fac8d145f05811af41444db15d76b09236e7211be635e93133dec7148e293f7c85608079f609f926a49f14b605bbb1f5a3420e3eb635a243606bbbaa7796e449138b0392e064a8cea0029a28fcfe37fb68d2a6f070bacc8c421211a2658dd1916064df3f5456147ff89178321b200a52381700cb032d2c88da6f4f70ef2bacb55867daaa79955508ea671c096c630ffd06f43fceb2a902291ca883a14ec704b09c0b00c9d008c79fdcbede938f1d3b7f01005cbddef6133527074e724594cd2eaf7eab2a1c0b280c36d2b1c7234afd442c026a91199cd3b0f1c288f580c825a5f30715f885834689870e23b928e8a728e6187adba36c07c421e9c8c1f41106b0b1f22416520ec049bff4089132dec4ffa217cbca830d31922d39ae8146850d2b166e323e9d956550e9416670fdeb54953580527535560dfbcefcac9865fe1a16a1f37b3bac60adf1ebe602c1cbe9c2cc23e525d2fd4b4dc3901cae28e94f10a40146baed80f61bd4ef45a02dcf76b96cb846cb5a8e94d63bef21970b1f5f1b89c51dbbceb56561fd4218d94c9c676efee015e13bf078f5c4f65317a22bcbd063316a1865823927e9e7c120a92c9a68865c362e7eb5c6f494db0f49eb10d7315cb6ed31576a2c672896713a0bd9205e8463e44d358685dd154418268b8f5587a322feb6469990d83261c406da6194292c4a169a73c484bfdc6d259115acab1c87b0fca5d0acc2bfdf91c5a110fed79802ddc836dc9a0c752016de43934aead5fd105787dc9120b10e5a47dfe65780628eaec66f90e0762aa832c2b3fa14b1b43575c378f6100aefac3c829833f01ba6371fb981a3b1c60ec646628f67f1f1332543a5ed0751fa92e2859a1299c8638262bbe8744667e8157f65e5fec3f13f5ba5fee9008efa41ca9a6194435c832f4ffc8d48bc9e695e03fe10fa6d76374b19cfdb139ff4065360d4a78ed80268b0c7020d46d77052dfaef38838eb29d2ecfb9683a40a4d32c7090770c9c168088d3ea00df8f49c0bbc3e7af98a79ebcef6cb2e0de4728e2712a43a1ac594becd95cd6c94622a64300a24890baa14fc9302c45a869c0c03fd3aef9264be03217f4efa51ef49e9103efa91893f574771311134be1c57730bd2170e85e0bcad9b68201ceeb2cb10355f323d6cc50b0357303c073d8cdf530c7f3c3c9e00034d591d4bf56753d2fca4ccf9c13b3b35e64d89b80f56c6cbb048e7a24027924179838f29e6dd934294bbf843fde91b567db6a0bfee7f150c4d1efca61d601cf36811953fdc95471bdfd1822c69e7fc396750fc76ca36e8b27e1fad2ca09f1899c9fa694d470610e643a7d30d9b5799a134625e5e6158e72516c3ccb1d43accbaef95aaffc50264cf2c84bf2ab367535935c576a2421dc05a4c5cca58bc9a81625c7f57cb1d98843f49a4d1dba4e45411c97af8ba852abd93c9092f9d3c749d33b0185fc0b31290272e4988c2f4e40aa9280688f08487b0d36a8ea94053f518662e5ca46e6d55edaad6c9eab3a65b99678457e07a69584a0e55659693a88386a3c62993892c74b7769d5909aca47f87c5297c53561bf7ccdc893aacf0b939f3fc582b8667bc2f40afdf2714630ea8671b5f0727e5136fa14aef121ca3dbbd9917becac879dd83d3ca133daec2e35b168ca39532553379d71662a355fc6638cc84f2eefacc5233e0a807f6cfc8df502ea0f63042411abc244df8a91405fb2a81d811a43b06473d2bf70e4c428d2f465abdcca1b96b89cde0f062fe80ca0f351cc756042ba836ef584b402b824f380e0dc8f072ca41e0832fd501383f3b22cc919bcb40b5b43243cb28a8858f417926bdd6626c60a3b8922f029349c007ad386394eebfb729eb7a698aca15cc2071b29491fa005f1ac1cec38b9d35fb1ef6b8a6df8e0448ee034032d363683d4de4eac3d577251456a30ff86ea5b147e80b6d283bb942db4c5aa2677a0c0fb34e3f616800c2956ecbdd6a3abfc33828b21da5b8fa1d59478a9bc27bb477779a4dc507baaa34785c206fb4dada0f1f21027621aaca281ba4ad768357636a656a75c4b2bb4617baa17c5a909f57395890a92ed704ebe2dcc4cc07c5ed492eb084201ec421de4a0a7be49ca79609ea8bcf9726d147a989daf5481bc3e6f9c48522557ec2aded369b328c27dd699a0ba9cd3e85b9a878a9fce61c2b02d9b6c85cc116e0c0908a0413cdfc362814d67c9257a02559dbb8c726dbaecd81b28dd34a4b97d0d8f8e80de59d5527c0a75a663f09417d84e0ca9557c210d8bd31f401b5b316aa6508589135700dd031e2bb381538a33806699a8fb5fd8989ec66d958dacd70cc013bf01e38fd72daeb55a7cb1394c18ee7b80ea78d203660ac161338c2bf9fbc297e028c741a47646f3b7beb3d54c274bfeef611d2c32182627c3f4c6868593b3017f3177989300227d434f97245ccaee11d6f1625cbd57f7e12d9d01ed456ac3d193a8255d751f0d225e9b1c0ec7e67e439f6c9f3e77ce799a5c1389045d14e738b1c70c90b7700bf7cf7c75dd76bbab0f41d6faa2a1c3a6810577f708b28f7ef0b6c63a038dad9f693028d3c20fa95032ccaa1992957a9816bc4135505ba11ca7240bde68688ba3e1b733677f50c87a1a52e1f9337a69faf231159abd90468e23b6e800f0ebc5fc11c8a2b4835d31a858215a4283cee8a205b53bc51242afc9d933da8b2c187e51ad47dc308d097c4015dc7e1d99673586698e791444f85b7998eb048d5b4aa694416b080a7c80fd74c226e69acf2e6b8f561efac3af87d4377a9d85ea118c9919a646283e6771718d245749b3217c08a55f4f005c77da44e0c3a334ceb69223c9f9b0e6756be3a11bca8f477e278c313a13e933d32c4daa05aa418dfb44ca987e1489a3402bad8f63403a684df9009bca0518d1debc60aba68d30e499820183a6c380967218b3a3dde7f48f7f2e73a7ff1da6d010683d318e7157649f2288eb0c28f855348828b28ce4ea07d7734144ff49cea89d4fecb84a3c03fcbacc880c2130c05b5d413b24676f2431013e202533be887f4a513e3376131094ac5e74c900e27de882094420b213756d3e30f250b3e53176a8d212d387fd92d8d1c732252db324c8925056e5ed74762dbb78dfae9d3efae3123af955d787882c4d7a1245254ef013a9dc13a83083f36b75dadd05fc1e750aeee7f0a385a68cf5e89d7401555ee6d7f00fe1ffe65adff6b67a961471bd6468b608fb0adff0105ea3c5ecc4839299c772d3b70501f6dba90f5d3d946e43361b707983696005ad866ce9a2f624bdbf8099c187d2fddd1a0b91cfbc48381fa3dec0e3269dd0376afaf6b87e010b4b490a2c8a4ff8227403111caad5720199e72c6044ba4cd58902f9bc4fd4a5bcbf2e16e95e13dbd16ca24539584f7c82c09aa9abe50f7729cd6934f26c117305ca2e07b143da54c9fdc7a6211ad3f1ac95e42f4904f8acea4602e4e7fba1d507eced5a4abd28b498c09203a922b06132515249b6700abdd40ba28b1d8067dc87608ef9e226d84139dde310ecbd7a5cee8f41fe3cd58dfaae03412ca0439d202ae341714295879e58291003ecbb1242b9fc549fb78095acc5cb721657cb7bf9ce076beae578648e88cf97823842a344db69c266ddecf3bdd9e913a45d125c15294f2eda1f63a6b2543051d49cf6aa966da3b0987ec13680f5f91805cb04228b1d2b49175a37c8b4f7a900c3a04dd473e3fa7a19ae86fae6dc558e0996168ffedc2ee1de70719fa707298702fae49fcdebf1fd422d080a9828f82d3e2bae25ef892288fdbf8cbfd46b8957703143b3e4c12c1d7a80ac8d29a342227fee2c8a7ae3f90b8283c3033387a08194f310ab13384d4d67af72ca420414a07c7e54ba9d61307df53f7b5fd07ff2a0319fb55a73c0900649e90ee66fb9a7014e8b7570661abc40c9cba2d8109e254177989e09f426f66987df86992ccc8da879d71b6bc253dc3ebca5ffe13a31130154e150fa173de54fad47d6295308e693cdfa6ea9b7478d915f976929a216d73011c248b1650fa927bfce433c9681585c520eb01384320a9ae953a81f531b34fbfd916e3f0631f1db75c85a1313b03f25b3cac7ad6c28491414657b11efc222ae0614d791a228bac5f4b8a41a963916b16a5f582f225b4babdf0d7a266cf59605f9c606871b6c207fa173cc1e868263cfeb2d3f8c1d189e489d8c039099ca6ec40cbbe280675e37fdd5efd3208b73636bfaa777debdf1f97e03f643887a5eb56811805ea8ec2064e59dcd860f193b56be3a28e8fb1363b4561ac34f5aaffeac1de5a649c88fcc18d15293f8ac3c50673f60c86a46ce555026b60af65ec710c9836a2c6a2b8ea20f162060285e108859a1364ab5933a093f9ad4ddb36026dff547fc699b2e4ede23690427a6f09fbf7e0eb41a0475613e378ce8117a0c0098dbf640b9b8f8f0470ba9fa30341283a35755af1b93f10fb15b7c9bd255130bd89fff8287668203ff2f88c6e5a18fef60a5298d9b85239a4f1dfb513ace4d3d423442c1e6acb412f4b58fc65362044ab1ba164222b7d477855b30d0705d26cbdb820429d9c83af6cd74eaf0a98b238e4d22ce0a182a3c0477d715903da97c69f34bc911129adbac953c0de3477881cb41fed82f5f3de2e804dc4014d03715378f29c3b476a2ceac7dbea5e676f4badae7b9afad511bb3bd10320fc315be2ec89f36eef6807aab9614b28d13561658c765e8629651d88f7aa5469dcc5a47a7e2842b4767ce848a1825095e4e52bcced12d031db11310c9ce2785039a2a3c0a671f2cd89bd1498ecdbe50bb56aca78697ee00d6d5d0e68a0277794ec0d4f4bff47b9bb539a725c04364f28a1419d410bf2a48dbd3b4519ff43a6551f42b6f64be36811dfb8ecfa7bcca163c0645cd5a5cb2a7a001abbc0e03e2b8e721e02fb803fffc06991ca0625b0bd020c19f4229dd19da3c8a896f87de0f5b82aed82533d772c6b242a9af1c131fd1f3f120e6aee51c8996e0ca0809a392e0c616838cda6a4853f252110fc43b2ee344d180b2a022d61695ee2ba28d1f0fdadd553db860f6f763176f270afa93286452af86f7c4e844e4161ae1a146622636e227539a6a24d5c058dc88fffec332af33822bb6c88911a2f09ba5244a445fd0b8ae2de59e3cf6af3827f15b47862d5aad7fbaca6be03d3076ce7d51f646c619130f015e07e2b23e99232764daa6c7686943de3f6e2a6fe5b3a6c06b7d9e37afa69fe3f1c3c80143f51c18c3426dd5973dd4de9ae57ff9ff215dc1c95871ac24e7cc78c2a0e27600d5eff1545f4a110c3220f4eb62cf299d65cda591dc7ca0dadd958e4af3c2812a616d5a8473a299b52bd9df503ea736ca063cc1b5d1d214ec155657396e04055edad144e9f03e5928065429e7013fc9d5a27b3429c39ed0c6dbd5a41f8a1a078f3cecad9018b61083001d1c196063e3a52d94a718d6544ebf260c36f53e63d873b20b015d48eca5ab217e711fd230ce4f08740df033cd6bb28c10e4fcb15654d53e630e30deb0fcc4a4e302d5a47763ee013b230ec28009edee849b8e8d18f87c3981ff752380f1e8fdcd6b0da28437cbb789395a47c259f12fd3d0144930508215e5e9852f51cd230ce56a5694166f6a584ad179c9d496d86eb96f926a9fbb1384051ff482e6e3fa51b8d77aa5c857cc0c8e221c464d4871d87972e60c48821696401828f25e3af32b376ba6a4f3dacfc3cd53e5ec18074c93f095b78adca212fb8c321f10b5f4510f5e44e81d092b5801537028305db8dd56f78ca2fd25381dfa64dd541bd950300b158712d254340c9514d2cf3cc6a5752d11c18b09e76fb48ccf0140d26adabb58422b9bcc877d883d7a837d3d613955fcd50d355389b6e0e561ed19381641610eaf19b1ed4a2281d08872cd1d31883c556cb31cda8d040c946d91f84de97f799a35e728af108281eabbe547df6849563ffc337e6831cea674271553d259564ab4d994064bac6e1c0d0e85c004d54eb02000a642cb30b3749ede871eb088b05690e736a398ba6292b15d3ef02b4633ee1220f55427121041e5ba32e715c752970250bf6f852563f8b4be21e9cd6d303601c7d296d0e65305b43b9e78670cf903874f27c728a63c5e4980efdd03d2751bcca4478a013c293cbea61af2a59d6586b8253606f0ae41a12fed9cf58c684c8bd62c532fa25ff9d40e43db7fa870968ce0275f1105dbcdcd8a9cc2e818d311bf42e9be40e4ac95806e1f313eac14dfdc8f04614c863ed751b90f206b9c2e58194cd2220cb4b0f693caa40507adafeb154cacc42cab61d3beda4c24c2a1162b12fcf30799d084228f557437e301690a7f8b2fefcbeebe8d0c383e875a53362c1eb8a5dd1c93a759f27682015f3a18eeb28785bf88238542b8f8516a087345428235ffeb5c825061dce781a0e79c34163c5079e48ce4b82ed10911bd2648ec899e1bed78ded3288119892ae2182dd488ebac25d8c715d154f9a7032d381fa633b09bc6385a8a8cc1ae72f6cc1bd9743250cd170a4f5d45c20d204762f9843c1497952095c65d066f0d6a384fe99f30bac6801f27fec0f47db318834cd920830ee8950516269924759035dcbc4feab53b8992927b7969e68b6e8048ae86bab6f19a1a7f62cdd4dc6afaffd8bb34a929f4b81a22b4bbea8c19731d4bd14eee19ed224b93921a9ad4dfccea6abdf1ccae7aeab5f5c373a3b347181012ebdcd31306664c7f98b9085ac32cb50c6980fb2326ce6c4c4419e2420f5efb544057640d00914b671f7c371a49af2644bd2658f73ad553a0dda1007947d560c2a7b8b18e8a8bd82a23d823f987b67b3de4c2fc357336fd61bead472170480e622fd3f64ebcdce93e5fb62ada61114b29dfff0b28662d4f280e6ea051dafc0c5c00bc6a6da15d9bd012d52de2499c189716eafca92265f83c0681af81300c7856a44574c46e49f1545e95fdf0d498bd6b4ac95f4f72f7258a1b98b18d356efc261331f4b55ce33149306ed172590f9c62fb67ffe9ca1e09491bdfa46255045baf29c5a3f92ea5abeb749b9fed138d8193c98bc1510781b325a13275c1a2459bd370f2d41458ad416f23247a0b6a5739809a8c3e3d5a3617569572da8511252b04e4b4785c4d93bbba0a57eb55c215bb14d1be3647aae996beb267a868b00faa6eac5b5c46e275f783f1ad17bc0907843920f604692b3385675c2fbf7b150b75128840187103c493f9214bcde1321463f8779cf34398421000ce1cca755d43396d128e1200f1c99d59246970b6048aab3893d8fc2d9618542df5e5b1692d796b6ae49f2fb9a9748542ddf4d16b930c53d2ac306c819b4c6c702b5f2d7f497d129321eed8c1826fbcb8c305eed3c0378c9842cd6698426ffad7c3a9ded90c58a59bb064177cdc80dfbce9001badc827b10263026402ed02602eefde4df82235e021ec011198a08518cc805349f0dcef9a202244101ccfabf4066ed6f330c48cc67daf9bdbaf7ddf9bdf8c0591bbe8b28040e79a7e2ce580aa3a3e6c7adcc0f0b85989fbb1e30d2eedcd86db8c36176c546b4db5a3188274f0e43891662383c386050dc8d90e331d6537c8be6ec0a056d980aa913426440329861366c20866a2e52b88178f196a32cabac2b8626c59c5909a2ec168f122e92285164d564d11ab06e5ca87159bf4ac8a46948b0a6bea09653e8b9c3f52395126a0685e9e68549a724e6e4d38983598642c69294d253921191d298d769637452562884a8c683137042794830535c84bf90228faf3e4839464b1a20779ec31cef01849ecd0e9c4e5c4a0822c05188a298ef4187542e966c86685091435332568668825ea8c3d66d664cc62c460b65eae5c9c452622518b0f09152c3523645c56645254aa6c4a1b8b82563716a48b2e0b0874aee9c7520ea8aae3c3a6470c0c8f9895b81f3bdee0d2de6cb8cd6873c146b5d6543b8a2148074f8e13693032386058d0809ced70cd62282b2313bbc145cdb23155a339864443486c45580ab09aaf9717af97951973327674c5c055b62516836b9a0563ea45d305929650d60aac145735562e2f529795aab9e80eaa18a6caa062cf22d75f9d5912988a401302480f1072c08a06a460408d88e2cb028a2b0a984bc08e103120a0ec00622a7005b30c30558026019052101ac00a145298d400892f0220ae04600e003b7e319c5056226602979c0562ea43b3042412210f2b3aa420a1266e7919a16585c3dc861dbe18349465101be182b344a6429a3da45788b7e2ef54b8365fc69368e92450b8dc06c641600a703a06ca31490c2db005068129f0cd62d6dbf6fbd604b89587ff6ddbb66ddb07847840889685c6dcb6f22bfbe2560ed1b621768b8c31a11d4a195b2b499eb64dcbc14b5d0d94c5450c586b1bc786b179a21a42f8f69ea7e9ed8d80fa8242c69b09a789a914bc370d24c5f0155747822d878788b77f7f63d8d78220461b270dac1e25e88c11b71394c8727b4bae003bb1797a7a9b27731828ff78881fb3d9cb6f90e7c6fba02c22c83322c3ef6e90bbbff7b22e6266736cfea661fffe7f3e4477f71709dfffacb7ef0d7706efbdf79efecdbbf73b301134e2a7040db4af1f2c0d6d4727aebc6430c5ce9efadec8260e411834355274c1d0f4ac5c3d2dcd9e4d06316c452dc170dbea7af2f5edbdf7de4b95da7450440869d0c52edaebdfdf7bbf77903dbeb58f0fbfb7f7defb2d421a0c11f4defb92a10d4474a054fef9ddfb730786432b03e5dfd6f1b1018e615f081d1d3d19cb7befbdbc79f3fad4b1310f83ec4cd987b127204a3232d68cdab5a29823133b8a3b441bec4e315621c19d47ab88587cbe18e76bcea67bef29fce23eaf511c3fe6e12f58b463b77444ef9eaf6bc8ee3956e7bedf7bac33028677eebc3ed76c62107bda7e3bfbee62cc1131ff7b27fda26235622c29587965e5cfca319b06809995d7ff64d420e457fc775ea97446cc43986bf9fa6ed5d83520453312692c985ab51394e2e894295ecc20ed14b74cbc60c990f8ed1436a9ce0e197528aa533168d8ba2a71c336c36594bb5fb995eb23e4fa24f956f810bf5103e76bf34ef2d0901c5b9134f2acde52c1e366e645c6cb8a351d73effd5fb5902a7558d5400abb4eb2f03f5b46492d6e9e6488902e7200600aadcdec4cc556553cafd2244732436147b0d4afdfd6042d771364b66dbb09ecdc76bf4d20422b0f8930fb92e1e6810dd8033bf5c076b5402eb3731b570120b440ce8ad480f93bf30008014ce8ef3d9e4ac193f6de7befbef7de7bef2d42baf7de5b84f44367846db5ffc3ef7fe79c5c4b6d405a2f3e5e4056883baea25a5b44bc4fbd1c93a89042612654156adaa08ace8140e133f622ce4545e54577001c0c13b12a84f3a442fa9180132f335539542fd6b4b8964af2c78d39479683aa47ee072e3138d1e041daa081b57f0cffb7771fb0bdc8d924a150bc48a96632b4d5252337b12a1b3f7884ac74fc6559eeeca659c4120389cec7a621a30509ae331e3154b53f86ffeb831d297c6254eabaac62e8c181b8678b8d8ab01a9430aa968dbf1c93c4d9cce0b4cdd02051630a2c43cbe3032b3464509e86c074fca45352b33b0f7fc10c41b8ef9df530afcf9caeb937afcf1ce93cdc70ab2673dfd956b45e9fce8abf2ec3f804e3b79f9c4f4bdd4749847beff7eebbeffd13f559fc5e80eec3e34200d8e7f8538063d867e413c3db7d00b0f789e1e51bf641e9f18d020c1762b23fc7c103c2beb8af35dcceb700d6bfffcfd2f7a1e2de2763f40200438f5ccf54e50ac74629a374e3985ae860caec4899bea022fb7700c8365745122b7cbcd0a8591af177ac6d3bce8486de7e60fd248b6a7eb29c4ce1e327047d889d9c79fbe625eb2f9175446a787c07e1ed1f9bf79e1cc13321889b4ff6fe0c84f760ef071906cabf17bc126039867d2ba22e494f9bf741d906cc3bf8e2140d7e93207baf7b64ec76ec4df4df7bf7db7bdf93e57d10ee71f2bafb390463d8e7febd7b8f91c806a0fcebfda785db938cf1ad3dc7b7f3af610deeffbdf7de7bef51f04263549d36d51ced194e0ec77c5ace0dad98be085bc1cce08b7dc2bc07028ff4b31160df579eaf5edf5c64fdfbff8c79df77325ecfa90a18418a90c90d1a268c8d2ccce7c828acc6d737e73077b1bdf7deef18de7ba8220c91118eb01f2aef1364837e19418d34450eb11523ae3cd38ea717af7f0e7030867deedf221b641828ff7af7de7b1fc4e202c74fd60ed19086b612bc74942cae8ed0a83726d0a302c6069014351d2e3ac8a13a51a36d692aa944ce164d0c2c62a84ab6ba98267653f7c5336783f803172e5a70b411511569e2034a38a590bef5c4a96c75f570c1447513c30e07ddc282688646b3f9a36b296a4605848282475a9d111907122b008bc1893a5990e05ad76a705479d53d4da9b18cfdb8b1022e2a069d3202b43de16230724271c16184d657d80c124fa74bcfd6004e56965610a38f900eb48495af30258c97184ed4b0f05a15c1edb25cc718773c4ce505f6f1f271fcef7d5d83b5fdcd6f90e8ba448c77b56cf805090d6bad3558151128ff6430169d6bcfcafbfba7ddd65b6fb0e52bc3603d2edcf986dd7928c32b785f73222ed6f6bd6fcee67e5fbce56e288d9091aa4861f3b1e4f6b50adb3309aac318170794b4744667a2e8884c6b75749dd216a6a3d8034886d407fe3a2bf6dee1af183bcf7beffdefffb7efbdf7dea32f8f61df6682bbfff92ebfbdf7aebf94afdebe38a9779b90def6fdd5d47befbdf7ceb58e2c19255ecc95f9108a326a949024154a0d96b5ac6ab0ff7065af8321a67e964678407b7e85b4fb7bce59060439b61053c12633236ed6bab56a818243a66749e519a3e51732afd2275a376aeb50d8218302b9b1d8f154376ba3ad151bb41a4b492376ef015659b48c0753893343aa996af0821441d5d0b1c643c748cfc09ab5d65a8b90fe194e26d69e0109a7a0185e4e49a9291a972e085310e28c969918ba8a8fa8e4cab869402000070d831a040000301885811c8619546d011400081db240587c3844403c48181288848171200c0884416130200c0400028120481c6acb611486ae0000141480067e851ecd32983ea8b4f9a1f2bf2048521bebc67b8ef7069cc41082fcacb580dce4708302a25ee5865a066c01c6a15f023284247f78be58aa06530f943e03227a802461baea176cd93985488b01e5565baf8ad8d1185240a149888424f1c8bfe01010068748134936db7d31cdf1f6a4c9a174cc89d690f3928e2169e91e4e28686a44e657e1534892a33e33e2f74da0b79a480e545f53fdec73a2e6fc38681e36ec04ae6b0a44e563e05e00288a1b8fd107dffdf104206edba969f074d1760462c5fdb70e07b87a7aaf279083060b4b9523e77b2945638ec81390e33abb142ae862fe7a027a5d291346c4b452c36701df6ec847e61ea2369b1c8156116f3d10cc601a6d341a6721022b0a9bb9676d691b016d73342b21dd3e1a81489c4d3d0c18b573a5afd5c89b8df760c8f60c3ac7243b36ac619cc2dd74d7747e99edb8088d89c1e40bbe2ee6abd8e60d4bfb05ddaefdb94a2222c0d78b89d53052e982908a278e004db76d4902d0545862d25ebd23a600fc3fdca04f1427a8ba7e345bc4c158199485d3d16967a185571132de4e63cfa1e02e8c741bb62855ce7666583d4a4930e5a7d3b219cf6ff1ec53810324722ce54999f2a0ae653e6b80d0e03bbe3c374add08b0b90a8ddce96fb8018dcaa981ab9d74c7763be5e65c49b268e7dc32cc8259aaf581b14eaf64bfe9b74e4b6c20b4d30e18b112dea481aa791d4f75fc2de2739e90db3326874ca5ab7c04b0df72c56799b645732a60cc4b7b15ef0e81c345727ba54be77ec3087f26d5b535cd84edd41ed21d15a097209797f81d8304e5191dd57bd9045cf99a916a699464fc66a1bf1b3f6a8b173a9952613d99ce8330f1d6e66a9edb888efa75554cf353d474064ad78e21ae2686f7f99710a92ba5e779b93e470b7548ab953c18cb55be8f1710f05eedfeb895b54a3d4004b714f07d259ea77cd5c6a739d5cf4ca6ec4e558086602343661f7e1a367bd8104e0789b11122ff56aab49958a2dd754aee9ca0352a2bcaf4a6ef6fa2e8f0c8e80c17dd2298e81166182d8885d1ec65d8c5f7d8855c8d1ef9422b6f33466db41a84dd3060654001763aeb3ecd9b69ea11c2377d2c064416443fa3ca76690a2a4e9dade571505e1581181eada53ed379de91cd0b8adc8ca3bb56a9d87aecb88550e233f2db031cd8e65fcbfa6ca46d73d7c6b0f26f39514de808b980361bd07b8ededca69bf98ef76c6cb4e167a88bf758bd05293667e27263b20d40ca3ddb1e36f9fc6d0fc3afd76565d432d9b135bfd7daa59d8d1ff7e29b7130c1d062cb9cf92a1d57218f39ffb26407f81a91926d60911a5aa35fefaf913a826fa763efd008682e0b4a1f5bd6e5ad7afc37dafa4f2c28d01941d6d2b175c5c75562e0b5de82499f4b656a20095185ee2edccd09f5abcfaf7585fbf5014c05368ab58da2162763875aea90cc13580b7fed1f317062738d6407d5c29ff9d0ced2431f187010747041f4a038fe0926e3826b509d465deb88e89656337e08b23403c9eb992132168c731d5797742f8e924d47c14c3474be35cbb1f25777f5ab8472d151147d06c6716d9c98909b3d64c5d176981e422feabfaed14dfa6b343a3d6c802e6191aa0014d2a970f4df6d0547a308c10ccdd5a453b2a151c3c32b2b150f8496dd5e84178c5efcfe34c08f8d185b73e1ff2c578504a77254b4deb0c94ef008d51489ecd249b231527f0cea13adfbe66ee4e79636d2d6235cecd1b1948f9c11e328af5adaaecbd74d49f92fc10cb03d5ac9ca9e6a27797512f51c7e79aee208ee49b363a43988fe1c81c85751016ba8baae830381c7419bb4e5fca67c58b453587c58bb9bbdad8283a980c34c7c36784b887379586b1a7fd09e306c161ec43f4c5f11c9f6a486e7629ec4b51c0c960e2a11d1519466050dc37067a10745886e02ba8acc0d15e9f7bf7b3d6b5f2127ddafbfbf069ba8d3816253baf1400172102646d10b095f694e258b20d37b9e80fa1ee74e0558ee375dec3fd8bc83d2852e4210fecd22f58bcb7259ebb868740995c6a4e8beb22a193df18e77a26e0906078057cc74a508d2cd2648253c2baa9ad2117d36a1a60f29623d077f8347616791cca952a40ac9e0e77dd34a398c5aa1737431c61b1a2e8e680a8d2b9bbc843abc4a40791c745f3d5c793202e743b1f961887b496a12fc9f07e00bf21ed77d90f4344c1abf30100779a5c2dc257da1d003b613f6ba523953660aa3f57ee0253b6624e12f17fe2ea7344b8157475e44410aa362c5618905e7a3279ec349d9c96548c92793f2949d833292a01488a0b0d432be53157a0342496bfc2ce2570850aaab16b493e6fbb73199459b35907efcada8f8438a8c6186a14ddb4a76b64778f06d5800c96d3541dba38c23cd148f1f35f96daa6f0995aef52637ca1c812c8ca275823279636788a9bf706457807637655cdd037cb47136a1e9c7b0c917dc184cdfd071f7b1fc963157b8758c40781182bbc6aa24116c234b94bf1084491c7f764942e897f584ef0a6704d3fb752bd0cc30cd0fd1a2635814a238f764c0842c8a60a645930680bad14864afbcb5a48da975078e654a739c9433770b3e9e317169c6909ff986c85c8c3a5489ba28f232132b9cca6bfc7f12f38922a359f302adb9c3de3a7a36aa81f75a55870a7424a7ca3e774931a89dc523745f08b3433e3f43d8eba553e023e70dd5fa857ec64441d19ef254cd2705ccafe570e5b4660566ab2e359a4c16e67e5b8fd35516669acc21e7e7ae88b007230d10548cd2cf05a0dcf1727c02bace665ade8a12098054de5491d95e9753fb3ea2225dee8b4c71031639e5e65669b6cdb09d19250a3149994daa8325896eb801c7bb9a29de5b5a85224580ee88460bef9d37970eb00cf902f248ad51433d5cfcd6c23111368f4779b8c1a08dd96a27397f898981dffd0950cd8801e9e768c2e9f52b1db737ce5d1fbb2414ccd51271caea5065efa9f9a15c28b22f4812fbf07541277b506e8b6c0344aba853540acb029a2c5b58735bcae2b409c6d928ff3b225aefaf2b76fdabeade0ad49f80089b2063c96cc9c34d0754f1ada551c4d1df4cdca208ff5a7f8f2b9c62c8a7871cae2bb953b7f03067ca4e114dfb874e9206d6f26ba92c04106a665211a03c84b755e0064034903c188b6943c22bd155becb1fedb189344344b5021ce8b03fe84d462777970f26d2d3adde229968402d7926a6d8bb0c7297eddf7815f2dc9ff86f45ec86711af504944df4c35c4a365a1f88c34242c04b4c3c89f65cf85d9026d5a5ec8576b8751decc38a9e08d8d06bf25cee6e1d662a169b00d7a4e93cceca4999b5f0952a7b0a02f9afcd6cc952f4113ddabb24b50e6dc2e874916eab402b3fe6910deb2028441b70c41ab584398058701f178a895292018cf935ed30b41922855b22cd75e4dfdd5e4c6f28413461326a1d777da18f55b99ad7fff0fdb151442731de23c1fb7b9d5294080f7eb7ceb6e94c1cc6cc5fa892e52ef8b1a7b5c22c18501a92fe2eb459d29721c7c07271002a0891ff1629e2bbed5696d37ce9477c8dc9a6a41ff656adbbdd16a6ead409efad8fcad83a08752e088ae4d4e97b61bbda06e70f13b23a0ccd29721738a32108ff12339a45b3a37761e1c4aa74c8e3ac9295dd8a4bb0abe0a40b42313b9d39611d3be4d6bc5b4cc2a34144cd52f16d9d4466fbec17e7a4a08eb9bade556957d2898539e29342dc7cef57b0c2f6ec2b725ab9e74f63462b726c1785fc7466878a94784315d9f32e4fadd70fb9b3357a0385709718e1290702f6d2a92ae071c16c221ba9d3a0c98607a521ff78c6200aed6d1390d0b32786d09b35729d291a5c51b1ca33a110bd6ae2df643dbda9f8bdb9d69b4932c2b975cc9553b0ea653a334b98e6a24fe2276285107e45adbfb86059a19652522662b5030e2226f6528e6ca0ebbe82001c6c02fb295772ea5e2f7a4298994e813b2a4e41162bacd8b9df0313f34d7b6b41d6148599a5192da24b3a34b02f260fc721967be13e86e8a400e776f3beb6637ac9342f45ac6205f5c0154343725d80253011ad7e7869d6fe75a22b53195cd39b4d90e2346ac2a452aca0c60f1a877b7f7481736d0d760a7dd973a88e6b90f3eb84220b2c3465c14297694c40145cc245a76a80d565dec8fb1184880bdbdb57657da355ab8545ff78e5cc449cd99cfaf7696e4545b02576e0ce8dbed33457c1df398158175ee161506e1d10ef104e3dc1f1f4b73ea7988f572f5eb72b8c280c8b0b38be863980e9125318b502dc8fd1059c223185b4716d5282e14d5e9c81946ca8eba58ab2455179b843b3da6710e45a7505a84544a212b3a6cd88e0481c9f21f7172be6b95f743f8f058204cae9341456747fa5e5213a144c75d840565e21e4438ca9b2a0e57b8455b0446be1475a3cd61d8b3ea59991a03890dd1a69b17462d4f0a235cf1cc81a2fc6a28765e8836c66530a48cd47adc3cb17b52a7b5c41b927dbd379092842b246892628702c7de4bc6cf4555f21abb12f3748bd00a4c053aa388fa0c7888c8187ad4091f2c6d5a244fc39e061106460f4c54c4c24ae67cc27fdf395f6472b09dbd06895379d28843013c8d062878476b24c990610414529731ccc66056868c6bffb9c32dbb268dfdb9280faad892ab9df3c207a00ac0f51d3ae4e5c8ed39898d21a1ce850ae737e5d3782280ecf5ce0c70b4259c7baaea2cae7aa005fd372820252727b44f05989c0874a50e3cc3841bdca5b09e3cfcd3ab2cbcb99e6c414b836475fe5b2bcbfa2b0cd6bf5286fefc62e8a44f5ab873802ab3d4a149f585cac4739767b14c8c29a43e411cf1787ed271fbc5273e80cf963967253387c9a581978d31b6ef4e9193a44f4deb950988dcb67807260dafccd94ea3793419f969b7919d84810f0c66648004d46076078a4f2623840289a15b418723520d097a2529b0a6af84ce6bc636f62a3d0f916bcb8f1dbcf15e87b35a6597ad2aea0c4573c20e0257a9bb5a1d6bc27dcc2d0ab95657da3dcaa30dcc6ba5d361dbca47a35dab2dc2beaa7974308d963c8438774ebbf9892d8eba3c34e62ea40392a7b3d54f0b77d4552ce9144e4db3e237a7bc8d9c2d24c1d4a0bd943dfb5940171ddfae7e8e250c2ab439bb7fd0e3aedc88d2d16ed9c73072a6b3924db5b26a0a8790dcb632fe96014eee5231b8ea157b61bf914899837349241489037f2e1fdd4318428c6c97005743929d425b732e479ed7049a81c58607f6a7d693aaebe34a148a4f5a601c9f3eb09851d5adcd7b31e7d33c3fdd1ae14a6bfbf92f3390a90e51117bb9832c8bebcdfe0ae70cfb791763aa33546185ff856038e54b4e0c79835b067e2638f5e909c1bdad522e2faf549d208ad35dd94c861fbad470f3322b223c51f41de0f5de2edbda0e773434b3520a0ee1b2347fb3245b56c942b8bb6ac28ba590db258190dc538f95deedd4b27d18eee113d8aa89122e9072013b1a947f469ecf76385ffce551b7d5cde96a812622ffd249adeb8cf733eb062881b7dc36201d906edbaa6a5c506de3532eb592216918ad7fb23fc8cf19289a5e34581b70b3a588beea177d485f4469b475e738a1ae985e4f8c4aeceb2ab79c7ea26564d87de36cdabbfe6ff7ca2e500588143fbb27614373475143d9c9217519c488a23e10440213c0a696bb73e506a57a9da7fb9605f7d130d0118a6420599cffd731babec0edec74006e97d4f4fd9ff8a118a333d272b758ea7b37d27e83a8fc4b9846966eb9bf43b19d5791ccead3b81c739a64e2d9cb3ea4c3aa7b138e7e1d49e3374de3ca26bb6e1cc1627f69c8dea3c0d67f99dc0e3b4927389ce59e224bfd32c4eeb70737b68065ae79a9c65744aaa337bce2671aea7b3fc4ee03aafd4b904ce6439c9ef641534afb3cda57782d7b9264e253827e54c7aa7b13ac7d3a99e33709d47c4d9863359ddc49e9a8dea3c1acefa9dd0e33412e716ce49ea24bfd35a9ce6706edf19689d3375b30d6e4aaa3379ce46728ea7b37d4ed0759ed4b905ce6471b2ef6454e7713ab78e4de06573a64e253a27c59975a7b138c7d3a9bd33749d47c45906675a9cd873b6ca9b4773cdf69dd0e3b412e7129d53e224bfd3589cd6712edf196a9c63eaacc1292bceecbfd94ad91c8fb3dc77826d9d57eadc02675a9dec7732aaf31ccead77428f734c4e25ba39a96d26bdd3589cf3746acf1938ce2b7296d199ac4eec399be2bc9acef23bc1eba695b8b9c4c2a9e6b172363a72bac1b9664e263aa3e2ccaacef339b3e544beb3519d57c359bf137adf349234b7e09c2527fb9dd6e2b48e73f9ce50eb1c13670d4e597566cfd94acef174b6cf09b86f1e299b2b7426ab937c4ed645850b26cd3cf04a786a55607a706c212e77984964c1bf3b51d569abce179c55d9c931e7af3ab3eaf4dd9b53854dca3b6de53c4da7ea9d61c7b91067179d53eac4ded9569d93e1acde19b44e1b71eea29b39fa26fbce26759a8673f74e90714ea97307a79c3a53cf6922ce753877e7041be72d392bd066aab6997a279338afd3d93927e8386fe454a173aa3a39e7b48af33609f55092ef1c0474d636a7279dbad366e6dfe4254898e062baa819cb283595c3851e7ad4b12161a9660371d2a90d8ad2c01b1561b92016337295409c7e988def331a6a4727ad610742b0ee47f6c36b98561a43ef50766682f784de13eb20e88265bb70673389afb6514e64006512499576ef5191096bfab781f4b6ae26d5a325d4b3930bd2169b154d882d8f00ce7d792779ca5fa061f5849781f5d0f59895a2ec1db695415ed4c521fb7e8fb61be023328f80c2508415694047411d8d8b4152a0f4e2adeb0c7c16022aadc9575b308cca4a079b9510f81a9314ffcaffa0575e1cc41cd3d8185cb761d889b95702c38cacf2ba6316306634b867611fbb35208e1d1d3e7a1e99c55bdd98854229c709ad1a0020574a68cac3df008d8c3d4412b2f7de5bee2da54c3205df0525055805de77e858c7cc5e48e4cdeee9541e7778ee7ee6fc6875a266374310dc7f6a0b89a88b74c87de73d91e5512e45d1ecbc4f390dfa3bef21d10e12ea683ccf73ec68e48cf951e0bbf008d3c1e3c5f91cfcbdfcefc5716f9fdbf1707e5a71fc6c77defbeeadc42fec02ffd0b40ffbd6f77cd7f7e41e146586e11106d3c139b8c3dd5c0d0763171eaf1cbdf6d96517daf8de43fb3d2567317d560645cf9c38ca17b2fcf0e84f637b7fe93df38c466ed0d9a73294bbbdd349279df4a7cb72f7d5d698aa94a8904cc92151514d535f9eaa642f146b928d42994e3a29a59e8ee99f7574b649c5fa53cc21cbdb7d20f91f1d3f8ff573c8b2632a0289d476cf83c7141180fe07f3f87920cc03c8c3630a54997e9152083e4313486c9a8b9d7fc4a671a20e1e797b2a8240f3a663e64d6cda8fd8b40eb72a0a79aca97c394462d0831430564410441a2868f2a938018ff50b31647929cdf46f6e272153b99b88c6c4cc405505081dda2c19600b1f3d88407162a60859e4c39a223b5439d2e30889abc499258c3cd18205938ecd3d801123af4184e4c47d3a132149f158e7cf72c8acb1011caa48e950831810b440930c18220b21aa60c0e2280b4dbeacc9974746fe137647cb8509114c646e38d202171aa5b5aadb799435af4532974a2cf4f4c06637f83083c4c8cc111ff7beca545949b92821810193e5b7edef0cc86ff9563e4c0b07468a56fa9a6f5f302f371060cce4f1457b00a381afb375abf4764e8c406ab941428828ce36dd3ecc754fb4a7d65aebbdb4e7c3b23c9f3a316a890ce6762aa2083259388e0ad1c2ce0da2e9eb7464b0ce52bae5d0a276cbf9ed721c07c3a3a1879414427058f383c907b06073a5872c2aa459fa2d09ae4a0ae3e67c32802dac5cf1040318252bcc2562ac420024092e4a423c80859012fc30aa62f5c42979c08a2cbc20b1c40688d31911aa70a1694b10255344b16aa8b202a5258a36565bd8b06ddbb66ddbb4dc1357eb986da3b586a9db1604a574d249e7a4934ea529485b14e16408285a2869365b6a80b2c409b298200d9b39e7953144b8f93160d472b5e5d7821298c2021253cd488a1d5e93062aa870d861c9072e5736f9b01873ce392d96225ba00861d4e3cd961c5a3349d4192b7890a207125498acfc8842b7da23130a0a4276b76a6108d9cd6e9b6f4c8cb83fc088f1f144e59b4925b8d004c607244fa2923c487a3205c48f1f5576f066985182373e94d8f2849a1e386e091258a90b4ae7dcb8eba276dbb6277668bdb5725061ab2db54d92388ec3a9944529a595562a86d6da2300375ac3be567c3370dc065b8238d1a20d9826a33b65a0a00d0f41927481224dd5074e8ee36848bf3fd2a2248488a9129091220749085f9e1449eaa189157c345101860e932ab6ad87579d5cadb4563134a41cc7c57abc3ce53826e1acb5d24a2bc7713ad5b9d8f7d01c7961f7d5711c4701216d0498374dd46005cc93971846a4226c5042c48a2a8c506edbb66dfbe8f68251212f10a8f2821227b66091428d0b8635607c0c21a6471b2e3c90400b29caf556a1304114269650a1818529be7984061025569a20412105b11205e5967c81d281c819264420e64a129611d9102e3708e1041a2735db06bb52a5564a9da627bbad08aece69b927aed6315bad61eab605415f3629ddb6edcba493d249277dd9acb3d6dae5d65a6bad73d249e7a4ef5badb5d64a39aed65a6bad95db6aadb556992c48cb120d8e2833a7172d6bac10d134df4a718589d20b5da8488306835924081a1f4e446da1c29399399d9230e2040d3eae704802d2c4ca9bd624e267a660b166cc91102b78d192c58a151fb51b017eab82e553eb177bc1b65ea2db2a0d405b6a6d0d3160c28d9526901041981698ba17ac5112552220a28722ae5a1730e0890b912c9c8c8182690e6902091359929e20f1a50c5801a5767bf11c778ff0ec4661dc16fb9e1a04e4f58d04ac386da9dd6acd32c5d4144512154794a051784286c810a1c5062e55fca072f182ed5c8ee2b0c090e3386eabb5cc0d34e04025248d9b18ae54b9338805a20802071c5648a3c64d073fb8410302325ba07899406e992356b0880122b52607af833d863bca282759be8c9a18bf9e8a383f4517ef4854e62dbf7e0b3f685d5d5de5d73bf872f5a4f425ba4051e6a16945d7d38f5217d45a1745aa723b15999a3f23b753912bd208294f96288d5ceeb3a3aec5ddac39943ff9176f92525641d5fe282613baef72e998f9e2beae1912b99ebb46e1533b19e9217778b1acb5b9a3a478ec282c773e2bcb5acbf0e14e0f65ad65cc9f4c77eca811a2e6c4120af674ad1582c9629db59dec26af29e7e8a8ec72e1ee39bfefa55c21658decb6d31423b99da618d5c8ed14c52abf88b2268ad48b175ed017f47d40323983be03057d41dff77121117d79b9ffb82dfce67bff23586bdfeea8f985f49ad378f19286445e02cd9d105aa24882cd932a8eb0b3a748a364052c4de4807444fe84725ff41379e2f083577ed175d6addbf930def1389f7befc5cf6f86449cccdd7cf1dd8b97e18d17af33eb17ba6566f7ec784e99e7c441d5f5dd3bcefb8ff51d8f4196fb1d1f5befbf23ba9a5c0e8f2ebcc3b3ebbd1def69e6300e57ce733878e7c78a77f04873cd13477dee3b8cc3fb9a390c2467742dbcc3f358943b8fc36350762039c3bf77910eb9bce107f98741a05dd75131e73bec6c50fe092437b0207c1dd4b554153f3cca9c6f59500d897272443abf13650724677cdf73ef62f5c476f77e687a3776befe48b9d0c6ced7ff2c2843ef391d32bb8bf2ebdc403b41b9dbe2cafcfaf097a42c39a1dbcbdb6a00cfc360df5117f7c177b1fce7774f45fbc2f1f2456a7e278e3cb80fec539e051465f7694251e670072cc88ee7cfef7e6876e2c87d8cff36908a76e7291e75d07c0205b93e754c7938bc80a25ced7ba2d81e73b1fb1d71e43efc1a3220e7bdaf610732e7fc1447ff0ebbe8752e7a39ef6157933b310839df611c39ef611c1cb6780c9f25cef083d7cff7d0031c4c5b3ff1e87aea315703741aa0f39f8e38a690bfffbecfbe776f3ffbaef37debed473b3cb67ec7ccdf48a78b0fbbf8968b9fa20b3ccaafd57ada7afa15d00aba2d1cbfc43c1ebcdefff58e472f7738ba877dc0f3b087c1c4b173b0c8ddfbef3d24d2d11080c1be73a190ed4ee5bccf799defe7bef762bc4bd491f31eda9039e73db1b38e886387e71c7c82cc94fef7f5f5b087e1b15b40d1a4e0ebfe2562d8ec5c81783305628cf05d8444adedf5a107afccf3df4bf4e7119fbe3e7c1747fbafef253e8f38dacc53cbf46993ed28b076955e4d31fc4318ef3a66871e7079be157570d97520e0eaea2a8f45f9c5f38845b9f10ecf2f6088ed3119bec00df4f338828c49b26209ab333e4c600a354c503c91e2841340626cfaf4ffc8e694991365673964d6683359aa5c4042081424548a96fc7005d40e522c51d1830643cd1444d2f848c2e4c335ba1204d4510e6494a049fa53a42f6fd4a43f87dc7dcadda738359d4545101c8d9c214e2bba94a39133e8db6945d67f12749f62f994c7a80e6e8a2c6bab94f298e4fca8f6dd4b2d77475e99355a0318adbf9f35a495b2367da487e554545496b73372dd782375246b1e231376df61083f3fe43f62274aafe85adc1e4be162b9f5eb6b2002899fb8238ef64b0ed98dedc3b7a2572b5a35af702a992d5e93a7b5d8a75c4dee8eb53feee01d9ebfb7d3b32e2c8e6dfd7c5d9defb6af81b8f34062b7cf8fb8b3f3dccbdacb051eedc5e3bd3a3a6fe78e9a67ce73efddd33c318e1c3ccabcf373dc51f3f735fb0ec6f1fd7cee65e8c18771745ff3e474b8ce7df4a96cad27b2de8a94f5ef73db89c9483b312149a49027849f9f31843cdfc51ff1a7cfd754dc7917ed5f319591e4af82a108caff4489f4f3a305faf16aa0810824fe883d7d72e84fd1a3013f7d365148e63159074b4d11983e1e93a364caf22593d3985826f19814a7e17889be3c3a924f827c14e48fa081e9f3cd0830347029d851f3ac55e6167bcb275ff65452c4c7d30f662ef3346e2f50a2c8ed050a163f52aed0d8b24686d3863c520bdcc994476b81fbca23987bc9197cd5df5e969696922c1159fa4129edbca530b71728561eb86ddbe67d5098dc60adb51ff884c993f99aa217262db05c6c5a60188661eb3af1b2c48a970b9ce212285c802e97cbe502673631e2a14316ab5b46ffc7e5fbe4657ddd83240996bf74472b8d640782080f5dc2308104123bd01c86312678618a2053cc5045f327c11f057fa139346bd86b47a1ec9f7f8ce551e8c7c63c22601efd984704cc637a4877b45ec40899db51b357396570ff1efb9f8342f2723f4322218ff93842de9e03f082df0d620e3c86e4da1f836e08b9f57c0b721a9ce4a92ff109356f1b10a55cb16740710c59f8eed2062adbfc1dd78f390d4a6badbf51fa96ced8f7c4b6ecdf960d96336860002229aa6bc2c295305b5451e2084d7e5b19dce79cd2dd5d12910495dd9d929eb283d9dfeb71e9cfa424b99d9290b2bf01723bcd6044aef27b3ce6b13103f940966439c398c7bebbbafed71fe6dffe56c6e4724896efa97079fc08a1f148e1158536657e0a3849d05acfa3aff0c11445e391c20662aa34d15a9fc206831a10d05a780acf07939331501c650643c89ebb7bbfbd8facdfc431841cbe27e690c5c47f72bd07893cffee1d77d0fd0dbf27f6ed3deb6568c39f82df74964b075f82ff499005e2a1d9e47ef256d84c023a38935cc93acae10fb98b33e976f8fd902bc045507431dd7f4f1c47f8b0c7c2431e93df81c76437f17cb0bdbfe3ce1a10bb639facfdf716c44b24b448c871018fc99f33dcb19b9a403c5afbe1ce9c446a51aa70abf89a32dcf195653371c7ef91b5d1861081a10e58ee354129e5be250fcac3c7a2ec328c7f963f85e6fbcf9f381ccbe87cff21f73965beb346510e62882002c9cb920c6c6828c420c3133308893202259afcb6ee0408833dec1f160376c105185c7001be3da2f518ec258bf9bf8638954088cc092a3620b16108066e3b1991927b723b1939ca45988a285122678890f1a62cbfa390aae87e42226b40d494686872d24a5424152c14e7bb673def6a7df7ac6701f89cef9ec5fef311c0ef7cf76c005fbf7b96c173df3d93f1de77cf08f0dd77cf66bcfdee99ec5d36830032321880007c6201c0e0821e000ce1225faad0b3d7cb973d7a06be7ce9a367ac9e853fdb5ebe5ca16730167ac6d3b3172f5ffee8598c972f5be859bf7ce942cf2a78f912a967305ebe04d2330a5ebe0cd2330b5ebe14d2b3175f5e3cca17eee3e05112c9f25d7894455a7894465aaf83477944e773f02861c889e17bfadd3300fc0e1ea50c59ce509fc3a34ce29278dfe151d290a5c5a35462dff1286bc8d2761e577700f0e5e8b45c38177f2bcfb7808230b78c0abe3cbfc53c3f86985bc67c9ef9214b94d12d634c371dd15465e490284945bb529036b206e4e9480f61e20508fa7979e79c517296ff7283ce12e8835e3ec50508fac1462e454d03d1b60fa5d8bf97df353adfda2bd008284f6b9618212d41c10a4d94a1412a8d550ff99d5508d745f7e6cad7cbdbd1f91d1dc1bd9b73de9f2ed7a42e57009c64b0018c923623389a3b546199028aa92c2700130514526a5335b830a64889872a42f0060458485dd124fdceeaced7792a4a2929511c87b2fdeeebf79ccaf1cf77dcf1d8bd4e949beb3f16e5ecbc8b345b712caae51d5b7ee1bcac4d1c1caa8cf31cce7bd8eacaacf37aa7a1f3f2a594d7b85467eab88eced79048e7db07e71d8fb04929a59676b4d2f163b21612aaf6f35a0d8974983c263fc7d6befb56eeba0f2ffdb891c79cca0f961f9301920a1621ca45886a4cd311425d4646492a12e024450d165046a0c51134b98497305ab8b93a12c5a5650dc8d31116ab755daedb627d72f2880086228f08e1b7be8579b43efc225a8bd56239ab755daedb627d720a7da1f86141d585e20662aa343994dca02705edcb3bade862bab74af42b9cca63b24a26d434506c9a0cbdcf0499895c4cb79579bee6d24255eef0462b2f1d3d0dcc43b25d027f3e07763ed5d5eebba679d0e1186b60f999901c0e5a03be7cd9ace150208672a8e955d347524d9f5873ae1b6fa63cd6b9284bf0c367bd6cb1a884e0eca72451aab2f091030e567c3a9557d51c7913721a8e39a7721ff91c1e73bcb290ece8fa8fb2208fc99df269f657f64ab34ca82a7d3e44459924658c4ca52cffe57d9d7bd779d779d7798e579eef79fdd44f505150503fdf5e235af3e7ae918c6a21b74c96c79b7f2873268f6e5586cc3c1a72e42db9e334e229dd1276dcec572d43bebbb15e0d5ed53f24b143369a475ea369f295bbffb66de338ce5a6a3fbc61bf5b86bff7f2bf297d4ecf22b946532c9e463c36937801dcca7e4fb0db43fb9fcf1a35721a96ded0c869d49cc628ed0dbba66e2beb86ff79a01567ae150c6fcc0fb4a2674aa99579862ea66bbf3b36ca1818de90d97a94d52d63e2b1fbed3f236ff2120392dc5d59f31895475ee5342886794a2e0d177c2fc9fde4a55279723f450ec8aa8cc39ffb6fe23185a35676ab9621df4bbaf2e9f3e4979a03262dc4f2cbf4d9c4f17678f4a77f50e46087c79a2af7ff60e64c76ab2c7f304346ba95d3b05f954b3041e60e97e0bd8d2f7f6ffff3441bb27380d33a3c6ebee11cb22a574c3109335c4f86db5329c704fdb19e797f14ec496b5aff85c5f8fe9894b80439ef83600b7704db5d52d65894bf2786c7fa2571a067b244216fcdfd904b298ff526d54454135252ddb5697fed373c7c538691524e3aa7e4def284164ca594fdb25bccc09d52b63c218512f9da65151df2c30f59b56d9fd72a8adbc6a396a738d2a62e3077972bab2c6bd965ff7cb73e32c5b4cbec644c0a75ad56ab35d1fa69762885ea538de5513e3d79d8874c9ff9424232596c8c51993e1306bb79768b683ea17ad639e9e2902f6bb9f328df6bd96bf098329fe45386c17dfd5af69ae4216bb4a1e9337feee0f2266bd9b9bc611c448e759cc065c763110bd95fe2b1d964f9b3dbb48a658d36d9e491cbde437cd06cb277e0346c5c75e958671b57603ad6796c21f2fc517ec953fec89dc76e326213e6ea881644bed0b2e8a0e6090aca0d63b2d038b0d2c30942708511545168454f96dc2c3da9ba420a2a6833a98799177e28c306aa06da7cd9ac618153163cf86066852dd4d0a612543a347921a9ea0736348a1bc24a4a926fc62ba8cb1599ecd9a36477a78d20e821038a7cc8b633e0fe6b0edcee72b526dbdcb96deedc9f69ae978bd1c50d52ee2e5656d97f00b9bd2c6195bfef1aaef7ff1cace103de8705542e4cddc72b70fb136374cfc01f4d28cafd0f766dd67fe068420ab9dffb10fceed99571f1f835f789a188c3c327c85cff7e871e78ae61da9cc9b3fcfdd75f7f77b94292e10706c8201efbb9eac6aacd9adc5150b638cadc7586dd32e87fad2e6dacbe06e176172ba4dcfdfd0ffcf66096fbeb873930cbf5b9fb436e431bf53b9eeeeb7fffe1d1c107f128f3377e571ceb27b2be7b8623c72c37e6c02cf7372ea17f87cddd3238f013b9afdf12294b1cbda73f4322efbf0ffc6fecff9e6bdc19cc3d7ef861fd9d47d8e8fd091236b7af453166c50c3cf78fb17e8b33a898034fc8eda778ecee8a653826732c83ee2b7337814de60d96cbc77d7f7ffff4b117f6b1dc2d91784c8ed249964b3d7dee0d91f7a874ad56543d0c2a24d14004000000a315000020140a870402a150308b52204ffd14000b78ac404c542410c843711407312044210c03310cc23004186408328829a74629000a970be6102be5fac692ba2b261058a3b4d35e8e1c90abd043ec5c0fdc5cb83b40aace515fa310c87ec1a01162e53fc05c43f30c1a425a5815177d3c8158b02a2655100358e35bd867de9c902be864c5cf26392d2ea5e3b052f230b4635102b244356698f203a96a6b83041b7a07897c82ccaae640a8a378f973fee285f022640d01a5f2a59df0cb1785d30a701085b4ebccf6401fda74df48994899a5243402078ae404a1f08cfe032e239a978b56b3e5cb66ee4c3968d6517cfe4e84465a688a62bf794f91b22cf543d059e0eb1f4338f785a1935688645242a4c63d47d4a506d6cfc27b4ab28e67e8bc4e98339597877998b6031da851cb28ef86e961992335b63bfcfec48e6763f4a72d4696c0a0458b230901a44e35423ea8dfc6f65c5803660f4fe44293848c6fd8c0f200a4155b89d03bac328ae0e43bb34ca7a216bc7b0f2831f9d6294a147146a2f5c21ad2f96c52b88f51ce728ab05ec801888f9ce1e50b67b9cf50311b3f0671ef9540bf666b5e6d8c0e15c26006a2e4278977687120d1d817970ae29bb3bb119cce30a9ed7d0b738389441407755c9773090c95626d09403d4bb3f5deaa2fc6ea47e4b8a850d3cb37670d428cc8417c9765aee509893a3928ea9acb6f4ea4486f8ec6b3ba1bfd6977924957cd5714d6ecc9501a0190402b037793056ef43f5c985dbc7c8361eb7d6babe76b5d41702513ac848d797208b8883fee4ad736e291dfc2606e8dbfe5d6632201d4fea3648d214e669a32722e1b323180da547e1e413cadb479496a405a64f29b3670ddb1145870d3123187d17a41420886920cc7c2e1b3e2bb2021522f02243be59c0a715e18b2359e0d92f227e08758f38ee2f4da111ad00ff1ce6097788ec327235e074b20e3eb2fc00699fdc1be6fe4b6e9060305729ce1d4280af9313f601b0f6ec70fda573ed074dc189370eeb5fac077d80d475c3de1716f3180dc8e7b9a8639a50607a58ddabb89ecb9e6550c5820380fe4fefb6db618158912b2c16cc0c8bb733c90c3721ec89edec3e6b00a08badffe0b79f83aaea08038671432ec2a3b503d66f019c29eff9efb18bc12952c44d22cc1d3cc07c67c7312f435a8901ba3b5fd121e27956ba6d2d61ca4d7bd4c9148d806d6256b8c82b6a2e5d4aa91c045b8828a49ed1b03c47261e65d3eb4a2da916ae03bf6780305e7e374dc2da92b416f116f0776b178b82be5513f59c7a9e8c42f8dc265b1b81bae8a1424961e9b8fd04566f5332fca2eb01c55ea2e5671f056bbe01351165d96a3d99e85c4dd3c39bf1d8a2e9eebb24d9dadf4fba92601c47158f7716167f041fc242244cc707a87f82aea3989ebeb93958b2690f1262cf3f86ac82d3e711289e4f256c7c0a0d737e86fe8ac2c620205c4baeb83d4f5429ed7dc9ed26f7c7f50c68a774d2c3c66460ad94950abdab83d47df830950ab3a3ec2097262cc8759f7718980db77e727777b64fa1f231aee852dcb560033a3bca174f595900f7526081c099a3a5f972675dca94c594b56ebc25feef001153e221b41a08be6f9f9a8f36ee689b47e13fc2f20721ebe99709b20f69e0c08c3a11f8c9d84ebe690cc308d5ad4edaaf6b1f4b694630f5772e628a703d0e66ede4d07f2d5e9bf1c5203888692506863e575665a7d62e2585c4eddee712c3c828958c09ec7fc40113e3776fb30929e97637e2d828f7b8ca721571a72fd1e5eeacf739226ee537092eaf35ca021b0a692d1b5d5247b8b841a5282c21ebbd8b0424577cdd97307cd20289ac516ca8e89fe7c8c850f4f6edf35cefa6ee6e767ccf53593dbeec981726c7e831e8ccb515aa38484447f88feae8f2ad7352f1224377dfc63c21ac8e012c5c0f51f1fa12a04ee062403218efeda7f75351740f4d18297d11a900f3c6d1678bda37232ca4e5553025e376d4a01d34a15a34c25285d09dffc7042fad2484a668c5171fae4f2b8cb66b0b8d2cd4d2c542fa087318fba2ec8cd8e80522f68e8bbaed6723afdb638cd55dc508aeab5b88dca7562ca6b768933924b0bd63ad29ed393a6354f5eb59e7603ad18aa8e5672021a2c109b20ed7530435feb08a776859fd66f2c65563c0cf3e29746292093cf5b0799c43e45a6afd8b1c28f65925d7e58873589d36c1dc9102452db7520969944493440474d14f28b7e67a7c1c9dbf5ad43b451146376f196280609eaca2e7a25c8c4b200da768a3b60595e1b3e02ecd7194f8a4f442ce4c198c9be8b40f88e369b61d4825b427f86c33030752390bdd991ae4f054cfefe618c4512d0fa43dacd6581428f975825e30bc229c80c582b36760555dbfd484d0ec0cfb4d6437fe7c8d63f89c6204e9293f4c3c6e0cc9f257dd58a540b8c4cd9b2bac3328f4610152f60ba8308775d935a01f7fc157cf72463f353b041d2001aa2ac27de9949203864bd6f3613f1b3b9ded6f8cbb76172080773ba28cbdaf718b5978244a0af25ea810abba91a10c79bd6cd914e8d343a2718f1130264c0796e2ea71a38d1a20a72fe7ede9ed21a2d1910498b1a41e25d00ba477f87dd4a2c0a89285c20164777a66c0e67ced8f613c60241db66a2ace381029f254149cbcba763dfca5d579cc165cedbaa33ad8a734646b9fd9cd2dca528f6b395c07fa1ab3c5017a6dd1e783e0743c32006922944ed0c5fabbaa1f3cbe057b3b130cbbb6ca2ffd57a35e3129cf61aecf416ea16817a324ff9327413dda1c7b0418bb9fab23f3aaf6d6c2792a2ac69ead6e712080c6cdccb3bd33ff34e454f01b7f3767aabcb9c1a0ce05931ea7fcca45a3ac41cbc2eaca5ca58ae4ee5867406ad9b50cb4ae2699c2e22a7d22e546b8a0c1c693120292eee7c5faee438b850c3c989dca76ef711f4073e0f894116515a62b09d7a298523cb449850189cc43172508e4c56206c037c5a4998448e7543d5b1b787b837640ea2899f524461b0e14ffd2a9fc5b667779a80408abd1d9dab2a302271da69b8b526185604aef08458048d454da51a26240ef1a82a2fda7a5db51a94a0393919c826074340ab880733a40806037a3eeeb2d48a15fa5a6741b7b0e05abfba480d92a919373ce4e9f73d66734257bf07f0b89c59f647b82ab6566998a8cc2d0bd93fc9b17ad17eedf24a816fcb16b5e0d20886cb1e3ef4eeaf9cf8a73b7b76530f574dc7552c13ef4785d46515b8809a7c6274cdc2c5234090fec5f2389da16ecc409792e01c1b38b8894b29ca0b9e3d2412157b16bdf0d3e610913d7edd960c080688b56497f7505ad93b7e2ccd884376e8babaa83c7b21833d9ceada4d737bda76d896b9b6dd179d50268c29272b34330f1e25f7b2998296a4065f7f89bbe5676fb67dae765599708db5b3dbba8f5d1d85598b4dea064d8d37ef790295320680def466f04a7b7af7347d7a3c7e7abebacee3a87e3c0cc4e708608d463af84d5e8d631afe3a6df7d63c203388b6e841ace09796aa0600ef0ba9221b129a28f595668be52503c507966baeaccb6518982367308c0d2322e544a159476c2070e997420e500c3e4874716e7bac7807252f2c4cd7c47a215e060ccc91bc4be6fc9513fdb785c6b18fa1512d39c75706ae5e50247b6cff44910c0886649d057acbb31991b468ed76758cf67d197ec18ae8d2e3702e2d29aef852f7eb9570e22325f7a5559bc248e3857b06dc0cc14b2e795ca8f27b9b57b9703c810df4753c784700cdb41caa09a7cc73831685ce83746a1349f146232cadea67a5dc567c8e57cb6e52cd4da634674e113f10ceeb817c610d2bb14696bd296c8d01d607d6adefe224e025c672b48603a3c4075b52cec447056c132ccf063853984892423bb812db3cd57f2d3f2592c4135e803abd033b8a6a5593096fd5f183cb8ef5f1923c8d4ccb4db391b427400ffa05d884bf57214957173b717a0148f489cd081a0c8823c961e5544a7881d2922bb15fc6a2dfd03a6c7d22eec2b00ebe7ef74679a3879fe46fb28534a4e2e8e86b5cf0fa9016f22612236f23250290fc4d2ab7a81cc5076e7777cae843ee79990241ba21cb46c8f365e828b3463d1db9c546e58a07f614fe27539289d111d539f0d74054db387f9263d0637476bb0e6abc3cc932991e568cc89db5a70b82a4ec7cd1115d7e926225e07214467e368be89a627400c8f5456cfb0dac4563bae382948ecac42643b182074216c2d32fa01911861df72aa085f6595500f03be6ced07f047c443f592389e541b988b3112d6d147d989d839ad73557da48c1f2f08e3d8164bce3b71166ec695a9338e07336d955370c3b83b179f383ecf91a1824c2a778fdb4a57563564ef5727a2648026932a0b7c40fc8d3fe72db76b29ff69bab403aa004b93d13161cebb1487b2a672b7fc14d67b976aaa76825c886a15adb13c69a7060f55ba291cbb817b8d75a5901925be219ebd4928d5825c1d542870efae5229e8788b2311f466c7018673f2b08cbd849dc54473bccb987198d9be5f6965896699159446cd087b3b04f2a6900a88588a08077fa8876fbb5d8487d33b6bafcf02cf6eba9e97a5803bc1d509cfe46e6a1d91c088da37f0a65369bf4c725e44b56f2e7786278eb72e91fa17ec21f5b4b3d465d24428538a2261609a06d0774aad0ba85b50bf940efda7f6cc8cb9d41a6836c608ccfc0cf8000217423b2bed8f2eb8da16aa4862286c70715d2580d075f2819459a6e46634c520a38ac80a987ba48ffdafabf66483a7760ae39b00bb8f738e29638c4ae8195af44d55222d19a3f4c0904db48a382c4401449b5014d881c2f38dd83916cc5c3001eb80dc07229c1d622505855c42cb2a0297bce4b74976d0ea2d95c14e8c290b960d1edae621c99b650268c0e6d1284a9a02033517c8ac88bf6408f4a342016e62db6556b437d30878c34a4344f011585e544afc2c87fcdd5a8a42ec82b1232210d916752c0a81c25ab306b526ae59a87625421afc237c2d430bd5f71c15f3ccf47b8a97f9367c42d61f7b4b9b44d94d36e023b1b77448b10f898d752699e2950deb0782da90d849d1b877206c9900c4dd20520ee263bdc818a342939110756a129567f00a68ff3388aa664f78eab546ad39326c71a28fdcec13ac39a3d1be68fdb9eef4113f5f9ee07a7178deb2f6fad0f11e92f49b9f3e4cdab50f95b0c564c52e5c1066d15201adb8e84e84ebc5c77d83ebb83bcbb435be6d9ad0a835963afec3598d968ea2323260505b2dadfa99a7e4367f79fef57a8a17e1e992b32470a1050a1317e79fbb98ec7141ec5da85b8530aebbf4ea39e7a03cdb45e610489247b92b2f4579d7ede938314fbc6279ba2c825d0f261bb538aa840515ff4a7b6726ca6af8f5f25c0f33c32812027b65f10da2d9b410b01f0522c8fb6853758f0031faa5a992b0c9aed4fe1451758a88092415c7277a8823926220bea61d101db2b41553a9474bddb0d7c54572eb4eebb11cf0a71b4061ce252128d96bb9e7d58bdf65077fcaabb9f96cbdfaf82d7cba35d23c46b536d0ad4f555129a7cbb5fd6fc5640dcd059d5ce402af31e07a1a45696808973fa01268e6aed45106f04f8f834f14dbf8339f9e1c18ead87a0054dd683c521cde1a284d1fc17a7c3324373efdcc4c99097025ffb1c19b76e5459de2c0c7272961452700957143f624324c4309f3dc9502e6a68aab3883f3d2d7543f97137262627314c5f8e847a859bbb0818ccf6a4ef431dd030fc8a400ce46ca56a94609f95cbe2086bc3e1e0abe95b5d76825c2bf926552f9b118c15a6b7ab2d2377e590d865a65ac8d225e0cb27cbd7811ae02f070965ab0173044af82082aa7ddc118c1acc61755659d085204ce6bc54164e2a61a06a256354e8ee90948c42d190d2aafa524c0550da409732fed83b42e9ca4e31df2eea7be341907a093accb80ac4207929dce2773d337049f2a81cdbe634a1663dbe445626d452fd5c230cf16a82ea254236503a97dd9b87a50b18d74146818a3cfbeb63e2e5cbc36290f0bbbde29c28eccb59449553e2e9d94c298cb146c4bdff98fd1ffd98ae401e6978c536b0df2cec1703393ffdacc87daa3cee32df4d2c32255cf2e3cf32484dd92e860205409c883d8336c2083a70174bc7dcc9c0d9ff9e5320ee6c02c66e876393b7af9339489b7732e2d78ace9db321148b75f80785995a1f22ecdf0ff8e32e7bc12e7457343fa01240700acbe0b61ad17da04325ef041a95478cd8734d0a1efaa32e2188a03b41121af137ed826a54bad7f4ee13ea43fbe9848eb03f69c223b69ee684e349a6b52a4473890705cd56e4fac769cdb3b40a7a468cf109184217769d308db24511230a3de7e2b9b5176dd50cd0f5eedd6271ecb3c53abdf9445d13643caaea0e5d66a7afb1935b869567bf66204bb0fb1b74a860b14f377d068026e44a0f5c067eec21b473613add719acd2d5060264bc22105cc4501e6145b0b151ddad47efcc78d6b325ef45e981045696d5f9ffbed13f57517a23b46f1da26fd0b2a9df360b0dc5a62b5eaa3f43008004a210ee7c72cae11d8684efdf557ca9af50eec619ec8a0ba7a51d10eed0cef5a8cf9c21ef4c4a996d519dc01e64c2794c325ce841a7f7b98242553300b69cd34b11c16183d4e687922a327cae8ba0e2f680d44992ed5afaa46cb81921c2adcb7a4362fbdfd6c84744f1025f2329ee783b843a773bc4cff79ddb81f11a9541d9cd449d56119113c480be335a1fa7724916286bd65f32c2a7aa19b62a531ab8e00f8cbc6737bd60a621487b313bdeffe8183c57992ddf9068b7a31745c3217d081bb5c1228a1fa48c873ad721027800621c9a8a7494c1db2790baf99b1020b169f0319e0cf5b948fd193d1610cb4ce7234c2bf112c596ee63e6b33361a9d660ea5035f9c602268a00d8d4c84b01649e8236af54ae8cd1c76570e86d728105b1bf950da6d6003988af28467200a37897359772c65497294f42a917924bb1af2be96e80b96176456b46c03bc0952251612856eb2562910ab6cea192b86cc228c06975f4428a6e8a9e321cb44f2d22b5ce9f06ebc240bcd147bbf34a8e18994749695f9b955e80e1177cb859df4efcabad6a32da86d717f06b0c2ad6198462cc216bacdef72c52b51fd8fca4f1c1dc8da14e3c446319bb338176bc7ca8c60ad5db2770a004b84b533f08eb05d827480b8aa53ceafc78a08c6667668a4f4b6293a6a0fad3e0f2f9412df7220ff2aa4b0c9a19a20ec9e463941313e052e281b7b7a5c692bd5b160fd7860d7ad2b9e07076a9cdb3d625e1b0159d3732d15c729c4a8cce89b12e4f1c172a290c38196d8dfd0f3a689fce9208600871670ccbad71232db2dbfc857f5f2327b5099f54d053f77e08c1a9411e2200850442b96b10f2c1955d4604888caea29904147448ac1f0b223e662e57fea048806fa0be2f67babe3191fbf93937c727e4a42ceba5c8141aaa38d64a257c6332c0cca07cd21e7cf5e64914955b2a14d148bc7ab33a41328630309470220afd355a2609dbcda016b78478eea75db46c40620067d78755f8947700010e2c9fca0da6b8b38ab61fd45dfd0f16fd0d9529d55e0e102a8e36bee8ff9c2139426db440c82e423083180ac61d0a5419fe5104994ee46e27259349c403692fc2fddc2543c762dfb6f674ef4a7febe41347ef3923fbed631d8362dcfe948a83d4d36263e0faaa68af0a7632174d89ed494be754e5a10d0c2203cd626233dc2c8572444153e30d7d7fb9862960735f0aa26a44b59e2fd540410b8cc354f7c24bd50c99e984ac38206733453411617b1e1dd8f7858f95eec046696721c3756a7e4beb118845ac4b0eb5c1b5c3c312089c80dc13ee75320266c619bb0f744fea26f6ba11f7ee8fd6d7073227c7d9a7293f8bf07851251fb99f259b2e8fda388ce8bcc2fe20e25722a8f58b8470601063f2ce4da5f9a0086607b4739e50417687f0f5b1ea13c3b87bd113f6727cc19516a98f6770f813e5248b7be55189a857710fd67a522e828f2c318c222a31b9eac5f85ebd18a7a74360791efa08cc0c1f070d78ac8b6a542790756564a11233208c8b2a768a8b29adef9ada91e1db690721713d7029f4b7ee8b4324ced6edddbbbfa911cb40e129e00f7daaccbd1aa6639fb08cc8bca87a4172324f1532f7b41692fadc36b185f1af9725cf32b6c30c72f9c373087399f44ec3d8c8a44eb28cadabe546e85fc0bec1a4475a6b33961d92c49eac203b33571529cb795fbafa2e503045a770e00d1ff2224a6c38c33911f4671296755ec51e86113e682238c20da05a1e921aa1e6d810f3e4412670e6904ab253491300c55530b492f6042bd22371028c7bb1380b8f4ac1a841ba9f473b6b4fa891e583570856ff925f4496922429f1450ce2253ef9ca049f7537c20c6fa0e5d1f95a05a0e388999890f2a75d924222de39b85e238e4061107a4bf58f798d7a1526b7bd92b163c12d66c5b277b40be2353c53c9b84c3f3d61940a28ece5739846c5d19e21d694f59e69f9f233968e20f67a6ba725f5785c8dcc53a56068b5490db9c3488c9d12f56b29b672036d192dd63d209647fd82ebb2216b7e42ab29d11114a3f6cff669adc6b8a2558a4c29cc04a4067b38df0286e305ec240f6a1ef827f5b086676cf2706002338def28a16865798117d45820f0a190bb13e90c010690652cc1b42612832e8da8443ed09876ef590fb21654d2bd5a4cdcb894c025607f26bd70b72e708e2cf099a51095545b00f64628cfc546f77c3d7c438c3b33ab6b26fcf98e3d005d2957486a0019483794b992f0f21af981bd24a454201842dc164f2670a6a1734330d01f18fe9644572dac4bfa3c2e033064adfb762df1618d6df0faaa61e9acbec42c70eb47807487f081a599e408146cb61dd190c07506f80d6f53fa3e85cace9f540a3444ac9830bb68435f8f3755e836684ae62c839f550dcf1e3c3af3eeb0f8d2131798e6e8a8ddc350582cfd43cd5e0839353335832009f6ef2259ef6fd75aa8b13509133c3af5a873c07d0a2702c7f7e806134db2250f1e4d5f46ed1905dfe058061845b462c1845520086d132677ff985b1c27ee279fd5f45a23e355b85f5cdda0c2b209522d62d3bf5c808014abcd71fdbebd6b8ee0ffd40f7054dded04339a6d5424614cf41553ce427b7ee26105fb1788f204a90af9bef0ec368f9a6164a3ab3ad47236ec63589b195972e971bd1b38676b8f2cbc562939cc5c28e82c463b0a2f3307814124629a514c334544c7a982ff318702124ecb23924c92bba6cfef8c6869fc330e85d2640db11a96f9e1706746dc91c0ec3880c40b82a3649f0461d18ba41080fbbdde29220f708665ae2494a2388c1b8a4d3e5f8410b64a3c33092b350290acc7cf26c8bc3308697a8f038e47bee0b2ed6870c83537939132c09c02160b309fb41be1784dbc0a97a61b0e8bb14171a7dcae68b5365ae81d59ad1dd5af72d805d18a758a8279ba460a061f85e46f094e5aca83bdaa5da297a4d3aa4627647e4e5260bb64b3c28ac39083496052b8c2978730074586b0d57619418050ac4eed3e310488541529604c5339964626c7036e59f2693dce45305f52ca0298ccb349eb5f70a29e7b899952785a1928f05c0bb0660c5bb9638620df44541e5ad64d304437f04803f3217b2b5c773900ac8ab30c2f01b1cbb746b041e9e12eca04b848c08b9d646869c37d6594327635a48e62a5f8bff3e62dbf4b7dd2b1ef0cadf95208cbc280c9d29775112e512712a8122b71f01ba3b1fb0b3fff5a0d0634c06dc20a703ff7755decc9ce4a60d608fcb133d27a4c92068b5caccecb13566827c5388ed79e1f18b0c98725ad00310d5c84a29bffabbe6e9ecb82d086f516008a27290669b110e96947b1508c949acbc288579935ec137733b1029c06b157c392a6089682d18717942df1ee74aefa8998fb5022693e4c4636d34c4d128d332c8beeb11967e7b4e3ec63855291678a7590c409a8f132f2ba6a5e3afa2abe240be65b61d062eea91d8a4dba2777d9e6a5b530b2f65be1f1be70306a902e7b2e263e2b2bb2b503b032157ce9ca83ff10f84718712522043c6851f5e153cd17a2a2beed6345ef96287d8a19e386937bf7cc78515e950633c2819815a9ad85c5b12d593d31eb3b367dc1c49248b70778c01239294e466d5da86fd716dcac071a57a51a7f79a4ef07bc3ec21dd48e55e2b1b688f1522a3540183f131b62a858b5f22db98ecea838acfe42eb7016504dbb623fa72ae3667ee1f3db29e8c2b64bee35a4b4a306165a4515f90291264e51f3c538ca3037634a747830dceb2beb06a41b83881318a0962cb618c23939ec3d63fc5ecaddb155af449ef15a89e5baaf04e714239e03792b9e3ee17b4cf3328d441d203a5effca12b7251117905b569b16db63ad58a415ce871c6315e34a601f7e332379b6ef4576f7769d072d8042a4c538d8ecde2c6a2c91920362b085bc4e99bf8b66c622328fbe5f7bc4cd4ce0c9488631392314e039af2f96a5e31f6911ea6099ad4891de9f789c009366a65609872943fdd015c9b6caf25a351d5c37f9232752740ec69d9fa409adb371be6700f04285d8672ab4d3debcb9c19ce079faa126f6b7f47bac7d02351789a640b240e8ac6e2ebba9bbf592640c652c0a47ef54296bc9ea26c05a56faf4ee1cbe28e3ccc54738c00208605e0cf6ab0a0af8cdb1299f97550b71dd020f631108c07ddcda14b4e0a26c703cddb06eeb9c1c29bdf050ca035658f1f4685ff9e682450988a5841731c57581797f837ecaa04944ed0a121f02a17a4c2fe35fe64fabfa16ec8e3ff208bb354ee1090a3af5a6ca32ff8cc381acc981d56e22ebf1b270929135f6903b0f197c0c0dc76a0c0abc424ce8625d8824b9c959a17fe94c684124785b17f4b745a73ccf5ec05313576e326743431a1d438d21d75b9e9ccaf59d06e7a38ea3b5171efa1a53b240b2eca7749686cb66ced636592c19a84c546ae1c83e6b8914abd2ee64cd3c23983c33a50467184292d19e88b289aea8a8e7553e2f46320513f9a9341667146ceaaef03c1b03dfef28f1182546c314f9a68e3fde95c99ab3468c036b4041b0fb1e66cee4fd2303fe09813b75f0034258176506d7ab918f92b4374533d82ab60cc93aa1ce63a4f928bb192b9186b5f517c0633984a82c2d7125dd23f7c2103bb45d87b5d99f66ae334b5419b7b131f1ae46d9991fa988b5632fe1e39454a3b6694d2999218c37f0b1d622c370e7a7411fa8d2461431ad90f579cbd3a7e1541837841c880519fc7d0d482c6e9fe68699397c47524c3593f43f0169ca3ea1024bd12d2f9055d1b2c7185918ca6d0d41bdc7618cd8f288f35564011dedeaff528f90441e82b3535fad983585b9166c611f88699fb4234f84a7af7a76f189aac0be2e5464a6e6de580046262051cad6f5cf2d10cb40ab1402a2ea53d2a57aa2a03534850d8c4cf94320c679d898176f41f65d3551d0a12f324a8813d021b91019f1fb7d2bfbcaa167a623d1fb796b4c4ee73e7b994dfe3a0ff4c0a2f9a493b8073625a31183c515df827e033eaec71cd3c5c8b0b863ca7561f337dfc6626ee06dbc204b93d77cf86b1e5b80b6365d9d3c1a3f1c1bce13cf1a8be2e11ba5966d8f3d7049020a92006caace0eb198f0d893ae3f1725e4bce789495368ef738f20e59a85f6ab3e4aea69d20392e0c19115578dfdbc89fb41db5817e0e98102e5792abe9a6c23fe9ce0346e6e47ee581292c3b317c59bc2338bd875fac60b75447f0e797fcbdd3f0c067a4a8fd17a576a917d44284a016e0ef870fcb30283916fd8b9637d2afe088df2c120cb082e304e78c29ee5758608b0564abeb716bacb47dd9e147ba3f829db1f0ef9a50c181517b3bee47c201bc72e1bbc86b64c4338a237cb35c5954ee208e0d8366d0c1cbf6b376f0a78cdd4219d65b5f59a1993c48a3b66081be2f190258c9f55393ba34ace7c2fd7b48387d5c8a64216f039f8b760da25dadab1efbd0f89858b8005c8a5486a80ed68f70066a9cf9ac80dd1ad826f4e78b5134991a8cc89a7b106f0fc6371498bc1c4efdab740c4225964557e63f45dc0e4062d36e4547586b3073747a94476dfe7f9facb0c836ff3e006c21d7e6829704d54acad3e79ff76f389cb7a59e2786089c05b163437c4274fc867c1252ac14269688e0e66d296a6a2f848a54f0d6381b2baecba38c7d68dde03fe52beed6e3b9b4a7cd697d68558ed372621740349c576fddcf7d5f1b4c6cd100cc3e70eeef1d58b6a513dcef814bb2f2f2b76393c999f8e7010147d8cd0fcf2023e0c200d659014ee1778fc91e1f4c78cfdaaf1bd44849a9ea1e8955c4fa7b229ed434381ed202483279340bcbdb0cac760d8a8ea36680d61755fb2ddf27450ce089d672c9badd73c904ec7ae759f7cb61a2db84990063d7e065079e769fa33485adb421abe96bbd75a6dc00035766888b7d79c36e6afbbaa88f5c627842966c1b644bdbeb223a90370cf646c28a25d63bc66bed1dd4a9410c68b802343df55694f8557ede545ae8aada2d06ee1de808adff59e616568149a404b8a4915a0e8543518b14680c945b7cba01e32c2450e946172b71f24782ec6670d92c30878dec5a08f1a3cb989dcbc74eec8aa2f7e2f7ba4c20285b17ae26ea1aa71fbcb3878edbad0c0f532d99dddc5befbf2cc568f5425a0684f535d126470f0ed341806f4a0852ea22ecebce7e1093af6a4849898901497a8492a006e9f336c4e8356a2cb15aa3ec7163763ddd4ab160e0c1c050a32cad87f0adf3f9b6fb584eff736fe1f03bfe8d3426ff0e7ff81646d887f1043eb0766fd90f5784e9686d20479f04ca272d85cac4aa9512f2652734bd720103e619f7ff30cf5115edde481b44b0b5efbe4a784ebfeabe79cffbcaa1139172e18b25bb5625ca7dd928ff739a8a0f194a4601b74ed52b29bf9591585c59c394c623c255f9d3ad4c6ca27a76ba40b4ebeba9e1330a42cb95b58c25bb1c4545a9857e92151a06c7d84f7921f7a412187d82b6ccd96ec4a30c3d1bdc05e85e4613b0ee795689f30563661fae1c32404ad448fb06602a95c5366d7566262fc135718bbe498f06c8852f92618c9658462cf2878f925927ea5aaa1bd76d83b4b447a523bb8ee6754414eb2cd97bd150db6423839564a89d59073de43cf21c4c18742019017a21e5873b489da750db7f25cc18974c671e333bdd1ff32d0c32b8a194a9852c32a920ac67873b0e117950ab6596ecd0a0f6ca31fc226130d72f67cc4062414d915d2e8b331580430dacc7b70c2c8d4c77c2198fa0d6c7fc0cdac4a1e4f52749148014d4b6c0efba512cf659b9699e43a5f83919a20f5bc345a6475ddeec73917395d257de472c74f240d54fab1bf5de7b8ecb7402d1a903a47bec58564a24019fc0f9f3e0a8ab03bfb6dae3ce58588ec3f29c882ceea3669ba9e4c22af003ae32d5b8accc7325ce0a81638de5d836f1f25c55c17b41d8563ab75c2e745e495ccf22c60366c56d4fbc5abf9efb57645a3ebf59b1695bfdf79bf832281c08cd9ecd53ab6fd2308b2bbd0949865f217f9f70701d5f9948cab48500c7239638f497cd96f2a70849d676a707087bf259edbf2a9af738484ccb3553abcef954ac3813925132395c3e1ac9e7194c73e6d0f339b6120f196b9b7d996b135785a3d4fe3ad64cccc4979cd5b193f7cac76d86550e5140189d77d01cc80e0ff85262ff5d60430cde9e1a15a6f4797980ac1c618e6a8d1c21b8ddde56fa674c73d0efa3c155a66d25bce720e551c6a7ee84d4f897aa03c969f6e861221384cca13ae660cf4e9fec07389ef007997197846247f8e4e16b72114de361a5bf82f081702a0016fab50f574f38d2ccf32a1c6123e09f481c37335e1d3fc0d9af2ae04086a637aa69043585b1c2a357b93c5c5b4ff388d923c59032e6399dc8f862d86fec76c4947837049ef82388f2680ebf783ff9fffff0a6de1b33e0541ca410734dbe1f9db0a8d34da585d2fa9587b0fa7171fcb72635a394c76f8374669d921c673d018d52b92555af5437f5b6bce634d1c1074addc47aa6934d8054058404cebf9e2806aa9b7d51b84695bd5c9b273ec6b93eac8e26b50174cc45e2ef39ee25ce6ef3c2dac6179a18d54d4a3f04c3f5355145f3a31e7ef01f034354d73ce276e2d0e1b16a4153fc5403e7d057cc45c97c96e1c564a6214b020104d9e72cc9fcc8977f4bc409df7bf82212afdb026770fdba7117e9b2d08833afa41fbf59d02d166921bc2ee2fc6b665f3b1089935959e6c4b3df51ab1eb48d77c4b96e2bf9cab985bee1b2429ab41437527d452025715e12b5c4328d291355aff016d55de28cd5e2c7f2ccb1452390b8c409ef87f2fa7a45983d7d50e3e1bf7ce924ccc45a1d1f0761f05fe9382aeb5ffea816fae129aee6ff393d5b8e8a02f16f7ff4ca4939f0d683536729dc1dec101d20bfe7601d09294044091f8efe95de993fe455f1f56823bc0d2af9a376371580572e5122539e326beaeef86e2a22b9742b90ef99616819e89075dec4ba456978abe327c0a95e9c738a53082bbc6384b784abf38a556880026aa4b8a0131aee113cc60d3308d50a253ea0b67c28f32bfa1b2f5c6eb88baa688ebf71217f83b29b0bed3af40a50e48629f0b8a9adca0a79a9ed626926d3264f423ae1ba73f2e49fa3234f84ec6e9bdff6dcf08bcc363a5925874af95f0a648672c358298e670361e39321878584ba0dd37997d1e258881bde803f1396a0d6dae5e6f9d97959c6b9e1336be383896d289ffab2f34551be8411e28a889d638d110cac94e608ccc250b8b10944231c63be0365c3e09cb4e825418481928c9599f5b7691441b9ae6ffcc54b3bfcd3ebe816b2e944ae3daf5d86a4a5892469b99584c6e5c6d5a0b5c307c8a4d3be56ca45fa76c1199ae3d2915d47f9ea53483343627124bcf95102421ff20a527d60cd02ebaeece410562d568182278f187ce6647aace2ff61862549044c03a424623ad6e558bf293d6dd25ce0db98e998746f45b134b0526cdd648b0358b3eac137c7c83275500d42de5a04d3e144e019e01de79359605d035b82dce6739b93e2cf7c335d0ed7cea523c09547cc8656bfca571a236a825b3655bd333900524af17b6c47ad484e5874635eb34b8146cf15690018fc7d42b7785f244ee4a56de4a316745a8bc38b3c5506c7a24e309b13482c20bea3f32776f55cfea647c01cac1d8b9efb5c77880006636b9e711deaaab9995bf8d97b1c0118ac1308b1d4ecd8c24e1bee06f6b419b558e3cab31332c8dee3d65d7478951edfd4e5f0becb377390a7fdce55f37a2b85de2bc91cc52fe969c93de79ca933ef4d9deba2725b5d5192d51b2d7afe216e5c6866b599f9e908ef8dc3eebc305c89af86f363d922884f41c40b83942677b0f323252e269c1ac3aa94532c9d7370d18bc8282a5b45b25a2c13c9486d911c40d6addc72e08dda0b31d4cea546e786cd4c316f982e465a24ef7d266127e8390a7ae757248ba074e42d3d8e9a188be4e1902fca27eb17d33456247df02c7d09ba68e596c124b1056b39c6f09112d30101e89fdef5e5d4b122f9a5d7d008cd8d7e457212caa5a41a1f8be42c1b2fc050423f1bd867464e67679771d38b6448e0bfa932c3b477d1c54872002a30b91f47d919c9d1091ed1e9530e424a7aff935c854d094539c3aef11218ff89824645043f728a0d1d621ac9bd426f9740ab9f0ae5d943d198173212a5524cc4561ef8b4918363484eec32cd4652c1f719e97861bed76f1e822ed6115b1e754011de2a714a14ced6679e6adf5b61d848e8e4fdd98d791ac9c52337b2ba9265df6f426f1e4b9a7afae0bdc5f80101b3f5e2bec6774c0ab8b2f8d6919c511f6422588bb2757346505838c8045215187d3d6610c7987cc963fd7c148c7af84fe348564697ab3df4418d77cd9e8ea44d2613117aac474350382760b5bb614da6a12476321502e525765d550bd38a153b1cc9947f45800d9b1c0f712431e8303381b2f5347b5730d94a473c1cc99bd8791a9871423a9e15de351bc99743b0c897ae13fde3bb558025249975cd226277cdf4894eef7bb463b8cd0e8ea4756846e4f61164df54a9e74f98ca3e3280019c7b05eefcc4a40f57205c554d3ada98c419d2386c38c5c219d2b45139918c1aee30d293a51b53d44e037cef8bf302683a128de4408010200073358c21d089f7cbdeb5e0342d4ad9ac86d16454f7f2614d8523fd5b23db08516bd2c8de5bee1d3410fc0e510fdf6e417a7b480933aa72adf7268c87b4f810b1fa5c26be7371a5ecde9a5d5c1f1dbbd6850bf9dd9c8e00ba7c3c11fd17af8f8eb5fd76bc43051bb648587e25c5a7a213d10c7479f8f144e4327a79b442aeab4312e5f0f6bb69e1f00458821140a10d64b094196a3753ae9cac9133f6f4a6bc5d2b6487428bc30bd8d8acc561de30bd0d1cd60dfb9062ad957b3d4fe6383c44fc2626a2c5ae2700c38f128967e508248ee020c5e0840c76da06b022cd1736bcfc1210f6406f0149947ba068b14fd500763bb88f5209b6422b00476b245b233dc3611fbde121e2fb3b44a1ca3389ca90444df63aecf2c41891c1deb154c41365bad2e27d5b34f31174514d004ed95d7c146f483fe352e6e28614870970719ae7103f03ff6871f134f847119d1617ff63e62e2e65dd06c019a799719ad3c85d93b13ecd392359c3498b6487684c68064b1a6b81411aebab80c0907ee63db290e21e3a2d3e8379249634761aeb4b99d82d70117a2973f19eb952d6a227dbf40cd2a28f02a4acc577509a16188f2ad367d220600775adc53a02b01e07101717c31bf5f4145b40e6f9e168f109d67aa12b654930b27977cae89d52ac17af95b17a17b77efb7250b27d5792b38788afd72269b16b22961dabed90343d43684a5e700327189d400db23e1192a6a708486883124a726003216990f53bd88d8141f6ba3c930b4040624856c40b9907e89225b222f55668d23039316954898449a3f2a04b9664da7197f285bdfc389cd379a36d89ea1b264dd368ac278dfabe81a55911d80ee499a4817c5f8dce7607a5b14ecc587f0951c86de711195b5c9360b78505b2d79d406c302292352d25258f4d43a2d1aa9191446204234b1882421b8e1c21ebf750bf6bfd0eea53378001b82de3daa118b7a7c3a9c248bd16a78a7a7b72fd70aa30d2a2ccb55227c0d7610feb793650454df6ba94c16e58710f1d6b0491ec759daa44153cf091c1cec3012a18d1842419ec52362915fdf5506b1535ae8a23145751ab62892a96a882488bb28a5a154bec903533c36030d86177f19778172f11cf5e1f6d11ec15f3e2ce68021c63bc5c7f39435f2b111122fd06bc0ebbfc12f03a0c77108de1e85a195eb0dbb40cf6dad146bad6ef3a93876408106d08898522f73bcf9bdf4d0f034c2e481ebacf03c095493842123399fc6c48a41d32c9eb1588021238340107553c218606bcbe1d8107000cb8711cc7711cc76d5bdf6c16db212658dc1abbb5226b648f369f8db6d5b6a04d6823da8a6834810742324888d2c8d29014b24836a9ad50a9a8542b1199e5d4a54d7f2aa7cebbdcbb097aabf9added10f8056a8674a29a0821346e4be1d6a9aae8d16c9766da5369bcc394d6eda4c30fd569fa0ca74e9e5776323810c361200e56ebe9b37ddb19eabb1616b71e8437b99ed67b65fddd0e2aee536d2a269c9c93bd5ad4a54b7b72a19853cd3c42776666257d66eaf49a63880f6634dfad893a9091eb9151e41157ea6355ba1d43b750fa76ec2a94f3ccba99fa87050df9ed4331cb783d2bcdec7277fddcb582a758b6352aa2b339de0c97772af3b9d5ebf9b13962097fac94f6ebf9b931fa025c09435ac9baa9826db3663861592f205bbe8e2148fdbe78c18f17771c50bbbafbbdd8472ee9a7c1b3beebb99a793c9cc2a7756eb1913134b37cad1493daaa22b4a4d8ef20ee55a2242a0c9474bc42e61b2528de2c4e3591bb698c5c2427bb7f2e795af8669e5a2cec2417d85d5344cf166836a1287ab518b7dc2d529aa11a53911191dc1d648234d24159e481369ce7c72c74a45eeb3dcf1f3ceac8272b2696a89d8259ae34010e51945cc28283332caa54479ed59de41699a469348148f31336a127d4d4a7de57eabafdc54eaf2f3380e04f1c8a2f53485169bc59a482dde99ad90b556c85a212b34f190d744a234d5a81add9c8af089a8c53e6d1a51555d53bd3832afde9d900ca95c0bd4620d5a6c2bc40ac929b8cf63e6edb576a426bda04ad4c743cf8db924877b0f74c9121d1c494416f71da2085550420ed410052358f80e5e70c4121ff8e9c0083aaeeb20cbe1aeb9f061b3d7b50e6acfbb910e6a6aad14da0ebe6e4f755ccf39e7cc87f62387529ce77d7a9e779b46797888cf652d5e4fe1707ee6d43f49ef4cd2b19e495aec77dc4cf254cf75c64669d29d484600ed93746d060a1e67a0f01863f1287e8547d6b66db5fed9c36310791a8dcf26a4243d93d4335345eb55b5de84811862cb1cae53b4d83f18f5cc87ab92141ef2fa9d39756746dd99bfdca269b3fef4e9efe813d15d1e35a63d8ecc79880cb0600517d8200e334002022dd84112a33348e104497452cc7d24c90f28b030859a115da0220d1300020b8e64506bc20d4a76a07cf23c8b2b65b12b65ddc90830c6886cae61056d20927513acb46a85ec508b5d933a9a02b0b3cf94bd0ee48802c85ef79932f13c3d329e223ab08b7f5d669d9689986707098c900319ecf20b71bc7058ffba94c9ac934a83101564301c568c433cec52265e0bbb76e8f680fdd3342bd4359a504d9a20479b6881912c802c9b680151aeb5db6addb6ba6d75db2af79ac4628160d788d8d1a28fb16b4895e6b27e7f486a74eb61c3433a50a4fe753b742a0238831825d28e9e196b920f1d3dfb35491e29795d29635c8b5cae2350c218ba90eb47b9d33beac83a4efa87bb9d945493be83d23452d76a920552a31c078274c8eb4a5aeca6d1fab9674a38bc5443113448a1088905485ee811851728a1010a72000313d06b855a9c61007b6a80c4089127dcc0094ab0424f1124212892041120d5600429490c09020ea8b0c2cc09520a2df898210a54f84c410a21ac508324841c89420da69080a4a323a070031a82d088880310848ac0852688a10a0e60c20d889024a40a4667d828dd90c0da791b1ab6229857ae2e3ba2e4fa131b3332b542b66b6700c7aedd3a44f311927533875b7f8290202493df4dad1da17f7dc7eb66478b6d852c912db24276e8a467454f1d18f18aa3fe0703587a6dae8d16ebd893a5c57804bb8a836e148f27b97bc9d433d6f4d17ec39dadb6ba68b15629a3934015a26766534f082b018ac7eefd4ec749a6f6c6503108b167bad7ae5a6a3b1d27991e07cc0d92d0011624b1e00d498ea32ed14414828083283c51240559bd4dbd8dfa771cada693015aac9fa0ddba52d7d9b069b1b246ce5a0314016d20254d66020692956d4e3700eb3b4ba40e0abac96f58d6519e6eddddf336fd862bd757b69cb2a26ab78d5b969d6ba6679834f76c6a2bed496b6fbfaa24c0b9cdcdd25a233fd20cd6d87fecf9ade69e6dda235464566bbebecc8f32094aa6c87da44ecc63e6494b421c8672631f9d31c0ca3ede33e7019c28021222840925590a0521e5711a21cfbbc8b209269a9085f28b7c611d819226460e5529c7171cd48527692a0ea21d4444b43855384b802035de91048e0f5892e973de814ce5572a79997b5f13d88fa11c874da0cc408a6c3b88e8138e974b27a277b448c42bf6d1e26c2c914cefeec8bdb404c8dd0711a53a7a79e6d22fb39d4becf041448bf3271e80b386279149a49a4ca79a29a69c49f69d9348fd388de4996bcdb6ce9f1f22f367fe9c98004f35d008d024cb2698f0415e198285239468820ab240449e0149122df88192206a50c19cb31d4408791f4032648a5c8b900c89a246519a81632522a24494663611d31223a12b8821081cbaf0012cf080015c888209543802179448e2618e1aa529bda7b1cef613e6017924ed09bbcff3e974debbf7c84630875dbaa573cfb1fd847fe01f45744e58d21f530ab0f4ed619fbb94858dc30498ce3d87e91cfef1ddf41c5d034eb31be2283d548094951ee660020a3bf8001544a614a0f7ef4034366926da0e40290b8db2b044123600cd1a9094a98e98c20b66309ac9c6599bde95a2c361bf4726694c368be6134c9f32d37f14d1f1de5dca7e785c87c31ca773218ed3152065272c692cc796b40232c0000643b3998cc7a765df8b389dc361bfbbf771ce0094b2981f19810f9ce08429663399947df84711273c33e1b0718e5018e20067b33cc4848338f73186fb9471388438930a0894b230c7949d3e65a74b7a550c641d0e754e37fd7413ae4434763ad158d8b8817ef25889bade6e6f25dab2ed766edc44da4896434a2fcd4a98bb2919cd57a2930ec0ee6404c8bdf450a774d423e36ea8c3f14ca41e99fc54610d89840b44618e13f7d3a52cccb1fd28c98ff3288f5fff7d77280e734c72df64c7e230a76fdfb77888ce3bf47dd3f59a647a25122e0029ed30c9f2db0d736c2fbd847f98be71f2fb0128d4e17efa89c33d2b7d3f987e429dd2b97398a77de84ca2b1b9cda412cd36ab08f2a71b80f253fef332db1e2394000308a4f8401b8c20824c5ea4342b224b4260548612100941260fcab3e43bb045f99694620fd96ed37d412ae7a7c43b311d52ee7753d2006767c8bd1de5de8c4e3700e765b6363de716f4031cb71f5923802e489a1a24632d6becb9e0535432a212b921371a72739b18e47cb192334dbb0a9435f4f73ef1383fd6a0ab928fc83a04595367189890db0849b6a5bcf5084bf637f5940d1a9bff467b34655314bd41c07133da924ab3924f8948a956222a15958c4a4725a452d2cc87d248cec8e4d3e78efa1c522988c611d98c4a52669a25110d0905e5aee5121014244c77a87f47e1701e3ceaaa7b57e170a29ebafc7084dbbb8318480f1fe0112cf02aa13ba330c57ecf2a2091bb31d1a5b44b7d28fda1b3f9a23f6f07a8076400fae09512c698ca6327d11610c9fd3195c759446790bb08485f8fe49700474ad49468e2b0c9008e94a84f93f44c1426258282acb1678d21f7e5a45ec8cd512ce42e6d5b69dbfabba973ce5c7f28cd44e2369616ea1af8ee21522069686d22f5e913343089dc7fc1098f5ca9f3248d1e3eb85c06702cd5aecc41902ffaf6ab5183366f8bc256286af588720fb568246158008e252360add55a3bd6205b6b500949ee1fe94adc4ce50ce452cb3e0085078c325833bd7cd3260d8a6b50a340d64c5c8520616c0df056221a2bc2828479d15d446b94a6b320637d10c4f40932802d456e5af366694915b35cc31ba56fef4c7367f2660f1f60ae42089a2f5a96c275280720fd38858abe8f3508a72b3e29015220d6d6a0d9ad3e2d26f58c929ee1deb7330b8412d5234a933ac78120250ada6e7ad8d74a6bb13920d62748ae4849b92b488b58e0599488a3459922e54eca5d837ac08a4411e00806f912206528966904d84d70de53aed5a5c5d50a5956582a292827262b1598427d5e773271a5cd56da12667e491e92ba6461b051b7e4f393fb1f90a4b1224a03722088fb1d2ecdba09e0dca6985d00b7a30d07607db7c9bc196d54dca05b7758766cab412d3657fbac51147310e54090d6a0a62580ca3a5c8b68ac4f242877929137a44332750eb38e7212942cf9cf8f2eacc560524cb3a0932fa305aaddb675254a4b255a2ad15289d2d2f67a0350e69311a0a4310f873adebf7f982775af69104aa33f34880a51237a449168529d559f4aab3ff5a822d91f4ab32262c114333a54816a10a5911488d24cd994329af5312a221aaa8134368f3ad900dc4e35d8de99dc007e18a9939c9200c7468a3111f4c41252a8610750ec98e940091b20e10116da3083e8074504214347318802053f2ba04086300861568416ac614a2d98c10641c081174e7094240e47624002148c2064160406135881102f9c810a233802156a34d101282011628323d0846a20816a31a2b8810dce0007246ee819011b86c070c40c960044061d734976a5a41ca79fe2e2c263fd1033a7bc857527be3d4b795d4ec2b47eaf49c2b44e6f9d2f5a87dd6dbe68dd86aeb832e77047efe58e3a3c8a0478217a66f5af6afeeb77e3efa6b73aa6261053212dcacf2868b7f45b3ece1a5292f732050db6807404118a44d0f20e0c71c8c83ccc7129731977068dc9cb5c49632825aca0481c98a8c16c269371997754e64a2a234326737d5c80248a368821480d4cd0df0dd7eb6dcb757839c5758798b97b0a1e6b4eb92b661cc70a441e85c8f4d47579f0b8c82d3e54217aa6c5e5f23b7aa6df725b489400cafd98fd6e74b4fac64e6f6bd4e1e5d85b6ff98e9e895db6b4503abd965b33bdf2c389bdbf137bfd289660ad2797dbbafc5cb08e16658c069d7a00c6defa386b192949bcf4fddde8c75270ec5ad75db525b4efc9b1d89db9f5588bcbe977c4aecca2102dca24b6d2969217739117afcc520c60b721b9526ed33bf0f3386b3a3625e0288f7608a14376f53db927d782ea9d494052ee4ce2ba5389bd3d1392a20e82e0811790e0082400c3d7782211993fb889e860a3e5cae953d7291e658b2dd77bd8b116873816ebd021a7e091bea55d5a57a74589a305e054d2a20b9652f625923934a198443d135299e54442ea983cc78123c84a434db2ded44504ddf1e0ae932da63c8507cd29e3cc2737b9b76790fcfafa5af10fb58374bd6d53ba3be5b2b09cde7b6f6272afc9efbdd7242585d294a6f80e91394be69debb65aeeeb5d6bad15d35a29ecb7af2faf1f61aff8fb6acc2ce3a3ebf4e3ebadfa5a5b8eef72191f34b7dc9e75658b2e23ebd5857dd0ecd2baaa24c017f6d1d9e5e3b17d8bbe6617bce3c22ef4fd825b1f61d84767d75bdd82775c7771e11d7a9b5d30f6d1f9ba6863171e67905ca708e68bfa94cbd2993c16169477ddc9b833efe457a3e52eefebc2a357efcc95b98c2bf396eb227367662e7365b0665a2fd9f58e7a3357c6bbd775b9ebb6de725d66cb656e00bc2b3b36829915803eecceecba7d19370097b932b0cb6d3a00ddb52773655c7e382dd895d9e5b6bc73ddd1cbaecbb8b5639f5f8dd65db0db343539ec76765d94b35c994f504c4c4c5647591d48e51364ad1e3e7c8bfe7dfff29715c7afe760bf7af75f41f2d388bce1ba7d5fd753eee823a7708d43975b3c863eb4bc43179cd3d2f429b7a129774cf90a75396dd753de2d1fb9161cbae01c17eeb7ee987214d85db037ae5771b50b769bb62e4fa5f10eec2ebcf37a5f070ccb165f5e5f47790e78f57ebddcb3de785c8131ebdee4dee49a98f4354931795f93b34cde29786499acba6f827f56df77ab63b1faacd7b374b3bc85987ce2306775fa536eedb41edad5c3d5c387e11d5b29ab87e15b77f4d17297cba691b90b1eb9962b5b74e19193b93634fcca53ec8dd5c387786cdd146bf138e975e5d0bbc6fa1393539314bcd3faea63c53abcdcc2e151640ec17c7257505ebf1b96ca6af5ced321d3937cc3ee54d917e5f4829714ebf0f26a851b488bf233c99d4a6ecf5a9447dd26d2a2fc777b8916dbc313890ab03bddaf74f985a172474a9a4a669216e591e0008a2c85b2448283209936856439915a9414892c8fc4e98fcca510f2729442f273a816d4cd4b6bdcaeb5285fdf1fe7912cbbc6ccd5dece32b7697a69ee3b8db4283f6b9466d23a2665b06c7939692d78206456031f94a10d6990ef997cfbc84fa499244f6b323d717004a45cdf05a1c3f7fa77f3870a6038754ef7b87bf7de58e70777ef3adc3d1c4e1dd34f9e5742a9aec23f4a3dabcb069c1ce5395447c13f8ae88057fde4729600ac579d5c308338c4c152992c161e1aa43f00d1623dc53a370a82d24cd94afd577376822265a194a56262ea8cc6386cd4205aac2fc2c854d52068acd6727db7d719a95eba8eeaa5cf97c0a3304fe9e0795057bd4756bf8388208400ef6778555fb9e06991f0b2be7255de558f5e995970c8d36fe258c93112860896a572964f7e618347e520244c95463d70cc2080a5dca3e610074be5fd858d71a8ae0029533d07f81f2011944606216b4ab9defec81a1ab924c749432940ca563010202837399093af4ebf3001aab3aea33a0b2565aa37d601af82794aa7a39ee37414fe51e447f7d373781f08e403a9a7987ca5fa0455777572516eca95b47a33625a2c0294b2fbe93f7c97b2128ed26d7afed058fd771e496bf7ddee86f3a8f7c87824adef70f7ef3addbfcf7fdf5198e7c342d058eda4ec0b82c6ea3c8ecc3d5812669e3bfd66bfd33d2c6fa8d3fdf40e73dda731f912a66d722425c862fd5c0efb83de622ec7b6499914737f64cd2b6fef8fed47fd1250bfdd863a76c3dc0d75a6c5f552ccd1989cb3a911d8b32c659bf7f91cfd0ffff8de9ff847119deffd1ff3dea5cc4bdda6bd944769e6254869bccbeff2ddf66d88ea43c08f272a0c3e75c3da37ac386c40eafd1ce055cfd15fe11fa9f755f847119dd4fbe0a5ec04a47888ea360d5e29abd76b51c6519a776cfba692b2de8e63fb0fdb6db6db48e1d0749df033e368ddbb53d6fd00650e594af5a5c5ed75dbb649e3a60feba34c5af94ffe136eb3b81aa0c5ed366c5adc5e0412f3abb7d96e5db7df02fec4e4a73b73eb1651809401f9c07cff03dfbda3fce42dfa498e08203d6579cb0d3fbfee2d1ea623207d0d54b61902483fbf1ef638b2ab360820cd3db69b1edc4313fe015a940349f9c97fa03452d6ed3628cdf7cd46d67079db7050f91266fb0c02d82c6ffd87f0aecb0f47cbed8c96eb6af5803a582c43c617e26009fbde6d3abc3fbe7b67b93f8ad8ff081330dfd799ffee1d3573ad28ee8638babdca7128ae545125207deff64d5df0aaaec976d45d5d296bd4ed9981986b712b02a42c3308a41387f5fbec1fe62182c6b6cff7c86edfa3b0fe7b8f0c29ac18f314a958676e9fd8068d6de731cadb1b6f52366dbc2b652722802a0953391aab97f465c33b9628cb154598f46ccd1ad2f5f0c18d1b50de5a0890c4f387caa359bff629124d92f87404949f77cb42f4e947702b9dc645ee0d8f2fac16153a6921cff4973ccae0b09014c211437f381a925f0e6a147698871251211aeb1c3607274da79f30cfe91ce63e1dee26cc633a87a911258aa131db61168dd9214aa33f1329d431493ace9f508733dd69f41e19bda4311a93548822f9545afda94155a81ad5a38a5493ecccfad07e288db4b33a04144469a4ac12a1345246db7c8c8a722d27b9140d340df345239d8600ce530c52a4bc016ded4d81c889126c1cd1114d08fa49a3b1a499449b73d2e69c2dc4e5d1119d65f9cf76b7448a9c84f0839e658b6ded5a2243d9a8886803e7cf555bb3fd52adda1a15b5994a8f9400474b640601c7a651b3b5252cea5386c23e9e0cf52632e75379a23012e0ac355923fba78b406a676a3fb3cef99d21681e122a400ac93480ba065257d5d9ac5e66d4e78671a4b0a4b1ef32eb482119ca6edbed86bbd65600e9e911a51900123459bf7f401ae47e034d1a160f413141d250a44a1b9a34ba37cd42a652c84d6b230d1ae9126a2db78a48272109e0c392a1deb7344aa3c29bcf3f3cb6d03d3c76900e3e336428ec63896c48e48bfea9d228cd06849484dc678120104d7ec00a14e90914298fdb1172b7376b4b246f48c8fd4d855305528b326f546c53b448f1905027b564c9922532d5c76d8acba3fa8f0ea0aec2610ed5575fe11fe055b8c8bc9481a71f0e94ea06476a1a016e4094664322637d28b829e406daa238b9009479dc906c3e94a6e7e6e393fbed0149a343c6e6a40101f9020e72899ca177439211e496e20d5d0690ca9cc8e304f2832024cc9da99621799de2336752ee9356cf8cf4b3f583136f67e256e54e58adda23fd9c60cf4cecb5d84a80633dca5e677afab1d2733d7cd43c6416e698b2d2a7ac847d3c59e9f361fdac4fe5211b2861496394b369fa0dd7fb50bf43cfb5d8f30379de6ba2e79442b97a74029130f35b00c76a4469094fae934a2788e9ec6f695f5e172f621e5f72bb90f656ca4951d266b0cfea4bee48275fc693516e1dd85f7f619e57582ff300c41c0087611687619e6a841b965024e3c9e1451429e988871d86796061c538625cc6618877711798e7c5451ceac4601e7b8f4cbea349e058bd26862a153d33fa60014954a9e0364b4d35d3f6f9d0ba0b1e6776f9eb863aaf2e62021e14c95eef91c16e28629e170f64b0f7c83a16231d9b13093889a6d0b2fa1f268d2d57a028663257914c49ae9f47006b99badcf5be9d42cfc8e959ebe55a3f5fd49bbc5b93c9e49d7ad51e31c151bde2ce1ed9260deef6a749c3b347ae35622468d218b973f385bd9daf2ddaedd634b9ebddd37cb1adba19d3671d757896488b46b6edbb96c8b54bb478e4840470e6ef2a1feb604a27bf1c217afa89759483dba9fd767a4d9933556e7e3bdd9938eca1faf61c395fcc172397bbedaa8bb3e5cc7b575d9c79cfcb1b7747ee2bbe947dd7cd2fc77bc595cecc9d861c0e7b98ce3d87ebb89b33cfdd7471660ef779d3c5e13eb949efdd91bbcaa45895448ae99652936f37611d5e0ac53b269f7827755abd7cba4d5de520ca97c2d507cd2747d5a3eac90ab5dd722f51d44b1b8747d457bbeea8ae7a28d4ed5f5e4e4800c31b336f9f3bdec461cef7faef158fa7eced785fd9beaf7c5ff9cabd6fdf57de492056eee56ab256884ecca27a5df98a73db8d2f67fb0a1e3d53ee6d863d56afcf31b1af37b93ce892253926af5f5d1c13bbba38f53d8fdf5bd863bb7d0e375fa8ce61395f8c2759759bc3e170b8b6a8ba55e55c1caf45d5e597e3fd1b275eb9ca5f2e98f11d9f55bee28e3eb2ca51df0d2ac5fbbe77b6d6331fee49e3bb0ab644be6b6bdf3f9c9d79d9cc1269913a31cb56e81bb98c3a79c5e335dd0e11c193b7cb4943f50d8f379ca79dc913e038b3054eb24908c92a078f3ce812a4ac5281299484f9bcee2461ea470a98244c3d05e6a777c71fb2bd2799fbc91dbf7376c8e4dca431b10e4b94b769fa4801d5ea04e52305785080c75c924f37b9090bebf0b2bd41b33dcd165be024f3a04b94e45147feb08e93dc22f7d3e5240c07c31de59e240cf793db4918eeabeb4918eeaafb49180e86bbe9a6240cf7794109c3c170a8d74b9d98654b84dada87437335029444199f13725de04e59f1fad5a4d1b5f9a25f2bca6b7de77db2e67b3d4ad6b05e9f9235a0caeb55b2e6e5158f3a4e32fedffd5a21272420fe6885e04963355fe0acfce4f59efc94e5135850420d0f93a3567742d6f0501d41d6f0f08e44d6f030d927640d8fc99df5be4d82ace1b11d7c0d0f7b15fa17ac9230f57d950b4a987af0a6244c3deb7ef79330a7dba5ee09e59a505f716bcafd4afd7571147e9b702b93eaf6a857ddbb3d4ca6cfdb8343a5720df333ee488da0996181d45308c01d4d539071476a04eaa37147ae86071b770703c418519a90c5e2b6cf1b8161901627380456eac57827730065dea53c7a1b46fd746afc467e0dc0f90e38d4d9612601640c49b21dde23b3e99b1beadc9c87f38079a4184a20bb0165ec65523e4f4427229a675ee131023935ae40d6e577b342458b530589d565300b247b5924a956b7dfb15761d5eda7eaac8fd6aa6e7d507dc75ee636cd2209e5b305002e2f1e7365e000ac9879a15989bd66e42000580d0b0b9146e8a285ab05f3937728f7e4b2409232323f39ca95b9caa4645820b14892c118c60f5e4162dd9523183429e67d30cf02a96746183416493d33c6d05824e919d3e759c0a0610be67c3e8646a34600336866022023e60500605cb46011b321c27278bdacc0f7f62dd7de755b21cbad12c65adce08d13914bed940470b44329fb971d5a9d45751648525cd5ef46a69b29185920f950b3cc5f00c91a2b64d4bf5acb356eb6d8a5d62800612031ee380c5acf843960b67827c6698cf757aa0be332b73f7d7555498032b757bd9b329f8c4a060fe1e12c9078c037efaf46cd206872f9ddc4b84dc378d731de39314e71e813020967316e7255498031c0dbc530c5e818309284b31b02a187f1b17bfe000c67df097d643e53725081b1c495180b8bb045cb85eac200c0e61e5172bfca9ad5f1c7937fa4b94793dc6f5963f21e55b9c715cafb53d69cfcf5c6a3cc63bc93b9618c1bce42202dce18f63231b0046d386b9ac922a945189705920f663d33be8a7c7a66fc432061909ee95e4507f8fc6b312f0000e3a2058b9808cbe1f5b2025f1bd848be4b8bab15b2acb05452504e4c562adce00d6c43f30e57ca6eae94a5ec509e4785b3b132914716dd6ba3974d3068791e20e7c670934a8ab2dfe14a998d2b6538777692c1d4b8b3938c0552f813028544c2a19028440a935ab3964f8bd6fa6901b588b4925c331711978f8b1616d55a43612d0c9ae1ccf583746454d422caa1509ebfb952566281c4028985923c69eeda33c0bd910dbf368d401d4e8c6a334e8c246da39ec92753ccda5594c552c2f4901dce22498bf32c9028cdab6807fc6281946751f8a2853fe12cf49939f5c8dac7b68141007124c410fb791b946686c522c842ea41275fc61251b694a65e4e5953944b91d2985cc67029efa7701c5010cd2773b3cc716fdab3cc9d48e6502e8bc6382293feea86db7b64f4b23b7dbb628bdcfbc6d0188d71733e0194b2d54dc4cca9be6db4557808bd4d2b6991c3d131ee1c1d39ee327a6d2d88bb25c2dde4dad018f7d5ad5180a10e4e0a7556efafb0a5d118f7b64099fbd84999bb0d3a2589431ba098c9b889648f2c12a591b41f20225b2d88fb26b40dfd702f019586b89788702fd56c12d17604442d770b62a0141e4b4125da87c7928f87c7d2acc3e39694b94bba2165ee263c5a23295f38bc53223af53782ae8737cbf4610e8ec6fa3e66fe01ccb9eb2b8df20425ccecda501375d10c8888d0a443948816511a49a446696450f531a2495d336aa221a01f9a4f9eb38c44276582cc53d2f066592641091239ec6a8982f42c7ac9d19a5763e60eb431e595dfc1712358412095962369441aab35dbabec42aef20ab9f69559a4343668ac9e05b638e403cddb4b57e639abde9430f236e4598c56598e279c8333dd70d8f53c3d1336e631b37c8f59efa367241ec2dd1d3e88e839ab1c3e8193d2a653f6ac25241d486b3dd99ac35bcfd9d69e3afbd2e23c6de286b916b9cf6f62f7b436ddd86ef82216bdd19ed62a56709e35dfb39bdb1928a5b44a18ce61fa009cf132a382e3679cf4cc18d39a514302031094723d78539f2761eaed0bcd619a94289de338af9402d06bd11e75ef5dd3cf5e950dc051471e4fb20d024769644bdcbf1ee8123864148e71d1a287c516ab044e3c00bd1310c0ef9e34aa12c6071531d7a2e5e8105ae20cd0b1fa8ebbada592b5dc04755aac1567b3d133f5a3492e5d2569208026256b50dc2db6e1ae8dea03721fa590015aace7317377044c1a09902fea2b143a8fd209b93ef55d2050e75e65cdf7ce5e205a2709683fca29e0fcd0b984ab84e1cea1ae94228767748d9a4b3a783a3df3cdc8efe6c3122c95b00f7a432e59b264c9e7dddec3de1034ebd0e2ac3374a8253ca3c59a6bb6cd95de5687162bd862ad9fd1342e3a565fbbab9020595ff9b15aac2f89e048054948822004234f02178a3c20042c108942561f84ad428264f4ed75039a8a214b08c9661f09ec911a9450d8daaf364f7593c9f4fa6db8e298debdbb6953b754e0e521979ebaa879faaf74c7492bd1ca9d7c70f2642eddb1668ec6e4f5db35b9b263d3be74b75ac1b64bba397bc6e8402528cf92979c149a525829df713d33f6edb78fd6628eca797a8fb37d821277568b747c299d45f502b0542a955cb428d2d3bbe04e71e56274d0c91c40fb9ea9a8cb1d2dceeb6871d66aadb5d66edb367d3a86e50cf7f90229da1f4fd2a06eed0c0264facc9f9e99b417c899990229cecb148abed0ef2f994e5ee7a53e1e7a66ae5f8ec52dd6c954aab2664381ac319d40d69cbacf77a87f1fe6b197993beabbe1c08f879e6c51f6169f78f6033bfb93bd494a181e6bf3f68ea22e9022dc3db02305b2e3e999917b692b611eabe27238ec6d1fd7e27c2dd19ea552499a50b2669e9ee199b3fe6e360ca4676a90ed7492fba7ef864c0ba000838b933cc516a754c2d3343a84a0343f746ccedbccdb988f9901f4f50783ee6e8a87d457239d7c395d2e91c7f983842428b29dd9ce1af014d131a150a86f58e7fb09f37c37ddbb0a08aca7ed26a8a7eef7be4536dcb1dabba679d475e6761ed3e737ac93fa877966d0987dea26e729a2d337c13c45745037611e91c6ec5158f214d13179631e937b206b25aa2e6556ca4c523c4570a830cf94a19e3a787fd8a031fb7a8ac23fd098bd0ae8074f110548996ce21fb208e5cdf707a6ec16d1996fcc53244c40bfbb4ebfc33c45b08f4eff847984a031fbc6d387c6ec274e3aeaab62209b1fa78f94c917dbf5d4b654e8e4cb486b592251829625122570964870104576c5c088b9a8ff40556e5542dcba32b7ded9f9b5acb5d68e4564aba2f2561d5b97debe7569ebb6455badda6aa9b45a554545a5d5babd2a311775f9b56ed39d14c12c4c81baf7f4b6c8278ef86419593e2104a26c7fa43e48ae82cfcaeb5b0fe352d4d7037de5f0d77b7267e2c1b8f5ae1e1a87397875fc7d372929ae3bf66497c438a8ee7a5d2e3f9bb62e294fb90d755d96a75c93a32ebeab17ec395cd61d7b32eb5fe872bf77addbabd5aa5172e89506531f8ee92aad56eb7dd477d31583d9b6cbe5c2ae7a9785dd9dd78bc8d55ebaf0d8935d3098eaedb2697b170c8f9d5f193fc84cbd5c7807fff5fab19b3dbc3056e1bb70f8baeb2e39f5fdfa76c12e33ecb6ea2e2e1cfb46b95c2aec4241717d9eab3b825faf5103b3bb1bbb7a78ec0fe38ff9e3ba3bb01791bbe24f97bbee1a272d8faebb58d8ab0b6cf5f175eb72d7f12dee15dee9c36e3fbe307e37bdd4ad84bd5d18778d6fff05c3d5e5de5d3d7573f8bc28e7eeca6da8e98716bfeffbf8559815c1a4e1728b778e5fae1b29af9ffd70087bbdcb5d5cbe7aadbe72658bafa3dc1c6e6d11bbbcfb70ea772c1ee7e9f341049346c5e3057a727f65fa6e567d6d865d99334c038ddff7955233ec4e7c9bf660b7d53a103de37aab75952bf314c1a43173ebe14d0b4b7006717139ec8e3d19f6fe6e6038aedbf7e47a53eec89372f1e5f77279caedc97d7d74c6788a60be70691d76d37a8bc7f42d2d2d2defb6638fcc2df7f4767d14eabb69fc03eab53b79a6afd4f707dac3f2da6d7282c79e1b1322ec6dbabbd6ca328364131316934beb4d4c4ca889890d65313161b94d5396be26af97e5f2bb39f9f6dd98b0b84daf5801ba48493112245370bd9db57e055dcc1aed9916474aa248f8ccaef3fc5ebc27f7e429540b7a71f9b641df60d29825982fe4e5fb039266d2644c3e26c25c7e2ae919005cbe81c81a99250c40159080fed0eea4c91a9d27141246e230271c22e3335b6f884ccf646021684c9ece1c0344d674973b7a06c6e57df44c8c8797df90408a47d07af3f381cba8cf205d6fbf1bd4e9ad7fb9b3f4bdd0db34eb0078bd30a73832c39c754398cbfce21df560dc18ae4bb3fc7af81e03f77bb20b751838d6b5aeca0def4cf201285f6faafca4cc89390caca3452ee6de756dee2ebf1a2723e08b2b8116e501708368511ee602d1019130f24270dc91104076501a2993389d730906a0bccae58acb1542c0dce2531cc92bb24422450db28b3b331012b02dcf5b39ac054ba560b015b09195556e3a7d3738b4b94513e516efa60a08e6149087ca9975b44acae52157bcefd8cae0fc6e54567cfb6e6c800a4a500128b778cb4f77e4b123b738f81577889a5be01df02def5a2e7d57eb10358f3bf24edf35768d11b4e9aeb7d5d6943e781beac23ebea3459957809885ecf602488548d9fafc6e60ef3ad8ef1df1ef5977c467bd5e2d2e2f2e18df97cbfc7a69b5f00eecadb3eed872d6ef1d5b7edf554b297edff18e8d77ea5d4eef08669a82472f7b5c0aa5b6e5f7751bcaba630bd6e123c37678f0e4d765c69707cd2f1cde98997e668a75d05b1be07bc39cfbfe7de3dcb38e5d4e61adeec6b0bbc8603c7299c5c263cbccb745e6f61d616fbdeb5db239193c692cd8ef859d75471d3e72ebf72e77d2e865c594bede8f13a907d85ba7adcb7cdf9f0f5d0e29ce81bd75d85b975f0e2b8fadc36ed3b77518de699d5e7e3dd8770b8737dae21d7af08d7750213d43f18eabd3e123bb4eb75af1c8e5b1e5f6d6f523530ef4187b4693ebca4c29124f8033af583141bcc265f5661d769fc35f2f4759f182948494440952125212253baca9aadc1b5e1f35bcf7c547bd7f5539ca6bc5cb59c739bc5e987518eb30160c0683b160c7300c5bb182e1d5f1ea7d572e1dc6f8f5a7937d62e52d97afe03067c5e957b8b87c65c50a1797152ee08e4c5b5a3e6a5eb969c55756f0e8027aa0d772f98ad61d2bf651b3cbe982b93d93ca4bdf0d0e7350f28adbb44a0b8f5e6ebd939306add4cacf078b4117d6e9875baf93c67debdba4017bebf5568b22c990f130c765e0cb5c8ec6642ee35dcaed737827e3ca58193229354fc69599b58ae98cc20d94db1f210d432d144b996f58adc90556986373ca6d4e49799d34899474516e389166b3591e62e699e4430bbecf02b863e615a7acd3155fbd5b7157570827c0151fe511ce8a1b8c7b48b91d2273d80deb6197f9deb0e21af75d7b8d4493ec3744e6d2a65c74dfcd1099d7ef86c5f5ce2ce3f2b73c877732f79efab428af7a01782fb3cb39f0dee4e3a1275f2973b93917cb68519437313135a45a4502f6c749bb115b94930be0487d640b9e4982f48c6bd664ed076f01a46fefeb0176ef75bf792bee2f3f9c7fc56d1adfa653aecbeb7569d1e5e3cc2ef5f62977a7defe7002207ddd711265fb72814ca30e407fc505e273d90bcf293a263b00e3a422dfb8562b5775ad5c2b1707eb32d44a33eab6e53a2a3aa36e93c144e70e0f2a4da6efdfc9eb4c3799c21cd38723b590bbd33db5019447080a92e51334a0e5d9f9542bc76ddb56eb66edbb52fdacd7992c773a7da7532977ddfaf3a1f2a09b95a3778eebe84d3b76ecef3b79a7fa6dab37b475abb572dcb5964a6b37a9054a297db779a79277b269fcc3c2e7708fb8ac48cbe74fd00f8a0de3cc1348eaf2bbc0ccf5f975a52c0152e6811e179899fbcdea36edf2efd24f10fcb7f281b769ef5d176edeb6759ec956cf9bdbc66d5b51775a035052e68e7ca8dbc7792993a79a99f3baaf66d3b91b95cb0d48ef2949d779af7bef8c62c8a44bf16610a599431deb0f057960c7ebb3ab49ba9a044ca21af2ba2d0dc1495227495292489b5eb9337f05a733eaa40693cfa3f794869394f73b8d6ec00f0ddfa752b36c02052f005d2e7dcb9d462aa48f15856a756547afebdbb7c2938a59740649f19db2973b8de4378bccc03209ef34ba49e159540655c865e9c418cc90576e52f4b2fce4bbb933b35001b29c9061e6f09ec6008e928a995b1fc52731802a1f8f9951deb57463307d353aa3ced28da1cb9d8b8a0937ab872a26a872f7159c9987e0b7564158e5ee7e4be0ccac72d7a722027e593e01b4c4973bbc72c3e3934f00c12095bb15dcb671dcc6711cb76d1c4adeb64c5f1ebda7a314ebf793a294bf2c9f008a82bb35a7e8bb151e77b9ec7d09906ae0415119c03002269cf082ac7b29712ff6657b31bdbcc8a62f33851a793287e757a3f32c9a5184012cf990af8de3b68d3b799da9d6cad5aaba320e3570b6ef7c74a2bdc974c7eda670b32c1c6732dd6ed672a8d7a35e5f39ae72288e1b6be875a6ba6d274bf369dbceb2613b37d367debe1b2ad9844fab8f9ed9b84f1f1dcb5743c621db77301e77b92ae90b6acc40b63aa86aebccba32a360992fb38f99b773e742bbd5cb83666b39eedbc693c31ceef5dceb667950bb15a12ea5f6fbbefbe8990fb75c7202c3b6dd86d58676dde9a3f7b1fb680a4fb8c629871eae71caf461876b9c7268c2354eb9f3cc325b1e3cf9744f5f00e5134724e5712e9170a821b3904df7d1331ce743e541737d9d453d63b38ffe6e78d4d92c05d9c7a692373c66209b6ce8289366d6d133f420102559f6ec3d55e043f1387327a17b01ce4b245ea0a2674689b993145fea9b4679082fcff751b2a6c79c651e05c8f37536cb33079ce599e7bba893f9d405b0eb64e67a46524ae7bc3961620b390252302d01cb16cd5073d31d20414912242809c3e8e531744850726482554a18ebf9939bf74e5af375ce3941cebbc209891448e4f185fc4c260fc9d1511e59ac8d063481b8c5da7098b3bdf491e57537997a4ea3691b8bc8a76953a6a3eed9d4787a89a27eba634fde4c3b289cdab86f2713dee62c8fa7d31b02c81d1e4d2f6d5c7bf3a71a9b9430a6dbd09f3a148afbc63dd5dd744fef6e4e4d369d3e6e2f3d55633b17deb829751a4da79fc6ed7e26d34db887a984da5ebf3bdad7994fddbbd1f4d34ba69f3088b991b31ca599b24d7a9c18e83bf7a90aa0c4dec5531138c66424541124f763e4eb59acd6cbd7c3cc14bfe4fecf62e5a6975d450866b96bc2c7e8942b2df787835790bbfec91d7541eeaa90dc6d5ebde3968d68620c5164fa2a6b4ca7b7b2863bc55bae97d93444cda673378acc23954def360f89dc840f52d3533d9d4ef674da4ea7d3e45850634f0d72132140412edd8eeb5e2ff1cef6ee3ba8eef3c3e977dd519f0d9b2ee5f5b0bdc3233d15d984a584e1ba14576bcf54b97d474a17630fdb7b2bd974e9cefec4f207e0cc94f698e62604231b2d6e2c3f746f33c702d1e2e4ba621eb6cf6f73829f17e74156146a00475904459eff41072044709e352f392316f4a96716a2c549292844c766a7c3deebee648328993010dde99463710da28100a2c5c9d3121042479786a8795e3caadc0672aded2f3d335b9c2fb3ea38c9d6b604e5d6bdab17bc5cad464738eaf306725d9bb8f9520c0d028edc04bb3767c263f7ed5d7741ae9e70ad3c39ecc9d8bc8b3cdf1ef8915ec749b6b4d6536e4957ff92a9fdc8da2e694abf2cc9d8cb4b965fa5b49b60925c6badb5caa416655b6badb573f6d8d94884b27d17936dfb509a12f70d286606f591211c8dd198bd7d0b01dc46ce1ee9192e1bc99abeb5424cb6b6b1e948c2d8d106e5f046f769363542be589f9e09d233a55b2cdf7d3b672b0b87c70d20656b83b468378b471d968601a33ccaebb0344bcb72454f69360b4431168b89a228c644b166719a3ad0c92e257b66f6a474266bda1a019b0d20eaf4bbf9ba947cf988e41a54526dff8efa4ee9dd0deaa6db9d5eef6d8ffa6eaa1ffd3e3c24e5b5685396bb79e7812714ecbcd2bb9cd2abd7628fdca9e575e31d2b44935e3ac8f2f492b672b839bca339bcbceebcac164f5b680a3670593801dd2cdf4d1a7bf95c3be681d9cdeb550b44273611cd8f16682661e6c927049c51396905fac12c75a746bd9eee23e7d877475d1c8bb7777814226f78e450f4df9d79bba38fbcd51c4e885c5fda91eb4fb777bba4a5be95e3e68b7a714cdbb98bb3bdd479bb8f5cf1a84387d7e3cdea824929a5548757bb67cefcbc15a69022620b02794acaa4316b82092f74f501519c4a5ce5b839279d9ca4342328dfdd2b690ce7e756f3c3b15fbd6b6ffbef89752fc6a1f6a7cb7d7569ae3a004fdfe4676232d9c0d16247e301870d1fc8219cd33d9cad06cd26cca1001cb993139413247e7a2614b2f275e1b56fb5eefc11326b34dbf8a80d4a236515e5e425938e1d42985e8b80282caf9f4682e6919e610da13a945b7aeb9e9c75e71195943b8db0dc59a3d94655919985e6ae6bad6013777b3ab7ddd6b36e62fdc574931be6989cbbc97bb2e9aebc9ba08d16eb0c0a0e6fa0bcf492ccb53469920773ea843c66a593a24ab9846d103d13e694ce72163cb65ec2610ecb6833cb7b724f06a2c5ba80d25d8ea084a3ecf2d0e6ae76d5fb61a7f512fe21bc517af810ebd4968778d25eba13891ba5bbbcbf9c96bbe0317c0b9e3f2dce8904585baf2daf9f48348d95d54fcba3454ad175fb5d0067e6d65bf04d0b5709e3c263781b5f8d9a5b6fe19d10873941e09839e64711965f1c93e31e1f639e1ed9c5e2bb92eb9c9ccd5554984373eb34b7c622b2eb292bafd7c1c600a5b3409046081a9b604bfdac4d23f5ad3b8fb4582f44052b38b2565068968d67103c81d440caf2938f36b7ce7243949fdce5c293f6d26b117064addc1d2d1ee5d4991199e527373cb98e93cb8252f1a4bdf43a0421ee8e2558b09462ab4a98161e591e621b2d56161ce6bc74168ce3860470102ddecfdb2f070b73b6c80b8a8656aee956c70645bdbbfccec223885330ade6e0627c571c639efa0221c856e05fcc43801104214886514c4c27580793ba03f0f4cdb22aa762b15833a84dfe706a9e341c36e4d08a1cac393f9d97afc03c72095790bdcc99040e52f8c82e963446b3ea823d6a1e5923f75dda289358d6a4956e3ad0243269f367fc81df4d90abb4f953ba538812e039cc9ab4d376fc0d832f9f972f975f0e90c6e6f1e5a7b3e22f982724826c85fc74ee31e6914bc8021166b28b4dd64e6b6bdd4ce7b6d246aba226e46a581233b48c73f9167ed75116491d04ecb7289560c82befba966d70c1176638620e674300c757d1101efe2aa29f3394425448c2cca27e45d1332acf624e0a7156a83291e96358ba22254cafd0185208061d5bd7616979e5dd090a70e695b7562678b2f29696ab287893d359c2182b29a1cf7c08648641f294b93dbd3257dd710348a51b31de2b18a77685736010b101a4dc57dd86aaeea8bacb8df1ae61bca90faacb9c8630708e8a5e06c758dd51f5d6e932a75b1ce3ae77a52973fa7c389de29dd365f04ecae975d83b5a95c7c0296f3d5c49c1b54515fc93533cb2e0930641103ca1316e65a8054f683f860c1e4f569af5938ac7099ebc4fde7f1f8afe5c7de23067e5f62bb7783c65d58eea2dbdf216d55b5aee78655a5aaeeac93296661fc3d264fac64a4ebf058f2a99c632b717c663c4380c2c5b8cd139c61d63d4e82cb3ba3dfde4950cde517de5630cacc3d2b20ab7bc751b0ae67bc71491710348b9753a6712d461697988995756300f9845928ecdcf152ee3dc1d5a3804ddcd95b21dfaa724400310c0e732037c6ea7f9888aeeb5d71a501b0a64908290188eb0625118ad90864269626834366960d0c2bbf2d665f9eabec834c6a863f33060c058b92c922e8b24f4a9dc4d0fc66ddd98296ecc2a45e5f3306828292a3060fcc0c0306845479486074a63e3f3af1752cfd4dc82d6220b241653bc8c5e453db3fafc2b8a9ea11faae485973d23638e6ecc1453b038a2364e6f9c52ba795406197e60f4031c5920550105433436bf2571440c88a609c016b048b23e00c718a32107788c51cf4cd13347b226c6c9a5a411439b2fe64f2ebf1a2d168c70f593166fb8c2354c9962188f71189fe04f14074048c2cc8bafa257142f2309331f43535df5b1f32b88d2d8e001046f701c96747c05e5f9031cc3994b90ac9991e7fbc3a9d96425c94a1288b372b472c47120180a913533cf9f8640139b3619ad4f1ec3d9c8e5b1e611cc230ba416b4d1451e59208d261006ad3261a206b84078380ece3de2321e78b8459a7e4b922715dd7cc3132330faf1c28993bf20226b5682a0bc850fa501c2c35bccb740a267543edfe2a76752a8ca8488c6e64dc2cb5c16952b73d68b6c7978476f4bf6f29753ce82ca5da5b56795359591f859b93099875b65af224a23cf42444116a23c637c7e00c604c131408cf2fc8909e0c8022906088cbf00824163dd18245a9c31428c28cd8dcfb31c519a037c9e25890589d2f0f019538ba119011c5990b0489235aa8e9b9ea97a9ef5becd437d3ca4ac95b9cc599034cbd0b49687db1bb707b8b5f652e6c62011d3de0463a8d86290628c5a9c3153d46e7a5a7e673f1c536efb21361e43a33436f0ab88c6262def702591101a11254b88a1f58c29bfbc3fff0249d6c87cae0ee3b5c62f46128606e0f82a128b244c0cad676290e819d5e7637e648d8c8b57118b2209332765e1b304f037ee0f306fef815a8cf171e5c8a5266194008e314631314079dee48e2c948c2e4eeef80207636522068c3b562686c02a13c393b181431d1b930655c8e047666387ef8082185c8c1d4e8c4e8c5668293792124325860ba605002e2f1e7375c00358410096f85280974d0e79250693b1b460d10a5dc4881123861723c68360fca85c18b494fb1a0c1a8d9ad764d9a6000418800e312f0000e3a2058b98780396c3eb6505be776971b5429615d601524502f8894faa68e5289ced70a58cc50867e12cc65d6a9fc91a4ec65b66b2a67ede45d43329f167b1baa689310ac0098aac51fd19e5ca88f9814a9542f3191f61d0609024cc7ceac2883f087216bf009230f3ed03d5bbf65229b7b725c71851cff3bc18a3192fc66806e5b24892a4826184da0838c600498901d233e32ac6e7e42a5046952dde9139b5b763c4380dd96107ebed706d9c7e383232323232329b8ccc86fa78b851740001a48a72ac6ea854ac3316b2a0754cd1c800000000c313003030140e888462f16840242b22447e14800d99b44c6e5416e8490e43c818440c00000000000000002000180005759bd20b52719c0bc031aa37fd50e3716742ab084498bb5263a05fba855530724f717ed0caa59cded7c021fadea32df8601aa5f21d93fb57222d828fd3c4505dc8941e4097ef919713cbf2b30749afdb5734fdd84cca45c9275e0b49d62dd47fc4c5f571fa4a9530a57772abe12687fb54652d90ae201baefa6b9ed7db23aa02c5705964d96ea0543a468d232f58d74cf50fc5d91be939c52c5208e9464899c2324516f46fbb4c21ca4e2f0ee0840c2cd95749ce41ec6adc10bb3161a0ec4e24fcc62a5ab8ab7480ba69cf2f2a921d15d6eec220cf51e6184100fb0a0633149100abb223864d960491ba6014c797c4b179d5ad3be10a219af198ae0cb2cd544c4996b287452e2ba6430cb4f52e698143a64b3b02574ce670d43a27d8e2df1788d99093c8cdd677d20971ed9ef5c2a644f2bef89b3381900fe9044896b9b0723e7f922954bcb04c31d76e4c22283964f2fcd304b5e22f861c8be8bf68aeed168b07cae8b2090007d1a4cfb58f1763f0880e9247c92f842a6be17677b03677ff05897f43b5efcf426242607b2144baebcf2113a0dbb33ac9143abd0a9895a532415502608cb0e0c7c2807799f8cb0947300e34a88b48b8d14598a56995dfe67721d743982945cf339b76476282412d5d1bb04d65114788d8a831042855ac9dd56021337940233c4c4d8dd74f8e4dcbc2a919e5bfebc23e31a828c4e89951189708a4e7a33c52cd8bca958fda145dceca588661540e719ed80ea2b1d5b3e7561f5ba36f82b2f18091e2a05203639d24f98a3e8274e64864e35ff013b8805b7026fbd1e6747339618b6454928be61ec10b39271fc62f7fbf8e15b22d8b832fae7b0d1bee5233a5a326e60db4ae07d365dadaccad30cbcac8e05f7ee4070f4d5961931289e9836aedc8011b8113af03ef299a61dfc55691f44eaf8cd866a794136d17c9d8ff20f8ca8e56c0a5d48d9b88052fb30a43d62cd14467f44e8630532f2f5cf1843bce6d81fb285fd14737379f251671d9f0b2b6945ae072b2441abbf61c0d88f58fa87026008b84d54c546300c7dd5e9daa3405f25e8a9254b376ef5b23dbca108b7e8f87c509b63d6c62ecf9064295c667b6505c7f29f3d4193535c7c21d360a616ac938a4b9043fb72fa060869af7806952950e3e54bd69af5f746350687bb692024bc1f8a52c3f9558359a075f8b04756c07203e926147005d3c1760402e5006c54c01caaf31a78468e43ffb67db831bc6add04dbc1009b0fc173403e560c83931e9bc83ac0254e1d7f0492e7d9a5f49569daac77d80dfaf5cfa028f5405cec53bb218b58c9252b1e4b2a2117f13af7f47c625b340374d9cd7464106b6db6a7ce1ce6fd4da202099e71df7089dc5fb33b0d2029d0e2bf5ce95dd93f4fc174793bd3ddf7997c9ba941bd1e19ef96085b327bf9a89c20ceaac37fd0afec48ded1d40615a248636ae12512d06670e38e87894224b9afa430d39d32cf7c92c5510cc13db8358e2e47b82e3dda7ad65ec64c4f03f2e90016eb337aac77b30513cda988a68f7bc6b285dc993a0090755dfe75458811e46e2711e62238e2238f375dbe7912e76a0dbbdf345532b9853b28fed2f32d1a9dac7ea6e558eb2b72f2838129385c06602c0956582f323930f34b93afa988a6a9b99e0ad12e62ca526e804f58092c4796c0865fcd2db1b57ae097b0979f1540ba2f62208ab8578d40f86e64ade1e870e4e4bc9e0f0d5911b0a5f9514c178298e93cb94ed8ff7db591c96aeb66c748457169cf7da10921bfc71c2c4e60679f89ba9b100798c1e53fe97a0b81de89eab9934415ccf1a10536bad3ba42f747dc2d396e65f12c151e60b7d7aa08734c3f328d53a2267bfaf28253d7338a69000e9aa5e140e7cefaa175428e00d83a49d3b1ce6ea2238d85570971c5cd9d5c7745a491a910196bce2981aa2889bb9f816c9c0422ac98e939169680c47aa9f5d0524e3c0a49196ab56a926d4ca1b28fd31a19cda388cd2617af7b65a48342eaf7eb8a691536c6490d68b17e63b2e5ae43aa37a6d501abb9512ff73e26d4c935b744abb02c3dbb4f91daf91c95f978900d357a54ea05f157af4de4b5accfce7a1cf281210cb03d310db6df51dba23db47c667f7d0eb890b0485ae7d7af1ff247f74000d8b3bc533f025292cc7611e10586a826e05cf4d7f7049e30ecca78d950575b609b96a4b9e958f961394dbfeb3fedb736014c46cc7160d75c39407d4dc79caca8233a1cade3d3e661aba5f50f63b43b59b6c1ef8cf7ca1e127dfb1a8de7c0e61b20fa392cea66f869e0673120a2ad31fb3db8a8f75e11ce2ee5ab6098c949d684cc364b56abe3586146a3a73dc80c445e55bf9b1bab5a32ca8365048b655043bd25b485cd39f05aee5bd3e5dd5dcde3483b8b81b682942a76300c439309d6d69ed13dfdafaf7251a9d4abf60f6e604919abab4fcc481e6e8bc081210ea23cde179509a5c3f1cc38b2f7fe8f0a4fa02d5f76ea0db730c540ba0b6794bc980f26e3df2d10a41b3cc6440dd9e93816b1c407c2102f03ac3141ebb81ae3b11550c07f45c72725048ae5219416a807aa43d4c306256fec7f1fa4cda0bc96a7cb816a98c4bfd53bd74eb25da8b24914be7797cfbc6fd0c346d650e1a710c53727b252739e3d9660b531e1f43c6ab04a8f5daba1f17a55a04dea4397cfbbc7ae7c9910bd787bfe02791700f7cbb7f7010357e1eeae7853038b3eb7d58f03b002a739fc32852f0fbad23d00cb06cb007689b147c105b069ae8c98868bd9d8d2f439f3df554be8824053f9eea66186a6d69ceb7919b5c7ba1854ec11fd27c37585f51ae4c7bc6d3ad16eb14fc9480debf0e99d3559523181cef3cdb9fedade5c9c0c0b95c6b07bd53c16207ff4706092554cc566ad0bc9556e1b11c9ec69010864a293e226c6fc45dd6deedc13ab260e8a6928a72f0a5ce667c4f7c776096ab2ab866715c5b39f24ecefe46e1e2444e502128665bf8d28c393910b666cb1a7e4fca724be6106e846213aeccc1c71cefe1e57b51ae11343ecf0191860e459261f2b39e67470dde846066f21dc49817f35e8bcbced35c5e1bc337e658cbaf25bb7c57e5b02f295062ac80b5b03e04eb0efe4f3711dbb8fa4276407c49189a6ccbbfe650f9f2256d71005da185a4d74f8191f47ba405bd414e7221aeffdb2c5072a2dc80cd7a4586311007a2a0fd64e95af01c5ea28cc06fd0b294f3bd8610e3e84d3b17e17f45e64859f1fe875d205c641ad26b8914664d15ac59bac5a18fe47df04b62683048de8f3dc08a6f58541336b3c8a1b570c104199358d0c9a9a8bc781208718c7c57f6fea6261c918d334f37a507314aa250418fe2460c7007fa9843696887758133b7572385309d810848feb69dc48bd10f7324a59bf96a8caece3672807844de09b94ff95853ed2ac53c4e33f66814a35b725f83f200e99c4e7cc0361059d68feb8ef68df92e59387cec460dc9291f309736ea43290c96aa8f33fd9dfee46e8e3fcfa01fa8bdf256ac146773b002c851d9304cc68d31dd22bbb2e56dd9a65fc0952b8b660e580004142cdfaf25d281ca235d088012d773055f01311369fecd6fbf1f68862c7137b11eccc499a3384721ea835c0bf06142c481d2864a2ff0b10e87814f867c185c9b2ad4343a80412a6b2e3734229b3d03e4819117d9a8b7fa0558508ac87336a7abd4027e12bd8f663eb59259bde164f6565f031d45711f68247bee65050f7b597783946cc71c83c0ed11e7d6e0000e20b901ecbee932bb4f5d247300353216575b5813b1d7c390c41e33798549bbd72c989b7f79d6dd319e74756db96d5cfb98262641106f7c14c4f9b25fbc6d124fbfda7355fd3db79ccc6827c1923fae3b980f711e01ef98af7e5d51ffe3ab9af2229326da7e44e5479fad6ec07fd4265041cc0acf79fce690c35971a3a810241ec80b2212b20a91dfa04a62464cd126522fa15cd597deedaa77fa5359358a7e937bbd8f04ad5738bd0df02087d4ceaa5e44c0328255b2df0b3f04b1990b056ae9fbbd0da569528787a997574d307015657079b79a2ece98fa5a7d5dd34d74a51dd6cacdee0b5dc89dfff6517d45a132fab6053425e1ead06ac67f42adee455d8dd86dd2c888b779e6bcb4a4f3eae6a5abe1cff34252e27d8e7e54073c86e61236eccf63d43a760dea504677010e17c1891c30bbc288b1a31a0536d0da1d7463fad555d4197d13424ae002b8fc6e7760be0022eda7b040aebd2e0b3b3ffb7e94fc28ac11cad9d2cb981301e14e5f3e952ce4c9360c94ab0c21d1c0cde4a5ac002da2d0b567025061e630739485a72628b3c5618f241f33478f94aab9e5425a3d18a9052a1513c077cf00f946ab9d00d95a6bd3cd4894860d90d9e6d1123fe2a4a4929b6509c12a5b99f234d2977d8eb82092f5208db158b53dedee11861602ed9194215cdf9874d339b3c91997969833398ba1b662d31a1b4b8522f6e579cd48aeecd58e642fb1c999a0dac064ae5321a29dbdaadb2fef29f9820e31dc031392bd8fb77278c346137b9a1de80f63e98d36a625bd183525ab462862d1f26a374563a0e68358ad1368cfbe369e339320eee86b12e95a1b7585a85fec59feb9535dae9e37ecb3d821b1da95f039925c56b3864e51c33dcaf3097de3788f1775a4628abeebae1b926b3bec6e6c188ddb0e95e55384f8eae37679841a69d2f497c1272de27fb76378c98824f608f6a440734ee380a93d5046adbe103453a246426ad39a0b017d20ec8763b7f360d0eb2f6507d955ed09e6131b2d1368dbbe1fc07d27885d18d84383b186dafdf81268792d6db03cbf70c24dd622ba19e4de2c6f55c29a6ed70a3af4b01630d67aadb5837c4edd67dd47a6f0e2e94db0ae1ccc0eb746c83985428514321ef68dffb9ce326305fba4aaecfe1fb9b2feb65148406c60e788507c1a083ee941837465a5e36a7712ca0cc6658c42537c9f3de1de393c4b35063174a9c539b6e19e302907291946d17ce786e6fbedc820b3ad125787dcb6d515ae623b91037a2ceed4298035489ffe980bf8aa2656e7d6784034a8217c14dbe598015cbcb16d37e2a52cfe6eed3ca16e7d0388bafaf67a94052f3ac829ae0ae3569977e9ea3c9c8a857b6264ce14997be158844bed3132e6e4ffc83d315024ca594ffe3e9f6766d93ab8537f69bf98786e97f43c93ae9d825a5a61b772d59142af6e6d4a7a52368f3b0f71df0ad26708cbe69ce66d53651385b99ec7beb285f484f452519d4e8d0a13721a2131e58a26f76439e8484ff5343d114ff29bc449d8e1d255da587d76d17b13e189f3b6dff6148f5f51bf671992193ac78a4db52efdfe570bde037f568a4f871faa3f48fecffdcc005f9939e5a04d33a0204831ea54be3569b3c37e37f3a08860f5e031b7925ae46ce8510d61d9f263f50c1b8307a362461eb41641cfdce886d98b176955b7623aa541af721b7088d6241eed0c24f704a74f4fc2b9ebffec24c6b62d9e2abf7eba7aca822d1954d4502b987a6dc9072df0d1e8b2591b9423d79824ad9d7d6f16e46c1120de8b93d68d3758796a505777abdb4308f12b09f595d2e011ee0b4c0b1b26b055f52e9121d049baeb221f0053204ce6b304495a7dbb1754924fdb2d6f33ace0ade8a81ad0831a6b6383bcfd8ef41a7d4f9fcce8abee0c3a22ac789fd084a8a9437aa8c8f6b583845e87d62d70ccd116bc73e84aa711a7e403db24ff3cf1581cbb44787919f44e4a9bdd1f653932b589c394b870511c18b92f7d088a1f2fc1d5d2006e7a1820f0087b96d46a4ac47459f7afbc99926f81d72768c490455230aba60880156d6e4c77fd592a66502144b5aa8a21628653cf60a5283116ffd708628d62410cc248c193eba17b921950980e3d5b57d28ad434683fd3d367d2d0b3c2ec59daa0abb81f545eeccd9ab09b606ef718d5eb8d88009af0553a5a0509f004522a60bc22bf94862bbc8883ba2189edee156a7a4930c71f6eefb9e00492651e083a6b81ac6804463e066aa9b3c06240c8abf269c48af7120b951e1a1d4c9a2043f4c5bab55b280f33b1a90a4ff3cbdf5b19aff7f1b7beb90cffdd2fbd1b2e8393ce4bb2c25e2421f0ed1924ad8d5d75cf80fa43a6fc4509694154b0242ed49b5a4a6e87f4a49b81b1234ecbcaccacde91956eef9244bf146f7746b9c36a553ed53a6b35568a40a47a812405352c7d18df8c7b742806057350a95212e43c5915547ccf56dd512f240385681e240a4f7b9f372ad7ba4f933f9e780a0c50bc11386fba66d218632bbc298458799b601e85e3c1b373c4c8e0ec1e658dd9fec554b221fea41287552e77f5e8d43ffefe66549fb8fc04c3ba1a1b8e30d1241bc1f80c582d804d0a01f74d13589d73e66c1f2c2ec418d13bd18b1aa38230f4942c698c105a7868f6f9512266dc468d16cb829c387acd0d34665220c2ad10e165cb8a7382b611354e40af5ec54f93e46bb016c8dda19728e1ece40c9a22ddf73162b03351ab7b6e6af92bfb5673fafd789b00186b2174e552ddf64a42ea5c449d29e16040a00eee62b3bd570aa5925d7dd3c2d21c464422bb2d76c00bc0d0221f7d5b05f8c2179ac5799749d9c7be6a404890d83c88a91fb2b272aa048ea4e6169cce77b9cc6ddb0157fad9168c9ed9df0b6a2ac803e9340ac3b3100d6fcf77556cfe98a52c95de4cd4d043538c0ac06cebb52aed11d6ba0958b9cf5be8ca924b160829fbb0d1f0f5d987ae3016a013b749b11f5d70c0a6fd16ba10b6e1dff871e02080e4886b16583bcf226b2d5a2184883922fd156f305ef9b43449a7d27c048596ca5a02569cc905eabccbf71acbeab07b0e59e8ae7ee4128abfe5b6a91fc6d007738c139ad654c30e0569a9ff99caff9ee37f9e2e1af84205a7482c4a0fdcf8f5db7ef03eeec971efecbc5e8494466e4c5e04b7b3fe2b89eebf720089768768b96d78e5b0b907d5e3dc0d5d87f919a8216b5ba12ad66cb01a915414d40875e06f3d73f3d4790eb6b6fc0e2968ae65615682eec66a9ef7bce002bd329405486e13e4490f0b768d4badb9fe7b12ce2c756189a97a41df8ed2c6c62222599b7413fb3179fe571ee5390942a4973a21b4c400027d5ba48c70774ec0e1aa7e6fe42994d75a457d0a091e1aa4f9997d88def6fbdc3b53bd72818e23945c8e1c92f84fef7563ccb75b674145c55d2c5a7f6847c959c7fb6c7885f536027b41b1be4d98d4f148b28579e067183c36a317e2f2dde1f48240e422cb7107add2d982ef039d658f6e1d1c077d85be50b29eabe87da3d454300d12b55d5d301e40b7d9282cbcc44e7412b30495d96f548adab3ed005c24e8f16ad4c0b93f104121a33bece3ce3536ab7f804226042d83e545a6e0c57c9a9312b0fc518cfd1a8752b7d007680660784448bbc9addb7ea43a8efa2510eb67e8537f51e14bb5b3fb725aee5ba4c87db90007c4d79083b120e9257fcd8e484c2d023c008456b1c9f646271d38c719a3dda575feb4384efcca9b4206ae39ef0f5ef83f4e368113b4e18d59a1146a75673f9146d8ca69b3bdf97787b8ab0a92a3af23b6f42824399331e03f928066977c8c56fe831c7d615ac1ef6a90eda873e07e7755f55d5d1796d7437698637c290c5853558843c10837af1c7b43c182638682659f8582c147a1609814387d68456b923ea82095b96a51158a64e319e371a24e67b0aa8e6b4665bbcb26ab5b66b437b9c68f33185aaa0684328eeb80b68d4ed816607ebd4a48baccd964971ab5ebf82aa703c28e5a51bc5f64d7a167507eddebf8a8294d1860d26bb35a1539a66f810611abbf0c760b0255aef524cf40f6151a3455eb403b9a86cc670c9d378246abce81be45ff505c8202fa2cf4a4e56cc9faf2ac1071875d878b41a5fada3ea1191547315accd0abb92362ceba7d7ad6c1bde9b8dcd39a020d894ad27abee2c18760bb3f8ce59a4971841adf462ec9cff1d5a60e2af9b84fcb37f593bdc556affb3f54770a44b40c513ca907708f90605c47280b37d2160e2fb46db69fec7704da1b6ecb56a17e2f456e619c24674100c3ded775b727036d172c4ed7e792b37cddf5811250ffd1f005fc7716aae1d02c4c344c8f30398691b528c6435d4d25864b96053c702dfb9b71eea8e99f98a4c65a02e32fb8d90bae65267ef304d728a7620a4a20993bd9ab37cd931ba124008db81ee9721da6b590efe09b43bdd089ed71c3a60b4460e4d02f3df5996ea29296a2976c98b07520823d1944ae02d55bf63219c3206dbcdb04d25ebc7ba886d1b2244f21ff8c9bd07336490d7bfca2c2a45ed03c2069587bb59c2bda0025775b9b88c35b8872eaeb1c68a15c156ed817f928ce77f726c0a943efcb3d02f401e267123b091f896d26a6b06d2867bf9b55fe341e860b508d2fedb1a6a1d3102f070eeb850efbedd622f0aabd1b30db4e843972ab2b6dc748ca47a641524455d1c1d8308a5903adf72f50bb9878ce13a8bb2d404894b3e7bb486ce834ed556b258d3ae5f3f368f5f891c086c163900594ba7b729d10bcf7c8648d0d236ccb78cb70dc4394bf4dae35444b539e960d3a36cd9a7b08bd7addd4c097225cd16114bbb76d75bd0fa02e482e20770d2442b03068644c3493d1ce6155723b2c8b827d382a23f6ada1b4b4497e1cb4d677ad2d8bf9a962bd61e8035dc7d1b9dd01ebbeab5cf982e6f9bb89a2e8b0bca1b358d33d94ac46ae4293af1d76510d5aed017078adfb98e2d37eb9b812cbe08cd537419ce9eaafe329f6b9a0cb81eeedb846aec2127b41ebc244bd3129314f8da7fe03f7de9ed6a41dee780c0f488ba031611f0762ddafa6c19c3d32ec972e95a0ba162b352032bbcc4408c21a602dc3dc148110c2bd5517fcfb262e2cbfcff4ecd7e05e6cd735017ee22ec1eb5ef08a46a5142be8487170d17a1cad6306d7117c5f68590a5dd1a34066bf43cacc2e36fc0202c19775147766320f11dc3300ddfa9703650f9944b3c6be3de02cbefc5fc69f5edfcb4b3c5cae22c964ca69331bd870b9319a8ba897dfd1908926f049879eaa615b9757ba876d210b8f915a5c9d44dbd18633846d73c93d6c64bda97fe25e7cea5f8e2f370d8132c4e96c21839e4d455aa89b06cddf8f7a4cbb228d6f992bd6beec31c2c1b6f8478dcb3be67cb19c468ceb66107a3820548fef94392cdaf528aa17bb28f5010a85952dbd0d1764cc20829cb5668b8e972308802cc7b064584666e5194b89ffb9247739f26a47106467b6471a0e3ccdc080b9cc86c6c4c3d30eb109006212a1314f232542759695dfb8389430162c344819bac618a230b8dcc5b8c108528d186b9811ff07bc903f3e80ab708cadec7cfb764c5d53000e18d687952c66705b3f120db7173d82a7654065f0202602baf1a7a1b244ea735a8b8717580020d2d7df53a6c7c6fb009215e8cfbdd84096e5a2df7709f4f5375260b504f356665e3bf0c7167061e3006b47830ea68526e8272fdc6e6ebe0305f72873763acabaffcd5e95f18d6d802ae57a86cd58d0f8b8bcc838daa9d57a81208f25a86a44c996aebcca72847c71fadfd51ad71b2c3ec397bd06ec94f55a4da443a5d94b57b8f4770ded4d70f8f43405984f97bcbec0e8066d875c2e0096bcee61d478afc2f8a2651b7184b115cd184d3b018d4067887156bcf0535ad1c7d78581c2783f4e565eb9443500d9bc11c36628d1e677c510dc95ddc952775dc83e44412343f8713a98cc063e9e90a65f77ac3f77957469f0b3c32c83ad49f65fd895c3bbb68e8a23f00d7b063e1a2149275514adc490bd650529a2dd9c949c86c6b811bbb5d9d2723d807cb6b5ee7f21cf33d6e2b4cd2c54d2812cba41b3ae0f41aa241d8c6eec2ff351b7d9c397f6d08f9ea55f263daf4eecb2c1fbd6705dffbdcfa42f2634aed5193a6e6f5312c2603db63902e7ddac55dd88468ee21232adec121b30a60bb6a6a461a15039a5d75af0484502800d17172d45f12a594d2e60f3737d74c7c2927f670e39e8901c0e774de01ec06df236d99eb2906ef9b152711c1ecd18c5a2b42d1d490ebdbdbfa0eeded49d73a00a3edf861843b4eae5cb8ea24847a5677af6e075dc3d4db462553a89175463d8e6d001c206f49552f9d9f5976f3409dcd14ec841c68216bec2a5526fd1eb2f55045f16ad629debb595b3e4603cf1ba42dcc7b1d18dc73dd989dfd9b3215dc32119a6033830c2748cc4f6ff9c0801f0cb8f251ddb268eef8ac6b4efa9aabddbbfc2a2e0c86a6b2cbefde72af893a33b45e2af6e016abbbf6cd79327fbf27b9922e6d8a56348fb282c8e5d796ad3d0d5334b7d143b4a3d68f132756e61ff649b36a291ea840e04e6d7a20ba60adcf207b41d8f7fed65dc6ad334a3aab591ab6b942cee1e7a15852e5da154cf5a1ac0d808b92419e54bc877a1d2935532d8b6e2dba8c107fb9f847a2e4c02d1fdcb7df37b91b04bf3c7d37ec0d05fb3642d38a3310a3024887250aa5aece984d71931b2f036f4e4fef56325526a5a335f107930e9ef0584cd86276412cc0ad34cb5be3d77663951df7a779c382baefcb0de007918302d4082af3fc3bc6ef358f961f3b68d496328bd63cb2240b80f66b4824b83334fe06cc0a5fd4dc68e361121375ebb05cef12586b7efba6eaa61f3d9a46e6ed7d60127f0b27356b2c4a58147159cf7b28ee8900af983e257157ca83301c561def3eef7ff5fd7f6176bc36054c3d29269da04f829fc6d5a3196ff8d2ba39356a55ea3f21412364b4637f338f1b4308fe943da9f94f63dff29c781ff1a14fdeb472b65adcdd9373deee22c66fe498f2895d75b49e10a39fd8353a7a55931731e0b25e2b4e00cfa850e50b8ab43d1e66c934998b2e714c7c5b580d2cf29046b1140fb5a957f3f603cdf39a160d167892fb1b1ad4deb15508f906d012affb3db17cf285d62d304f347393118a63648350a7727bef8971887a3eaec8002cf84b530667b2481d1ff6554afea74255ab1ec4529e99595afa243b20c9b62072ffbb3845111599aa8b2c1fbfe62f06ecc703287269211bc257b7a0e7c88c2b3b4f8efbfd7bac2a088ae731dee023b7278da907e1d560e21d0299b78a550834ebd485aaf9030e0e4413731a595c1a537dd88f48485cc4f2f2b52fb8a0ac6b8f814fad478a1958c68e1f5e4c4d87429e080ad939fcd78789ceb440ee7b41cedf340322675cba4dfe000e9424466b629729f471471746dbac19f93c8e7db94e87abd2de4502beb48f23f6b88bafa2653df24e570fbb2831c7177f2a98c02bdf50e7865458a54862b974ab5c583f1e419112decbba5cd30ad34c73a09e2b7cd13dc859f9372643649d75bf3263de351fb83ff689143835852f7269f685d10a92b0819490813b2b41e705aa0b70d4ab5c36b590115ef4dc797d7006e945266ebde185f92dd8786742dec80be0b60692759828ea9c312833c6f445ec946e5dd8131a5a2507f6e78632922e2b3d6bf774c0bb315e862408bc50776eaeb32538809faa134e86131ee2d9d7a46102199b84af5123095a0e3d0122fc03722b4a78f63f0f1bb5732eabd427d879520f49abab2c728491bde5b84ccb8735b3b706c054a6d76ff876f9ced1896dbd2a01969a939ddd95d20d38e8836ff28976e905da587f25b246e7345bc08fd9602409aa2a9d668f047523da5a4d0a56f94c84186541859f4f4af2f4609bf2a8c627317507d71e9aebedd30c5d8bd79b08b3620cf20778226709d6d85559a43d5e962be5431375b160d2a5ea613d7b9e6060a8e08dc3e5579f185d8316c109dfdbe0c48c56e08a1a1e824564f68f12412f73aaf9cb7ccd3b6daf2795fdf5d598cdc7a8309ff84e2725da90355e2f6aa3313239f82fac3a1134be95552af5e94a02fe5943a3c4cb09f9040c485ac1b7aba8f30898219ed0a83bc056209f82245f4e1dab568da06b2303e359621face38a3d3554a4aaa3eb15892fc4bb2a04daadf5936fed30f2d639c0c102c21ad140b9b1d68cde643b18772fb882c1d1a05827de8714220727e14254bab43321126a983b3612c4e85337297fb62ab1fd43ce93c753c87503cd44abd66fa15d1cd1a7b2e3b63a8c477c93cc0387694980312e9014655072247314ea36e7871c457c1502d2f2c4d100369a391166e1722c9ee7c9c7c98b82e624de9779ed120ebabf327a4b833d23242d0da163ac42c762b2bf268d46aaf0ceabb2d5945a0b4bd0af3dfc412d921d04e828940ad9974fbeae358a203692517fb793610837bd0a537f5bd386adf8b200392b839a2430ea136da63e2dd174a79408a7ae6b7fce312e817e51bc1707abef7b43d703b1d7dd2534c04dcdb60f8ed6edce33816fe6bf8c86b4285c291203db8241f6e85d8b94a86572271415787dbdf8922150c62e840301085dc1d09ba294582c14cb8c52d1fa44ae2afb2c9a5eb2f5ac5ccfdb203d2858002740bd5ecd7baf51b175274cf79294f9f21e893f656d95dd4208434797a9a9f7680b573c993c606f3f05e667663f014d67c352588d0a6b8674b44d264784026b8250c9a9931a1369f653d1a7a5b833c3853b062ae50fcb0b33d99d2cc693c9706d1b5c2dc6d109583866ba9ef68998245978c2ab24896974f773f308a7e72a47c3ed8a18600095394f9076168b76a2edcdf118a0ed689d3c9b9b1337a848c0665696128c9d308823d57cbd4b5588b08cccb9d0028cea8450a74e679279e11bed8c64364a0168a2fa5cd31373efccdb173ea8883ffbdeccb1506156f5103c166781477d4048e020cc0967d95263a3bec821c9c1d6cfc46aebf9ca9aab71f206f3ac0b57876ddb881dd78c17ac81b66b3e93cf4be9b263b8590d987bce137b89996988a07e24d1e9402b6a9c501c17e2ae98560eedb2ee17735f4fa61a1336f2200c1ea900f139087ad75560ac08f2139e3126fc62d0df9173fa9ab579c099b5cafb1ce1576e88e6bddb057b25e85fb58b2ccb5edd9e532dc1727c5871b68fef40dbfd89543894d4ba4f277894003caa6666a8620cf518ba263e28690ac52a9213c639552d1ec4c006ed6fef533878a286ecb0a5c4136a103cf5227f712a4e52a0082a2810d6c62eca7857971aa719db4aec15fc4db90c331651dc24703aa6a43e7378f36a09a87182558a145aaf5d0f8a438ec7ab4e55ee46f26cd7eec50321a6ad42e2c7973ee36b5eadb839ea22a9d87c187510b9152011a9352d4f435be31245db9104554b83e310beca68a205fccd3c9e9880b761cdf7b7fb1a95263335f1fafa771318e28c9a5d8fb8545e6a5a881d2aae9bef52af9bf6a82035d63f35b4a897e75c8f487fc42fd0c76ce79a712e652ca8cff004ba9e266430c7af5b25a799fe1ccfa0d2ea5a670eebb19f1410a55c3bf1e7320c10af100782116ef548400e8f3349081f927020991c660281c4654d9129cf785b965a538635a38c0e83275d111ab27ccbdf6da9a41ab4abe045ceb571892ea7e6bc824f0ca48d02eab618de1c65032b8e4e6798f83989770262b9c3331cf0f9c46911e8d9a1105a4f9dfd602f7e006556a895fe0f1f0ac07d689fc6779455bcf3c181fe2112c17cb8c0c04d9b3d911aa0dc0b44ef3140a3ea34c83c09101e315e335f5005d99a571c7e1fb0ab9aa637e78e5f460a417b50691c5edce23b33d849fb267c1875893878c3f043859f6d7bfa00613f665035029c54738ba6e8185259c623e022bbd5316cc15482d63bb14128ad97c6eccb05d58141348b0acd2119e5c29ebcbecbf58d9d2bd7b6f2a7c644ae5c630387c2cb1c79d1a38e966791b5c505aca539e518d8feb4790877515fc185aa06437773ebaf133c826ca0553483defad32bd164ff1fc7c6727c162f530d28a13b35f31452b89fe52f57accbf94ebbfbc102b2b77dbcd16e6e252c832ee41b790e862d6904d858c59125d1a880c89a22f8cc8404a740d3491e17a856ae9b18a871695b37c8bb7691333b95e79623a8a43ccd84c433dc89708eab7e8195762ee1402d3b0c708ef94d6cbb03b778cab2664f8d703fb65354fdb2ce0c490d3568ea535ae744f59c850a1d753472cef9bd9e4cb961acb094216a653f81865309b2a9d067608ea6c2a73ba0264c42918d208c4e40405162ce1b215fcbf5db621dd1bdcc10e4a31a78a6608772d878af01b1fee6db51ead92b8c87becd080eb6c446d444e9783a04e67510718516b3c3dde924ffcddb4938fdf6b97616d0fb3ed576a5bfe7a7fa8e63b866b182a1d291ab63bdedf2a1f6245a8f6e386d60d8fefc134ceb2c14298da6276ddfc2e1fc8f96449945cd30c1eda0c9ce1b2b838ebe1b35d113305cdacabeb0eb8255f67e26b4aa5a6a6e36903c128b4eba4e4c9cf1e4e6c9aa513e7aa1115d3d958c3f73455b0a51078ebfe8485093aeff32eb38d6c57ec86c5f7697487cf525dfa02e613903c359539da6920307d5a052de46cefe1270071e1e4a0b1eae7586f8369b59e320b3e45ac284f936e580bd70e5635461fe85433a46dffc8d3eb03a7ebc6e5624f1dc901b885b1854ac6fc12a31af673f2a7a076d4d53137d58d39a5e2c18f9aaba437f2e0bbd7c0223dda46062430666f3198e55bc510a503854c4abe0d338449e6fba93521b74c2e165ee52f6f9a533ab38b50a8d985f4d9e08d6fe4faf7da242910079672556a5acf11fab413f02bfd4b395c9b3fd5f4b459811b05bff097fadcd6178921b51a11732af2a07629701c4a9591cedf720f1f2aedc510e8ca26fe7ca2c3f68bd085009f3c9b6a9cd52cfdc6c6815ff529e0629b6baef6731de845e1af5bdc1cfa4ffbde359a510923c27c772811c1c82e6067f8d522e294c1b537105ee22588357f11e353e84f9ebdb8a7465777865fbe346470ba5917a8beaf0c6b33e44ddf3eef370e7cc00140cc3c12ea85cb46dac8c76558635459fa528fe394cef4e2150add2744ed52d4c4665aa8357e969a1219f0f63ced49f5efaedae4b4af7e65590511e8b9aaf788c3ef2d00e014f5cb583684de0d44d103eb9e7d506c524b9b0f41e5985d9059a1268c6ddc3391cd3de3fc06701adf862583ac35d20616fcc495a7134398169949d543f3468c633932d09866bb2b52abc5c55b65e05c4c2caaca98def471a75119e101e6fc953cf12f0788e9b0381c5636a5810c7b6b5bef7353698df14df892cbe3c739fbdd503c3e0ab38179e1a5c4175955b7c675b164ec76d3d04c96a4269ecfa1766ab2c6596e2dd19110a4a76ed02668acb0ea96ac4ff97eeda34c3fc4a8df5a711fdbb8d26b59e9c152a1414db86302ff6eead7347f7646ca0cbf8f8042777a886d8bf4889e63e1ee331631148fed1130ca25221631571c4c0227693e8e6a6d9ea44d80471047ab1f1c9afb9d3e7e12aef9f40d2e2e6781d781a577940d3684753319846dc33e37376dbcaa0b4f48db8c1746edaea02365696d97568c8a1094f091d31b199c28c09a69b37551fd4f875be1a2f4e9619ba30e0ddc418226c337628901f8400850704a0d9c819fae5ede11db0f7222a18932e76ea52e14c91c6430b324e6ac270b99032aad18e69f1b11ed6d23daf5b4739fd6b4615649de99f6df7b5817a3f535230357854e9f1b9531174f87f4d026ba8719503e838e3a8d8b165fb4ab4fd3e7a195f151d71c5b0e6df29343c76f58acae6e2d3b65d044477dc6fc1602bc01bdbcdf8bd8c79857334f4ed523362fb9b41bdbb649ef0ca3cd0c99161dabb70794b1da20c4a32c7e616e4e18e00d47b59d9941d2dfe64dae612f2974593c25c356037e76bc89650dea6a5f1bf5d49dbe69ef3affd3deae55e07ab732c25eff3d1fad7a79b8e1b58688d78a83abbffad98cc3f16fbf8230ef8f69c83f4d94de99cd752a2ae82ba6caf3420fa7c093b8f929297ef589cf7903de075e6f3dcc6c9993b1ca99a3490d1e63ca5a5d67cbeed5379f097cf869a99ccc890352e6472c5c3e67fda81583ab62b62b7b2d9722a6fa5061f212932e13e538a4dbc4d85f58e34c78b23b116af0a125ced11a5cc432c3f4b0775510f7b15b2f0f35d4eea20d73afafcb206312e71c6e828ace55aadad38b6228520322dc9196df603bd021d50f297f081bf9de4339895355390fee47f810b3f37b5d1c6ae0d9f9bc3d9d249fb0ac8e1f6ad793985c6edfcef57e52198d02a73911fa6c0af475d86ed32bfa1510cc909beaa92651da5872b682794e2dfa480ef813c4ddf59441c12228bf997c27a2e328f9b22b715cafc89af60e3c59dcf8de359bdf4bad3b535a236bde1e8a02dbf01c55baba0c885a39653ba68372e678cb20676f17312a990332a969d0e1b403c94aefeea8b87d6b9e195138cb58ae4594ea6cda98b088495a2f423eed8a459c8d8e4a4aef7d921b938b20644e6b4a8a97e21687d438d2023fe56e825075c8a44582f266ee4a520b3004a0341ad2ed0e54b4740434b9a3d4b9ee6afeecb55c4333da8b35f791cb6448448cd4813eca655a88845859f636a4e68831b025cd522b7094d46043ee8f26cfa967baaa868fc4ad184c194437008fc7134f3c4baed36389265b769d08fd1c268e4939bd4ed3b3036eb3a6805401fb51c2c2428a900d09acea8db9c26ed7426660158069d23203649a0bc6e65e1d85a66f692bcb360f2a3df728dbdde2f1792a925514bb71c2cd4a4a3a439d829625f1989a080fe4227b941d9aa928910f6af4699486b2e3af8ee8fdec3dfb30fc9720a1b0e4c6066d87e8b54c7469c6864a0aa60d350b29b62eb13886f7adddccaf92139399778424f95ba67d60c8d74ecdcf57bf806802ff9e2e6e40ad3d16a97806a7301cbf297d230541db06cbaff6e38208cc0d715b43ec5fb6413dbe75e19f828993d00702586606545c9af8f4cebc78937a85120e1f4ef60b64d5cb669b70fbed388b671da875aeb783e421d30daa80882df8520ff22d2ed856385044051b7c42851b067437398fa809d43b733fc5804c056b97212747f78d9fca5bfca0c0a1443ea37e33a08fa596ec61116fc310281a55afe482e61efac3173cd1e0cecda73af9addaaabddac455672ca077f6d0257505847421b0ef1a44d092b7c04dc718e15f10b12e89c17a31f3d4f5eaee4938ffce6ba7d2ad21a65af459c6cd7bab37aada38e9c0eaeeb369885fc286e096a1067b058463c9eff075d83247065e80d754ab375045cbf553b789c6b97e004109832e812fbd608d9c6a314447d1401588567a1b52b0ddb7cc49cfc7d0338064cc8ca6ea793df299a172c7c20297ea214c05d94ae06f58b87660196327f8ef56412e14bc80ac153c15acc22961814324de4d52bf0ceef53d3a1ecc181322c51f5fb2fdd75e4c0e0ea7201862a12c6e27f2c1ab67787efc55887b702ad7178f3c83025cf10be9a76edf8293c7853c51b6585f1be9edb42cebdfd728528694cc09900a894b1c27fa1861f9abf11f455607fe19dd8b35c69b86c082e9f46380cdc414109e33901193e106abfca785c47bd9b5a35ca2529eda52be86d6524b95f424b92ef1752df3410e169ee650de89fc62f4b4c3fceb9a0487a129bf68848287df8909b518a344909a1d18b39b746a66758b0a6676268c826e7ef7b9335ac54287b7f9c8c1990d7ebbb6bcb8ce41ce4186f92f858ab74cc93905d2f876781750206c4448871bf3aaea493129fa011bde17bbd34fba12ee96ddae25ab48fe6608a882c642ff089340166fa6b5ef7e537e7918cc2a0946bd53b1c564ad6d99595e37b2c28f91d90e8b02176e4c163ebbcfd4a934c55e72baebaf8c5bc790c2ae7e7cdbd50bcec040f676204092180a3d8bf58cdf8778003436adaf081a196a15b2acbcc9fdacc63a3a3306b36a46a6b2a7668bcc581ba5495c3c603edb43fec8fd6ca1eb7bf7532a971036f9e3cfd1c9cee1e2cabfe815a1a3e3011ea649022c629731495f542987c5a95d06b4c912591d487ac765d6bca9c67790c57cd01480739155cf619bd3bfa397e08309c40687cf5efeef6b1bd83ddb36213e5c367973c34e791e79ab552f718ce070fb2e26a9d4b86e4010951a63d29278cb45a6d64756a8fa74091e43d975c16bd23b62abe359a3f21e504ea54410934a478ad8626420d3deab47769a8529adb01123f891c2f8d5abf45fdc98b0e4b2d1db18be238888f362ba846ca961e4371c60d1044d1a97c846500115fa17f669640fdbb87258261ecce9b7f4cd2191c13f6b726524d2a44e61648b928fc205aca05342b46d45c0f7e85dde4ba72e82c5386a7bf511ec31aad2e091c920f9e2521ddf712ba11c97a6ca666774680b7e1fbdf2da48a224dab17718ef3cd39d4e7726c7a5a0381348dd3b6d05442780ae407167ef7dff9477c6b2a3134f86706c59bfc025488e5ea7805e799d021a1b86ad5b16a4b4cd9a7c57e077d102467afdfbe85a142a4c99aeb2415821c514acea374c184bca2c0bd7a32249f3c52484507b611b13ffbd8438b6b9753b5680f37ca4798683516144f89114113ad38219904edffffbf410b7ad6e1fcb3eed273efbed421d7b6e1777ad5665d3fce4f040b41660cc95d93a417076bf8ee8c0ff48108bf45c6290b09259ea881cee1f05a6251e0704fc6a4067f28febb703ac8f402dab82851d8a1604191563f11adad1ec514cc0c7b33f45fbe89e26a832a72aab594de1263ea287effe12aa76be9c3e88c7662750cd364b2ed208f3e06e8eabea5d576a9f263a7f4d454225402606bc7c2c310b9887d73e9f6c4cb0dcbf436c3207d7367843346d7c69adacfe62f57ea9727dbfe1a9be8dea869eb15f15a6778d74fcf4971f471b15f531dc81c6793ff5688cec1bedf5ed1b7d487ae1c36c1c5f58f2427f1ef9e835df20606d2378dc887488fa9a1827eee99031f0d5875248a8880833070ee53fb05beea5e9c006f13f98225ee748dfec0f7baeb7b07978446c9fc546cd62449d4e00ae553abb343a1f2a288392e12c23cb28da5df5a62fe79ceef8c8c3d2018730beb18196049afa673c03270c9437feb7c46de718cb78c254beb8bcfa64b9e0adfacdaa99723131940e115297a7f49f4cfc83817298fc76ac0aac0dd5d43d863b6a6d3d4a8c8544b07bf9479789bbd2b86b372aec3d7b3fe14b070061373b37a7d8bb832543cb8ddd20f4528a89b4d9a037c13fbe627ec2fa9a2930b380e7bc51ff3516213d70362fec3ed60f830d98e37db5b93926a0926421a559db0c25fd0ace1f6680ca191d1a8437865abb723ea0b08feff235ea06c3496f684ce5953b216de95c49429ec999ca2b19c8218957474ec09f1d3a36d918718b6d36bb2f60eb0cc5449f05bd4a3ab43f7ad2d0c8bfddbec84bfe47986512da47df8e19a3f7a06beab028cae04c482c93a015d32106a3da4ab4565558706b857631e169b2829a3f514adb95f84d7d95803677008d9040fe9f24aaea68c7db77fcc28d43a1eece39ab411b97fb32750f274cfb4585b8502ca7c012bdb588bdc78ccc6cdef0353f1fe03779bba1d4d26783fa49a476ad9e3c0e35532ea20e78ee707ca9e579a10d2f1f7817e36698dd32ae088d9499140bd05c1f060fe6f529b66440744fb804263a7eb1c6e6406cf74a14d31ecd39a3bf4925d9a5fe52c5f2c28d6a9ad21e8c637e712df11c9ee47350579633efac03e755b644c375c76945e7a91cc0458eabd7d1ee7599bbe789349417b782c77370ba4c6f77d846837bafe815ce2426476f25995c0862110da81c51b7a1b0a553d74eb279cd47fd4eb65b7107a02b4823db024b25c2e8053d655b8f90b272b1f33a97f91131a2a81aedc82aab3230b7ce8daca725d2a17455026ad6c3e310e2fce5a64a0189a653c74dd23b4389eb70ffded55aa580d5baca8bcc0463262ef559575723afa6a8716d07007d1b0c7d1308e9319d12a2f0ef2e62a6c2b2c4547c109e37613c660b6c01f9d10fbc121f34a0a76c4b2d9305b76bbe4cc65ab4b620106b82a9233a6fa46ade6f9afd6c148894f693bf959ff1b6608e0fb4f98b0da0589bb82d901d65515f5a892f6feacb8b78ebb68dc15845a0653eaf553d4fb1e280de4b0c14ef341c987a808c1d15935501f2df879edca6a73adbb86a188ca835d043d366055dba9c698aad7d2baa53d26b929c9ed0608adacd7a26d4259776cb6c800d710a0f48b0940943424f557944795c558fb2d6d12a499592719073f4b64c141b4802041c3739a6d4ef369a541162b901e6146133284a3100a74a874671e40b1261e3bf6cb0bc4f25789135aa80bae71eadc03f14bc263beafe8936377bad99bc6ff9229152be1375a9745a178b0deef6c59f01daeead651a784b38f50371ccf407383df9632f7066a01a297618b6270ef7c59fe6a954fec8f76193531a1a7720302b4fe4429ab7b0a2f02f98da7624eba87e87bc02bd73f96b1488aa9312380f100e4921e45579b316eeb39f127be6d05dffab2542451b7586c2b38c8040169020efc5142302721cc06a52d4eedfb5c4a56dc266dd81c5f3b11c40c8c765245638068952553ad96122a734171efaf45c985432b9fd10ffe25fd4773c184bf3e0f3292b8991eb2c88209c635ee5ef66934d42c9216895e881af4821d6f25faa1131cc187c7f96e5fd1f6a4cde22a03cda38a7d32c0b428933e705cf20b65319838b993c35525a507dc3ba68af8aa4b7a011e17f70a67b0bdb48ab8fd8cb796e32a9cf5a1f5626bd127d78d7b38b5fa71ee621be14cd460b2a45c5ede0dadec5880bb2aa709fe4c94f3a13c5ea03147663cc1273214289bc82f865839daf9284b8e344220200e34c2688e31456b928ff045397a83c000639ba4539ee56779235b7ef4bfd1c0ff60d624dfe16b925efe6bde3d0a8c9c3893a7a7649a636247889bb9e05e008ceab442b03a622f84351a61c9930367563d205ed7680f47a054187eb5dd40beb65978752facbc41b14955c7a3629601282380d2a489b389f561864827ea8c87e920608be31b3fac9e3cef2075df8f84b608db354ab5ae67e1a6e03b1bcec1d07bf147980830901cc3c9ecb544bb9ab1d0340c65280dcbfd9dfdae2c362831a863351298c9b5d4bcdbb73201e73bb7cc120eae4953f11850ef84bf8dbd9085f64d052ab7b58df7cebccb29d8413f26f04946978629782d701357959f78e598ae23a1d131ab92525a3f2eb2d1b929c4140439ad7c0221a59c503b9ed7ec471f580c6c3eb2496ca2e6fdb059c192148c68f886b86e8a5b6755681076f4830e42a0af2e1ec7d4836e13ce6c9bb20e525dd2123e4a53b7fc900745b43206a5970fe314351f81e43e882a7d2177f169852f360c72699e622391729e18744aa8025105c2090bb956394956ac9a8262e9baf4756611cc0815f20092b477d7abca9d27491488e4d762a85106c2328eb794586d913dd0e03cff9cee5830523c00eb34c1ac7782fe721cc56143a7575d151cfde3536faf491cb4d326e3843a9b31245867367435cfad6868c88bbb77aa3c7f278c16d364bbc88ab613ba3438c02040e9421fb4e52adca70212493f16971cee32acc38423599dd6f2aa647a222481e0cdf8ac78944313a23ea15fa5ff799c1d1698c2529497445ce53d00b790520ea41b58015242a299e5458c8b91aa1cac039e190f7c9ee1fa644793a0954de497265b2082f34c484a6e89607128d8ad313d7673ba62b124f413edf686b7aaa27d388c073321b01cde34a42ff593f238828dace0807d44623401cd43a44822d2b45a10651f150d0802fe6045490affe4f7675f14fbf4b270951cc09bd2c70522fb45947245891fa48912e2435d1503a907903eb4ee1efb5c2d1ca96f8703740b862b639bda761d0ebe2ad6e2ac8146ba78c2d74e1fe5fb6dce64af3cea7daa23e4b0835c58f1dc69ff57558546461deed3437875f6bca132b730edf3e5b275268c14eb7ab0c2bf251b315ceff5ae0d2ce5826a8f4ff4bce82df803cd2c8b14c10199b43b2e5d73e5bfb5154103056650d90ffa933dc90c32ff9dc9602a016424418031883ab6a53b8bf5cdf07a0a0cb22d87584030e29885a7feb6d8699a18a01bafc36281ed26627d463750e835514e200850851188c32968a3b946225092ca8c2e521785fd489e2edd942ae08e72ecf4da9a64a5ca40ca1c75a9e95e73f8c5d4cc1766e6a2da88d9609f234afed0ab597888a9f91feef94c8d4e44eb1452303e745a03541a5eb81ba55882cccef94d6044904065b66fe03d542eee04f05ffcd9bb77b2a700166b2a372adedbe79a6e3472d6fd34d293a4863614e3a5a13441f8fdb2e24230b1eb7d95137d39e8ac7a955abc578849932133d88cfa8b786da8f742602aaf573d904d5532daffe0687ec68a68c78acf88f09c526a3237c12e30e6f7a5240ddcbf5c96f53e538a3ce95261779e4d70439759c1b8fb57a9b8d8a791d773cf0f02e79b1b0e02772bb8e61712d27548fc904a2ca7b4c138600e2ebe9f1f46e10d1c7bea98a435fccf02fdc8db7af8868c93d18abd661090248827fa13e54ae5801c52688f2a70beb3acce8cf1522f1df3a4bb7c6653b33464778c5d574d45be3222fba67e6c4956c7a5b362460e3f118ddf1b4cdf3f38f8350c1d15960feba90041b39de8fed8750cb4d87a4dd4d252f91245788f8b6b9a44e54277ff27f3ef4c05916ba2616dbf0f32546ed00fb102b7653accb4e551c9711f55f70583cc49e73d3c49da326d7292e6cd81adac677d62a193252c5c557d5fa5b22546280c2d9785bc1b722020fbc8bc18a4841bc3eebef5c6f940703fc69b0b2404e2efc56c340e982f6d661b91c9523ed8d06d99dfb7a9b82deb69954fe08ff79b3172e2337d7d81221371543466d812cd73e134b37e39373d8d0f7ae21d4529b040f2889a295b06171dff55f8e554458c2507943ea8ad1868e1c947970f63612d18060369adea8bc0d101b1d00ba15b24f9483efbf0d79d95063e9fa28ca35bf10b2233dd488527b4cbcc6007063c5c4b5e69d6893ce61119c45350bec4315628b6f11a9e59738458ad37ceb27b9c26d5e247c10b0f310adf6d205fa9adfa9da9fe177e18c59a46ed71c501a4fa19bfec9aaabc041aeb2464b495bf9d9325de7792c6dc3d15dbd3e06453d7e032f29abb06045d2f027fb10bfdc677209f205b2be266826c454feeb93cc84b522a85fc7209a9358783e859dae4eb14fbe0b34717a404987372b5793c29d06745693125cac0bd0c0b3da0c7f055d71ea8464d0eb219634f37e67a762fd5f9715d894f4da559b539e4a57c8922cd0761e71a4501b8a380d765d318c45583092024038451b4ce6219c1d7eebef2b826478339b2f4986b30ceb69288501cf84b5340212472b53ba3ca2ec8859f5aeacdccf5e3ab3880d9ae98f444cea33e6cc696702c885019f0e56248609d81c4402db562ebd0c62970e7a849592889c39bb8fbff851d402abe6c039d15fb832298f2412e18a7e90e20c34941af724dca0b7bbe7e9c14d29b53b03f07d089794b4b839af2554e0e4b374875b32fcf6231d44d350169fb1f706d6e85e8029bc25eb2a37520e2e2dc2e3d7568b2b3efa87e6a57cb2b452531c30ab22f8d7b0551eebbac9115059990bc55de8bf9bb2e64773b59a357b4b370d7dbfe51ac5adfb1090033e049351019d3121c47012e628fc5c9163f25d0ec865aeb3181453a40de499670d03e81b004e5d25c2df81fbaaac6cf3514c513625d3ec4e9e93c36ba41aa117a85544918db07256b9bf4ce6d41d0aa50f612187ccc828aea1b0562a81bf432064cbf21f820b3629a46a9a3ed79c99f9acc898ec1b12bc7d2015e014b5849e220582b3da472bf39247c97b4343bca3dca64400d93fdcdcc5739fc89bfb1a31c6a6f41483dbe5e06b4d1fdc5aeb36c5311f93e72b6ecbd1f037699ae6845859e3e8dd073e19e76228ea6f34c10402bdd7fbde633b36d00472e3fc364b665ad4407a90d363560763638ef4279aeb7ca5a7d07f0ed814bf574ca20060e0f663d0f29b61e9805dfe81783e43eec0860732b34819e3eec504c0267e3d4c75cf5b4b0f3eb533035553fefbe0939f6764be2ec419c932847e9d26ed917499f644dd5be5d15ceb505a7410e89ce84ba0a252d3e68eca96d108f6b9547e3e0e30502a03d58af609d4a34662f495fc3a0a3e728949750f8e96c89ce8b8342a5cca5623239a70103d70731e61cbce09b2dad602771238fbaa08649081adc52338b766c54efe54ed05711e51e71d0535ca77692a652fda90c8073ddbbc106a6677c3d5961916d510b8a69749ba93931681070d587c0fca229a2fa3e8324442ddd0750be2a517b6df5dc19113e0534f87592d8b911dd506866ce95f8459d1744908fe8d6cac410282c04ada0542b64c323288a5c59a9d878c56447cce7e0e51cd8b572e890c881476ede2224499736c12523152874103bb302db7205928132e045008fdedddfccd2a4a0972fea9a1cb6c5a9b23ff3798bfa63381d1b4b6ae1d8c7e26aac1dd3c9c55cfe2a035cca841be81523b77410739495ef227fe20deebaeaae9b96f02dd5e94a9c2c970948c3d1f33cf054dc24b220e97bfb95a5cda2c1b673c322928b9025894b43823cd60771c4419c59ddc6a8e7f532cd63dfc59a00a36b0acfb1be57edccf85492f9866e2f5c70bc9875b46e5c63f7e00e9dc7be344561b159fab51cfb694e35c69ac7f58ef721e996a37bd60f8a15ebfde67cf3289dbfb61da234358a6b03cbc0404a8ad3d6519383d67cda9418d54f50bed82a2416481d9a176f30c7529c12839305e8d67f179b9d7ca0ef1b5e8709ddc30df620c4c251a1a5261c6f36079f056c05097ce02aac75cfdfa0888f4b14e34d7b43df068d978d00d437383e22f48ebc31f0224e3062765e98c6d6fecc75f3fa99453921f9846efa8a2176a1418d6acd6cd74a6965b883664ad2f6da2cec4191219b83669aa77347abda4546c200552d6f9644d9a840bf71302a19b7a2a3e3ff34f68e006e9a98e890c8ee5e7ad17b5413f03444177850a4e0f499a2a061cf34a800b353938bd1f5113761d0c2e2c520269659db220826b07642450c1a3e1382cf616ac27f8a4ac63386e93f9354d2d3975eb12e3ee2dbc4e74ddb371c31c4483c399b6f2cc1263d084317dc0420b914038fa1e9833dde30b21260d5f25eb46aa982cfaacff790c53ccb9e8d35e4cffca3e1e1d4a2991b43d01b7e78137bb59a7df910072e3948f9cab8c01214d7329ebe2200fcac099e0e56d8d0703faa38184b3aff578d6a8ba8dfacb53a54b286ac1e0c7f040430b7664b13483d3d41eb54bf2488ffc996f11fed5d0dcf0072a5ef6ec8162313755ec7e4b5998d4dbf3033ff8b51163ec5ccfbb6f189975900c2725d8a794675fe411e72502de6c05c12d2569b53d2dcc433b8fc3cd019f7db80f7c1514a9ecd27927d043891683569d6f11c9591a91d6ad73b85092e7428b4ebeb264ad3909ec185ac515fa0b05e8c1c3b5bfbef9bc0585d2aec7c2b687a5a95da5c47d354909f0d07d1e2a48d96589c3df2f6b40c095472af0118010d8d9d50d7954d85aea25fc4327ee65d75fde57218baedd5bc0ef13f39e5f67e1f3dc1a226ead32e2b387bfe6ea61071773e7a764edd640665de8b2ea6f89a2e5aca8ab28083cdb81fc04121e6fb1c006ff1ea2396cfa913ee8e2114b122b5d3392da0c334b70715d3c175749f6c71494f55542252e31ef36462367e72536268b93b50b0b1e60bb6cc50d4395b1332a10f4bd846f4e85e3e463c7d3c2ec58f7785ffa1f87b40ddf37a86ea48ae3605cde84d9b35a4dbed4f61078e05a2316887e587041f4d821713099f14d3ae41980e3c415a4308989751dfa63c0f6abf9d2a8804d8445d5e226422c09abf3e3d29bcce7d2815aab082400904bfccbd13b6e6afbe8d8e2785b984b025f4ea4784cf8769a05ab820ef54c11ae0d3c40ffbf163859c1c240e134fffb6b29cbfed6dce27b24510f00b3cc0f9f06fe6661c677f6eb29a8cc815b1d969e986974d015ffa73709890d87611dc22492b6ac8ecde8e0300137bdcc500d39f4df87822965eb50a3432906a435591a49cd0e6e1e291074ac9e3f3aa4369edbeb4c815f1c6e6d9d065ce5da26a0765f477c922ab7ccd47c4e571bb4bf6e9a5e24bb2e80cafdec4686aa51b14ffef6e2260ba72e4d614000799bbee44396f115440197f80e27c68e59e02fef4b9b74df48094a4c3eb9fbcb263644d3b475a4945228b35f4b20148cef0b52ba34fe451f3ca4b48a8850d9c6ddc2f27f64147060a59900de88e290a9e2216b5b9c9ff8577d8981d984e1995ca0ca2dc23987a62bebd2215f59efc4b18b36a5529d4868e1637d231cbbad9b9b1ee34675c5f626cd55de675e168135a6b922fe58493acc480624e940550ff962fe0cf4ab5c15a89c74ce7e52524c0ac016574e5bd84df6aa4dfd821d0acfe43237cd8fc253b13184e5a566a5a3b2400d41e9029fe331f383dc6d02647bf85f50ac3509b96306fe79da4da821883ce212c6d304442eac053050f86922f68d98c200319585a2c055710cc1af11dd3a7a3ae5b3f5c3b215d1449c3c131061223de3cad3655d682733733a2daf4c62adc3cff0fad2798034c80ee5f17f034120e810a0ac33ac1e444b8a14852dc10cb9b76e101793a1ae12bce1f6aeb2c3ff7b7ffe86c303e08e7d164e7842368c86467d7c81a56369929a2cd86bd831be5b35925b78280ac26059249de95ae392d37f969ab05cc520586fab562c9bd4c33cd869fee324a7fb6c8d5a68d4a08a7ae841c4f44374ab7ec03cc5b758f36230e8c01a1ce4c5434e07deb104e7e0edfe42728ffeef9642b62714b655401bb33148dbb5f873febe80835f6031d7b25f56ea29f09a8a28ecc86615d45e1ac66e5744e3e100aefe7705507b55f093ee140ca03c4cf67025e5831f76565c7e79b1ebe658a4a8d67dd836ba5f2d6cfea69b801a21e433a2d4e3ce306934d8e783309ec1620dc427840ab56da9572aca4f7b26471716b6953bd05e8250b9dc9a47c1c4a8f249d969a63045086a7c63f4f4182c72577360fce5713e0ddbeda16e87f56c8355c9e878bacc1b7b136b3212e2650ed6def5d0c8e51dcb014a062bba8a79fd6e8a09bee8b3f7cb22b30937d984bd36728e5384ac68206e7c91a229eccc797f1959ec57fa0b2edfcbbbe86bd1388074617470024f747ae5078e45c0790f126cf452b9ea1edfa26d5f4325015fbc4ab009b0d9d7cb9d2e22e1992d973d8300abcd99fac93e42c4e31b6b0465467c7b675c5e39fa538c1d8256c7298a369bc70b8fe3133bf6376aaa231bf79b47b9f14fb590afc8fa87411d8b3d75e67db5ebd851d1c8f52dd1e5243e15dbcf26b216f2440cd6ec1fe64bc2b96b26806c956062da9c7e74e074dd07146b4153268f537f3b3727d86ec74474fed45ad68e661ba4d6c0aca8745ffa2d8b7290a4bce1083cc918f0330817969205c70fb28bfa466451a2390f1321b3d11e9a60b6c1c79ccc28e696898a70401c18dcc7fa17fe1f331f0a0898653fc756d5de02df3bc3988a63cb8cc6052db01e037fe71f98aa1e03ed521eab50d7afb3880683095a4c925e4a0a3c3cd166a21747699082a37e1088dd2463181b2ba90b77bf33eb5b959e8489e75b2aba6c93fdbd7bb57de34c15dd3cd604660c48241ae62b4e23d9af1d34809d6d36a0a76c44dc63bd599c352f6da1bcaadb5101c5412494b954b8b98ac40d90ff7f2500aed0b7c3428fdff55a52e4b5584625c3c9e53abc336f59c06fd05b6a245cdb335c7c5c81722e070b798fd9b30c2d28e483e31fa0e31f83c67b40d9e9279f50f9c9263717ab33fc14e9cc996f890a948805f53b2fa6604cc48745048507fd3768d3c3aa8bcd1d7a1318574cdbb238fdbac1d67b95f86bc5d26cb83cd5e3e1e3173215b9817131648c8e6ed3ea3dbe2023646ed33e6efa8ed537a7d33d01faf128c2aaa99f05a5bebdf8ddcf60b8b0fe3be104794138144a39929a09d284918fb22c9ca94862f6cdb9f0f799b82b0bc19be537912e80ff93bf04ee8fcb0cfca69674d709635e882bb0a72c555d242cb87e26ddc9805884887c6699e3dbc8f130586b53b245d9fb2855144772f95acc4eeb70042405997634a2eb91eb28a8172ae37656a8c194888aaa2c64ddd37c180db45162053b3d0fb4a2d592eb9a20408b7f78c44dfda5aa0f51a972016f54498a8951768388ed98e6c0feadf02b60ff0d56cdc52377209e923a3d5f007d74c621e704ac839506494e199541c9a6c1825bb0180bf5c34531d169e79401b62b9d28ecd917642008f579f5d6f930b094c759023c95c207a836c363a1591845733094b5a971d737113afdb8c9cff0355b963b0bcd7415ddcac7b9994d0deab55ca9bfc885005a460b4d7758d61650076c89d76b34de10478764b25d49aaabb9749e53b2735e38511c8c97918dede03a8b1ae25a37bd523842f35976eeffa6bf31481a07a1b575ca90d3d4b9be231e69cc2e2f1560597d0e0f6939a006885248318e10a3500e6d0f0126eed30e7a6ee37d1b4d90369773bb113ab4211e80725812ab31e326a8178fb584f0abf507d521d1fb9bd293b021fc185d177e6a336ed2e537341983b8d37265c1cf309a3334b8d47c0c496b0b4a2828a5dd71453eeff2a7d34aee31a4b6dc47676033c9c6ac0a7e95e572b44afbe51e83fae328e39d4d336ee2744b3b210004df74370de331d69c2601ee0466830083f16afc1094eb0fa45ab8c955803bfd21f247439e76c6104cb580d091d11e4486db91c8116fcd9644e1120b566d7daf5353337398710cce1af227a0af051cf8f0a3c4ac62f7415c01933efd76740a7e28c40df903d586caecde6d36edb8532885e44d4edfb3744d829e4a5bddcfd9458a99efaac2e44fdbb9d109b670d650d8d1a41cb13a16ffda7922ae28cc4be5404078654844a372053e9b46d13a575d99f5dca31d8f81089ea7665013235060fe8ccffb615d1d60b58b0889ae5a29306f7b78b64093e8c2825c2b4db189887b28b94c99ec6c2a4fac9aac9c88d591331b15fbb92a5b39103b84547d72ca49ca3a146b2aa50b5de77114074f3fda100d2f0eb68819f940cc70b15b878ba83a268edd3a19747000716b834c5aa2916655fb7cd008591fd92b3a4c028f0a5412b329f0bda739d08314f27fcdebf8061de5bcb7d7ddb10c39488b279796c2eafefae948ae5224461c361ed1bfcdea011d33da7df42036540a78258dfa3061b7c8f7a4a0d54808243953aede4a98fb2c95259a5b461c61adfdcb682bc64c64ea31f1d35ac3bd9311ee908904f97f31466e942921c08f2381af0b6dd8a29fbf388c3664c49120a31d57eece2ea6e06f344ccd7e66cf4ad6a26c45e4fa844e8759c1414379d21803b90ef7d6cc4b1ddc98e4e3cef6a5cb86f127b7accc0628eb88bf13e753b82cf90089e1ada0bd1d7f66f58ee76b7e11d7e7ec0ac54574202104702535fc83c0b7ee948e5e59b530ebfcfb69d1443f8ba8e60da3eea20121138f9fe57cc5011d8cf959823c85832d7603422b8b413cbd73798f04d3114e703592a4417153aa5d06240216f57655bf7172579bca3437ec215147dc4a331ffcb5597f26d03d6392721a776366f7d608f81294869c514fb7d70898b07bd8c5f47800e1d2f66682a74b902fd706a70712a4c1ba461bb7c85bfb8551a622c6ab751eea24e1ff4ea8124f5bdfa2aab32cffb7a0a0955bd0e92def2cdd4c367286c7733fadc4a06b584f28836e0102c94f1334657fb50a687bf8064bdd10510dba22c00a3301f6e0be123a7833baabfd129dc109dd8133d0853e65f6b0c4e2a2cf9f1d0051712f1ed5a4053350a9146f850245565f3b62b84ceee680c4ebd279b65d0c8e67aeb566f7b3503d0426620c1f3638556b9fac92dd294902e94e06e8b611d65977dc913dcc39be55e495eea6e3fd2a91d90c9d596b47981ff641909bf23e73f09a6c09ba34729d5040e6052d2f70acb6add8c88568118d2adf7a2a01c52c5e5537d26b9fedab51302a62bf0d3eb45a2c39fe138546ea9e0f170068d8b884b1904fbc642c57045b2e63916693c788b8a27017b1d51e5e948cd2cf6453d4c17b7f9946d24173c4fea967eb8beffba6a1981c2aafeae1fb81b6f1feeea3c14940b45eda947a234022e1305ab258171761ffdcfaec4a41f6cb3368af089daf19c777577ea91d63cd3ac92fed29a3552c247f3b12dcec2b7388011975adf70fac379a6415c42f1305bb52af264fdbbe621ff5199ee7e2a66b4d20f067d54748a9bd96955314e200d1ce52d8774bf427e87b289d03062f68018f176300cab8074c2bfb5df4523da291e4390d044c7921341e43069faa32d300513df9f23f7f5583ba5f55f29f6a32e4c7c6e5e04a2be6462850a3b54aae0f3758b0569a55118b05cd712b0331298742dcda54d2a112fd3da43d430717bd50e5b1b5cdf37b95bfe0e9f3e080457b9ea20cd5ee88529884369541a0d9bec7ee5616d64ac1b6b5589d1f88b3b87a40a808a2739371f49adc2917373c2e2cc71d0e1a01dbbba0f4c8599e3d2791480c6c25e1dc0b9a169716edf1d98a7c609a81141a3fd288033443fe6a4bed45046cc7cc8005c57f1de263288b8321f117a8a43638bd5ac3c67f1d0dc8f6f701f899abf3f6489696bf47a4c857bbc78f9ecb5e115e9ae938d101010567c5c6ad84a722cd760adfa431ff559f45b3e5b9dfb875f2688e2dcaeaecd10eaec5a2f58751532889339997206e10b33ca9c0ed93f9d9d001b749a5d5eea01dd2d3f656c5ead5e5a83c325162352853de97d5501fc2fe1109aba899dfa71dba3bddff2b182e49d073ae188426e66dde3cc89cf2519587e7737b544ab0eb73f361e3c347b7091cb6f211fba85cd75fdb233bbc93ba62b485ec2c5e2457a6045f84c4e7c4e186bd835fa9baeeed247a5559428348548825b8b6986f3f510f1dbf5fa4ceeac8e461c386a7dceeb87f8be0e30c82e6726d768a555f796a6b3d70c1eb0f2bcba02f79d3d450f47b3872303ab4087b2c6ded981d1f010cb74a69fd5a49f069c8966aa80f6747ab7e0bbd91121395dfbadbb0c2bf7f554a6715faa40e23e8b3ad3d9d06269d1dd9c02b274690ecf533807e5c5836ad634fb662a911cccc202555918794b4b65551448fcc294fac7a794926c7843d49c8b419e5e6e87d9108c4d8aafa0e61e467083412cce2112df9d2e8a5a41441a5b21b4f94ba4ff54a94463484f08792480b6b23772916c955b762707f3969febc273d7da006c0754b1ab25b1f7175ffa51312c746803bab4f3601557f23c1f5b786360941647131c4ea6a196ebe4ec6cd5393a300b61c26f5e6c36ac49227b660d2ac512090b8e59929c13c6b7b544da93d4690f3a775b64c8bafbb49f2fd40726ba759cb4f40104511415724d762178b35f9b52194fef2d9b4c08224b428004908ea1257d0b10864e1ebf756eac82ab408a2910af09f9976eb01f271847c290daa3641e61e807d0e33805778d7aafe10421dfdff54a893a0d5333c6a2043d3f2f2796cf61b7cffc2d1fbfab1215b8e405682237171580e55c75e219940f7bfa32c005de9fd44fd72070d678688acf1a4dcc578d8748b2742b8a56962884531e025e7e0b97c1c5b4a8a9cb34b5c25766c3aa39d0038d81ede2c1d20b245f7d914019d1aedc67c6d913b0f2055596d4c9f1d328eafbee2b4b541ecd794736b31df29eb5ef00c9dd6e171f2688cb7768491742089e61658ec9f1c29a0bad6a6214a777a9e21896af35854887a41290a2bf35f853aa2b53f9c5575a0e51f0a7d047ff86f83c4d5cc22a14efbb1697f75de06a1fd8eb16c98f3ad44592f096e2698078935bc7d71c8860aac5074f331a5e48b950effed8bc127f627ab1d0acd1c537a8ae4a2c25b8646b1a8949b2f2cc8d5a44254d3410e45c001a877fc36782b74002a863ed1b2341489eda99bf8aeb79eac2f7c97939d4c5ad9245bc5d54c00cc2a3a486eb61947e8a34692eb89c11881cdb562cc0118fe563fcc82e95aa5ec96e8216ffd592cb7c62afbace345af173ea044dcc45d908dcff6eca52dac4d35d77d796e912b18c246a15a9f869012987edc6f28f0675efbae443ec90fce3f0e10e517005ee47f4c0ccfc81eaccbe160f46073f3c08414eb5901b01a4c5a90109ea1b8c3f21e2de287d593f16f02a80138c1e98e6cddb02dfb51de979ec9aca2d79e3d30bb873a492383b612fb048c79e3c93fdbb46544fc3c6f9d6d08c278c4b9c4b70d6c4038eae9b0815787bbf348ede402592f95637b8deb6759d0b348cc63cd71d2840086114acc9d081903afd48516dc82443ac2742b26e6ace5742b97f0be72ba351fd80af97bce9d94824c66f42cf48d91f243ef10a354c1144d716c725bfbc442315ee1549903c6db3a35f34f325038489f1b55218ab5951e286a14c5d54fa85677442647c5f028bef67f6612c1d4444138695c48d8b1025bfc25026274f10f318cf297d1248164b33e464a334bdba16c16b33c53dd210f9f68dda8fd215cd8685589ca3cea17795ac024ed7272aa181d86929568dc909f47e6a1693f64afb9a0a252a5b62c5ce88a14e19f153639f09a18f346d67ae8cfb3010e27483d43058486075afac7c40f41419fbdc737e8575d37daf3bbd8eb48b742cefff37d10564064e9a4f825406100d4114507e7f9f3a1ec11fe1aceccff9f29d4c87c5650342aab19cd1a1a852037e516d73132d16e3313e251b742f7cbee741e4772b8370352abb66bacb04066d7ec521c605dae2cef77842c841cd4c2f8f4553bc2149fc63dd6bfdacadad3eead2fdda7868f36d914fe86d7152dd97f3e44fbc2b73a39b889146bc2e10313104e5d6f9574b12ad6eedd88068777a1c154ce3ab112fcded75216fc5652810464244d7ac58a193a33077e6d9add3eba6eaed5c730de76b7e9561b64fa72905474efce56d7215acb750f2285c6a130f656b8139029c9bbbb610447b3144f587c70f3e38a5884659934252427b07b7e9e43b1d3489ca53aeb3b62579e5a9a97b18551be38c4f447034ee1b35fbcec9d4f6e3fc313d7b33c5f5ba98be0ad07b4b67592bdf28b8c3cba8ceccb253b7f673fc52144b93c4334f88444b931261c6f25df19ba3c8ce68182ab0832cfa1823266c5eb6624e1637fa896315e9ea2d23f3239bfe2b8ed2b7a94161311980b5c7a666d04c075efa227c21a3a0d4e7f79739a138e7ae7871649ae53f36c76e2ac254f02e4bc57d2c9bc635fcc90a09a182286600e25dc6385a51430c356e93eadc89bc03510a7587b1ec06cbed03756b94627439f4251e595be28b88b23a5ed044b4d6a8cf6acbf3e12bb89acdaf4c2fcd2b4b74dc7e49967f65d349fd71ef1b0ae8b1bd46691377678d67c25d045a835c359a7cbd1e078d211731d88510636d327e43a8b92f754da4c9d40c808c9cb28b0c9ef79c11d0966ddd8fd385a1365aac313f173ca441a409a8b82fe711ce87e4e96475ce9af10a01030b9b39ab9870f2745b45719080e1e5dda79ebff5d5702e4ffcaf3b2ca12205721dee7b3543edd6e3503d778ec31be7f090513f182d2ba3e50983fe21462fc08263452107e8ee0c235a8a3db5378ce895492cd6c64d17c45168af245a3a38998f3996cb4e775c8a7be5fb2191c475a62e7b8b432699aa06f06d214c8829261a31b9bfc0b1bfffbfaf0f109f760dc1c850688e456967bae5cc6bb71359c876f8f95eb536d59b67e30a3626ef091a7465b81415b65dfa993e35d2a74f2024af2e2aabf5690375cc23808096d4dc25c846e43a135b38d84d638b5a49c3604579a3a1d62113a83499a438bab97beff7696a53114e9861ed3a175d2a4b43512de5e4a7cd4001108188baf4e50526366224a7cdb7486845671127dfe4bc33e8a8d58e01ca55f876625b94a6db4377d8c11e3dc4583abc46a7d904698139e5739179483b4c099a8e7f7345a794594f419097d7ea6d4668abe41221817f31c7e072c94718458eb9221530880ea08220a902be61c7fa9e85d62d321093d74362fae7779ecbde03e5bdc33de65958a4f06bf6dfaba0fdc65d80e63952cf968efa340514b6352a0fbbd30f7fc82dc8c616e16ff3d0fc9b3e126a9bf6b3f21799ac4b426eec9dd6598a67a56cc6c59c64ee1b6b0be2f7ba380652e6e8399526a99f4e1e091e1d97fb61cf104d9b523a3e1f0d55bcd98122c35814ce0337f0ff9b7447647e5c22ac5f77fb488540586a7070a2057447a7c67f784f399f8630f072ada12aed1ca9d1c548c2b7f18542262bcdac9efe6ea75fe3eee6ca5060c5fab166e746e1b970e8c9bfbe43bc93f8916c0cc5f1c6e0484a5e8868673fe6196cf20823b37dbad41dbf5ac50d14aeedcc76cd065b1102a312c44f7738310ec9787051a22c2147eb92f026de6f148207c2bfb13d9636b68c60ac87dc5834d15c40ac3f69f9917538ba4e9ec9fc86761c2481d37199a6d545e25985051e1f280c747aaf66428c3f806db4f59bc46bb10a6e1a004cfef29b8a28751c7e71a47825af98680024b34451b7117a219d9fa087098c63dedc4aecfdaf83323f3b75b1161db70d7686edac5cef437de90b3864d6888a7a4931d6546b5c18d9050a1af1f9307cfde966b7c7ea62720f757e9983c41f7e31eab11443fd8e562557ba127a3893c34b11320554908e696c11fad30b72939c313cef7c28cd5ceffc46b0df0d54c4c46f3572b2565b52b1e1309a247b4d928a8278796304847926a8eac11200e8c24c7301b3ae6d18266ca4f478340fa18c7ee9f13553207023b36dd716ac08792b0604288e758d05a2cced28a1f7d6fe9276cfd25deacbf08ee7f4c60003d2aef5e5800248a4407279ca93b60d2336409be5f9e57dbde390ef74a2d995da98b5bd1f5c7a415b848a91a77d6b19571b216c948ec336a59f3463b0cdd78a7c8f602e5136a5d55ebfcce66465ed7dce3456d2d66ab48cbed1563d4a31c24cc37b930f89104f21185822386060748b2802de10e5a4032e277fc3891045f560bc70fd480a67875980b68e378d823ae320689d5d7bf037e6e25fca9a47b0c7d9880137478775d579428333dfbb514e2d345fe41725c21e71c5e9fe550f88a4ea090e564801a37562c53ba7dfed1e3f8ca9fdbf1e43e86bc999b2bf85c5e5cf9e3587b1ecce5910ce47961c76d8a69ad5f1162a1192f9eadc2b8aad17bac0d655c788f3ea4a8c2ce74fec4abef045dfad01ad647a5a1c1dc1b970961787c1aa3b9886962c43b5299fa6ebe8dc0606ce556d822b8b37c3fbaefef6640a05fa1c0c73e26156c70da35213ebd886eab0d5b327ce8a7a9410ffddc4d436b13a30cce801e973e551434d5197f362c080806461415ba061ebbd98dfe0d9cc582e488aa6f2afd681f3ae923945d717862309bfc302b6bf2a34f7d8c623706d57ffd582e54731d51388f83dd173068568a524a4b771b47ec9d33b526b3845d13312fa31fefea2e51100f4d3bc6061c4d418dd041c150dc4093655ef28d5977429b85671ca5ccaac549c1a2d9feb93f340b9fcea5cf00ee8418fdb80e0269ecbd98a431a14184b1c0b5a26e7ff771e66a804a28f88ead4690d3d2c6385fcb00367843a8cda37aa8cda511f747b6bfb883aa107ea2727eb429716785d6e6db8c24db02d2a1713a5c0c2ec8c7cae460084cb311f97428a5091e91d07c6ef8bf874a2a04d6777321b2b744f2ae0c59dff0e0e90dbc74cd261c0b0cbfdb37e8a5d146476202965b4a8261ca03f1accc51fc59600e7d94e2ae7957e2df02508255e6362f1514b908a1b98e59dabc7c1155d4e55f16db88b50d5bffcb269023c798db148d431a8a005e8694b967dd905890216fd01937dbeac0d1d9cd3d598926158707e3c63bec418413e7b06762152fba0092c02614073b6c176bbadf67875c2722430ef8e5df73a29de26cec0c08cc8009ddf1e3a41585f0c6fb4987adf051380fdc3254b86812503c13987e0fc87c5bb22d4287937be484448ddb9cc8e0f46dc8d95243418285d34ece437aaa70847528bf0b52b1ccaaab38c5597614309ee3d85bf5f70239616589be24efc615c88d7130db8202251b483f74eca84a12e3040a32486e87cfab8c34704fcd90bae53cf972808eb1e28f4ff2bef817e8d254f7e9c678f6590d9ebb98bfc2adde866a5e7687efb91d38e4933571500d0364769cbbf31dee020587777706a8ea07a1f870b886dc156f50ba9d325f47ef463fb5de81e3ec7a569cdf015ff47025d5e23a7aa175713177ff5c0a9fb226fc317f236a570147531fca9b3d0051a12eefa3d54ee72dd6ff02056f6fc354a7a487c5176461cdc72ec27ae65f4a17014e4904d7cea00a80bea618cb8f7b3af3fe21052d9b1c7093234ff760a12960dd7605a60e00baa21b97f884d6a87afb2fd6f03200995767aa5867217a08b66740716c1d92914cef66809d9859782a5014884730bbadee32238159c36b4563e2651b874106278ebdb78f24a5af6cc93473c1c375003640d0761659081185e4c2929af421c6e6f10b8498e34770e05677c0556ec50f122332231022e8a29cba446279ef839aea980abdb3e6fe59df685ae019cb3e2750765a74a00d6ad1708c41da780360eb0a345b51b32aecee84f0e531e17a5134fe9505550a3a329208692b736a6e4f81ff18b0ef84c55e0aa2ee81baf2b6b7e412502fe881feb68b6460413f76be8e74af2e94e489d739a5dddd66a14afa291bf49ba6584e6d07cb9ec4329bf61d3ee2453ab7ad12b6493c6205e4149ea84483655e9d0cfc09b42e1396003c2116438163352ee57d8bdd83890b1d6ae74617ab4e678a4158e06a5595ba0483df9ae168af96a3d1f9301609fe8868af7b44ca3d73372a075b1ac25193a76d5ff4561665b48d4dd9d1879eee1c04cde24f429aabb16d046738acacd51b8f2b87688e68b2a30550285c514d7bff6a1798971c79bd10dff5a16859776222b4096c2cf663d31e3d199fad391675ee2c7bf16e0c1099588c82cf305dd139ab906778fbf66fdd0b5a71ffb59f93da9e75389f463b37d8795024b47c3ac66db414731f71f823b3733ad56e34d518d8094651c98018e6077fec02909a3d3a9e598df7f5bffa6d1c8d49b737f58f06d3ac24d742009801aa50076f7474c3fda6ab0b4d3f2ea9ec47f318d43516d6492e632d69a57bbdb7f0b0b7c72f55fcfb41d9284d729618e6fb5cfba96873def08c52c4242be60cb6fbe3308dd025d0ae1d59c1ac28214e05b0674cc283b8fbe956c476bad6b86eef7031e2e18164766c2b2e551a671177020f89e9bc43467823456bbfb0b550353f36777d1ea1b12931fc2a340cbbba36bdbfabac686788bffb6b935aa80aa7d4fd4c4bbd714e394b39cc73aa9c889fdff0494b4a32cbd1faee7489f70358eee51bc4cddcc4f90cabca2f36230e08044de072c7670ef8d852edf3f3704d9debb77a5e4375c990cd1d1a9390bc23a3db201d4e450936681885b2fc46fc9858e5de52e532749045f8d5f0929c9b1a150971d297ea3d1840157b64b3eefe996ba31c71ef87b89228c8bb041a0bfaf307b546178400b3d7ccfaada1a84a1885173a79b3a0e0cd8700d122fc58d102f1bf4bff76573277115c0882021fd7ab40fede00bc4faf692a6e80c32f3d4b8661e011a8ff875e7bfeab2a4fd34a6a33eb0278eb504146190db3889dae5d39827a6b9fa0f356e281813e1af868c8752d7bcd359f9af52fe2b8a0c0033e7c06afa9a012a5bc9dd1db4caf70c23528959c6ecb0e49fbf6565f42beec94c68af302178e84153101613dab762af989f131eea44f81d22bd49d37e4a65f9e087022269373a1614b4816cf5a2217842bc93d729ae603509e5617ab8fc7204f119ef5f499bcdb9e5ae103efc8fa92028fe4636e077b0cd879dde93aabf28a98d84dcdd8c7def7609eb1fa33521f53a7767ceddb174d682c22004572a9dd3bba3e6ff06a1c9921ffd997f6d9492c634447e475126b040a99c044f115e00909c4d739a5acce4f6c6e4144378d0a27193cd1ee1df8dd86d9648ed94b7ce48b5934c2c4817e00c1da5d8a5eaf3c5ed3a7db36981d5663305b3061e791aa61107fb17d981d280c11e139b1b3bb080f8bdd9e29b31161e6458b2650cc812b95f1d38d0cbbc620321d9275aaa2014c4b5426b64ae08db4dfca534ad0923c83b4a60a49d9ba9ae931f79de063f62b3c7e1d21f048c38502a65a4497b5c959391005e1a1131e957666b682f0ddf31a8a8f5c53cbc30df6e729e22e4107d97539178689f5cafdaef4f237cd1fe6680a314cdaca05dda83279dc444a74b6d63de956b758e46074ca02a0b53066bbca30fa078e78721873aa263150f1a5d4b4733f91836994ffaf24c5dd5664bcf4caa7a6296f278be74ea38d61a55e2ec0010a81ce29b92e1e2e94fb070ff77b47bec5b5cc841be4a41f436890c47f3d1227097014d896ab0a5a82d1405aa18a8990e6564f103245644c50f69b0d0c6a69fe8d4ce07bfd08d50ae5765c6a84d89904195c3fcabffdbc189cc6990d8bb0e5b84d3c6a5613699b88904c7f10b27c47061c05d4444b3c966e2e8337cc2555be2eaa3272715502d8f83c2cc7845d2e3d9b3648da4c03c92b15f90ca42a20a01989272ee654757e504886a9eccd2400e226be4c7c6198a6c9d87232287d047778943cc67d2d9bdc7298dc70e4d1c18ba0bf1b23ebd9675e3c8ae7778ee2bc58c547409ab39e2213a5037087f94c95d28bfb2ad13f7659ca4f4ae837124ca3d6e7220a6a38abfc786c9045d924d137813d8fbc015e6b270b315e7abe1883e853cf7c1e80537301c297464891e0dd2f9d9703a0cf1d3742b81dca79efde1d3b190f4f146d61e79553ced1fc6e7bd2f6ed4ee18e8983390782cb6207e8b97081eb9f444c5115a48962c0183d8d24a8d864861fde1cb440e3dd166f22eb5d20e90ec6f85d86e13686305e9601b6ffb56ab953e86244aca9beccc499ef882768023e15db999c35a8741906209f5b719d4b8e0de4b9e437fa45ba9effb183cb51f1218387139f1d5cba870e699a30d7c7d6b0c3429432d14a1f93b9542c2c9429197e32eb27b80af527a4f68c6b405c9189353787165aaa5a5af789418a01a4440dcd76c393ee92967596c08c08a12876f1eea59d1e63352bea24cf86f0af1bb95c2e071366e7b39e2af30393f88d32829edaee75fe55b0a2912cdae0dd1b226196ec0c9321f190e77ad9702fe2731796092455cf8293405ca2b7f9714c19b919d817cb1569279bea091c8cabf081c682015aa9fc2e5e2e0d7fc94545109965de9a950392e7282a31d7b9d2bd800dbca2fc2e10c776fc90bbeabde1799919e88dcd0a6d2cfc016f6db0681921a1d283afbd662f16cd792528232cef2c0a4d68ec886b20e3d23d1ddb0abf345aeec2b1cf132ea7275cebfd6c7400fc8737439c6c86290e2177c22a778bdaaf46064de868d594cd29bc1ea3e689757818146c62ec001d8b5ac437a96d4e8e207cb0038754004e3caad1ed862a72280ee229fcafdbc77838a309bf9899b088a0f046ba6532817cc55dab216394ae4eab923cf85769d02dd510bedc1f36d73fbf7d4ec2057fa13ca99359ed97e6868ae43ed9f309cd5f970c77856553482fa31696059aa61d61d74f799c19159848e0f0abf2941708b8f370233afcc4c5fa3c83d0e10ee075fb75c9194b93dba81b234f3df30470d34e7f631a3ee9fc94f9d00210779ce6118bdc32a07760acb6705a808398b252087205c44b77aee372ae8f5a2a7cdcf7456f08bffab99a07714abe51631fb699fa3866f0c6dae5baf589c650cf09c2d388842cf219820e5c133acd258cc8f3eab4e14d7bdad014eece4e05d7d4da83bb93e2948484a87c78719ca6bd9b9e6bf444fced5e41e3ff9a3a633679d56778ac6d2f1d652f472feba256da8959b89375412368b2eb14c22fa1d5302b8300139c74640890e6e7d1e91f8401c6e26c506b94962e4011bc7f1865603eb6c3648af95df92a03b5bcf5171685a1e1cf0eca46a8c00a2f35628f98db9f84253cef0fc219185a8f2ee0241c30dc9913bb608f3c1b08912c52f38750eaf7b7330bdb78e54e5b8ee586d883d3b139a05b07f57d4f22c53e59884d14912dcce4968b9dfd085b939e55a2baa1fd47c332c59bae7f82f2d53e1a4b4e14aae61c46577d7e0fe4404d975cb81a105a83f65d8bcf190671c0cb038760ad5e3d84be1e3c1503dbd86f907953573b668b9edee75355fe4039fe853e58fa95567cc4afd598b7bb62289621a172d1d8cabad3515b6cec915ce8e37c4e207ad322207272883df1c9e5352ec76f706298e3ceb469bfae6f33847df37ec9a4d74d00377d6e66f7cabf93d24800e304964b83cef7e6d813a44a006e2a084b77f7cee8f0aee435759e2e7167826d8c35a80525fab4e172de7fa8fffa9db071a68c2338562ee051e86f9d6d47eb428b703d5babeaff73072544bfc92cc6487961462a3b5da836d1a159e98a0e171b15cf291c8179d65e592adc82152eca84e85e80e2152943544ccc7e2b3107724e3380a5e29c83fe37e01748253b900f8111331517c2492b8342e10ba041ee978c08838aeee17989b0650e06c2dba2b21282129c8d8b6174017c46a40b8a7f004b8b3f70256e910b1e71be13769211f7785354265d9813b2bdb144070d52859e346f7d03262f7637d293a43231d5c1ed97ad63226f8c97dcee5e1623ea0d1e194a52dd3ea8aa7e497bb021577711574bec8b2da2f6ac9bf9af2555abccababdbfd2ffdd47c04ea7f87a854305c15a539998192636baaae90c84ab6da3f47cbd96d76fad80b4b8ce15cae5cc5eaa66670ff3bd702c0e0dd390b00d05219a45cb7987fb4e173bc6d1686243808df8b12ddbe0ce80da125d67623dd44448484ec480ab70a8d0a8df68008c3d1480c87835710e9c1b99101f7db7b31426855f3c527a594ef4939aa75ce7949693debcd292f4a519725db8e045513539bdb137cc04b9a29cfda8e94ef49cb6a3b7d22c9f89e73ee456a3a091f843b5793b4a0fd7ac45e501b6ea730a8f9059559a1821fdc6ae0f81863841535618c31c60affd6c06ea90b6a7e7db2fa8e31c6ee0f95312988a1a7b7a02c8aac36bdb31175ceb99cd95a08ed3b11767feeb35b06b60a8cdad321e0dd11809d32265a4e736d0bd49d2ac13b5c7325702598c033c53c133d8317b0daad3b1d8c8b576c8fbea58e86657cc52dc2c8e42d1353b43751d1d05b16bb6a929080757a99a0b72e014643ef142d075b570454b0001aeb921c8cfb1d8cbb75f5a070bb9908152c80869ebe729447a5570da5d6ebd313228783ae1d284f0074d5c8bfabffec8e36b94b4b449bdea542a899f53476068cc4319c71cf6aed5cb3374f449f7086dfd12622bcb019e212d126f769f30316189ec1cb627c0fbef6248cb2eaa2c27bf9e8317de0f9b68811c21621eccbb77eadb51f4ef68887551845747bd5459d97883e35ecf08e3ebd4ae3ce2a664c7e2863332686b92464b106250f8a12740fc2a6a68ccdb5ebd7ddeebe3b5b06949d7424603530c1ed1a8d5093daac77577dd1cdb6075babaa12d55e9aed25d99c7bcebdfb66b357aaf5161042082384cfbd67b50a6e67edeac1224723318c7af680f6a9096a4ccc0d2a7063470576aebd38212a53c6e728aaa2a895474d19df7bee3de7a2f401757fa779a61d1a88e48adf1170b6de7bef8b27f8bd9717862f785ac22726475bd0dc4b6b97b2b516253563abaaead54078d990bdb449b6a0464a5bf9508ebab324854ef86077c9409859e1c4122c9d6b72245fe4a1841525e78c8f8ff2c9f808a37c941232495149a184315ef2d0962e07217c314a171f3b4639b17cb1ae4b5a2f9042277c707ee9b66207277a58c0022ba0d802bf3b76d9502ba0b0a1f00fee9061052b988212b6a083e1dd29bc74bc1c9c810a6bc08c99de113150f60202ed1851058cea519e62d5b82752a058967a37a6cea2768836ed786f542b7cf96114c29a52085643b690de0eeaa08437479b5a0a95b38b024da37277389826a208cb1a082aa4668662876898a6ae134258d40c43c00c5b364248411535e98e3e9130b5ee5d578dab945a4729106887c3ec0a2fb8c0ef96659513cba2d72965517a4a596e87e8efa2ce09bba440798e76145e353b8640b18d4664a540f968f494d115721a1415384bc45573dd1d43385129bb6a407dd95c97880a224c450fe53474bddab5d6e6840bc3abe60a2f444f24123108ca4910b16308cbb2dc8e5941a06aed68d38e1a195b42635d73525b7d5159cf053aa8a2e615ad1d39227d8233eb19eda83d4309958d565494723a19d173c5f5b50649f9e4b20c0799e2a15c8472da282ab28cc6d1d096922245bdc80a398de828368813a7115dc869ea2983d3a1889e224241b977a2cb44852497d22e05da6c8a147dfd5a0b82a36b9645b2aa8b5a57cd8f781b8691b86eddfa93d6415b39b91113035b1019af04ccccb409cda063d1cab26cc343ece851b1a97ce0a5431eca90102d888c16a31a45b53661a4d2d21454026096c5932d449689298a10bd8a2e110ea6ef44afaf6c4de90229af2f02e52294cb5b44caeb65620af994fb0107d37d2151443dca65a25ee6608c703014963713519fd94f45c368447f31b32716d39c9327d035f4b6203448ed0bde2a0df5baaef0c249ac2a4c299d5585db25a43dd18280ac2052be17924fbe50c39765599f97552d99021f9c5b901624880c38d0aba2e6d5d0b57387b67ae25e50c020a4efc56bc648219dd65503a1bc6ae021b528f50761493a4acad255cd48515252124af9eea3112d14b8cbbab3950fbb6a687c96597f360a6a788229bc20d0ae085c3613d3b89574f1b48a31ce19e5e3454978d0e17c8fe13867cd8f462d69613fc9035e7e4e675dbf2a6ad2c3538bd1cf499754d46ca0c682064aab3a5429e194925651ca294faf1f148410d253365ec2bb57d6fdbde63d5a1b861f059b75c54e10cc708b4d3e96646baeb5b777bdc7f04b9f483f90b07efd8a97cf35682b278f895a740fc2f9492b0a427819d9e5ac55c9a136ccaee82182dd5f6c21bdbccb86e101c75369590dc7ca87b2ae06695bf08a3a2e6b546d1e75d9c478d7557d51ab306a9bb8f1d09a73ef7a319da05ef15669a8edd45d3557f438819fc412dbc8c34f2adda58352dc2ef7674df0be5073545d3631de1bee11033f69e1264f3d47cb577d5165fc8b1282e669252588c5d7d1b9ebba3efb74bdbdba6a7eb430a4754942708bf112be495b82f241489fab675a5151caf76e6e58bef40962783a5bc607190b1b8ab8c7189d631663ce96a684cf394639caa228d7ccb966ce59ce8dfa44c2cdc5b7abe65073736154116e782039e7dedd1442e7a829db557faf1c1d41d8a636c2cdbdcb26468e76578f18d5ab579fad7ad593cade165e1e92188e79492a10f206cf207b7c1ec5c858649045f6dc7ba33ec1ee5b73a04dbb2be7f29b323e47511545c599df196ce86ca69e733ca34ab35f92a5d88f3df71eb30d3ff7d87b8c1900d4cfb10a8dd0f666a9096aaeb84d3492a06109eeeec01b94d02865636a8d783086e372d136dc7c16ace2252dc670503857b73efb74a356ef2c9c20b15e5596550f8f54e4dd59e8dd691d8de4291d5995b5547ae45401833070cea942470727e190e8e077f66e7e3a3a585e247a74303d904a897ba28333e3d1c1f4ae341bcd861be480654babc26a90423fb53daf58950dbda1b26077e6b0ca68c5361ea9bc571dfc2e1e39550cd1c149e44001890eb5e829bd3c7d3ce47d77922c4a2b2aaddb9255bd04ab97a8eaa556514a7f38fc5e8f6ad4a7918ddbd1c114890ea6f7877ba283dfad9a0dd76cb887dc505bc5a432516fa05215b6def083410f8222080492a00902812810055520ab0850ce00a66f59c04107d32cdec08357ac2f6af5f7f7aaaa5f555596e167550da3fb066af5189fbc6aaa3b6d56b172c394728f073cf5d9a7ea66aafaace86faa3b79902cc65e3d8f5865f39493da1f0ed39b99c0b4b219b6e7f80ace97a8529b2fc559d986e9a33f3eb2b8c0d6696e72523820c1d63d555986a9cb72e3f79c0c3950f6ca2e77591de9a0eff4b136aab55f7e889d106d72a78f35ccfe45edcb78f91acaf9fc4ab3d45e378439fa543d3bd3260786102d430f6f5468a8d9c237f2a0e3e11c78a80c338a552d88d6a1d2a2cf5675a8ec1518b5df72301c1576a7201a26d319268cc3bc5613ab0b1a6a2191ce009203080e57b55e7587ca9ea34f970ed604bff7d804bb7ae990b7d4235e5e0e1dba7cc4cb57b58a555d390bca393f60ad2d50ce0096f0f13ea68442e15aa7cd396fdb71403ef043cd6d496e3d5af4c91901f7db923e312bd640456bb89901f79ca517a19bef33c6f8d28bf3071318044120e7e08aab4375fa2c77bd363546d1a176e5728bf2fe5f66fa14ba10dfd1a719ef0fd1a73ed5f78ba880c9c9bcbc9d0fcf31b835e0649a9029803beadc9c378700479c36b9dbfaaddf84389956c4c1f48b74775b47de62a510c0674871ff84d266552e77b1ee5200408a00543aadaa270e0e0472eed4458aa2fa72d781400f2441d5adf70dae56275d75d505e0c7d5eaa2ab8e894d605c0c01f717d8159660052cb02f88610c76603d3a26c040dc08bb9b73983006049001012c805082320f2c78c0ac70051b5730c1c1e6966106104c6fe821055710d960c60f98153a26c0407a84fb660f6cf16240f9035010d5e03406dc36b4898ed905d7ae02651028915ee04803dc1007b8771a10894c2ee07e8eb671513cf7de7bcebde79c7baf5d0194718807370edc97e5b8267fd013b2dcabd3d6e6a97973736f02cfd0aff6f7ab5df3c7bc79570977e94ea0f9ea36ed8cd588cfe19af5694b3de841f3a1536781d8c5a3726209aeeefe7073adc4c4d4a9cbe3dd3c8f8303872e4ca27302ccae07301a1728dee9b01ab0baf3edb56bbdfcb05525119c7b4ee483fa5e93016df799424be2b384243e447857ec40d192f8f0a0d9243e32883146b704126649d060879e6f6849d0e0c39a0df61950f6d282e8bbc1089e6f4c5f0b22be05d1780038d238c325af645094cf8d5f531dd4d84ccc06b3c15a66a8b80bf7cd92d99867cc46eeb79b3e9c97460583da178963f9f6838591071cdf36f96287841211cf0399f8c702f0bc8dd5c0f445c6d3eebd40515fb08353d0e3762dc20c4e07c35810266c25db8231c1dd5fa24fcd9e30a18146443bfdd04c33d3c05ad0b081fb79009786111a685377c03dd3700e42e8200d1a349e7ca681db39e79ca3a16359a1eaf4633fd7fa654a2b6a76f773743fe7a3c23e9cab53501a833621ec41491961ce6b23900828f57170fd3a9b7dead27cb1e56735ada817e36c2ff67873d4271007727e6e70dd1e34c4d007a05f8e009965a1859f1e4d4553e1839c2eb488430ad6d0634488eb7d3560038c09712101c77b139f44bc2098811f13dcd90b64a27366bf1938cca490841ff4fbdddd3fb8bbbb55f0b3034a8784280deafb3c8d417d8f2e9eb19b78e88078670e6c8d8a8afab4418d27820655eec8f4ef1456d5b4ae46db6565d9527c939255d56665c91ed4e74b49ec78976f80bc37345ac7a9303d95570fc9be38c20db418827d71841b54615a958f0ad33b3fdf4da680c2d378655bba26bd2ed02368527a5df4ba3e2f0931ac01a541cdefd5bcbbde4445e34eed9c0d7a57a0080d8d010deafc9bf37a7e185eb62423ed39b3557a0d14af120f79eaf2d4ec39a9cf0b43d0753311d89ad4de506f2cef6c137b81910beee17e73adbb15101d9d418d118c19d52100be3ffbb039d75ad026391899022730815a80d158b704f48cc68a971602488e00eeec32a8f4143231670f1801761511438b2f8e70032dbe38c20d68e88b01a4978d61f103a62aca87cd44e0f92625944dc6185f0ff8485d948c41f53eaf9a3aa432cc68fa4d4a29e58c2d5f6af912255f7ab2b529a92df59dc442c70f58fec9ebe3b558d9400b5bc8c777f66251ef53a9f62914d89de5ee5d056639bd7bb40d6b81ad83b49004c76096851688e07631be6b897a03baf50c7abb5b0d04028140b79ea329eab2a99be5e79582e42e1b869ba868a6a0ee2afcb410044727989eda02d387b260061c5feaf10e3a7c7c02bbcfbbe71c4c5936376c65c18621b8f76543ad6a35abba6a1ebd6caeea1464514a79d0b33c74f170b76ea60edbba7b7bf57dd9c8c350e83ad0cd13b3bce2276df6807545e04ac80111bae08513b23042c3188ce8d6c56362ead1deb0dc9d5aa2d3cb6a970e961e2c777717d9dc67a96ee4ddfbbdca547e77f99de670efc69dde4c51f6063e043ce2af5314bb72d99b14c66a54972c8f978ff7d02dd0592c5bea017a75d0abd379bd953f4b7f03fa55835e3ee2a99be11f3d75f3cad59183472ff14039e828071d441dc552ea95a5bf6ca64e437d4580d1c4786551a410c25801de498796ba37f4b0be5e3ee233a431549ea35140ba138c1520d3e4702ad626078fa635ddd0335ced0dfdbc215bea410f3a3de8ce5c3ee2bda1b73520070a4d34202707bf1bba86c881c265e36089c76302970033eacf3681a91c4ca9f7550189983aa52c123f1680ad0389f887c48cd5085925f831035367b4093c1b9083ab0b02120642c2147cbc76e4c08cd1c8f0edb6472f10540ab32cd4a0056669d115f45d610818845916568002a67db7c0fd96d768de9865718538609897c0401c76eeb25133098e7a07f715aac0ddec89e4b5da146f16576882e11d75730ee44ce0dce80ea3d11d28290fbb49a4368d4e501b8fc7da80e35b6c0e07458a4823b29fa3bafb72af7ad29c3c71ceb91d9ce50e1a183d38e605ec6c5810a3bbd3301c287767003bc5bbe705602763033b016037033b1692643241d0bb37c351efeed8099e4973d2a606c60faaec27b799b41127e3747ab8995463dc5c577426e9e6592be9265375734c6e23b2aaaaaa7ab5f7d4da3713e7749c8c23d5cad34ce6ac554747c731d1714c741cbc1113732dcbad25dd3171320038e937996266707e332fcfb3beeb8c952abece980c7330319e49f8faf3713200b8ef887bb9200793a2e2789c0c84543543aaa120ab71a7ac0dc33f3f3f3f73a045b4a94f0453e25a109d30741a8a2245dc108e1ca962e70e3b56637a59557bd2a6e6f1a88b6d380e713251495472ed690e6a8e3f388241a44f393609d2a72c89e0227d724ac07d29248221756293767a6a68a67ebf34b035b01afddbd7a499fa5109e8a45a95e07e3ef4065506b96adc8d6004a9f2398281fbd57f9c4c1cc2581cf2c3e2909f087f9e8b75594f8bd6432b062ae0838263848f4a0734c0c401f980cf12ec8983cf00a01c02fc1ebc6c6c98b44b473b2b3153811295278408b9037eeffe6861504cad7cc6477d5a91b7ae9a15f7a385614119a7cf72968b6268f942d9f837c35a6d925fb1d6a2645cefd228aa3c7d44860ca970cbb00c3bead98e92d0f21b77476d92af6d9216f5415d49c2c31365c4e13d368928970ed88588850a2448e4a5839d612487111c52a23072876664c243197f9f6ee5d21165c8b8b9552e1ff031b258d565e30edfcdc178caa684b2c926656b000031fcaccb077cb74a4395f779efa74d3e2da12176f4bc2d9428e97e8c67323ab25c2c2cef2a082deb5a39b436acc6c1234e0652b2c134b0d3fb6bd226980666ea63e813913898663822843d0ff68c50ec6bf2c36a340b8e60248711c9df6511890fab51a4e6a8242a895b849ec8aa6c55872a5f8471b16449c337dc90aa344c261805c3c19af8f840e75e14343045b1aabf28a01998c8e7c6444629efeb29bd9e1e6ee8316e4f7b6a6836fa2cf635b18f0dccd47f4756aecacda4947704a35cd1cdb3be343c9f6704f78dbc28525490700467b983e7e353ab4f0f967b3e55a9ad67730c9c9f8f9306c6f3793ecf47b6f6e083f0f94823b685e8623a8683c178684bf13929258477cf39e92094ad5d7a4aafb4343075d69beefd689c73523ae7fad43646da2837845aa50968137d31c2f85e6c0968535fb7ae3baf5bafa15b2f02f40b74798b08dd0a5d9383e947db9a75d0658264cdb7bedac5444a734e73f41dad9d6953d5458dcf3310be0723a43de01f151f63499a7a38c79b83de99ca8bca709e899969b1b547dfa34e4d095f55d1aa02b5245108f7001095540d820265afa5a007e716dc4fb2f7e4e8a4e71a0a81aeea6c588d7ebb5a724b6e710dd39667bd47490c876c69e1a13ddf409b0b6a374c67a144096649bc0882fb329865818522b59de59a0086c3e17c03f72b4908f4b536f59b16cbefbd18218c32c625978e18319e1b1a93efbdf725dfae9a47e1941052734238a184b0a5258fdc078d6e113d8f64509c4b41793198c6cb196af5fc62222246498c8492aa71a797059d08273367958da74df0b186ec07e6a343e8b61d07d34298d04ccd180c7dad886c45dca5036b4b60353af9d8c5c5ca780f3693b04adc19f2424309886f649c5ec669581927007c426a17c6e68661ce2c93ecb1d07324f2aa6c8e358aa8ddf5706607f0149b49d884c4ab71a73480cb6a2b0dc03e18cbb0a909c0529eca9e2311ca531d001ecfe489110269ab1868538cb1b5d65a7b2cfa482caf848bcb5deedeacfb6d6ef8679669217f1c4cffc60ddca085dba8b5e07633bbfd652514561269983e8b9554b01a53a7a50eee9f906d18e5e547eadce74844c7362c322d09519e3a8df4a9cd223b376ce471301d95cc21720704923bb2a7ba258db0141bab68530403e7871df562737c82fb3e58249e8c02f72dd9735d66d8cb6abb7098126b1fae883414f1482482fbb70c47214f9c0c10bff13ee431b253a4e708131e8864891288c4f92821b1f597a204c437294f395539cb2bca45af1fb54cdca9f5b34f28aff554645d8c47cc6078d173f49580f846d2e853e8ec46c8d2886936740d60c62e1088d94df2be4d6e06bbfbde0edc9660948b506a9b2aca9d6daa07d9d7a6facb5a6daa8f3b4e66d430f5adf276d5d47a539ec3e5e8142be32a36471e19d4cab840d8f6c4c1f45dac90ee8143603862bce58378ff2d713238de7f3f5088939929f5f0517e46de7b664b6014e7793c37d4abd3917ddf3183476f3ddc1eba8718b6396135fa41e0b00d0176c636250e6609a92ff3d38c4f65db9d73cfe1183bbdb3ec54f5b81395f469f4144905c3b1d3a72aa491c8e36410f07e5ce264640ec487cc21b2c7c1f4fb29eedc883b8fe769d1a78c33e35e4f9f1c4432c465d8a7c81a247b1c1798e52c2b57f6a028d92222c0ca58e6606eb446811e0fee5f7127ee64d604e7b8831b88c4ed54bbbda4c51de85c6bad359b6398730f76fb3469537381aba88d094602371e5436790cd015c0c39f10e7dc8470c89f75f2cd482349933d1df52a48af1a774a415673aec6b9a657cd357946240bc2761a6d8218bebc60e79c73242ce1e143496a9ec1f05e51f39396e59c73b33d61c5780333907865bc19c81258beea3da47a3d64be7e413fd16c3821fd02dc43a6b33de487c4734e371bd55b28a1371fd3167abdbaf90557a750ce39638c31c6f79e8455f5b7a90282e57befbdf7dc7c8c2d95142dca2a31032791e32e90c6c39d8ad7b96e13c7c2efceb9f65c775bcfb9571dc618638cafab8cf382dd2b3adb44fb340399614a30750a63bfd373dd48b407a4add1bb83907a9ba83a04ab419d3a7729f7288b51ee598f72cf51a770282a64b9db9e98d10171ce35eaeffda377a3e02c46db1b8daca8d9c2ee2368c1d782dd3b471c9604bb100fa82f673d0aab48496bf4ac36b5f5eec8ba8d635aa3fa70079ecbd1401e7e4c32fccbc114c2f82763e4019f1610c3439873f0fb9c33263f1ef1491a584a99719812fc07e11f74b6c4c32101e4e11cd3c399c16149700ea6ed1e8cd2624be00938993c22945354ad76b689b22e62180cdc0e07dccf0408e203cc463fc360f6f83c1a9d3db71ce717ec42b3a873d6981932e6ad96c5e68aadb3e487592666e1a92a2896f2d41591354778ce97281a7892e6adcb669cc58e5eb2312cc9e6184cdd149b7166de68c6adb74c29bab9615165627e004f200ee5f5391ac512d1a67a1a857a45a7304bb147b027f886fafbb4140bcb59cbe4193c27e3c9263c7d1c4c9fe69c785a788ef0249d4acf2d78deccd298b01add421aa6db13d7727df0e8aad88663309e233b56d4ea8d49a636c4c1b4112ab20da758ca53731f615aecdc251c4cf791f624146a50a89969f1a6f44e0b206daa4eb0a5a67c0f483c25158e6449d223a4822bbac0f1e1218ad0403ece1133736d13d28ae0f64aa2c170b8bc7f8f98c13733fe6229cb366bc6299be7c599c1f3339a8e6567dc25645817eb8365b48a3a9fc3b1582524ce393af8863afdb44d07cf57d4cd34b3d394186738502e7ae9fda6c5124e4600ed8893f1e16d1d3973320130dde79f275c1ff589e5fdc9f2218e74b7bc9be0f91073126ab9b3d426d23c8b656d5ab1f32a4be653502c18785e0096750000f0e2c30c9ebf96354ca61ee54336bfccb4604a98582012c357360391f8aa918d3dc170e2d8ee6cf3e159c1020d32056c773ab54ded2d040b1a7081fb2dc86d3a4d48ebe8087918be3ba24ca899c4449f620bb2400536e03e690935371d1ed4dc749c8e1020638cc5c862643132169d7b2d3e5bf3b5116dea409bfab96d61862dda12266018e1dcc2684ef093d113dc275d07b763adb5d61abb732ddd9460551d3640a0692ea7810e1861bd297132f50df4e6e36442a226d352d060d4c00bcc8ed31b60413422cd469f957adc9b1d245a176135fad008b5bdc9e0fe122d884645b3d1af958adc458ab816841382fb54838173a342645b0a588697df0bd4836e13f5421e4d10d09d9834a15fb6d1b4ab884753af132808d180de34b989906dac00a01780de0a4c3d0a4f6051685dc4cdccc4c4984c3f2b42312b72a080abe7879915d629a7e3823418ac46bf7b9aa65d43cc1f2c0ccca633b589b63584b297760fc6f75a73ce39e7daa57ca3d869f4299ee453992c21f5d425337326bf2c11c3642ae0607ac6896c7b45a6913e5d4560a61e429b5a8433c2efd2489b8abcdb0ca14f2d8a6e4560a726053359e65e7ed7af85447a2db26da761fa4d0a8683bedf80c070583f6038400c47e87d78d55ca30a491002599607c4334893825db6ed54d140f463a3a21fafd9567e6c5ed6a61a6a4269044e79d5c848e388d14d4bccf9643e994f726078eabe022452ad0ede6853cccccb338cc13f066ad014287ba981f11445ab18ab2a5655acaa182beaee35266da2288aa2a87f7ee0405a2604d913260dd3efab66be9d9a81521445bd29a142a7eec3694f68e4a28a418dcf8d0b268e899301ddea5757b71c137a7b9e1008389ad075489090c3c5c970df47bd5d3dde9028086157b4ee11ed09cecd097bd2a44ddda8a8ed4a241b68a3612fb987e07e55a4e62604f7e0ded9aa4d080feeb7271a912b54f704b32b245b4d489b8e5073070922a465ae33f340e409274ee3fe5e03d140f471b74e82aa018a20b5e11ccd2c8fc6ae0808dcc033f65ee24f6df0cd269183d91790ef9a801b8b191cc1dd3b5a9ec92a38331832131b6a7e736730ed96dadb8f25dae35071bf2a0327b83f6a9962b2971c738231c659476d6aca0281a4927bc3ee6dde92bbd80aa3de54490e0c9405a04e8c850c82602c620006ee763130a1698d0425ccb0e041cf0b41c86c6edd586befbdd77f6fa566b29bc1d618ebf6fadd7a505517755a3b5b0d9b772701f07ced3d47575dd4e7a21222548c30bb420956b8020936c062054e42cebde7ce4aae5f4f19595be7c3bd3bca75b3c698e302930b8731e1517121085dd8028df1a240a8ecd449d6ddedc3e607dc7dd6cd1873dd2e3af75863d8c1f7f0d57f570ff70bbfb7cb01b32f1e3edc5fdf431805380c7910c60863842cc6e89c6b9fafd968dd458072061a363c83af21a4a68c8cd986dbbd183b4658821142f79ed2750f57af8ed9a7be7d6fffb9fb5a25032a9acfaed94b869b498898243b4c378298ef47a005415b7d15f54c269335750c003b1dd4570168a76dcc0633c19b9c8c6430f00d0f431852f345b4a9a98b8136f5bc481c4e4739eab6e9dc6b77884a8836751115c0c033d130cd39e79c7386b040af20b2248b2ab0c1bdd96807684cc0f9312ba65024491e76b8a03c5c1879c891e2883280000c1e8db3124de8ee6eadb5eed6dd0600e59c235412a605167067f1839bc1210db8bfa802f7c9b08331dce18b328cc1e4189c59cf02fe869934c47461fa4216baa83906679c1b99f56408e129ad4ea1cdf149e46048a955556d6a43b3312fe1a3951152d0c6f7d326f8697fc8abd2565440ad6b04b628f86b1ebe54bda23e6f04890852d5ce0869005c08421748ae0b455e91578347e40d79438abc22eed76acb0e9b38e79c73ae4e1ef494dd15d436b32555e8e6191c7ac1540b6e19969ed75d154b79aa451262479f52ee3e449f46770f376864fb2253f7cd21108984338333d3ddf12d5ecef7d8a85f1ea87b058d547f3f5ed43c754c3cdf985551211b83f3643c2eb31ea6a4ba8cc9c4b7dee8298aa2288ac22dcf38376e6e17bd75d9a0bc87b7f4899dc5f86b12e3a49f3ec5383dbd6ae8c8b63cda395aa9a893ced8a9f496d6ad2e650367e6232dcbb280b4b43791892c4bce782512552ea7d7e5e67e3fb8bad90613d317586e7e16566e264d6164845e4ae9ad6e651a83abdf1bf9689d368b56a7665c208de5ad9b1fae6e29be7d2e79570882feda2c6be5f3f9fd58b4d5ffceb82eb7744997e5d24f96954b512db6ba6caa9553d42b751075483d44fda258ee5b99131a9151ca1c265e930706ce53245f93e7644ad1fb796d98ef2706c6c610cdeaad7ac6b9f12e9016b58605263d5fe0c9c2ce1490302b7085005c192900ae9e6370453f2bcae696e395328ae6a5b1e52956068a0d9ce7719e160a6b46ba924acf37cd78b6315b6ec48c9b6d985ebaf92452e8fa58970a51a1aaa26ea9f425ce860d9cdb92934875528f383770f58c730387ee427a7ea4b75878d954bf09b5fc4d27d3588c0c4c8c35b91877228abacbcd31b85b5a4db3202e455c1281f5dad0828847792e00a667d900f406a537e3dc6037d643a7ae87f5d0499675ca3e5c0a1d64b13ed1194c1380290ba5f4515a2917f4a4c770a09cbe000c87e8f4ecb5a1d9e8d3f7fb89f1cde61c4cd92df570af6ee35e3d878910e9e69783a905d238745f1b9a8d18e3cdf670d925b589bd02b0317df52e82a9fb842c4ae999c46d8993a94be692b604c54691a520a6234bc52251d5b4f1949d57c2e1bc04b6521e9f72d5ccc6297f78641f6e96f2a05887a7edc69332b1d4b25c3a4215899aa8ca7a5bb974b4531fd9235ef0cd3c7dc81ef142dd4cfa7cc1f494d11816bb6c7c50807d3b630910721adb34448128d129944bcd90bdb905d378f308d3399a6f765e0be7058feec8b6232d0a235f34231465564f56a31f9a1415290f7b63e27c66c3d037a94df43434df43bfe845b16e0ecbdaa43284a85ef6f0b4f30cd5fd399adeeb0259d6cd405e2b43bd7c504c852e9b7af8fade98f8f4e99d1e74d5508aa2d42d4add8af626f42630655943c224c5aa9ea32915a232459f7269c89ad57ce8940342d505724ba15b970ea04e6fe6419dfaa04ead789a479756e8b2a94e419535ba2956655929577573b32cda456668524ae9cd0fd35c710e134d50552e01a6af2ed59ce02c0fa46fe29bc0947a98ca5b6f4c5a10d4ad9b5b931f0ee796296b3ebffb60f9ebd56f75f375abe7772bfaf84a349d0c005e55a796a57a5a4a1f8a976a4c9a0d79147b05c0fa7000d897e770b552b721a13403698a52d4b44e455a86f94cabcf53aaa2a8f7d5a3ba454fd90ce495e24397f492b23e4397b22e7ffdc53217ba19c803352ab0bc75d950bfb16e6e970f0b53d4cd49e460faeb7a75d55c15c4d1462c02cb5d3daacf87abcbaa3ab58f07cd15d35b8d8a3eb532b4201aa6f4d007379feaf2115e35d4baa51204ec5f4e817b1ffe725370efc37330b5b9628a3f80294ce92b9b83290be4e1795b199a0d78d9991d32a37578a1c56047c9085b158da751815b13fc432f28e714c1ecd2611d04fa358329cb8aca280545143a2940c64b31ede618a5d2670899566db125cbda74cb7a460c6e3d5cc69d388d8b8c182119d6c5b2062286b52cb667948222aa1102fd81980f0ef369b6cdf93035637ae848073a9f94ae8f98c16cb6cf99ce33985af99d2a10ac2c4bad938f878f77f66de2e550ed5a40599fe4e78badb5d65acd6c47301f7cd3ee6e76d609390d35c29351b76f9ed886e1d6d1b81ff3c17ddb40196bac7b6609f3c1ee5b2ce969ddba0841a668bf71f692270fee331b77e2d9b37b73770920ece7f12cb1c407641a4de4b1376c6ded4bbc97218e374626d4dc3f3dfcbc2a5e0c581073087b44fa24e3ddf2a6d1a7973709c9a3e2ed3c237d22c0fbcea74ff67dd7c4fdf4e9ef3b277d1ac0fbee8903a34f300fd2a700bcff84f44900efbf27fa647aff0d613862bca70c6680fb348b1ae7ac95c88e93219431c69c638d892be50f8725bbe2590f91b98172e71a152ba31ba1638c87d530d147ef275e201a9db217341b4db21a18c533e2a0e8220dbbfb440b8261777b489b9873cd544471277481381c3af5ebca401c16dd852ecf72adc80775e5027998d5cb37959b2919ff30bb3795bda1342410b7d0bd8167976f170f88d9ed1788646c6c0876ce8e4e2b0b047a8e6e47907076f90d3b65afa7ce7ab63e5bfd64657e2abf62ad53961dc58a7ec3ca9c5d50e56201e259ec2c567420ac8c75e1ed759165b98c05c246e5a1932ecb806012c5badfb0a78aa26243a1cbc387208b7507c29ebe2255ec33b19f6c6d18c6ea576c3d6321fb50ec0d5b1be69dd9fa07c451ae87acca997da3339a8243ead1fb052d08867b08ced1344201f7b1a80111dc1a08b743c17e6215b87f4629abd5eadebfb77286f2aa22faf51175107b3c6396bd59c7d8a9c81377fab18a8e49701b8165ab58de520392c8c1ef82600666b714facd3b7be88a8ed477dbe3a5bc0f2ef4a6c40c0cdfce6ec691f296de6d400e86b7047ff32effeedd4336cb21447f87d78e2bf241c52c6417c12bf2418d1787243abb37a2bf7b439d1d8784d9c52161d17537e39030753ababb7ab0f0a06ecad9cdd7689482f28af28a522bb335dec97ae650ea53ea599437a754b652efca5356ceec0a6b8fa6a4b0a7dcbd07c6d8b1a8a51e78f47655dedecdfb1d9d5d3e587e2fcbeffd231981e308e54675f5acefcae343a14b491fbe62330e098f4e1d8e7ab0fcde9bdf47d7e697bb01398ef6ad9736f4267fd31e2fdb6fa6fec3abbd79b7441fed60b8147fe34447aacadb55b9bc2a58746f9e8acdd4c521e177efe973b81e6cc58ce11fac0f361b81e9abab260587849568925aa31a6f17cb6b58e9c4c5661276b965e513eb1d1994cf45fe24a91349963fb89dc42dda34a990375fb61d7a45cd7388dcb148d8b239780e7173ca9e21b26788ecf9914ee4933e351c0a7db6cc0c85fefa141f0a5d56d96b1846c1b97a0c800b41e002cec1cd4767c61d26d3e766d212dc978eb5da6ec631e1c8f3de6953bfdd7945cdb2670e6942c4a74f0c339a49c2338644c22f48685897394f83c673348dcfbbd81a77f9ebd301eef2d9a77b975b7d22dde5b54f2977f9a84f05b8cb497d8ab9cb5bfa64a3fe506badb55aa3fbe0c3476f76f4149b1b4e79b57906d75b36efc0d6d914915afef21c89e0bce0945f941529ad372711e71c8a44b9bc6a288e85457f588a2a2a72d1a71551f4894dfa047aaba8a8b4802e1b23b2a697b7e987a75886adfac37d20fd87c3abe6a6bc60d253ae1e2d3b6ff002931e4e21ddda2697bf36b9dc00d66a93cb0b60476d72798c25b5c9e5366c4b9b5cfe839d3535a60da8dfa8b44cf7a4492d199a1100000010005314402020100a078582b16840aaa9ba883d14000f9ea0506a4a96a8610e530a19648c21000200000020009120690040398da8027e9ab6d25b93c4e5c2b4e13377065ca055b0963ccba58fff1eab12ba2fd4006d8da8739c6df029fddf7aa43968568e73bef063a273046e6f3bef258815f8e5c0d171a4314b59d1a16b256f274e7f5af38619419c94c484ab2e23b5ed4262f7b0e176b283fb682be23d9959689e54c7db20c9d69a33f9d8a6e8607da24cc08a3694b71fb4c59fd800f94df5cbb471fc6f52b2341fa4bc65b410a1beaa880a79bcc743767ee40a5e57d0e24279944731eb6d9349329fcd8d485cfaa2163efa375ada021585d19352fe0da405d42f7e12ec7b6915a573413c5227ffef1ac09c57a1d5427cda35492b0e6ced8b2508b51e020d8c7edadf34e8744844dddcc223104462619d30e22a01d614ce2df99aa0497d9d7327954ceb00589a949626ef1897262c0dbd1afd6be2066a2efc55ff51ebf131d55c40e07a5a5098b49b328c8b073a5d820325379ec69e29963eef759a0746a512fc58dbd4730387c329fccdf83fa5eb27c8affbbe8dceb666de1e38f19eb52bc4b3584e987b73de5539404d32a2d60d342b4b34ab1116f2d4acb17449d66a29e60ccee9cc953ab3fb4f35f6845a777a257731ec0d35c57b32bd17bd44c291d73daca351b4c27113ab3d33b2448b98a38c9b171d96e42c4c1096de735d6f6c92592fa204a80dee25390c1f54f7e462698e9ea9a7c05e19560d813014c837c1a2e4de3e1abab3a56fd18bcadc6249c12687397bf60ba56dd58ed9d72a2bcce5d0847e3f372d3f6f39b197642c3b580531738d5a4aa3c17622ab2a605dc62b25c3a54b008721a44b2d30bb1221f234d0c3b8f64d3c991a31541c99810d1e7bc5e0da5252b9225223d639aab862d98e265adc403aec9641872f6395658efde5ce013253200753eeb536ab8cab81c465442482c9c93c7ffd027a10bd4c69569dd56fec86cca4cdb07e93d14c3f6eee4177fc40eda55090ae20084b4330b28aa0691d0187d7f313762acbdc5d524c7b57d7f68f66671b7c5c5d524b05c23b77dd5efc75853c54249bdd9dc72fea005ca1b8f64a9d969079d7d4e8d78e0ec0b1fb7e8ac90400064725f65346ff87ced283884db05ca6b4a5d5315a48edd6365bd4cd1a30f37a059c43ed4c52c630c11fe0bde2bfef001c025bd74ec31d4ee131f837632a9eed527a2f783012d495e3f1f0d155bfa7fe1c8dc482ac65ddd0c22388dd3c6457f5d446b3e7cdd122e387cb2094a7f743719d897c990f3954cc71c18f2c96884b2b18e511d6d57fa2b67a2e6bed27d57d3d0d798c8381f86d91d8dc99d9baa6dda1b67a5cc08ee67c6c5c1369f53f42234df3c7136bc7fe90394019228d2da1399cf48e01295269d1bf054f6409332c023b8636863d52367b6a05aa5c0bc574beb05ad877ec41a208135dadac39928bacec167e46622a43026d318266e995e08875a9d52cc5ec288e4e85de996fb705fa82091c7ba667c54ae175f531cebfcde9a3ce431a44b66909e3c55b3d1314b5acf8ed2d03dd33ecc577db4e3301ab3ef416b387775b568ec8fc0a141db7665d3b1133209650658c31ffe4627435f4924a8dfd709c1e2142c410581f44885a74e33a110c4d9818948693017a04027f5402927c0e0aa333f270c183564f44fb90a3953da53dd6b4ce520c917c8e0a3b7ef6d581da464ed38c13e4a0d0b3d34b243ab7135b7147dc587a278574de42fbd9f5987063cd90a8f09486ff3224bf4c82c6f78bfa8f2773f5d016dbd9e50e4635067ae2ed38c7931822f18c11ed4c71ea6afca6476e8a84ed80158038b65ccb19ad617276aed19183631f48c08f62b8e510d378ec4881c474697e8b4631bfe592e504dc47e5d0e1218bc795159a4fac063849ac028c6cdfbbd185c8a534a61abcee5cc3c39acc1a3d9d5d0fab25916a3106884403a5444de54e3701635ee9839df12328ab765baba43743d02bf4fc37607ffd3d409a158071dfde5e610cf4c39ceaf965bc4bd179a2657104d765f10017f987f66c14ebe4f846e7fcffa6bae18e8a9187e701d968ce1324938b206718672ab93bdac95899c5bcc579f2ee625fc4db63bd2fad71dcc81ed8e0ce14ca4084dc201a2ec47cf677128c6d9d325d5d0d4a1fe24bfacc41413a537f15dfece54d25f36e29dc12b29a51845fc804b62e419635f60b68cafb85a4131ba92d048c6085bbd32ec9dbd9585b058a4190ab9432d40af558845ff061e1fa944ff0f277572ff56e94c165e8071a010c153e31a38690892b38a6a8767b43f89bd562b78e47b6d480e454844aa84d3bdb895699c18bd6fb19f31b47a48339d1696d5f1a8b6be502e7de3b103b834bc800df5c2803a506615f3ad4b1fd73625432fb8f77682bf54288c0ee7eb7ca8244a179d57ed7bf630a3ea1ca08c76244944340b15d2ca8536576a17f78e292ec6463ab32dd581deb7b9c271d921102b8eaa3ca49b0407e403a7810a59101edee2c9865bbcc46a501e0a5424d2d3f1003970bfb957207ce3e3348dc186057effa498bd71ebb5ac3d3f6bd80d10eb9240f3cd7c452c4aaff2a79d282ef4c75508a533fa868a014f619bb496c3676cdb2f1449705b3cfeb6999aecc9645575ec4213b5a1287d933c910fded31fe3e244335237fa770ca17bbee11549e12c8aabb6433ad0a349c32278da2cd83f5fc0b6792a9d111ff38af76942f69db64e1b66d25829354879a5a175121c9d5133ff78a7f62af24d25fb5c478a33decdb45d38c71b19f079d915d4deebda6215e2ab9a26915a6b720e4830c7430ef63182050f61e1e3fd85a085136b01ec9291c604c9f57fcf23bbd9a1e1fd7b48e08a0521e3be37c4b2ec1b8ce90397e8db0968c29a4fbf6d3e07d958b50aa7be6599bb392f617353a4e2a3c388fd0997cc205db5ded23c71b72ee322db385e0eba25b75078a77a13df314baac7c975f8aeea5fdd0f5ffe7fcda4bf1ad8543157531efb69530d69e73f729bc82d139a6fa9652e7fde0015f3ac549b450f86b252addf8a3665ead975248ad7cd8dd7a227aeb6f5b056c57be5f1215a2a83903d1cf722a4eed5aac39adb638971190a9e9da3e59857804aadf387140502c991158ba640bb40edfb9181b183dbd9d57a7a763764c2adfb25209859375be7cb813ab8514d390ad476820fde81123f412dd9355f80ceef4889a493c7a2d358d68220124410c32c6214775566f591d088ed316af1b002c2233302b56fbab96a3b3143c29db91d73d86cf0c05d64a7a0026cee621d32e37eb8d82723aa0fc07631bffbef8188bd1972818263a8868f335024882ddb716f752a9058b22c2d57b3ccfbe03304324b7f128fe07be99422422db4bc36e90ad33f6c23e2b686562a1493394fe083230c2d3dcf51cefca474635318a4b002b650800cfadc590cc0b08831661e2cbf9f5a14f392cb6515aaf9973de27c3e791f8bd56284a3945b88dc9d3ecd401a9fb49479ccf53d93bbe854fd4aa206a3232440b799addabc98c62d0a57c2bf14d31827db8a75ed4aa4c85c50dd4acb9b6f32d96dcd62966353547f3c4d1066dda535635427d7f81347d47185e8a029034e5d9d9c07fcc6b3663a0397aacd61b6cc9f4a6ec540a51e1cc3522b53c09cc5c82bb2530465a1200706ab9f7a71cbb6482b45ceb47402862456fcd868e3d533469629ee27f56612e119f8bc93d0cd9a81b467d288c014d191bac37273228f721001a10a6eb4793ea6d23603974f6276e11d3affbc6d72d62c901575dc92841b775cde42bbce0fc847a6ee2483350f19c3440178f0ddaaf34e5722d4ee0fbe06151e64bfc470c2a93f79d25a0086388331970ecf81ce13a57e460be681ab3218c8cd2f6d81a09834e4dea100336de9c5c598966d96005840539ea642ea5188cdbd8ec4cc476ec9b51484d51e5625e2d3fa8d981f24cff86266231c8f451ae724ca007ff19dac8f48e6c009b340294f7954bd2f6fce0cfd1ef87a80ba7a4ea6c636aef732a5d17556576a0ea23db77f6af40ff45a1e03ff4187e6c3575df52e236046f13151f88069aa9a7c9300f6762f4c96af34aff404edb0a7e88c9e841550aa43ff954d6d2690da8e2e90b537142de8210a0f95963c3e543e6cbea5aa815858879569713cb13bf7e103ad74825bb00d0622354d57113ffc4f37a3888d9eabf4cf72a6ae724cfee7304bdb63fa4773a56df3b9a38f5623ea5b352a8374cdb8475b0aa40528acc13f02cc5a90b0c971ae0c9a9f42d525204e3784439dfb3f3acfdde58139ffb78313f60b4e3ebbe3374cf4f97f00b098a0b9b0c3a9555c59c772e4051e50595aeec19fd9da2b0ccce2e925ca452b021618053f50d6ee58bc802e6ebc0951ebeb410063cc8b91e7d36d051d6dfff6e0920b235aa41fbb1b7406b55154e4f988e82139f1715afc7c9c0494b0199b3fc25d4674a6da4de600eeafc1d054ab7ed8cb5f7a8b23ec0641d354f29cea5f35eeda55994282b041ef6e3451b0bf7b1b312bf26f2fc44aa5c020c11f797411f339cc75b2c81813465bced9c4ab4ad6c5425c9351bd036a508ffbf9c5b6518d49f5ab9af2406b51b8e4162b148a7afa4fb22327a08d98058023e4eb58614e15a8acc17530f10d7286a3681adc9f28fe1c21cb3a9da024f2e56cddfa5cde6e79d97a66bcf23e1416053c856e93efff8a8f55fc78553c3ad685391495baddfe7685997c36c5d0b2faa8aeefaeda3dd3bb4071dbdb19e4944c0dd1acaa79b1d49ee0b2f8d4339f64507c995a39b67bb021fb7765fe65db2ac851cc274217947077ccf26dfa663e13ac3564f87e7cb0919d10be131b1157ad1fb41f50eb533ff2593a2020e62e7ecee774600d3cebc9533578519295741af8b7dae6196aca88abbd43a19684f6b66a227af7a090b0396ec92ebb226c2ffe7b62197ef16c19eb20d31b942eb3088a924305b56e746b82f2cf200feafe1c0a3767a55c6b2e5aac8e21734926c42503a2be45e478c394a75c64808b5656fe71f221ddceaa74d886e73b1ad62d0ad00dbe4180ca1a66cbf72b72330cf1518810b4756fc0fbd2c79315693839f3ef16eaaaaa8635826ec3e70df3ccd9cade14a1b6c6c7075322784f9a6cb07bc8ce0fefa9da16b5ce4b3035ba4803452809ebab38fac932ee7364617ff32143b7510160c22cb23407fa1b4644455971f4c7b486a8fdb81ed19b6af71aa1b7645759e4ff6cb508acf8ce52809b768b1ad2697e504d31afe57592e5a82433219ebdd4882450f978f207665c40f2dc9bc66317b0780466014bd658de3b52ccac5bb0c425b56bf931b962a4516e63dedfaefe54282f35333464b4120f6537fcb78734d2b9b922450dc6efbe82d691849c76c03f62775f256db7284cc622a04c618914f7fb68ac5fe5ccfb5555248cfd4c4947f083b56eefe041fae58e569813303d52fa45be92e9e89b108f3334a531dd984659c81b57c85de55f3706bfccc8ccfc8165d29cf52df4a3d8891dffa2ba37401f1613f23a02453d62aaa33ac0f9b3545ad1c4641c571df4cd228f8d395f07cc994c54f57de916cc31b11d955ab5d759f366395546f3416056d25775f0e585a0da9ac4fd46bf24321b06d2d470e20b2f207683454900443594aba49260471e3b4c7611d661737c63d30835ea0c9b135026a97f5dd16383204ee65379ce83626588b2dbb8f3f81bdf3587886ff496cb399d075a3c25d3a26e6f4bd2bf14717915e241a2f6cd7f5250b634a75d06733649676a5caba47bd216ec1fd629c1573439b284aa17f9a7da36992b1a5da60659d674c899bf020c595e8e0b5d546f466fb33cd1ad583b2de9f7dfd8261738793207b09581a10c5001a46b1c7a7a4cff0e474b1dc9005aa895ac1f8ec983b7632076ab693c0b29444dddf7631150064b4a25a6ff19faa7bd242c4c71d2fc3ea693dd90533840ebc39338a1fb791747a9862156de571735055b0e53c454fe29878578f035f6f11d86dd471d445eac90663f2c6af448829ae5856efa93a17fd35c0c0a6a23c0dad9b210e1633c944babd34bef44dba70dab3c930c377442931b26ee10352ffc09d80a7ed1aeb160bc3d9927c7dc157d696d1356727bd4b0dcfb54698d3a1e6be41401d5e3e2afb9612ab679dade095dd00d96fac1a345d5d252850996bea26623be2a71662e62cefd5afce779f8e620998857ad9cd5b2a3250d8029d9dc2be2f97c3dd646a7a758fe4d16a1a482ff8cd3e9554b537f8a4c0561ade77d7e0c4f16ef315d6a1162b9fc7a72178066169df2e27a9e445cc1fe63bdb2fa00869c4445f2e26758ced27a1c2b107012a913791dca99db33a053c6c5b796d2982efdd21ff48926c7bc076e460972a66b4fb3fa04d8889ef7254808c054927b9b01df3394dba06de6d06683e1d8f4178d6a4e6e84ce4544f36d94a31f606fc3e447f4063095661f3a0ae04550e5272e5ea99977bb48b2ab501334206808582226b2a6a1867cd267ea21256cc7ba3fb2715ad66fe1cc507f320a605458c3a7d77a2e58a99bfc3331d9595a43ea2bd82ffe924fcd6a19038873fb5752efa3a8414dd7967c7163f4131568ea417e30d7bd7921d658f6b242c53a94556f248c90ecd78e2b496cb8926ec06abe1a76c5b83a0441f9a7db75313369ddddec0807d8359f39aa624a843f22e98612b9ea26f186f00cbe8f9cfc7bdcb33f708740b7bd0c31002851db00b117407c60974a607416e72dc5bf85d65ebbf5df451e202f115ae0c1ad63644e684593471fe5c8075902576f770c9c341481e5bb84041522bd444a1ca8bf0a76a97bc149b2a2b87f8cea6d43929900c5c9f8a9f2587b1b80cbca9a3ac7cf9cb6e664b70d8562fa32aff48d712c428d352c4edcc1aa6e290e10ad751ebaa0aa32a77a66bfefd3d05f8adcf8f2ca0e86834b171b7c0c985c88a32a7a801d5fae166e41248a008a32a27ad46c7c1d2148622764376b6e9a2d465bb25fb5b94c178df3ad16a0e1228121b6c1ff6caf2a2c081bc738b46ede4e83b6661d4e82e96342c95363b32b7a02c46b85b4651913a16d85be1c9520f1f59799a73d5c9e044518f4ee5b6342828d72eb1aa83d0120d7cd1ab420eb2a58691b8cea9a249c65cf930c69d3c01a0ccc7b4454bf8fb901696e7fe4c4a2c1e7070974603340446b3690ad1fb39f62fcb12f09f4c9fc34c59fbc6e888664f301e844f9868fd048d18dce7a6de6156744928347f8d4a9d9e589462738e322fe312d055873d5040e5c10007035488fc380932c72746c5acbc596045cb7d38bbf2a60c121b64496a63b62b90bc269a6b717057bea478880dd1b98c7f1596ea1dccc0806b9b210af08005ddb48d979c4905c4f3a55d3f85612bf5eb159246e68172d7398d72c37badf6350c3d04f62d01dba8cde2bbf8c2d33f262a165f8686a200cb70ebe13ea3d9a9810be35c05422632d91285810da7f46826d3e5fa82597138cfe16e9328cf30527f78615161e590328481b1e5ff7a87a1d4aec250bf3fbae846f4a9fd4f5e6ef92c2c40db4145cced427894526c0a28da8a5914920d73d4bc4c9d7603b73922a0ea5fab0f7d488d16971143ae19d7267883990928a6b075afff17b7847ef2163498f018614f3bd35fda7428771beee0c4064a306f0653f70d86939f93289bab71579819e7500edba5422dcda15c97dbd163e2ad16d51cbce958914c21a1164eb9095de2cb3193391a46c8581726095decb2200b359c4314441062ed2170eab601d6faa8977d6385f6cf36fd605356a01aafdbff5d0528d8a202f7fb9115a8d84c44c4ce29a226fd8486c91be0ea97e1b9b354202bef11700bb1974bb12e6e2d900dfd2251c7d78cc454641efa3ac8473d940b2de6a64ba8ea28d58b175e1b3b77520b97ce1f8c83ec17bcfb58ffab462964d41ca786ad5c5b8c5629624fb9ca662781fa562d54f0d631920395621fc800245b9bdb06276adba5441baeee9d7f6bc925fa5e5ccb49df1d2317e02bc3056d19782385d3d8635ca428297064d1121d71e73d355dcc9f70c725ef7ecb903d07d0685baaa9a955f2c2fb13fd072cfca7f3bd7350ff38e1992f4f458692fa7779b7ac92b3a65f1e4ba61c765ec1f61048a2a47cb8fc7e5f256f78800437984aebb892173103bcf682aa4a0e18e46d30202c8267f53550efec16a7a38c1271d2bbc1bbe426469439e5090c1b40555ecbb3e490a085a9836a391fce1817d40daf23a342e2befd4ff50195715978c0726fb8708e11078c9156a8001900a56bac5fe2f73c3a3ab40c19c1b296edab05826776c835ca625951329d920f3dc103275b6d38379c0e40cc9f238dbc09243fd9cf10b37a1d360f1ebf7ce96c076eceec06c30e467f02d75cd2be1743c4a647dfc27fd01fece71b173879fb4931ebe46f04aad84bd9f64bdc364683081196c34fdb6a4fa8af39f8e9f9c1ab21117a3575c41472c4b0cc5ccd98a810b3ecfef8b3dee8c057b4ccfa7f6ebfc01209bf3f91fa19d3eeabbc37f8ee25f83170bdd35770275428c2311cedc79afbbc3067e6a7938e0e070da9ad6770508d87d16d94e70440e5b32f275f802ad33f0934444146f9bfad26c1a2805700583ef49db2aff012af8b0d716b461ad99b7561bfd3f39214404845708b4d81e0bdfe5b310586f65b31aeb597b38e827d812697be4c3073ae1384b6f158a660aa6545a07cb13485f0394bcbb32a5b1990e47db00819ddebccea2b769ec2094be0088a5bb31c1f893501493cb63e699e76c4d70b6b94b586d015b50c11ad0e55d60e219711bb7b956c8c0445ae4db568236467aca4f84758480a36d9d1a4de32cff03fe382cb1e40ffba1f6a770bff630d3eda5b85a5fa0422bddc9ab6750ef993a895ebd790d295f2f91d78762578136689e025465027deb61a2f9693f93c83ff175109efa8556a1c7034f54cd8abbf86d9948001a739f8e61d9ab442256d3961b6427c22a71a57cc3c6fa2fd2f32df477fc2e2bc140fec43ae0b7ba9d09c0890f09916b1c01056a60a7422be9ee8b988712a171ef26d0f65a5822d850b250879608f2d4917ee1684c5104649fc8c7790e27ad2f957a7cace368fed98afc282e2340a11794c67a7e2d441c886d1b69ce516bd95c1c9bfdb54d2eadcbb09dcdc5a25d81dfc31b0245517e55cd3c4194a3851968c04dabd15eae42b58d136d8f84eaeaa571e0ebd14a57312ef674e6ed0663b614d1fafca210e69190d03e4a1ff5339229ed749ab186977301453fa702767bc6e8daf95b7898058bfb971387e9570824cdf42fde304615ddbeaccb770f04d8fee00b9ff7d1223053c464bb02acedf57d0911a96b75a52b2a6090aa51ee378f7ee4705ef309e21640b5e45e02b8bd7e650412e34b572a4a9ab304f395f5e66c247f7defbe9755a683f61eda0468e1a22b7ab7f1acad3988ee50d64bee0b038ea766b51185e554a17ccbb43ef0d7b8f2ca8681187fcd78b5ca6fc84300e39fd4ae73387680ef888f972f39a5491e7497467aeef20a1ef21487a45b38fc5bcb217bc3462d2719703ff5051404893fd1cc1ff050cad7345b660ed84b2ee7fe81b6758f907aded61a4c94aaed96a6528d2c4cfebc1020820d396e7911b66e1316dd8e863df019930a422a3233486d7650a0c339e3f385365225dd3a1ed958dae09f953513e93bb922b9a155de1a688b86669d0d9033327948a59c25c3bbe5b1e5ee8a32fffc55497b085c1132f82f496f4a9aa246c7189b0b9e3318dd6558a21c3d6f2d3ef401ecc35920a8730e74a3c5f3de89b3666134a88e78ea6c76e03ac8478012250bf26f0ff89ac23d195e1a03005c64da247e5f9f0b2e122b635c4eb5b3b6d204640f0fe0ae807ab4bb0ee3f199c21262b28eba50ce0269b10a2f3834cb483b56a95805729dc660815c14f2221ff117904f4bafcc943205072a2142a619f7ab1d2688bb001af1fa98a29f3a5f7383bd0d4b39464c404f85871373fcca692e248507d24419e99bb7c285c63929a98b878d32cba2eb4396abf7a61ec75f38fd29b24b667eaf7a4c2f28e0ddf42b47fd450f85c226fe70648a746f83c4a5909a0f0ba5230f42cb067c482497574b0d6285f5f3d52c32ae963ba91d24edb07868688a9157f72dd2c205f8f6bbbe2e94f0e91ee98b083d4f476eee75c28e5b4749ff15bd5d358ac23ca39e2679d1d5840ebb62022df0c57f6ff6ecdfa6116d3dffa7e5b881b5092898bfd1245b9220da2dc83ab8c1946cff11e3b71eafac74d9a5d303d565ab94047303d7ce76ee1943fe3e6ef31a2823e4f830fac956e8bdda0309b952dbe12bdee0178e8b2d9d101dd72c91235499d0ad3c06f31576708647a11968fdb2633e627120cd1c49e1ad76388db40efad58446f94559001ac3c06cde89f18a03391b7de0ea85113215d140c1116f1cdef1582ca093673a66b88acb93b3587f1c4b68c5c3ed6fb09e5548f18c13ba9971e0944b74d4a387a19c098eacae83811a3e7c45f9d26f5a22a28bb56298a76d44860e4613c47bc90bf8a9dba225a4c86e91b15f65610453e5f7aaf161e549fd44fafe860125800d02d6897e2b0fc2e025214146d4f13257241e4b7520046cc1ef1658156931ec23855fdf5ed2773fbf0c6429a8f3855d036c718895c71c6cd9309d15f8fe2d6c82790aef3726f13794e4cffae376e49a8883c6fc1ed9bdba2528e433243d661168f0dc39d1b6e864307373a449c4e30a655df51c991a87f5ccab8f45d83846c24f9a8d6c214a21b3cb372e4aa87774690f3ea9ddced8ba72d388c493696737b8213e5573b2c3fa9686708e4dfa546f9a59e7cb27f4bc1b73238b18e78f8389b91b052f3ef154f2c573c510dba0a7c50a3b7c8dadf2b92c1560ea4267b7c206a90f1966641e224adacb71eb368010eac406afaa1e970c9a595a293ff5d355b87fa5fa446af549183de962d6d57b300b10966555b063d4f35014ef4c1481af4c1cf99148f2c05d932561af098098b102cd8c023b5a3752ccddb7efffe1dc54140958dc4f4bf06c0106a0a2ca93f221b6f585555405e3d879e82bdb9e3a342aaac4a49902feabd766540bf32bb2fe78ee5aa4bc4e476d6fc49fcf2c381b38068c221ff988d26945bb49a2e2efff7f71ba4ff241552bdf27d1cedf4073455270278ce7198a7ca74d3ec3b328b04ff19078b6ea13e3f3874accb0e11557d141405d393dd012edd99628fe42914c44d9a4bdb53e79b7dfbe520201b052a62f9d5a40bc7c68258421156817c6137006e101a024dda4a347783ad786abf12fc237540802e8cb33e8a9a2d346c1111fdb49b230bc217e67d00125828137cd6f29972cd21334204e1d6adcf8e02076ffd6e67ba27824b0088be3014d8283718a5b651884e5aca23a67550f36ea0dd0adc21a0656a7ac2f059a51483bc62624cd5bd56525d2613df4e8c12dc2943da7c77d925908f7c742bbf2fe75ca3a12fc9d6165c20dc60130f63f451b30bc313bbfe103b803109594e92c62e44004e7b3b83c0b98f2321a9872b3cdf48d55e87a15e251e9cef5f452564b977528b0d20a3de9b46cd15420b8027b4b61eb3620ae4221e82c27eb8aca81cb6c7a6fce3456f2d60b20b1636f4d7871f6065c83d0ff00095b893dd468a3f70751afacf8d1cbdd70d0dbdd70d14fde78d1cfd876fac24082e1370de0740d4c7eaf0d7f9b5d0337f9911ffe926ea28067fd6c922fe4c20edf91abff0896a012b60582370c87782efb3a1e0e92d9e230e46e1935ef5c3b19c08f1313fe89c3e3ebb1d22341a038f46e99ef83356ad3d60786781f33273207e552b099415af7cb8cf828326c32e39d53782069d4e921b43ad7e081e53b8ba79c3380edc9c5f3fb134a292cd4460aa4fac48ce909f17f1edce849b1a9cce3b48afbb1dd811e4e1adfff8fa110797e2f082474dbc48cd420d7d11596446477f7ad69601b518149018690e990ef950825b4345d5cc7d9e3977eef9d8340b031e9d0bf7fd5a8269c216a9e2aff7d53427d00665e399a3e04b02bf4a5f41b66fb1d61cc00419a73732f7d65139a0a88a7cd6d81258f460d94b0775ecd446dab711853d64e1ec90a9bf90aed4548ac27a4e7905d234e54e58b42361e130dff3f5bd09422e6b57779f3da3aed72a960d885e65412a4d78b4f9cd8722105ef22ba339d6db293e738da2bcabbc68c571f09edd2a231c158ff7ccb263c7960eb478aacb51baa26a9e4da58cb84e0337c8da197662dbbaf93cc2a68c8367804730feac252e030c6e1389b3ad84508ad704e94f6d92153df3bbf33610867fa948c3ac57fe53049939b0a624b83183b558bfcc5a747bfdbf40f6ff170173f9580c1085d4868743eaa1a8b05c20fd2a4c7d57f110540e02800575c06c7b7baf8c62a6a4c937c163d249bfccf072262f7ea7c08d03e4115fdc17c548aede7833a2bdd1426efcf645780a40927a7f2a566a5763fc3c2bf34b016381132e58b362baae69d1996003cc17eb61dd2fe7294906279d27e920eb38bf81c9b9676b52af164f9a70d3c17688ab5472250b8d08c4508acae54cb68c9a2e01e7de111acab98a1053172685e31163b9a016b2f47e96d44ad499c32d1e374e9223cfc927b770e63c73e825cf184445ade2cd7a8396d43f7c59426edf428eee4e5dd518e432de57a64deb4a39e23054985da9b011f217a979a8e80ffbaf5e85b1537166574a913a705ce4763d3763a36b02fc94db4df1a885279560cd5a1e31459fba62fc5a6f5480ad6a18fa7eb23425874c6d53bd8252c91a3f048bf47c9dbf9bfb1149fd8cc7d134e152bffd28d0984fc775d4d28e5d0ad905957a3db1b24d93529108851c39d6558f3ef395622c2cdbfdb526da4fd408cb85f371948fa5533c480117e640e024bd6fce128a5a583b6bc0fa4c0ce0807ee80deca2f38511f989fe3ee22c59b34060b6182bc3705e6ed6fbd9d45ec48f07dd25be94292564092b3850e8ae1c62acb48777a44f837c2ae5978d7708afd6e8cb823b609dfc2cb252a54c302e79707cdd90be156ff8e452fa1d5ac676e878c48571f63cd1984029a69ed152923c67a7b57bbebbecb29242bee40ea54344404315142c47f00fbf70f026a457ba483ae91a5a2020a683917d247389c5204154a198718c946ab4c37fe430198e2d6a8debb527a8c9056ddc94981d013c12da7ab1bd63c4ee7f63157e1f16e052c706751d8cbe48dc8869c37d6cc23cac7b972388e8a3eec871788338fb76c9acc21661bfee53a6b0680ae14064aa8b9d55652bb85660f227300deaab4e45a29bc45214bac274e6a6b3085f0fd6c4fe9bd2b8465f05d738db75dc8c257e08897f27e6b9fa251e2264dc2caed419bc225fecf608f080b02cf7a47c145603acc50723b4f8e9ef834478a5818a304f7c02208f505626edd87c87fa3f045c14fadf58de674d364df7bfc9acc0393ec8680aac8e3747c3638ecd1e86a4541ee59865c85c826f34c6654a94c189099bb86563626d75b7a41fd6bf51d9b734aab9b974c0e8bdd577e0bf1e9a400602e07720fa0d2cb90a2c11d1be9dd1cfeb9bb09e9ccdecc8bbd050d523737852fe3e79b43a7f20e601be78731a7688edc9cfdb1bd33870cb7fb3eee79a91a65c0b1cd3d920c3b8d4d124a4461f1c1a1357c0cb0499d7ba5a6a62a2922cf3806263c8a684594f89a80a9401bb629e3b0f56bd938711e5137fd80866167119d7990c25f8232433cf696411de15cc6246795e2aacd8dcc08f60106439775cdda05641daf71c7503dea9e4f28a4cc50f0ffb413a1689da2b751dc74d483c6eccd082d868691997a57ef9113c97362cdf214caab72bfb8bb49f5e71ea8196ebb85a7873a608b39729a1cee80a1514d64e46344d8b39db9c7b451f7ec9450de582c1e6c281c0bcd04912c7eeab4f48593d6060c6b0c97761871251f13474ee46ad9ea38e423322e0cadc22fb276e76e92cf05be641ec3904fd4f3e8dd547859f001572f124f572337b7746189f59f711d384a322298c315aeeef949853bf00836bb82f9184cb39e4dd7350e9973cc9bc2d1daad8c06dbebfb3a3799f3d26d65612704995221ae92ea45f937f6f65e37d91edf8e39c725efa64b6e73752b23d760df05453241e00b451dcf4f8ceb3d2f0474f7b0923e221269b08afb7fdb655e7eec243b3393b5157cf33c1f5f7f8fb70b37daeaf1d08c7a9b98580255100443b34cc2ccd0e02b83af2478dbc2b3500a54f6cfee3f99bbaca3203f2cd3b367e24889315c15bc0e63cf103e79d6e72acd40695da13206f1eb30d98b806086194d771ee037069e7cbf4b891e0d9ffcfc15efb6c2276c81a813bbab1bbbf1c364b12857e1f11039f48ba8b5660fc8ba9c96efd3bce92d7a25c2b0f2ebf71422573af4aa141f2c366e2be55ff171e5da9326b6c7dc0a0f410bde14b44992e2173719de9f2d32fa07da864313d456f3c712e5b6789f97a217cbd3085408349ae2981dd7ac2c13a1c012fe3d717408026fe8f3cdf70606f2d74fc1d58f5e6760412d1c9ddea06bab3e0ed50b5710465d5ecc0da1907ae36a947d49aeb2daf97ad23b0cc19073c9f59ee7b69c4568a2d9759466ea7eb8f5639bb7ae17e8a3d437ebb345f3556c07778f41fd4fc13b7f8951c4dca8b18ff47d9a16b1efe480fe84b930f76b67035c2ddb75da8cf54d61712514a74b82e694e1d263d61be4000b6d05d94938d4d9838ef1f2122257fba1e697d8c5be138322c032e385516a72f59ea2c7999b22b40cbb6107f5876b4272dc39153e80d4a1b926b1214a57f6451a8e3c765bc7b218b0101000f4d3e5e8021eecd57fbd5ce4f44d3ac9d067ca278a47c58f6bbc50cc24a2912f2eda27a5e9e48e9441df1fa1ac9d4864e45cd59f4b501e159342769b25c671f253dbab871149773ce14caa04cee2865ead40d3370f7232c7405f5c9c5834b7adcb031322d246f0d40fc98e22192bd80f62d811e73f85ac2b9722cf512d2dbdf216cfc847d67c3639c178ff1fb4fca0f443e413d6b818dbb34e9126f1588003a1f5bd8bfef42108ec7d3c8e2d146b77bca9469ce0cc8844672005617768d0c44a36f13750717b78acc030878c611c5b80c4731246c7cbb4e9867edda22c116e1794918fcb11ce2573d4def175738f86ad61450fa5632eced3e8a2886dfef6326a851fccd2766ae819cdc3c5c976aa114c5e59519f8f131bde7be99a1b58cbaf4e134c71313eb74493c4b381fb46a82df2236a682635f4bdf6377bcfc53f11981dc2d09c94e07c4fb93484a4bd1d1dbebfc082e5175a68ce9569c94ec93a58990a9b4590545cda36082c68296bcae11797a8d95ecebcb8e82f84f65905514db85760564b2c7a144c1b78dd95072b79b9c2da104d985ca2b35f774e2b9f3b806e74f67043d64604e8db41f9cccd031656ee2e21f8d48483b22ac76ad227d266314cbe76bf843c915d9f4e20477304c0e2ee522795ffc8f65c81da830ff1172ca2a6f08f9a6a7c6aac09532555364724082b8eef94fe7c9d04c9f39c47839908eec2e2c9a3c6d76bd4e82596f3b307f0dce75d17addef2cc719632eededed4f34a5d5f060cd81c08e9112677d2ef270b76213c4e2832e795cc0c57d274f16a9b7c48d205f1b619203b7c0621c22e7241d1bbec0a842826e8131b39f9e3786fa6d12a3760142d401727edb5b89cd91f1833b777ae2c044484e547341d2bb33b2043ab74c6afde3a248db4c6d87bdc1a862448aecff2b2bad400f0228d42c97eb5db5efa6a9fc6be2460ba81fcdd3669ad1e8b685c5aced90fd40678851339371635bd378936866adc7b98ee2e2bb5520e845510a1c2bf4201e0a28129379a05532a054248abbb6c92d3fbc86ad1b51050617bb45f3947f6203f791b5862fe86419f1d8ab8d563816a241604231b47dd69d284fba59431e8650179e7ece642d292489edc1a8e1d41b1e3077b26c6ffb47c03131cab3503aac764ba3c7a480e92cad0f006aa30307c70a6af6e8d6695b2a4c4f6291bac31ef6ea87ce954cf86a79d0fb62ca468e96f5e0025cc86682193b4034b8c3913870709fad36ba9a531c6baa3ef7d6086974963bc85fbed62993fb9399c302737c27537da6496acd0e09aea1da22df4a964860a014e5c47180ea17362670ea00f0abb33d8ecbedb0aa85a0b31bcf6cdfa0f1b65e589839767255fbf8fcb52b3948d0fd9c66dd75abeb41e00ab57252fedb8a00576d8ec05577a878a5e35f3c42808612d1ac5b11fab778442f6b13ebcfdd8f80eb46d3807e2a44429498becafda0fcfa37ec9e15c7a53b320f5879967c927092fb321762c68940e5b85270c1fd2f5a634c27fe6971cac90db458d58c6446b19a52d5373eedca250e2a45fcb9b4bd9168b9eae817969874e41d4566187665ef643ea8117d53bf8841a8fcb8fd208f8a319ac08220ef142c79a4a02ace2af8dc1fa062e0bf3e57ce9257f7d0e1596d80dc9b6467b897393c871f8fa040c3f237817bfc9321f8b8cc85c1989f4055d69501b7b6c844fa7345d31238e2344b42c7818745a89cbc2ba1aaa7401d9ecb7dd281dd2bcf67cf135db7511cc6d7241ae645acad8f46afdcb7c447d32921acf24c4baf1f240f709eaea8b2c8f88106a306eae4e4a55847be7c920677193672e63e1234edb0b43afb1df96d0723aa07f7f34cccf03e22c9d6278153ef09ec4b22e1873f800d6576aa2fc6f447caecfbb9006bb1e6c24b9d74e63a09c2aaeb830f0c2c20f752159222d64b67a3eb44b13fe8043797f1db5f8e3030b914a8aa1725bc8a05e205ce08cfcca998aadcf70814359054cddafe39eedd1dc03dfd1bcb6b553507fc60455ef3137d961639fe9c8b8e323f04dede35ef6c12efa460c0dc09a5cfe5e2543c3c5c3d9a203cf587d893db0978d3f060b3d9beec6089ce62e05f514742035ff6c0a234cb296b5fb49f8a359bab8e7ffa498be6019e7033315360156c464e733cdd802e4f8e48bab18078cbaad2be7093bc89033b71b910c712900258beb09c9fbecc24dbaa0a8d51d36a4683b9ba71c21d249c0981add0a4979d31615316fa863871b83031897498a7b56e74413dbf8c66c7b6883ad791ee0bb6c81f9096b1d1963b7d118fa3bc9bc49dd986b4a5a1a998bab89dcdfbd4f151be8057c193263a85d033fa8b02f4830cc89507a07447f0126da69c1aef2104098fcfb394c02107e7457b29f9c9503689080c7248964f8c5eb4dff40a865b1746e70a691608608405c3ca19643cd5b833f092ccaa9de596229bb0b3651ece554512044eb9b38477da0e1879aaef4caf6ffcabd19b749ebc7b72de042ebd24318723989905c48842a27702462ff0d80f8f0a5e526ace117c2dae4e8983ecca13f5efb5ef841e020a7da872a4d40c5903f15489be5d26e09de1d77382eaf073444880adacb7d4e478efa1d0f1103a4cc8928726120f21f46024d2620fd524dce0b254cef23ca758b44baa8c537273217c182180260b9a1d5c56f6655ae201dc38ddaa36efa0d4e89d937da0f6ee543c6347bad123e6835a28c2baa8a81f449ed6dab207596f8e07b664c6c484265620c122ec208ae4d95cd604d6798017e7660a49f9f6ae55724f70fd308d288a1ed5845bf7079b96edc1171370ea5ee00630906e05b4dbe3608cc8fb7d004ddd9101a97f1b390adce686ba99c3b404b868dd4a430e0bda9a85047663d002640e93b51a01a3bb6990a2d2d8c00c715d9c318c22370ed30539e0da28ab55dba19e59b735d502917e5150bf4e8ec9dd92bc928ed520005e0558d8b46aa69ce2e4e3b4bb0df8275125cb93340cfb8ea8766a8949aa36384fd29136c5db8f783ead93ac19a7f3bcded0ba579a04cec97a988d27599272c873804d0a5ad45641224f8ed9003e5629d86a9087fbde59c177075a4db4f4429e3b4f6264d07c8c6c23df0e63a8a7d7f1a06df3f8080046629e46afbaf6f71fab177433c5f227e844e22bc6e9a5f77df13cf15799d223c84d7eab36e1e5e762a081b99eaa96b155fd2dd2adb92426d6cd863f997c580dae35b83bffd0151278aadb928ffccecde1e82fa1bd5ea2171ef95ad4663f67ca9d8a76a618b49d3157e15046dd12b6b028abf232fc524fd57fc7e94baa8d69b2eed522acdc987c67675d64dee114fde13c4bd78a6eb7f0f07a78db088546491abdcd17dd611e92f37d4c076bf01556ba4efc40207094619504b4a18459955fda9f7d45d86a18cde7a763704cb4d37ef0d1de7cb31ce574a9cbb588e1c23c0f7eccff2e370b17e493fbbe794cbdfe2413ca90e6f669471c46568ff0832348e70dbd42ad840b7beb6fe4c3b37098412def636281d653f46648ee03083fa570785f496a1c20f001ff15fe2f7b1f2be8417c4abcd53b015c503b03306e94fbdf6153ccbb2fdedd57982a13d61a147ca0b49253037cb3eb5123e85ce0ba2d1202c4979352a496e19bcd69c24666d1ccb9e39bf95f1cf32da0e5ef65c5173e8f8ba6723db12b8b58757ea5556f46a6546c7679c45c59c382bace05771d676d6bbb35a37bc7782520f429668c6d7fcf4a60ce4cc19c637d9b81a71dc48c398a18b6af312c9f8032d40afe4431229977e152c583b0b47104fee362c761cdd5bffa3ef018eb5a99ddd0874d84dbc63e472ab143827c8376f71ccf6d64ac9b9ab7fdff4e08e4381a10841998c6145365d0d90ced34ce4dabadc2bf2d64bbb422c1184aafb29f7153f474ab9183e476d889d02a10345e8473c9991ba86425f3a7b1e3386b37b37191dfcccf91807a3fe146feed67f39b79b333f56d1dbd2b66ba4251d4d223f142626112babefd1cae82c1ce63ac169db7190e885e4d64898e039e1be0f5ba71a77fd52ebc093722852da17a84a76accc4da707976219bc10bf887278f505a9d3dd3b8b6a6895029eccd6c78d87c5a5535a855bb6ece5697421481e86696f347f935eb08a10d1f2be64fbcc119d2b4f4f52b6ce17b00a5c250b767d56a0944583966cb006fd8a5d515d8a073621462d3a0dada075385c91bdfcfbf7b6487f10e24e98fb38a7919de0b04452b67a3a90696ac5c8dbf9f09d61d0473906035180879bed4739ec9720d325041c63d58e1360982774a9af7b1f10f3e6b43946838c914cf8fd250959849919de118e98f003eae5c99fa1f70ea8f491d0297869c3bcecc16a01325c8ad25bf1ebeea29d2efa6c6dad8357bd334dedd64167eaabdaae609ec50a3b49fab4d483e2af589ad08c0e18f0a7573a8780ecba666ed99f0df0472ad8c47103b047b2004af67d2e8276344552f6a95fa5068e4a312f64a34d8440ce919c070126481b868a1a9e97620eb347176c8b1de664db10ccf86858784a6f3d1dbbc6e249136af3da919947327055d012949c82cdea8dfa2fb22bfcbc48d018d3441cd4f57ef2643d41eb098437fea58d0c70f6a217a5dac148bace970082fe88414eb7225e8d5b0a8606bc9dc378ca21bf0ed521d3ba0fe8d0a6c69e50b88bd59be664e7e81ede57c3340adea2dbda49d12a634e812ed015a6e33d3074bbfc2efe5c9e2feac8a08a200dd7fd4eeebc2caee993edc562a2c70606e54fc371a8cbec9949458bb21d16049a35ab14772b22ccd4f490b6fc787d93b4931dc2f1acf6020f44f6798d2328094d59b433425e57eb2f085c8343159a0baaa167d20dff14ee64210c69aceeff3c092d903f4dbff94a33b14d47f8a6595e67d6cfaec52e7b76258717ae9f348ea8cc0056250c72bc3feca2395b34041801c31ffc6c831513a5d9167a6201f92a0c5835b7c3a65de42a7ea04055ce11b46557f5b0c758b2d5a51994368d79038f8c248e1bffe8cae12095254f075a1a42d8d3002dda8e90743a53d8133729f24bddd85f9d3374cad95db2e4ba4b1629aaf29b309f7f5b30385c18218744fd807e2f31d87e4f6334855aecf157c172da53e718e0f1ed3f4dcc313060e76a223a93bc689ba4bbf179c48c6ba2650c8fa808986efa84b8fded5493f206ffaa1d63aee6356900135bb05eb231905fddd334b7d06a0216750c88086ec307d6e9e40c9667d6fca231e6077136ecd023a6db2916e58f9c81c51edfb936e9d0b6b018001e3db9fa4cda4e1e355376cd2f5676c1908bb9cdd14b5a2d4a7ad483eefe709f3ae5897ff038ef36e797091386a6987978a63206b8b8148e56ae31c2b46f71d6b470974b0979b910d19a4b8e974be583ac191504e8ac102a4e696c8ab11623addc043b5666313fd87110077bfefda7a46ce9f14053c70ea7c79c6336993b8054a0399ebca38ec40ae7132d3ddb8f1681b5d731856c78c270dee34f506d48b1dfedb7e31621aaf1a4128ec8e154cf58d898b153165f66e97357a1c058036e0b9f13760371a1132bff8777687eceb24eda9fdb1ee11653a3d5017bb515989c0efa03f1addb12689bb9614320c28bb10d98907f95353d357145e25dc6239ec4f38931c9da5db99f2dc6715939695d8567ce5451501ca24164b2f44075b561a8f301d2bb84b6bfa3c5e520170a1cd38c2f192b915b6199877f23c079c4156149e6fc8d55728a0d58927ef3b72b43a45e1f96e16764601fd7980e2303eceedc9a50bddda317474299889401f473dbe0158da3263242cecdd7fb207c0f0fee6ff6781e9308dcca07147607ca4566a4f9a9977fc148f3460c5a77833e48b13401603adfde93e669d20b494816b4839b19de663b884b7adcba8e43b103985d570f0c2f459632aaee41ba753563b8463fa419c7c5aff10d72b780ca0d073d2022bd24f0a59690e8a52005cc13edad7ec6860093ef42a2a8d3e4ea28ce315b4e718b195714fef922d6bd97692c90c64a239339891f5110786e943b59f4db8aed5d152485a0e2238bbf8d903f51ca642741fd942da4a1b118b49884e68ebd06c220d86212b84d35b1be5e1ee7360c1cc53a1250822cde4d915e098735c499ebe9e5dd7cb38a12d51d9e97118087c1006de1fe98297cfc298a4140409f112a142dfa45c890db7ace87fe20a6ff9059617bfb97d39593a15408d0bcad7fd65356e3ccce4a9680696e0707facb451f394e83a25019c5b75eff65ddbefa49fc867d747183fd37da30c5d53de35b9bf243c10325e6ff2dc49876984b693520c5c4abfb5af6ac4332b4decd7db66fc0e8a273fa60ddcb51a403dffdf0aa88edc11ba306654e3a70f79524ac092a5929f0630ea12cc417b22b3840ca0dd1d3e817b3d5d3b8800a88b4e3f4b331d794d2a5c54ee3adfcb233cacea740ede77b44e26215f249f0b8d38f6e3d8d12f7605e7f984927a5366793874d74506fa412c4e30b32c7256aec3acc68faa1fc378954d9f8d80256122e7e32fdf719e056c43c4a9946a3251983bb20c7f5a8f9db97783ded8c1c9e3a2bcea40d0d858e2b5a3441e41e722b33d54b91a7c1fcfa4dca4df7f88876cdc383d2ab32d86bcb2354279a5a46e6644ccafad18dc3d4de0643ca439415693bdfe387e567b7d907982efe5acb6bc4a53db0ec453c7b22239dc84d5625a99458a9356732778215cb0b13dbaa6836a143fdd9d85f4cb8716e1c02cc209371ca6c30531dfd58bff1d27c519be725b6f0f971da6c94fc7d08206abe6db3f01436e71a96bca23145c4d83d1d1a83de37238e8aadf2270610343dbaeb3ea3b06ef2dfd4077ddeb5bb82e642b3d10c72b1d61b514e11b24df4577d218c5e6fdee43fcb6f87ad6451649973dd72f483607b08facb682e3c8c64247b5c7c13c74fbf2fc52d25adc747faea79c2f13cf6191f5e773a397094cdc510281427d3b420875391e9cd712bab646e883d4f704b292173dad8f5354e6627c3a9065971ad28bd3212d184b7f9890ebd3ca71bfcae5021efa6914f15fed3d441eba1b78d211c97f763dee07578edea8ec1b6403cea4f0251548fe88e93639aac48f1a49363512cc4bbb116f33751d91dd7a923e46b5a12e56859ce10292e780de87e5f55d3c18e4f877fa12e807ced626a171ef32593d5910fb8d0da8dc6a9552622fd9fc57e49f9cef603ad8d99b54d5cced790357105ce027be123496aec38dfffa838a4b939e2475e983f2c7719a5a502fdd22d78558a4d2fafcd4fa76ef12dd95259065ddaf0c765a85692b39406512d4704f1c717a65e5d6ead9ef49be6c92d34e095cb365b58da0bc6ab2ff4f5a3eee951aa281364727a66f34a9766cef45997063c7f0f07d0a30ab813a4b82091f8e551fb9c683b821e3704dc71fd699337f43e9025f019b8903cb89a339325ea5d9db68ad9d3f71a202a9b30dc4bc106fe4759402d027ea4fa2bd9cdebdbbf8a36fc142fdedf18f92e2afe193c6ec6a02d873d12e0b471b7dd3acaf2b83fa2158f4be21fd3de9bc09cd9ca06a1697d88c78435693b0bcd3976eb8a18a854df6c8b167435250e69525322d930c3c01afae830c554193a0ece2eb8bfd70f7603c961991eab28293ef7565ef05ca2d6c61fc8c313ff22cc2692ccffb840d4a74928111e4ee22ba5ad8ea60a967c3c9be51d8be29b2b47215d8276d2038058edccb199b8bbf3f57859cc8af1b179d9597f25d30550721d8f5bb7235aad23e192833abb72cebd321026a9da00e358545905a54fa365c51a8a528b6f174eba907f5ef197180e6bdcc6517c3ef507c9c3fd0180cea88176ea004381fea08b7f525bc22fd3a8b1d74dff320b41f67be0244c19b7793d7a0b9c67b7f080726f754c79bb2bf3a07df660e9900928d1812749503a852620cda0e40ba12da519632931cf16cb072c805f0069213949772566eba807c112e4c62184398ae063c97fa9ac29a8fec08b3bac49c840c4cc48161750574619bd05a4c97d561e3a090aa0e70937d5d2576dbda5795259bc89c27d680bb3199e6134ba5981b98298b7db0166b5a8e77f4b21363e5b9320fd7c97b3bb8d3d6926da8c7c6ccdf22f98bff72426151115b9ca78a85b6db4bd2358de408a06eb22cafd15e04f9d7dddece882d1186106bbb817dc692f0b11e1237d8d9a4dd455e5e359c7b4c2c0470b69642e97e4ed517b9fdd2e5b4aeb1b73d8aa5eba9dab9c0396f523c909f684134964b561be2f61c4b52d4e9e629856b89bf6821813bed03120ea86f97248e9bb7052f065ad8a7afcbee743db1d1ba24bf7101442ef803982a8cdf0287d3087e30a67653e8ff22884e8b50ef3ce65336cc4960e164282dd5e9b5db03d29d47a01ce69c6196e2e154e55762f25284587bdfe3a02030f47b99db21c9cc1fb285f803580596c79fc3aecfb956a037985e67c061d0fecea7854af7d40d888abe143a85fa959aa9d31c479e32570353c7ee462ec7983af8c6286c24d27691515aee32e50aaa6c0b28c20aababee1909344254995898cb31cd95b082fbe54eb0a87316426ad5bf139fc20960172477ed8fd66f867ee59d5929321f88942b0bbdbc527eac19c8bafb0213e4008392797e61b1c1f4b6b01cc94d2e2ba91f79843d79495f565880f0710d22159df30414d72a09f512bd49a95ffeb2ecfbff774a4c7a5125a92586d9ca142b2e9c163b5b332b26fef941cefaf15ba96a21bf70bae889f59a662dc7d7f4fd380450a8d842e5f557ddd0c703d405dbb943b54f0dd11d794923b0d97b03424f1c3c758c88bb00e8361b7be67a78301a5ede7f8cf218277e295c1ab0b6526210ceebba3e6c572e45a074c920918c21f6f6aa4036d6c8ad7263bba7a268abc62da35551fe2d3830636279bd3fc18ae2157b8b027265c5ac7b8c296b84a100acda316b5cf8989b36b984049bf52e0b58de6a790f88102d2e0240bebf4d0b67a0a4551073925c4f199330cfcf0a96a2886380dd1cc492889004b5c8ef38c9ec58095856b116977ccc1565b3566d6f12bd2ab40c42124788b0c901995c112f3981b56659302777bf2d45c12a68330d9ebee6b47efe99e6904eaa84f94e83268bd7dbefe599ffdc4505dd353d191be5d49ca9c0deb05328d7ea00f37390bc418b1a06e6ce7aa72705ff0eed84b32b96f59cdae38a8624c62f6827bc7cf337ff0ce032212ee46e2486295cccf205ad2dab5c05cd926d9569909b10f7b3ec5c218cb2efa38c76b1f45e08f603bc17c1d361336dfc86776529dfde4468fafd7e6c39675dc773168876864eddcf951811f35f0e24d6e3ae97df47b62aec6426683ae0b9a8d296489401b1954f20e25524b84755fd1ac906bfe26925964c50b87077d054c9208e9cc52e3b0fe63f3a6ded6959d32f76aa250dbccd8b8023e1ea7fa7c47aab1438d94c937aadfea1e238c314f4f0c79338d6dbba07214a411a53d75e4198107c2c400a1484fa56aa9fbbea5c46985c32971924468a50cf2f60211d3bbc6239846dc1a94dc42e33d0318b78b5c303b052feaa0b05b4fb9ab2e13f058282b184a5424800e56edc6ee54a202c4190d7a996d7a5f611d210770b479a411fcce1a290f3b4873f19327062e5230b40d748192c3834098f060996c29f6c16b36c53c010cf9de3bb4353bf1087626cd48c2918c2d9e0b797c9868f89e08084a503fa500281b2ebb9f0596220658db6734fd8b692f7203b6550197a66e5ffb7430f148646e43b6e7a77e409ccf803c6c44265c6289efb9f857d62d852c1be1b03a0e3fb368626b74c6822de63ea1e875987321af157051d8e40baf8428eb45b27fb4e0b90a83ac4df03c438e8903970d755561f8a37e8d0925aac9e6624518d1850188d203ad92a0043de911ce8444dd91dd1c026529ab198bde7d2cbcd3c389ad66c8db583c0f87742fb620d99496cefda0134081a92fe3ae2be72dee2e4e3f80439123a7093cc32946d45fe769be10a812f20cd99e2342a5714702b46b6da02b4ad8125abbd7cd35753a4f1fdcf1f3f7f169220ccd1cfd2220b85e165aa5a3b2acce9b48a3cd109b6232ae8e9194db5ce30e65def044bb04c3f69af081bbda46c1f15b9a3c71d470595cc94cc36bfa817f7c4ef12a5197c5101365d506508683aa5630e69043183256eed21370e08b6a8591e3ada7afa3848496e81ad5e2f5627bd14fb6adf3007b5d56d3cca68578f3dfd1c3e15d889edb828b737ca9c339ae2757578d0c9e6b994c6c4379bb700aab8a9cb525a004fc027d07e1c3d28419f3dbdad4f470174c05bebf7cd1aadf6e5602d91ca1490332477fdcb702f2ab04d0188e3982b1640e0ff463b01427d84dc1128935580ec945c71b3a7ca38fc0aa1ab96273169e085a74346ed0f81f7dac24654ca389081b9af67eaf7c12a44bb472d2765739371cb66a1017296d64626964e0767fadabfc5804f8b7d990fd210b4f9e8039113e5c671bbacfc5c4266ccae6cf9766488181bc4ec3885dc46291e37781974a42918372e406e29d27e0251a36d26c0fb104ee43ad0eeed0c61e4fb4a030b4f7ef2112a7e43c96731de9f98f85cd6d40cafc6924db7d22e44ce61348a42ed8e3f20babd2729f55fcb2586a5ac3b669b17856c6a74856dd145bfa4e4ef7fd9442aff3ecf0a851903e2aeab116a417c28f58ff88489e1d4a51b88815aa4cbf20fea95196a3e95c75817a4d997a10471a3d75e7d16b78eba3b648acad96130830ea45693b7504f1639f23b001d9a5b937dc3643008784f7421bf060dd9f8323d63373d8a5fb243cf8caee062eddfa13626f21b52a841cce5ebf56bb9a0c508656287be9fb620ef8ad66633d004af8901bde2b6242d272e78df37f2edf0feb27087a6a3c4c815f95f62bab5a5e7aae02d6b2731057b3e3b23dc448cfe967ecc6b09d8430ed58a1ede5204f2c8bff5d978bcd3344242b020ef03fe92cc488ed11ce218cc9c9dd2ad20a24052f518eee5d318c6098d917cd877f0441689da50145a4c125019e383782cc95f8973118f682fe69511a023511ec6e0ef7b7f68402258d6a1d228cdba51741b7874f47f7940e0e18f9d70c7b5a110d7e22c94dcf9b3cea42c1228567d77534d52216d836340332440b84ecfd353601d934631245684540fa25c1db16f1f6867e60b76428e07a82d2c2b44c1b3e0b29a696dd0e724f246fc89f7107bf612ea22fc2f2215f1aae705f7781117a791da01e1370f73c311c471569dac9b679e6e627f2774b3b87fa06ee0fc1a911f2d200ed4a52272a30f3b799e824dbc37934e87375edd9d3cf767b5aeefbfe2ed3ff4f51b166a1864354e149703b72475ef42e06294bb158014a5e44769547e9a739dadb384af77c9e8392cf3d8d387b6d36bb972f5d8edd39b988b32f060f1e67d046e3873a9f9806147d6949b3f94389c75ec5e1e66ea0af26e62d485b1c5c0ece01f05869a49fcf77a2d5b58587ab4c10468a98009ccabdc299876ac665143f29bff6682fca3525e0740e9a88b6bfc5bc6afa6af2b31e5810a8978490eccc9f785c80126c7598e88a11f38ca07b4c6b10e84c69aa93af39ad7e3c2b0233255688db2ed7af128ceab56e0c7d33e7ac31af7551b0d346402faef1975ebe3c6ab2dd1890e9493d4f1cb5264ee4fe818e23e89d42aa39bbeace09a3649b80fd24d90d8807280b079d5f093e4d8ca0c34fb27cbe65ea79b9e6a8a45bb6dac7fb0dd17ca91b2dff94c0bff8c6d8d40bb9cce874154c90a152da3dc59cd33e9d0841c9ddff5a87223db1b027e1aeb39e019f3929384e504fef367bc285699a6624aa29f82469e907dd721fda6e2a2a806e2b24309d2e0ed140de39a83d5b7cd05af306005ba520309a0901444a4e1781475af15f954fcf2d238896e403ac7201f4fafdb8f616f1b16a1ca6c64560e080b6c7f02d4caa586a49894a7988773bf63c8934876a906b56b71411da782e8eba022bcadbb53a0f0b7644236216c4b93874a84370a40c6aa738a3573f0719140ca35e47aa8e444e4501b7ae954c9c40ea63a8f5e14635682d0ff118f2582e2b31986c72afaf0bca1e8dd173e92b45c0c5dc471be4bd154ccb8250ce89627039ae413a21a594edceb183650984dfd9e970986b8d1c28a53c765d89224b1d588160b8e8870dad5510e73042382127cacc95a3570cf499e85369e1849890c8986fff77ab413e4fbc7b22da6f4a5aef2dcea8875efeecc55a40ab2ab8bb1a990b4a962eefbbc1f261c5fcc9e395144dfde2786b5c4643ac206741f8874a2acea3bd27ea9c22d78044c61ab87a676cdfb6d072df756ebdea73e08aeb6cd93485461111017aa30ce6e1d93116a5438a4aef2b71283f4f38374fdb2e7498b6f55924b8939cfde310a10b81dd9496d8f1775554acc16b87a5c00513f2c3b04ab24ae645c0dd1d20c026fc4b8ff4cd556ef629567b42a6780667339bd28d57fe6a74a3eb1183b1fa6af9111f6a1f6a3aad6fe091307d584fe9211305dbe2bb1b2741947c15a9daf9b1a5a81ac54a541d0f43b76f49980625d718971bb9fe847f4326fe360496ba4e25ee9841ef1513dc11c160af03513f0ec067626a4ec4ed189169ef3c8a585f8f3c71d7b5951ed2e096e8bb59b0d3a1e986b404b53431d80fa7261095163967ea5c34298e11f11e9d00dbe15548c5925a991079ab5aff5e17132a8c813a65d51050d7b52f67e08c6e14245c77d44ea66c3502d547c42e4b74751554f5a12227befc95c97d5a55c31f66e020f4ecc58a0ac98325f80411e98fe370b672ff789f7e87edb52c3f7a97c93f2ac9d68d509e40878291a54f593b8be840685c98629652f98e8b958bd225e890f4ec510c7a5db0f74ce38351c9257c50421e9c58f0ee422b9752c85169668ce958b518cc3fdc91f0c1460317ff0f630a1831792c2983d919b3680522b960298964d81c766ef980ca9240334b9381fca590dd7952f7494c95256331b2bef410ba606a96b3a609de2aac6f9b91a433eac24639459c2c23c6e3dcfc2bd90ac95cda7a327115089505d701cbb22eca446780e1d3668ef1f7be7bb0b2defa7e6de2f52043e7991cc74d3241cab81b02056b84c96dc22afc5e065bb497eb7f0d9608656fbba07c90d068302b582ceefdcea41fa97cf4bf9ae2127a4047b3f2b7e5611ae07fd3cbaf64f0dccf92248e042c130004775409edd40606c47bb1377c7bb8783e02b0cedbde00e7d8a4a288131bb2d3b23533511d6928769778c0d81fe9d0eb57bc0df2fe6b88ce9ea322061a084925d0483e916e1f38bb5c7afe1408aea6e86c0ddd946fc97457eb92978e6eb1a048a0ce0acba8258117258b76c6dfa80a4e0a9a7f55dced9a730f217ff546971e2ecacfba5fb2f2831eb86c122da4a7d389ad6ab021d3e42c8a8a434f5236ca517ce8dd084e6dea5a14c1eaf1060a92c322f1711ac3c1a91dbfa55921e076a6f27f0baef7c932911d4913ce860a95fa2e50e6c56e7e2a968d52b045fec9b57dd7656f554f55dadaa58eb3dab4e2b2d688ce1e85983432030688b7ad399df53c990f03ccf9a3131008358f22051c2d66cb1f796b04706e593c80ca91320a289e1685a16fd31c32256ec77465bf7b858ec8034cbb552294744facb2202cb888d224641a6d026843c100febd657acf1c455c3efd7662c7704c7a1f6a358f2abb4d23fce15e1b278284e34414b6678722c20b310b8ee733f9f6d99f1fcdc683fbf6674f787907729cc9e6bee4c1a876e1b586630de150653f87b4bcc0edbf72dbce0a8ba36de1fb3b39506f5edb7c5bb2481b567e1607cb8159c7d0baf2af6def9b22926b89bce8c6abf39efb8b5d7ca56d032890716e302121257c7265f3a7b2c8a9f1651db151949cdb0cfb6b01200c42e7d317438d0e1b8118bfa8565115e41db03abb8088d72347d9ead785ad989cffdd9ba00ba7675a27bd412fdd8d19c89d3657369e9bb10595cf017055843ae98f0ab2f303664e031e833eb9d04038b9566372b85318ee773da87b820ff3af85effe5e58850604a21522e6080b2ba6287e0df4e1d7b96b2f005f63615e68f3ee1e6798fcc260ae163500c73fcfb0d177db6d80392fb270e3f32e71586e2ef8d1c5022f4b9d7d779c1c7f9db0c71967c9cd8e7202e2f25bf869f00554cda1fdc077e0f832ef6d43343d37a9e1b425ceafdad85b5380c8eb6f6abd1f56d3cf075d43c644832e4a6cd0c5eb485612d98f0aa2400a85e796f42c190c5a4df8e5b6f61d91ba1efae9a2808799a0b2a7402c9c81eb0bea785499f5600e4f6e2b8bbfdbde58bbf42a210391838f959e5665632638e7153bec0352bc6c8f3dd3f0f16b0f8549a20f6171a9b246152d7db666bc17c4cd0ffcb3f2ae1844d5b75f67e18274f7f6b5cfc5e6a8cf21db00ee7255aff9670a5f20f1be1e31497f8ddbdcee3f5190a6d0e277fb1ed9ac0bab212da9bf55b4c01b7d4b1137b0365bef9df63004da3bcd1eee2557b6f2845ad51ee4698e15676600efdc89251870cdc3402bd71c55b4dba4efe21a1bbf0e9a0d52da32c2bd0cb58e49d960114b6e8be9cfac5ea2501fb40217158c8104b07319ac6fdf3371b3948d9a30f0073366765808dd39615f977377221a1075282a5ce8ccac11f89993d9a43df26044af4b61dcadb8b19f93eabd43c30c09d986f6bc621737a80ac6bae49942fc54a09adc7e5d827719d3f7f65dcf8413ba0f8fd68ea989140111dc4b7c059e0aaff59ce21f422b778f7322bb186cda9549f683fc814fbabfaa699b2dd0133a34907a10ff48c272841628a153d8970582deb2cf794284535f99effaab5d78e581199886c3544d84b19f8194f4046ef6543cca61e88275f99965cf01c71285e58b7c5cc4e13ca29db3466e942e97689849497121f06cb27d57ebcbd259c3398436f4080568c96d2a2135cdc8b45dac1d0f7e4e944b0e02cac262d1fdb7a17b53a087017833dcb224bb254ebb5acbec479d0c5ace0645097746d9a31a23a2d4e7742000b75472226a00518a2212875949b6259e7994809cab31bac453fa40cba4dab6a72ea26d0f3b7c370636d5228ddfe065502214aff7c9ef538061d029c30822be1847709d7f5ed0457a3c17f5a2d51151ea57bcf0d433b08ff605645fed6ca3f8ef8497d16ac51fe3a248b7c9eb92bac8f1fdb4ab382a4d8730e5d5557113126608cb7224f31f0738aaffcd6c87f1cf191fa2c48e836287b5019ca6aab75bdecdb342dab24a6e57d228311f883536691c8d01bd412a1d8102d1ac486a8b7610c2628a721bde4e2aa8898f3442cda349b3efc8357d6d5cf16790241992684cd95c845f86021334690752ad527de4620b84724e6979564595945d5898a76ad316da3df4e8cc1d3c6784098ccc09bc8f8464d3f6e9888251d3ff01493d6e607002936c256db30984042b8e2921d47496e45917373dc1eef8c42ebb16fad88fd84f3042912d60e37e90c383e80ce56d7cc0838a6f50b6271e76117303e6a84dab142acd83a69fba138377c65668f42d7dd59ae5b8e519c04f7f99d21c49d425d35828b72780408c01f98466f0e1d161159f1b51e4907529f9504217ed6b4d09795f7d9bf0715a049c847eb4c6e6cf977ec31ffa6973ec3d9ba54fcddd90f9b19933b9b9b1b41a060469dd8360b23046d9be5ffdf14e45ff78cc17bdc987b54519e92c5a0b1a074de5cdb2e0321e405adea03f99f60c67b51859b1a21e8832cb0d551d2e5495670bad4203fea45b34a0aa6d87b68c18270b511c4062a84e474338357443bbd9a91337238519fbf0908af928f0728549f4eaea303c0ac7b362957b0855c9442d6bc057cbfd8ac38030e6149ab8f22204199288e2321ac78f0e9bbb550e0ac71ed37edda957462b19ae591e12d1c766defdc33b870296ff116b145cf71527378d544c48e29c360a73f241fb3eaf205333893b65cac113d1b8141e129933f4c7f889d888ea2f342703aa7ad8588cf32aef0c2d1b148e0c36571eb3729981d2e4d136e22186963edfa50d46494cd055c37fbbbe292950f05a0b3aa6eef5816e0be2cb98247fa9089cb6017a202abe7d11f5c4d7308f521254b35024b83903491e277d0d976f6b5956701494b6df7fe056a1ad75851db37d672028c1c7ea429c2ad956fc4621debe94b5ab0c785d902766de7be566e6f6cb362c1daf9345eabd363fa4275038f1032c6acacad41f18cc7d65eb290f1664057777f80c8aa6ce4bf36d9d76feb62cb276b738cf0f5e6b550610f4fe99ceed2db70dcc23a744f413cff24bf9af71c4d2d8b38dc0d1bead76bf760fce7ce477da14f80539533196ce860556a0b1265355eb7e73b1200966f950f399130d8d828b9d5e06378ef6317d1ad09c00b342c1e02f45a89e77c7fb7bd384820e510a0bd24d50b4db1705d6e4b239f4d358153595a017082c1e218245069b3b6f534eb025c1b1bf188fd0d95e04613ebc6dd62cd37697735e371e19ff225fc0e0661087fceb26f534a1fdab6b07e1bbd58835810d09b649263e8e821a37bff9729e5b7ef79936a7aee85539994f808d298bba2149aba8c0237d002dc95e071af9b383b93d971ceecd3d9ba0499e053f4317505402ff09fecca2dc03195304880f0fd61cd2f1b9594054d9ca4ed4c2974e83b552599fcb3dfa805f0edb3de12ef9906f23fdb4a53e9e1c4c9518c4c5414edc592a505e609f849e1647f386d7b30c63b6fed9edd2c7c204939e4f680c8aa5f64297b4d2c23bb7663878abb8713fb1b49ca71b8a47598ec6c35030456bf7c22a846c1accc1aa6c408cdd8ebdef70a5a5fe2933b21f6a93a8523e3abf1a61dc22842ca1269be6735175ee884bf04e17b20e60c73b5ec1530760399154449a636d086dece0c65685c9a3fc9794d8db92caeda5c6c359e8281baefae5a6d123b9cdac1ca4e6c6e96cc61db90906fed0bc9704ba17459a460e10a276c5de9e617c51042ad43660245f13912c40d435fa598a2bb1ab82addab5fa7283e560b3784f70f385cc15bd1bf5b947f7ce15f8aa86f765072bf3fc0165304eff7f86786da3690354c164b298c1c091dbdc05243220bcf4ad098830c954ac7a1e0bea0fcaefb6d6b5c1a1b7b1e21987dbf545058c595604dde0fc1b09fc2d6c63801c14fe88bbfcf14ea420121bc8f69a1e02a40b404cbcfbd33868c69807077dc90c0a48ca078ee39c392f94f048094ffe70063fd5556559eb49d4bb9c170eaff42a3089bde4d7f040781fe2d6f71225a44f8253c738d72e3e76f01177b8a887c8685c4ab8931199261488ba0cc4e284c35a0742c3eab4e132245cccbdbbbf5d83043a5141a164b57bf41ea8c2167e4274237188f390f49c587a842eca5df08d2333ca2896789259216929b65abc792eeff6f5d132c1a02bbbd4b9aa7522e90b1a386c9545c22523221281bd5401fd2bb4ef89c9a57761abc4c81b728c805e93647c650eced8c24670243c17ae97ca6308859a51f28dcdc6a7d6fcf91e8999695d8e9e556b24438d1d229a66ae489c2702850013b49a0728b0f04ee1e973f463487a2016b0f8dade9943f592920350ab2dd345e6e6363ee2d74ddc6a6ff5be5da115da10a11418a0fdaf507091b7a97abfc2fad84125ee284de9d0838c9ba48f5bd5e6260fad6675de0ebdfad0fad0afd4087f422c096711afc0e3ffabe6e146ca0b7811b890f74c038b017be64dcdf1d53994bbbaf54942d736e48aaa8a2cc71135107f088ca0e384bbc4e564474b9d5340c2664573a3a003485c63017ebbe4b267cc2372800f3be097ca5e7b31873f14b30e8256556443551647f703e7ecea0e18762dd675f66a522b6889f3f0d33d9c9344eb943a52436348e5f630500d78fc8e6173fc8df5ea6f23233cf13759f7d11a83628b7da969a3f67e1be8e9ce199fc689d006a7eb6479c1b3e82c4982823a3be097c25598b6098ffc85eda23efa999c0b184e84163999f64f7865feccadebd114bc97203ea18a1821a1e611f4128a5832208f5201b46f28df9311641e709ac41da795a5d8206575fa3f75e6a714e2670b7ae3dad61373ec5057f2c2f03ef4229178daef921508b9f3449e6a9324c4e3d536034c945cccdb76d2ccac72a561bf5dea13fbd9331ecbe11066722f953d60fb49616b68aa5a612d577d6f96e1cef2459e4205e2e1e38210508e679683281b46f124f7e1e6111a507a9546a387f6cac08240c935eab5ab289771049a9513d4ecfdc55f96d1ee454d27f45f689b50baad0fd6cfd25a047e4f2496fca8398831890dd200962efdfc535cf5421062912ef5ff9e3fbcfc7d1420f40fec4cec0d862375aec17fc6a8a5e5f24682007addfdc29c8995e635e4811da1cad917eddd70084ba915f70d8e70f7877dd1f787f0137a6eef21b503502d7996a9ba215d2fb66c290e6e1061ff4ad7dd28a320f75c62efe54bc25b4200ea74611d85d45879eee63a2ddd3c92607b1956d637ce7bb5564ad01252bc3dd0c2d9ef49fdeebb8ddb0e37834f9852732b08619f588bb7d3d6296c22708c1e845205630a45a620f5c6a3903a7b50feac2baa2083f488dc99adf91383530b1ee7d6ad34d1b63ab1b53f2103918d49525488dcf2effbe5a9aebdf584356c43238cfa805527d6d812bc2d73c73c0d964ccabef7ec7a209ad371b7f503e5011a08fa7ae68bdb9b4d3b395ea7919d95dd097f59ebd3c37bb449a8eda37512ebe99bf4ae14ee19da7ca66a94cefb6e022d78f9a4e483fd38ecacdf4c97661dee3abb2593324b769f9bd737784074446538c5531f840e33a146199ffa74fab22cd7c840850b8e0f5863efc184a1f2156d1e7821227c16b8557ec02d156a798a1c1db0f03b037958a2600dae7bc11c72226abdf749a366604c4e0d4caa7c6e1cd3a775b67e78e873976a3bfb8f9c40fef1450a34607667da8edca295cceb656e2c45a648b681713298e8f2edc79f811eed9a4f7c412ebf8069c0a5adb5c33866848b627f7112e425e2fa40f3186d87d8ee2652e124188bcde87440d669d3102fd860522a0c757feb5095f13e3dd57101c705c6bb44712ea3d29ff06c9c3d8f116e1fff9c37caa5fd9e7bfe048e85a03fe0bbe9b336cb44c5ac344aa6f4912591217304cf268453ea8f8370a789bcc106216e8f2593f358853dc00dfe7468a9d5e3c8334c703e69e49e35b223940e3d8b9f3cc738f267d23603c18b39f9193f2f70664dfde4cc7ea001a5d7d04241da32e3a2ec353d5b485b3320c763264e15b88f8fd50d79e254b274021ce21532aaa7c1ff9a2edaa7cf50112407fd22088af0a94f624404074f6d51b06b176b1426f6f2229e710cd8de66cdee5cbb08c53be3d759531b40e60930e603a9f1a4d4bb54cf308d64865d8a01f816b245d2c43af11bdd0054a4dd3347d1e22e115416298cc281f323ce2c79eff401dc789310508dab76a43a833948973d40b540a7a7f81cd6de5b989171663e24567cd1477173b2dfc0f09fea11897d9278761f6f5eb9f1e9c84ac2be016f4dcfac3aa312626be454547b7896dd1b353ba1025f8eafc4cfb376024fcbe34a9b2275288f9de4e79f1dc62d935464bf41b4578be02af255a3801452edb4b4e1bed4c64de3b434168b1ae6bbcb18c0e26e933c3cc6e7eb23791c1ddc23ad4ee5042846c7cbfc0a451f2d16fafe886dae7c7b76570ffcb6af19fb05b7b11f1550a31bb1de9c00566a6d7b909f31642f64005505b1dcac936d7a59880203b78e69b5225e8bbc862d18ffb88792be44352c78d708b78dd4b9dc32e0a0a332e425e2ebebbb1f56d5bffdd566fb5f55dc65698ef1805d6f0514830297551e7506568f7f0c90fa9f9fec174793b7b440224de931c5263c7d00a16ee3e168330c993b471c943a04ef1e9cd896f1da30e2428ecdd6b298f85bccc2463bbdaadc882e2b6c00d82d8b33b33571affa56a6e16371f92cf34dcd7eb459258d573a028739e18ca6de62175e3a0eda061b7b610bacd9ea977d88f061dbc4a9ca450f88c6e8ac5289b9cc3895eabca906e0f6e1d27988d33acaf4955c3978802e3c6565c1ec782b50346b400af7f50ea4b7bf72993674513090764088da3b06917fc93194c6645125d14e4b821f446b07d47d2d1ad5d096cb73d3c87781a9caae142c4cc7145fc7b86435190ba0937df9e16b5af3534f354803083fdfdf1f9631f74d90f9697a4348f10daa72775014320bcb16a76c2c47c4fc46c8dd9cdcec3a10648c124d65a143df72cc02b5114a4b47def0c8d92eb2766b0a2b3ee10f5d348cb4895206c03162e3df39172bf4d06549758081e3dd14fc60b62c3a980914176bae0424f30ba3125d8f9b33bc40429fc006a991c61e907f26689085c9d151d2536430599d17012ecb42de15212524243416c40e695f880a84ebf3479efec03eba0e1b20fb60d1c2b1282895027e67af9bacbc3bda5af8a0cee8d05b902d2f26eaa4240ffdb262bf32c4d3597284146a14067cda21eaf2e6616018161d525a7bc8141069a59debe29a721a93d8380f7869c2fb6aa999e63c3dea83c67ed7c610d7f6560584aff2b083854cf68cea37c6f9a20fbfe053c3a5f38cd5902c35896656dbcd453f4db24a670aea5c34948bafb8642e39bc3ddd8cec20947eacc07bb6817d96a25a31f0d21cbcb4a9f99eeac7fd7284300d2bcf8addcf44f4ae6b54f2c8b3574e09537a5aef0a85ffe6ed001462cbffd83fd14467a21d528e4a749d6aeef6991072a2b7d91bafd0e9fa5ef817843accfde33015ef7409bced8ff5a1a3525d8f95c7843478824479d9ccf5be48428f95c23833cb78fcc947ea01efd0664c5c7f60e72a1be27e50e2c7a0808898163c09fd2732b24bfddd6ff1f8231731406f2469245cda04f6b9d39bc53358b6c17f7ba88829bb7560dfbd2d5168c162d5f5a3adea0e83968307cbfc59a2c79d6aff3387c879794761220a128fc7d4801c864e8be80e4b0afc1d93e23ffc4968a3f992bffd5ee26bb543abd976e8122dd20a5652e0865f4380ef19b19b40ea8dc6382b8eb8e736365786a3e3a2fa707e649daa03418aef1bf40f6cc85130e369dc6665d092e0df56e4dca00b13c2052419157aefecaca58e04ec208b33ed2ce6d9253f508c784e9d52c98c0c82643bfac85a57dee5a4310499aa1e72e6a4c3813975f5ce35459e197215b3e9c6c5790d0bb253962f19d306ae2be41fceafb342f1cf6bae1176e0773d9d85d01b6673361c7cb755ca1c18ddec44b75b25bc22ef21f7ad05f9f47833925e69745c6e36c6cefba9db27864231ea8be7fc51bc17b692022d2c9851d7dc8420fa69ea272ae2af31c581856ae02600d20afd68a8bcc271d4cf8745a3cce38230f2ea60b0cebc020227ca77f52b89b90078e4c8c888cc65ed4aff2d62f483415e0d6780bc0b2172845616188e2ea9516997f3a2fea8d1faa2dce4cbc4d9c753ffe2102654e3f0c54b80758034ad4efd0880b822ab30bdd63e53c3d9aa1f46ae5534bd4fd9840eb7874a0b33ae1c39c100f617007c46cbbd49b308e588bed3b12e4f40c65c25cb5c63cbf9678759514bad580b9888eef6545e406399f9f121315e93da6cf88e9c30702c9b67188000b4b8a868a6122dd67831125fa77c2d43168945e525448da698d5e31ca12d7ca69e88a2e204339e3c491a201d508ba772564eb77a763c731380970a83be293a5fe0c966fa4e9cc4d4e49b67319b65b0e6a41ab97ca167bcb6b95c502b9ae37c0e1e68b0d42ef3ee7c4323c9e425874e38cdec992a72ef4d894d49a72b620ef5a172cf4c743b215d387e85e3899ce7d09b5e5955ec4bd84286fe6f5523a1a97ff34a09b623fda37e332ffc682a8b73a37973513bd8a7bf9489e4d7ad39545a2eea0bf5b29e5a99b5bc1754e6e7eb121f4dae7e2b466465f61efb65e46a602dc46050e3cc4200d55301e554d07bf5130b403a4c035c730de981ad8d70ce662cf34382218fb1f8833808d6fe38456b5f833fb8ab2e001422b9df32897e68b7cf030a339fe641eb13fa0231751d34a1d6e232da4c9bdf7de7b4b29539201f50c5f0d740d31865ee93c278f4798d9135be44bf64ebbf04bb2745cb021387db82717a6cfc0c7b7afbc883e28237cf0e8f1a70f9fc718ddf680139d7bf090dd416797299e9c8a0ee5a9d4152216a316d6a909e92bdd121eb013d34a7642d9b414f0f3669e0e4abe69308747a73874305e696fa66ac6c82b3cdccf5bb058a18252917242393119f2319594487624aa5ec76d5a86d1a859fb72a5b92118e0248321eebe1bdb0338f5003a52affb3aef629dd362de7d40a2f3f53e9e3a15efe6a1746ab227adc1e9bcc3ba9cd825bb0c167f09fa38e6cf2844839ebc610c971f1bbabc9ddd4d6f941098aaf8a3f39eb226c026861a1d22f31184e854e822440c2b839e6f377937f2ba2cd898793c595e4286bbe836da6aa3b3e661f439448c21baae1b42888f31840bcf8a009b8f1ebabc0cf5ed938917459ddfa553adc948676fabec1de77195918e7d3f3cef3c76ad53e1ad619f6e837d0696294b1b7ca717b945d7475301b386e4db3d5396937952ce39e79c7366998c3c6bc8c4b36b1ae6d9e98509c9628491642fccb34e61585d2162316a619df4956e090fdac9b462d2c3890f9bb3fca1230ce74c5211613a955645ce327e75ab62bb886055dc3897da233ff8d0c30a0ff7f3162c56a8a054a49c38070c2827dfb39b4a4adc28b6785f8c2d5f6b8c0446c2ce04cbcbaf065bd503680f4f1abfa4879a100db6671913cee1c086ecb4d260c7a4b39c2ca5bc4c8cb0d06dce79a744fb4c7c30b6b047957e899d739ddbc4445f59d95456565454d86d835c143673cce78d0dd660b7b372a7bb012247917562641e3b62c461e6bad3a9185d5e1f31fabc5c5775270a36ac2b8ede83d69dbaaa3bb2ee3408f60c6f781f9d395e9c9dbaaa3b75e5dcc78464e1f8d59dbaaa2b7eafae3a257d32f181d934e8f1291f9d208515c7bdb6e78bb2c11e9d2fca4638ffe67cf7f8deeabc34fab1cbabd8d2de714ed8906331c1324aaa77c2561cd4555d45981b4418f657b6ca56ab08f3ea6e1053350a925557dc8b7b71afbae25e75c5a2b7ae58752559ac5b5930b075255fa25015527d629c734eee25aa5526722f2333dd7b591d624b7bf66218917371463821ae0817c401bde81065306353b648094ef2281ba39f1f33568489f2858b424c6937e06ef6921eba97adb41761b6aa9ae659db9deed556b1a5aeb2d7b7cbc8dc8b53459b2016ebc56a0105b986220c3b61c3baa2defe812823d221b6b4c78fab03c3a03adfde834783dd8e6f9e5dce7787d3200ead6543c97aa18ce0dc26a693403248ba220c735fe74770deb97775a0d8c1ce75785ebdba4d8cc7e0bb0403628ce8eaa8d786c6a0313166e4287624244bbb4dcc120c8831465c1d35ae4d8ce7d56d624835b09c8b9cbb28236e4a9c73d4119d7bdeb9074403ecd1630c8a5e236e445e8da85707dbc48491f52ace49aa122f79ac46945cd411252ff1d2ad3925e798d2cd70244bdbc4749f4d0cf7a18e2039e724ee75b39c2ac3281b432ad5b78f6a87e5eaaa43a21c918e6825da11f1887a443e2296ce6835628d76da473cf5d512b95ab202755df5e4e08c542fd1d0bb7c4145f73a957c41c58b5a00e7247f40472239e7b1bdaeba2f0392a59905368caeda4372aeae240bbd95873dcc70805a9cce73dc8adbe178b81ecea72f27c486190ef65cb957122cfb74b9865e1b121577c3e1482e27c2f03f67051bdafce65e95d932ce0a1673ea5c95a1f1a262955922f3cd638dcedc902346d4557571adcbb11aa43994b5f56c3ef205f5801ef912592da0a008c33a3c17010938f72eea013a38f72ecdaa11dca53d9205088fc06e381bce96b3e96cab6d8707e8db81825c43af4da5ed683b3c5a8f0fabd5b261f6ca5e9a8afb6c62341c2d47d3d156ab08d3dfce04cb30a9be1d041186d218638c31c618638c31c618638c31c618638c31724e2d77690ef5afab1df96213d35e79e4cb8c69af3dd5475616e5912c994e6c692a5879431a24599285739a437340c9e25e92255997d5d515d755835d7dd49d9079381f36fe1c81ed977ce1766e388a8186637374be454375158ec450773a1572af475257ac6faf3eea13dfded595e8468423528d74442ef9c279fb2806f185d3110dc9178e350ac28807e1e806cf4075c5b1ea4ab2ea8abb1837e4ae201bd21cd637cd61c997d3897578b2c735d823940e45c9e2cf7773bd3ee45e9e4fb8b95edf2f2fef742ae47657a742ded98c5c7e6214a435015e2bacbac8e30af3f40006d0dec59e18b9a753ccd320f73077d77533a412d9671f7eec32fae48b84cf90646018d1979089de017ee9ccd3c3197643ec6faca24a84c9bc7d4584893ed692846812fdc23c92a5a323115dca441e538a7b9640a2bac8d95f60431b359775666673e7fa803a72d1a72300433122e7e9bc13d920221ef922ade411499e0675701a7862446ea583f6242222fb2ccbb62a834929e59cd29b1e57c31c1f5f0ce8181ef6d1206b18cf3ad37d8c6113387f835f1f79d5a0f4d1600c3b48ef38f374904e4def2031d8f1ed2615ae0a373f77fa4506699696425474902ad8b0837cf38aa783f0aa83ac7c68d2a7eb9110cffa466cce354ccbaea42cd80d6f3c45e286c9877846cdc259dc172d5f74dc0b84e0c142cfe3bb8e29a594f26532503a553e92c71a14345f7c6a77523a9d52ea4c0694cb8f447215e72024980c2cd429151e2a64d8b68db6f8dca9d3ef078bcd7be1d2491a44838e3ca541434f699091a734885e166a90b2d00cbb3ba9cb18281ee30b0b0f4f4e491efbc58818724621d1dd5c858a3bdd08152a44aec2eb4db9a18acd51fc7471c84f71df5c6a3e3fe5d69cb817def06291972e43fa52b4694e9f6e9b26f4a89169fa89d34f03a6afe1fcc4bbe99dbe4ec5f703e77e1f0bffc142c48016ee3eab4cd7823af54edf74944fe42cbe8fa24c5f400b779fd194fbf1790b15d76b16ce698779dd899f664e9cfbc1c2bf8ec5e7551a27ceb570915471eaf94975cf915051f128f4339a0a96bf7aa5995e36fae6536b9d2da9bac94d7e22553845711557397194a7789c2e5d569fd34f43c4f9c96dbb2804d8fcd43a60f35d78e3a587375e73cd372f4999a3c57745683e39378576bb28ee22c0e6bb4bdab19af4e9de8973273e2f290776ce79a269b78813e76ecdc9e70d9366fa937bbe22a5fa3c917cde109592424271118a8b5044f4134d91530d45e424915392a852aa427455384985537ae29344f239dd844e6ae254b0289ad75cde9373b571e2a68bb2515d7a757943ee4fbce6c44d5a75d3c989cfea26ef621227a6e77eb32fa54cf1cd316781e2254ff94214ef34cde4a63bb52b4d2ffbe517a2d088270f4d7f3af11aa2dc1ba63fb926f7acc9f49e97bef0c67bee55199235551b2631be211aec548843c716a38a64c7b9ac321cc71ec7bd7fd643b0e89716eeb5901e39faa25371e3ae3635bb6d54a5c1934af3a00327561f9ff0118a1770e19985c7958c999951cee203d2044e1231dc350f6344977827e04220f1c36e28e72fc68d4b8c1ec0741122460c19c9c717d8506be12cbcc5d51180a19816cee286f1a23e95ef84dd53c721b7f86264e1fbc37f1a6c6ff1c518f6f1163ca3864b0c165f8c2c3e46683df8d1a70872f82ebad8e86384a08f3e46e069f9e8538428bc0b10f1c5a547e70750980111b07024a65f484ae994529f224031e594d1db6bc4174f691dc39e444c9d383b12f188983a399b382c3d939ee31cbe3d14a2c5f6f0acad0845a3e72162cae4ec3362cac4d90f105329ce6e125f9080e1e74a9cbd469812ea9a1a5489a7d349c53b33a81ee5da16745ac535a79546acdb666795d17c7e359aa35ce36a43739477dab7c239f0d3aed8bed07bbeb14115540c952f74d93ca262f439513d1fe2c8b6e89bf3177dfb3808c3e0580486c1beb9a644f6996f5f76f288e22abe1377d15c5c80a6c9354ff9e2db2dfb4cf3abd9baed9b3498b39b38e457226a70b0a78f7d3cc1e36353121108c3b718be45950c527c7bc73a6d81c8e213f9c60a7788c3b7afe11b8919d89079a2d04fdeb6cd67e26f6ef39109d28e85e20556f868f3fce1909f4d7abd067fb078d162e2b3b8ec233b15ba088104d0b727d1712fb0217712d10789213674892a9de2c4119d95c6cccccc1e8e4f470fa09d6bb57335b034b03c02cbf5b0b1b2f7143a8fcddce64d8e58b6799af4b8aed2689792a71730cfbc71beeeba28d8b0719ce09f117d4e1cbdc4e91d33fa0bfb51a4d8d2cedf8f2a3dff4a5ecbcdc0868d235b54da79f36d6a9c20dfde3b9ac71a2c8e069b03b1a5319fd1dc98b76420a079430e0a2dbb6cbc210f7d681b07bbb245041bce9b79f3e2decca15378ff305085dacb79a7773d6d7adf2a16f4abd338ceb54fcaf82329a84ba9cd214ecb384dd33ccba4742aa56b1afdb8a8a2b1e5d1348e73ce6734a679d7611e6b947a3ea3d98535f11997719452ab39a669ae0635a734d31cfb385965bacb5daf41ae55e4de89534a29added56f92c1fa899ff88c167da1cd8b4e3c6a218c3771938997944876b47157d36c685f0de798cf2125b2f7b2d7b4b0bfa354734c86761fe6332467f3b1dad8fce4e337f99660e608c325b4d5fd23558fd1de91adcef1c5c2645e2b769b5e14cd53d19cdf719dd13ebb35624bbb952f36224b07940811463b35c2b74f201a24b6b46f1fe5b14394b1797bbdc3b7673a2c63bbd92ac341a653557c06e59af3c043b5de9570224c0b27752492c7f85262d595124e29053145bd4f4178685d3cd4fefbbcbae40b103773d1eeb52d0c73aae2b5d68387f674ea3ccc12f1b42f3e89d56277f7d06a9a691b62492c124bf4c25fb4bcf87c6879f183fbf0c25b5ec078f10286a35ec080e12db6cac068b921eac50b1f7e701f5ebc78f1e20586522a61dad632dd8d456275dcc6e22a11d431dfaa0d0cc31cc3304bc412b14302e0a11d12004b24009f6ddf449506eabe3061588ba699bc45c34c32260cc35e4cd0dbc11e3c760f3df4a0395db1ad70e12cdeb1077aec978d85dd8d85b26d2cedd664be39bd251edb132fa93296ab8cbda1f79ed36fa381720f004e3f156fbe1dd22f3326653f15b79f0680cf7e288f7573adc4922f40b838c73a9558df0ec4e7f2491e5cb0ac00516e381a42e2ef0be987251f422b57be8c85136122d71afc337102dbc8e647773a41577898adba0e896566661d1f630b5f1e3ede466ef3221f9d9cb8c9c98989db3cc94dfc88cac79f1e58e17f7c20546ac3b7977cfce9811ade073d867e7cc0e30708ae6ff9f803849eef62670789b384237508bb201e3ad8b0ba62144c305287ea11e9543add2e602314d0f0f3f72314d0b0fa9fa123bf398d12b0f1270eadef220e1b7fe490869b234f9d4f7a3c753e7900aa4c65b618866d1bbda1f628238f2d7796da2ac3ce7dfe1ddb5336a4e3669d07efec970df9b21feb61f693b11aecea3a9d9c74f2ac519ebaac3650de93382a29a4678e2f954fdfe69d69e43192bc064d1e5657758976e488788874443d3ac51b90f62decb7f0d8c24d2a3ff2d267f323b7d5d4e068e433ba7eb6880d62977cd980fc7ab65d0b2449de763234f2ed1bf906245f628cbe01d96e9bf19fce5ebfd9d969f2cde7c76d9b6b9bdb08f3b974274ebde3aa0cb5d15ff2ef5382032744b0537a512728eaa1c4b1c17e7251f44a9e1ddd9541ee88a759fa47103e3f5b9aa69393924fd3896996463d417c2321cd326ff7b2e106b415e95458da823a555372a0ad0b1146c5db3b954f89d19f78e90b8ba00ab0110a67d8f1d4995de58b5ff2af1a79552422d59783bf74eb9192377aa2a463094f5168f346ec0b17e82e9c3958d474d4bc34e0d30b565786a441996c480e76e4d2a5fde2f3f0f1b7f08af2c5c1a27c8402901d1f7641b5f37088c784780c5b794ce5b14de260ae459fcfbe6a44e2c8973ad42c2d5a7d3be9862e2e20e8277a650edfea3a62c32ec853752aa43c1e4ea7c26c15d42faea17e89315d501b783ef46ebe3dfbc986742a92762c0bcf56998f7e21b1244b7beb896f125010124bc8b7ff504f886cdb56e44f2c50832c4f528d7e7c8e580dee68b084d3606947b3b4977c04f500fa128f6f0f495d133bbee4a3c14e6dbd35cbe61c5f4a1bf8d4a56fb588ed8e868c5a70b035f5087f07075bb3f9c94fdcd7c2330e959d3e549639f827e7b2d3f729c143a41b9bd3e7a8937f9773d167813ed4e9d2804fbaa943f54883318a7cf32eb34045de60511b6a73156fb139f8998b42d47669c0cfae123c44bae994a3323fb9c8e967811a3cddd8a088067c92eab7965444a56803aaae2012d0874de4fce641f2861ca04decd85cf46d37c4fcc4876c56bad9aac12ee13c119b53afd506f58d52a774a36eb0d9aadbf8637ce982224b8fe6901d0135d83cb6da80021a845e3a951745039254451aec1cfcf2926e1aec6d44a4c17e5169a05cf30c888f7c1950d6eada60af8759eb3a1b2ca720b6b4c459830dabeb7e19911b7ce4d94fd44ef0a94bb2b4a77da894a7a4a7e1f6f4a973ec2a33223202ead44603e5279fd1271fb5aa575735d2a99f116b34048752fb22719aa59d4aefe8f6f98cfed80ac1df7cbbb4e4dfa7042bd1c4cb926f5b097ce9f2dbbe38bf8bcc1d2315897c23f2230fb3a14ea8c1a6375a97af2ef7f6fa922f31c6b51b824e5f74bb202396e2481c148f8de279d9cadd639da12f57269363b75383a5b72673ba79585dde37c35a8af37cfb79d565fa50e24cef824cd535254e381a12ced025a43c269ee2dd0fdec93749aa7e891950a762bf30657537e56920a1cbb695786cb0c4bb4adab125be5db9a3c15be23f82f0ae069292bb6d5e2b033a86bd7e254de0dc301180d74adab1d5257754577555d7bc1247e6b46c185f5da485be9d622fafae0625ce8eae0c367e17d405499c0444d6a8ca4c27b148acf8ddb6699aa6699ab66d742471aa916649e9d2f02308df82b8a521cdd29d4b104098380bc08560ca33f21bfd52c2912c4d62a74094b1b1bc021998408429f906f4eda55689b5795862958674411b503654c2912f4c481616cbc85a275109e7491b4b1bc2ccbc8012ab4193775c17d0312ecea52ec83a8a866b482da01aee82220ca973d2adaed882862e68c80249169691ad18c6edda057dbb05aade16a80ae073214e252e4b4a3f4e2e1b9258262e4138104038c7001104100270972080f08e11c01723102b58541a364dc3050807e28b1188d0c4519c45a521f989b730397114f7afd2d82ca1096f0205f3b0d2ae138f11c3c50504dd4fa7d09edcf0c47da8342437f11f2a8d0d13fec44dbe3042f1262e6b4e9c3472a09189a35cd2906ae3c449ee439539b921bf89c74ac3e45e52abc12ea15fba6ce40c2497af63484e02ea143b69080f9546e4235fa932a34b02baa4568cfa2dc1ef55d712fc611754629586748a3dcec97c00ae2101cd68d00c3624b1ea119c6aa40e555783ed65b021c9f5ed242024e4cb4a0d3984102e128bbd446d02d00cc40e1db3cf88061e9ff2ae9d6fd7523ef4e6745a435d8b3794a4d8606c90c3d9299f5acb4a8474ea76764ab3316f8c604839044c1b20bdae36a68da952cd1c95081586d18ed551176c7fa8a2c232e26fdf9ea33f6b3a431af35a6d8a067012d1691436f0e163143620f2d3767c43a9ed688cf3464f8f2b245e16c201c931733e3d3e2c44e2984f7d9eb054c55d6c73eedba647e71e1f1fc67cb84788d4b8c7877bd84748f4907b32c0d247628e495476f986f172a0c1195d42ae95eec90ae7fb70b9f3b9868c1ca9c1e21e1603bdc817ea439e7b689846022b1f6ba8b373909d6a83d284e0634dbc1cc49581666997c286ec8383f8e0233fbf25d8a30f0a54df177d4ee05291784429c48b15fe7025867df1de4aa784a467f2867cbb3dfdc0bcb115700564305c992f80c2c8d04728d460e4617c84420d429e8b746a6e5d162cbbe4f1b1a343a5d3837f98d5e01d86641c630a9322086960c3cfcf3ce49f4c4ee0ab408377b04326859452cac8524a6666669e1bfacb2fc4a0e9180bf1e5225c176cf4798c9919c3be0006396307661f599679c6b7463af73519db3073286fd8c4c74a13a5f88939d3c0e00214499e357a6b6ec42ae454e186f2ab90934929a52449414a29a5741ad21af61fbe86764522cc122effa3ba7cc860709b267470e7b15eefde9ca025c6739c9298cedbe58b98bee48db8f1bc83095db01b4a295dde1f6113cf518a97f707c76d087b47eff8f6286ca023e5f700185c802249cce6fc853a9e6b6e44a190f4328c4f8002cfe3e0c7ae06a2d0cffb43044dc42ae4c4705715ab9013337a794376d36f1e2b0462157262b6ab83f38f430f23d8c0083c419d8736c6749f6afa80053920010e94107373829698cd714a62b89b13744ce7380588d9dcfb700a10d3e930c2751cd1f97675b8c6e2e3b379185b510e2888c28f3578a10763c082dbbc6088126a500328808400879818c31de12a1555c267e003034f60028f83725cb05fb8d1d120690a0c74b9d5601369b0bd2b0c1b72916f67a11b2924a8d52f1c533ac21d86fcf00f83e1a7411a52de2f482064c4209e9757d6d4275edcc10e3ce44376fe19c23fed3cc40ecfce3f9d6267154f40be441ff6918128a4c9177e82837cafb28e4142ab8eb4aa6f6ab0633d7a897a5524b21ed7792aec8dcdec4ca8549072105a8f9755317a8cb1e3789950c5172539abec28c6d11755ce844a87e7f1237d38e68b461e6fe8d6491e5a67a24155185ff6b28e069b34fac2cd1bc77cd10def3b9bd7dce63bb6236b49de914824128944228d4676f4690d0e3568c4fbd8f5da3e3ed2385dabe40b139e8ad3822d7d3a9aa59d2362c3f8e2b260392cd890af602b141d959487dcc0ae20237188839446e83407b2bd06cc230ccff0905fa8e89b0b2afae63631315091fa119a5f1d40e23d82fa7675d0abe36a1a5f56f108b2cb846469c72e0764a8c5189f08b3047f50fbf40f0d78e2104f2e8289b48f4f6ca142689f964d8fa06280151524dfeea0c6110a572aa436183a80abc78f9123ad92ce6e7f7eda277dba8c8e3a82ba747a1bc82571648e7ce1219ec843af97d8c2c989f3257da6cee46997d4912baafaeeee9e973b3e448327201bc670913f400a64630c4157f404daf4187d02f15f7c891eb27c98125f34e98c32826f84e249b2096ebe42386df08dd363c70e1e2b2fd8507b9c36d243ed52829d392e98382a6d460b47a5d2705aeda13657dced84d07e4f8f376c979666f435ed364a8fd9f33cb6446718d8eeeed6e69cf346c9c2df2c5bcaa18b2b61262bd0a09c406c91bef98c563db3e4cbe6b225659452deed52964abed0a15eb974823a67aa54a8a60e70aaa6d07451d69547e86baa321f79e4f53c346710ce9d9e4e4d9e1910092264fa74409647835247e6a0d8339a011d18f601a1d833b789d181f9f423309fce3ea767971543b23486c918e1c229c1c63b7b8e10135f443bd6454e711e9d1d966592c5d33ad3e2b3ab448b9f4eabf7a241897d2a0d4a97f5d4a074ef08365c91b339ce961886794bc6923c27c96864de8ecd9059015eab3306f8ecd2db8196be02f2d09094278fd3fba402364b6b525293063c6b5d2410b29ca6121369d55bc10a7226cf1025e4f8c02f73357b863c4685885101d30226d4369bdc75b5ab9ea6712e64434ce83129a814422493979438a9a4b31d8c833395105fe81de21cc23228b32686f885088259b8831458a0ee9a3c3827e7db59583e5ee9d01289a99c2c9d0b004c24d01736347b727e348e8b524aa763d96b6808933de144c2f774adceb4d5eaf46dd5b3c5b36d753a27835c40405c9dde6d1e7dcd15d66218d86b87bf7e171fb300e0e333b330af00542468c7b5d38a2dabceab3293ba700e00de7d39b4cfee0f0038362459c65c318c06c0c73c3f7847b2b876269129d42ccd328cec6461ae6886d56a32a12cee22064ec4543d78d11dfa6d6f9b4e16176d3f9bd8cf6f6621825c88623843a43b2c63b618c66cc3f7c402edc1b753ef28cbe7e2cbb2a9692ebe18b3f558e9d2e464b2501edac3726a1fabd5bb747943cdb69afefcd99a938a421319c44af7560cb98280a80f5a1a2667b6b9600100dde93aedabaf7143b0947ac7dece6ad5c3c353bbc7e84b72124725555227a7c19cd1a473fbcec5c73100f8daf5a383825eb2871a1cea978b2fc6445b65a8f6a42ffbd246bfe9b5485efa8a2dd897749ef6d197b359ba088dede76d202300d19767e2f51b6c880d69dfa4df0f16df6ef7c4faa379244bf3344bb60f3634a54995a14538a9329408ad160d629b48b75a2726d98e2379da274f8060a3d7d139a767ce416ce65dc9d3be7ee90dc1b2cc9cd1285586a27829292c4e5908b683d02c92c776efec508e30518602c1b27729a2ae8aa8b397fcf41f2e9c593ec9f2f981f49140b2e5fda0c53ca99c939fbf9ead5e83a5547ae48cc5b1e78ce50b62408c992d20961e19ca9eb05233a255e9727dcbd0ebf9c0b2cbfefa29673db05248060575ad1717765e42429dc29e073b3f764085b4acf5ca02ddf17440777c7839f0707083d54e84999e0dbc1aec7834b0e15cad9a55e8eb455fd24fe01203a4f39be927b031d1b5086361585b823a0ef74e7155f49e0bf1a293d2b39f894ecf7e25af61f62b655a46d23cfbd9dfb66df4f772dcf4ec277afac51611a006a790779d67bf9a619ef4a6673fafd6550daab5daaf7bd19d2d11b6c94c344554643feef99bad6f5e21c2e04284d185d8d29e850836c68db2d168e4d96ffb0cb3d24e3b5b93c8049a451aec20ed49d886059e5b60b09d84dd4922d92ffb92673f6c7e3f585cb860617171715c6258ee6cd98f7ef6fd60f1e9612e5c7e3f6e4e6063581cc725c6859be86c99ec047afbcd3b5bd3b39ffc3b5b95ed5cc94c1f0df6fc7eb0d8181697ddf703c72586c547df6cb57c344bfba9cad0d50ee7e10bdd697035573ee40bc6751bf66143b353f16243b18565731f6243d8d0aa53743a9d26944a135b9fdd7953a76aa278b695c3fef4eecb6173d8cf2412e9f568318cf69466192a22b788ded93a7184c132394f2991b2f0d89a38db93124f41cdcfb31e405f711e7cf01f32b79e65cedfa8c4b3cc7d9840b33589ac58e1fe851c7877f619ed28b7374415d1c2338bba365a6496dd7d86f42f744719b170bea1f5ec8638e617b1c2ddb3507b14eada58c1a3cc597ca13b09f415a067d6476e927d2bb21560687dc525e5c0da8ba308d0b35b03fa8a5be38367fee1989f5d1cf3c1910f4ef21f7828f1cc871eae9f7876c3151e783851b9ae725554b24fc5fac8553c1b5d153f51f1ccfa0d4f544ab2ec53b99f9f7c9e7ddf0d79e4a31b7627dfc8d99ef8e8c447d928cb9e85f3ad415d948d12672f41a13c854589a7a03ca5c453521c351ab5687157f86cc91537d47ee4aee28ce2f6cbc1cfc29b2b4d89a7784c0951a194b508c9e25bd1c2f9731f7da1fd9177b5c1ee374a3bf293b7f86a505e5ae12c78c58a5b83f292d14d71524ae84f7294ef872a7332a4526d987c09c95b541993976438d98e4e85f24b9e7976437f6c8987d94d89b7fa4bf64b9fcdd3977cc186b0a1ec26c369354b3bc9bd2a439148d9c2c3848c4c2233b0213684a4532126c56347a48830f108237eb870cd858b8f22c1549a3672ad0936092480662b53699ac83317dd0ab0a81308c2863eec08f66ab0e3557d55862f7db580be18fbc9d2a3914ec98b1d696c88426187b854378b742af4b119124fc7578ffde2c2eb0d35a72f8ac40557efc667bf631afeee4591702e9ce35c7c93c8d04b6be16871a04565624a2dc4172c0eb1255fb02129bdaf4e30c496190666e938c497c986d734c3b7c7d98aae6ffd60899348b3b47f5586ded9e29b16ab58754a5111a7887acbef87f91a9aadd99a2d49b30c05d90dddd9c1cc40773021300160adc1b27df661288825884922488150c75410312196415f0c23c4ccf0ed2e5c456f88e5682f2900aacc3c0000ea8ceec58b2a43b39f1f7dbdb21755460ef1a2c68881b5a4c1b2d37f354b07a0cacc9ee9637ac15a9245de70facc1eba84d93385602df932573d571d10405499797aee69b0eb5ccd1576047b61432fe8ece9d4741f2aa24ea5734268e0f43501a82e3060481717fa6a100910d59381d53ea41489aacacc4b5f020882dbb4202a4de643a5017a31c2c4ea8946d62379a512936772e2a1789ee779a714af390851e6b7fba1190654e8e24ae840348f4032d7be25dcc66cd66e8cf62d7104ab542a2db274a5a1f1c0f653fb1aea9df61dc1deddc053fb36df795b95412da0bae70fa8f7019144831a1caeb789b18969ef94e024ff4defbe9bceed77e339a9875522be3ec660185769d0184313c467de791e901c6d63aa5419909a390eed1d939ceca4945e156d37477fe634a36a437e0d119586cd53b74038fad6191a24cdb26c933526a64e729b67124ff14573edae344bf3ca8a26f262e4183baed248e0fb29e977232f46186ea369e862a7b4b6f92ef3b42f9b4e69daa5cfe9527a365dfb6ccc2f472f01831dc7e96ecc7709cc7168df71188d0eaedaa844b44bcf2a0d9bfefe0ceb8c251ab22492e836ced3e6a494524aa9b7d5fa718f66e94dd3a4f4e24b7529b76dc5a5ca695649b30853653853908f89105b8a105b8ce0c9c0ce0f39c877adee496fe73ce9c580cd60636ce9f9b653942673ea1e0d79edb669739b35166426ba8efaf4acd248403a752480806e383d9b42504d36d348e027d7a31591213c2c0f863c0f1fa1e0c1cef740f5df47287850e4a18841909e1d2d5c0108d0c71f202c2a7cfc79e2e6bba01ebc7a30d48321ab9f9d4ea5b8074224910fbd2f0d693a28dd36cd375631e1c1c086b3e789069be781784ed850e2084598f8f1e303fdc0f0167fe1eed75941f1e3c78f1f3f7efc151e7f26898ab7f0cfab7bde39e7393a4178ace2c73f398a5b3f7193928bfce3473a7211c2027924678f3ea3af748ac46a9014825d50e7ea84b460c32e880b622dd076652d825523f86dbbdc059570e4cb0624b5ab7ae6b0c09c8ef55a16c8b37cb3b0c4ca6827546295582516bd5d50e7b240a9edfe200110f6204aac12ab53a66c95f990a9e1128ed4346b4f27f7124e09c70675aa4663be71e335679e0fbba02e68e7db3ba1ce486bdac622b142120b73a69349ac18315c5c40d05d5ead411bd460b7e44b09a7bdac25814a385dd050f7ea823a17c7b240d95017d40975ae06b321ca6387cc56cbc3fecdf9fe00e7a3139e10f21f7f80b87e03dadce40429564e9042a785d7020a35e47c1451e8f1ddf55a3e0fdbfdec10dbb24490782fb0a1cdcc14adcde659c6264b810d37a0ce08cbe06fc7f9b00b6a51cbb001b177419202a5c196f8e62d823ad51db1ad223f3305910667a628e2f1b01bd07667a62892f1cf0f749e7d8529653333454bc5cc14ac4e310ba83bd7b7faa50bfa992986fccc14400dc6b7899d9a45880c61a5d49929583f0dc6210dc69fd128ecd950a74289333345f6621951851377f844983832d2a988d3476c8f15d23c563f12fa1eb9be7d2649904ec92c7c7c18df4c92204227b5864aa8a753120b1fbfe59b49d2e332a93554ae55a7e4153efe8b6f26c9aa65aa3554ad9d4ec9d6c7f76f26c90e5049ada102e2d12969858f7fbf99243c7e4ab586ea47a753b20a1f7fc53793448745aa35542c9e4e492a7c7cd437938427c8d61aaaa09c4ec9211f5fe59b4992e333aa35543e499ee8949cc2c76ff1cd2479a24884e11aaa223e3a25a5f0f1bf6f26890f22b5d65011e9d12919858f5fbf99243d8678b5866a88914e49d6cc14467a4418aea1ea9144d52909858fdf7d3349543c11866ba87892ece8947cc2c7e7be99243b846cb5864ac814af4ec9283efee99b99e2b5a3d51aaa9da04ec99f8f8ff2cd4c119493d51aaa1c57a7a4133ebefd66a670e94418aea1d24972d329d9848f7ff2cd24b909426b0d5510a14e49283ebec9373385108f596ba8780c754afa7c7cd33733c5d02ac2700dd56a8a239d924cf8f8a56f668a233e220cd750f94882d329b9848f2ffa6692e0f44418aea1ea892df167a640d229a9848f9f7d33532069307e0dd5131f6b0dd513b125fea440fea50b12ea979e3dbe278fefb9a32592ef23dfd2486c5717bee7208774aa913428831065c81b861144f6748ae4ed5248a77c3af5d32956a7b4273ab54518eafc2f31e66608b247d0c965d365e1a5cbc2459785cf14019898708ac469249dea82fa86656ca39144f253defce61247962e8b44540b91a52918342a344ad1568344684f8342a80ffda12c3a048865048d3545c39cd376369d590a4dac59e3a694b6e64d4aa91b322dcb382ed3328f2d886459966d1cb7695b966599a66959092247d728ed48276ba7e631539e51e076b19a464f0dd2171ea94f7e3a79d644699239a7c934e7a473625986516cce39d9270ebae883a51e596b108b314a52120d62a176ca5662e4cf6cccb22c8b4c9955b02cdbb62dd330c6dcb331cb981d3b43a7cde8cccb186bcfbc9d9bf3ba6ed7d4a0c61fb3a6695566dbb64dd3b8aee3364ed3346ddb36edd6382684e6ee2873b7f48c72d36edb2c34d3b40ccba67ddaedf1c7ee1a7a173f477c82fc8b8f51f8e0fc9452466d487664344c8ecc24669e52ca399939c6a6b465478e57901846c2a89403dbac9b49196890f36992d2b76ddbdabbe79c526aad4d4d4e2a870da31b866954532191e24f9714c336d6b46dc3308c6618c7655a8651279c0635c695523b6012c326c5300ca35fd3d9340998c4bca58d9c24975262f4528a6152caee99c96fd2d9b227d06753c64eb5679e656fec5b823febf64181908f9dcabc39e7a4d8c5b02c9b734a496da6cd348d62544e6b038d4ead6a9aa631098906310fa7945c95c94c27954eb1e6ddc694d22a93dd4cd328a57366d8a48ea9ba8871ee3987b231fdd6709e79c8dd2d8a25b07ee563144ad0792c72e1e438d27c8cf3f8d94bee6632cba69dcf6d8d45ecd6d82574f16324b6d9ca3827c72bb261e6162c018991223ddf431c6063144c787d47d183e4354b00a1972e893ce6f4e7e3536f3d8b8f501803cf7788612866073f738c331cf3435662f439e67b8e63bee61dfd36cf9cf38d7a165bb01b320d7609b3448ef9913a8a067ca7281af0690d8712455114fb32ac318f32a81c18b0f9f8931da539f8185f9476e3f685b353147366ea28be8c7df30d363a0af3e8fca1300f31075f737ab14b03be7639c6d1b3ec58cb81d44c1fdd3f9a4ccd82519f9fe904061b9a3e3481d235a7d3c1ef1cbbdd1de2274783db308cf3507eed1d6f5263f989027fde211a9492ab452ce7a14986e55bbb21f8a1e94de0d315b9f14c421757c26ebdcc5e6067ad37ce97909743d09c03cfdbd75ce455e475e455e4da26f2bab926724d85d7c1c186fc284ff3503445d5331f55075175d3448e9aec2291a3a6673e0a51534595114d5495a937860a0efe9accbbdb4205a54285b5a7aa7db66bb657f3cdfaa9cad8cd316ddb6cc96de992aa125ce221c9ad77db47dd9250d6332f5907dfe4a48bb297067cd32d216d1b931cb579e6a5eb913c446d295506b55d1a3086a7d54a337aecbb152f762a8b95ebd7cfa3d14834aaa22ad23c91c6719c7b532412cd4c91ab563755991af6cfcbf6d0a382e8a753a28b1a0d29a9445417892e6ad43f9d42893cf3e8cdead490d245892e0df822175d91e8c610d22959e3ddc322d744ae79dd5cab5bd5912fde8a9fdec34fefbce36164ddabd647b508915791d7ea9b481bd591c87add8a573fad41914f9f9de8ebaf5fc89546f4dae8b5500415d53f72f9fcf2475f0c91b3775e9541d180dfa0e813b948f3ea9de8a35e3fed7b83cd5023cfb291835f5d438d5e24848ed73a9df7b29975924b3775aac6fae6d2bdda95684e725bfaf8bdad84662be5e0b7b7fa46fac2cd47ce559a6a63abfe7ae2a31a3efeccc1e73b175eec14ca8b2decf1c3facc36e4874d3cbf0f1db7f9e00315b5b6b5c8de5004bf5d6d4a8c4eadc1ea9d148daa8bead5bc2fd4bad679e9fa1b36ef75eb230f3625be62e8e24a88053df52ecb7c240be69856b24ec26ee6d6bb49234c8a361a7977f2d270e4a7a378878a450c11f2f30c4ffc746ce475e4b5a2a0f849736637d161f5f10a1f7f5e439e07ef401eee0d55b8b768a1b2929282e22a5506e5e4282827140a8a83afe2271415540a4a65c50a143f6a854a4a4a4a8a4b4f4959e97cf0bc1f3b7acf5b6a6c940a15fc27a39163b5d2308679fde2a3541b239451ad1c7774caa41fe5c6d3631e23064af55addf3939baacce9a2eaa501bf7abdb1c1adaaf09377f5dbfcf4a97883f55027f73c36e89d1c7c94abb8b1c17a51373688633e4a0c948bca311fc595183d8ad7ea28282e516e0e7e13072b0d132ff1ce8587f998fc74b2d6e73351e6a58c09369c443ecb1c0c4426d0cc9c74e2395845f5ceb39a3a59a34ac39a8f7c546d541f79ac18e6a31d99752e1e4718cf0936ec9c9d2cf391772feb85274ff19a93a344189467de3488302a9e79a7523dc54f1feae3b7b50814af285e4f5f45f1ea331a75aa5f0efe93f78e4e99dc50859b78c641744278d583a8343a181e4798e8da862259af09b3e6e438f8515cc5f59a60c3cef9cc5ba753a79b72c393779ea1dc9a93a378e6b6d2682794178f230c8d1a13c7c1b109d28322cbbc7d74aa7b742a3479e799f7aa53352667cf7c5469341b26db1c474945986bd8d5aa7718e65e841939d6c3632b1ef3184d1ef31a33c76e58ef0dcfc776ddd5a2a669d3049fcde999f74da7764c134496cc57f0d90b3e73d20deda4c1676e6f78ca7cf4cd9bd8925dd1ed51bf5e3548ddeb6ef708ea1e0f364863341b13f49433e7fced6799c61a96c2d7083c245558eb25eb85cf0ac6f31d5f30f962a30bd12f3126f2d0efc81776354bbbd69a559d76be9d276b041f6adf397c7b87c7041ba30022d23b3e7ea84d9da923558fb57ad040e4e34bef46dd0bd4041b8c3146182578e851ed5166ce8bea4b03fef4e998bfe85496d564ce9da2015d663561072e3b2bc135ec1dbdef0b1b8d250bbaf8ab31048d61478c2419b4e7c040684373419d2e2631bd06bd3fe641cffda2d29a6f9ea4f559e6d345f0b57ad75f0eed959053a89e3a12cf39fd96f870f0f7f410f32ccc320c4b40a7b0ef315086fe5ae6e1095bf1d7348f5214b9ef06f8dd0ae7d98f1b7a7ee5e38f1b787c113d327715a41c58cedbc32cfbb80896f3ac08ce6bb21b82ef83551a45aa8cb7041bcef79460430dfc4e7137a51469bed2a9cc29aaddf357a12b7273296cf550e5e5f58458140d1afcda45b56bcedf3f9f1f9b9fe8d33ccca55b5384d9aa2b317aee9bb36edc22f20cf4ecf32709cf87e04b95972e7f92ecbc14e2a5a58e83b9179daae17cbe7421228ce6d20710613697de6ddc568b988e4dc7b4898d3c2dcac6385291f4b8c260c811149d2c9def628cb76653a7674bb2ccdb6d44df9047b5886e0685fae4119f7a631e8f04bb1313928b3cca92c49a7ad659387dfc69622e3defec741be5f486fd9e4f9d6feaf4863866d645139add1acf353f312142bbd389be28cd33e619719b9b4aba3bc364937260319dcf1ce5ab7506e57d6b5019ab3af68b5d715de586569bd925e5c0863868a55e83a1a8f374566114a522e5ca3bda589ee665363a9a983993473b367d7cd8496fe2db631e2c837a367b7c8803a39977379c3adf398ec61c87776b1cc3b0ac3d4d5efa4d1e0ca3f3d3577d8644099d76ac922cd34f6ea859bbddf044bae1c94537f4d20d412738ce8a38b7b786fac8db9d60199d76431c336cfad5db431cd467c471172572eb9db34abeb0f0c9e21a11f2cee7a187d6fd72906b5a8bcbe246c9d239b0247b390f71d01f79e7d5b9ad16e13de71c34471df4dd7423e4e46c6def660e15893ef031be4cb7f165866499314622aa73f4a977948aba93905bcedbbd0e728265e44ccd9b3abf7dfead7ce0f7e2c5c535f0994fd163ab792dbdf8d43be83bcce32a3b6ae39dc430cc67e26397b463e9f785fedd55cfdce61b07fd7aa7130ca3f319d2fb32cfe5e4ae26299d1348fb8c74adab0ce5a11e707064c600062a38127bc6227ae43ccc4728b8887c37bd49b39849cf289d94ce97f59e8e79e8c9223097ad65f2458459427a888a98cb78694010ebde6051d2a54bf0e7e37821a37719c7ee8c8a5a8a51647d7c57a7f8d9bb390dec62182dc33eedccfaf671b10c8e30628b84c2b794524a9fc8d22ed909f165f214be5b9260316f5a65e46354b2abc1f6a65376894e563e95d5a38cdec1ef6e00facca7bb34b75213ddf0f4f5e39f1d9ccb96de655e1b407f4a5d9145bac6ac86c87078e9dd659fd822dd4b82c5bca3b145a1cdfbb00f7603fcc93f2fbb38ca2d059ae6ac79c6a2614df3ec63d7fcd3fa31cc1973ce32d7e65326f2d343cbec18d36a8339eeb296619853cce98e1d0d909e09492273ad0714a4e8f1d431528944f21595924a837d3ebba1376f987d374042ea5d632b0d63d8a8daa89b53ee8fde69c565881a474ce0061337393d76fa4dba7a6440e26d5a0de674f3d85d69588a275e7a9669d586e6994ba73eab0deccecbb1a9a8a6a18b2b212301093ccff9f44e6673f35eaa4797973fe3af810dcaebcdaa7d0eef7a881a474ce0061337393d7682f80c01eabf01c2c94a8379dff03ef70d4d9cacb6bf238c707abb087e361381cd3b571fed2bc18f655aa5f14931969508ed862f22126cb8f292d2b47396455a6dd8aebfa8346d34c6512e9d9a110400000314002028140c870483d1784024eba2ea1e14000d92b45272569b88390e53c618838c210022000000000034494000cb39646c351c34ba7268206b62d2221e995e6c6348d69060d32389f457349f44a3cc59e91a5736131e9eddd65050a5061943401f151f8f2d8b2cbebe39582792352e43fc3526a048d32698c5779a49be6b824959cefbc64b1f59d5198f154e4cf4ad3ab4ffb91e35f4fb6ae55148c9ecffef8b084ba22bedc64bb809378602d5c83b4ed3ada1a3b016d405814815a52eeb3eb7ae4c9842cbfbd0d5b9810a14c5809e780029460afc9f33cba8e68104f48fdd356c6fdba6f51f56148bc9ac3c364c569fa1b7c4cd6d4a0867c61961200927049429d529958820edbed2515a5415ffb4db1326e252e336ceddcb2387d77ff3e506374ef632cc87e732316034b04d723d76d17387c509ab705c4120ce2c145dd12743c262e434be909a85dbe7f653b6927b1666484fe4e6fb6d0311530b55f14b7491a05c097d5138d97065b93408a1965d44fe2ed404d8d32e6a4fcc2a2f883026d06cbec971794995522ceed4a67393a6a32528e0706f4c0d495144af5e30532df51efe8566a5f3d4ac9c6f6ca3ab8dd633e2b689865a9d785f9e373ec25d12325e6b8638151f1a866f230e746d3f9419c5e1f87fde2ecbcc83b08bdedc3b901c0703c27520d440c2140762891eca35d9869aa047d98f2640fae3291073af186413c3cc65a17e81846d68adbd4f369727b047b530f6f277f660b9ac6b3a03e6d91c1acb89e1def095344c139ca1187bfd4d7bfa9b6dd542de824d4a6262263469d31ea19d049cc95ef10d73254683a3699eeab77bfcea0b10c876ced0be00002e95a07ebf755c7a7e8a08c7c9c6b23a65917a87dfe8442462f101ffd058f0df71d1ff6217eb8503f84da66fc534cfb08bac147a12c3a1632fec8f05e58a284e91c75967e41ea50048c1323cc3238f9f3f59239ca71cc676f1d6992913d8c25c783437a106a318a0270e484249095cbc84ac4f54a5a8e464e82c1d93dbb3b3eccc33f6e0bb3b4d9c820181698160fb4ad7c5a71f44a3a053166c7c982ec7180bfedd41c55c1c6f67d335959e60c2fc67668b8895c93f3388856f3497603659907633e27c7e5027ebb2d1adfcd6ee0a868dfeb63c46c6a05f5abbeb07cf9c700b1bc90b6de764d558be65a9568be53837fd1f9ac776f010d81d1f1edb8dffd34dc2d55f155af23234c1159f9a5eea9e7f6e9610d45c905bf0cad1022b8db8d9949b6019e60b9fe536263434b7d8e8cfca9d2c25b96e78807602ba3b5cf463180ef7fa08a0fb0d8a744017936bf157f9d7c20efbf3cfdb559bb124154ba128a30888e910e65562e76e648612a44965ee2a74ef98494d40b5beb676fb844bdd630496d24fad9317befba568088e4bd71140afa8d33fc613fd84fd5aa04f3fb15a572a1eb25e8315b504a240ccb7b83002607cc127907997b88c72af805c20402fce09c635560326b1558f56db7f64eeb4e8ff93e594beaa5a31b64a682b7c9ec2bf9b3842ca1d3526ae2afcd25df0f6ea5a404636a7f5339c4095c200c0663608296e111834cac5512e112283d499f151e209949ee1ab2c74ee6aab673ae34d5d49fd7436873d021f3f3098d6f9e2900095ee8832589a32d9c813f0b0c0ff5aaee7703d373f3dd55fd00d536daa311addf0af6fb0d65960802030c1a04774cb42fd82022f662b64522acfb30ac2cef44a3a8caa7440addf446db11c26d637116d10c0ab6a0e45466aca6a8e0338e7e4c0d6a190ca2f54326ab742092e336d671923bd92472731a42f74ebc6e89caff2712dc3f2b2251821375802a54c684a79fa610f899e020cc7d6d41591102b3bd3d12fe39b407501ade5e9dc194d091f2a71f18a409ac832c193dbc54021e6edcb056e8f55d158aed35e1ec5faae143d10bf10386af0fb3a7c3542acb2f6f441904071b1c0c198a2922161a0594a2f5ce720b88be66abb1b1bf80784412bc6e3b48e5f85ce8d36a807041613768fe3538d051299e4bd88ef7ea06e86516f640031a6d067fdc7d8c12c4cb086ecb8cc7351401e05917155b97def93a3057647d8c6f0c34d08cb528572b10e11f8a14989b22709bb57b37fc8659e6f7a71dd378b0c8a3d56e168d9ae3f1b66d5419e1136f979d817cdc8412bb257d0acecb8a3f551daed87c8f68d47d2e0ff338e2e1d5bf59deee0328c03e3785cfccd3dcf260ac039cab485b6c62042629f99b755f77297497c4d5748c048d5a5639205a6fd38b23850e05ab63149f2c0271d93677536011b130f0b83781402080cf7bee3e6b0c3341ec3c011458fc17658e153b59e04f54169889dbee9c80b870af1d7d1914a236c2c57b061123aacfe1cb2262576b12856a4b31ac5819778ec4f91810f59d49c713c7322a0ed0e219b55b5538ab2d43e7fbbcb0cf87862ecd517b408545800916c02ead96281465d5e8ca65d4ec2b49b5557086b6eceee6288ed1063b9ba369ba86a0bbc77a869fc80f1e35d78bf7cff04076a248c54f0c1366f3e3ae38489ce255b37aa17da94c1b1d90353168b2f3e20dee2ee0c4657833bf0999ad9d6971366ac710971ec7267423811106383b9eeb1d7a8a06fb97e3dca564ee95312cf20148e0f953e3a08b4c14b6565ba7f9c7adbfc3130e1540ec91dca413f3ff9069ccd093acd4333486d3149e72374aaa5100b1e4427642281abcdfe198a7a39d126c82e3358611fc2946d9edddbb6106af500fd312881409d5ebe3fcf9acdbbad72a7508957798ea9438414f8616dc30bc4a38e3519a2e763ccef5d8a8f5365835c1ffaa4b52a2c99a9b1f30566b0ed778fd33fd19059c29c47bdc581cd79fa275515454d49cb73681cbe0a4fd95742d8a634d50bd4964b97c1ca8e74e860535dd4136ff6ee62590efcd698dad13469032cb3261895c0b4372186664635598c5daf4df5023a55588959f06322ade93d180676c9f27febff13561fb14c89c0776db9b4a6ef5e4d69c389c44ac54d9a3d48d5b009af1adbaab04fb8086fa1c063ef5529fe04d56bde2e5438d6fc268a19fd01b5b20184397391e9ab1856486b645edb7d51f69ca873af902423bd38d2e086b180ea12d9f5ffa0669ad1ae51136d308c51312d942c78bfd23116b7edccb6a766ce9456edf451e3590f24203d734724418ebe03b6c97d3e26ecfcfef44dc924974f8e26f5f0ff0ca6cd33e7c4db2dc9e4db2bf4f46efe19bf7a6de632798be34ecd9e9bf449e2201297d7beb3729ddf90e0a38bc71a3c96387826e75a7cebe94dda59dba042e793bef780ed8c5dc4f2f1528328acbf7f1684e33b1e7d94f6b4a0ed0a544729a908c88168453f661ec7c832ceb3ffa41b956107e0719c702277e2581817bdba1a557274b0c12e06864a2deda5393c77d2805a896d0354716eeb450ca5b7935646e6eafc36db2a2691cb6155e87ec33323e1a21079b3a805a13eac8173c327a38bcfc7f0311a54e07248a909461bd2971424b13125f6cd6849092969c41cd67b108cbab967b90c0346495348d19ab6fd185c660d884e77b92dc866a5be9d85c4f31fba9b7451c5e64c8b8741af4ad2cac68da1781a8b820c0200a7955e69648e7b5b3d2860aaf37e11e83cf517e73f4b5705afdfb9902daaaa3a88354e119389682c7aacc04d27ed41d61f49476878f874ee2198fca8d4b72e4f033c03133c5aebc0c5e0a90993e2915dff1b107274b3970fdd7c17f813e2077a09a9ce7c315fdf2e74330e45141356c6a91d2ee99c1495fae24c7515f7ca7140bef1866bfa8e2bb1860cd342c6f1323bc088d5357f9619b0dfcc8ed1ddac52a6530b1c84ececf9efbeee527584c34e5abbedca6057e082a07b936ca72753eeb2c0a72a0cb43c4a0b65ab2cbf68d219deef7c236cc03035d3aa46b67ae63ff2adb531d1dac9d485a39757a55f84594b59900e9b92776506eb9e5047f85209b63bc19f2eb4f5f79c7110e5de7e20f5f7ce8329c6979868c1326602991a54f7a787544331c86a3fa66a2398ee0f61b50f03a5ad176178d1cb2460b8d89188dc46f9310db7c60372eb60f2fbc7b156c797547c561ab4d40d65fb115a5a59dc912472cfc22bc84dad78e6c204524a494a31ab0437aeb1a4e7ec7f175602263e57bcc75f5bbe96c898adcc88c8ac31253314544b2c31e3234a3f9c2d6d387162a9f6f58d226e3a6a5e338b3bd62c236aef11b7f1419b828744fdf260193b130bc17923e13d75ba45eddd84da653e24038954d22e9b30d3ae40b5844a53fc683f012a4b055f176383004d5e6ee81f8b1435db517d72734d5a83fd108c7411a17b3214547896822bd2e375dc449942a64de5c8ed7ebb6be8a02eb8da5cbf34b6a6d259c0a05c44669247b27943e6b94b20a3768a184315ef46bad2038a182efc90cc9ea5f36d0b0469de4cd04984ab98428eca53468295bf1894dc3579c1a51ee0f5f668e9f3850c8b81eb98494563db9c96150adab44e79e8de808a6395d9b7a4edb081aca4abd0fc01080f9d3ee41eeb81f8485f3a6305b5268199f9244b1fe2da8a0d98a6f72a85dfe4856e39698be9a2183704675562fc7fa7e07d8bb0cf3e284879672195f25c6d26c0c6a2760a2b11ec73fe9533ceda4446d57b219df817f3c718f74e160936dcd15a8280f8d78ce5c6e58a36a2a44880b2a4893468fdfdad585f457531a9499c1084a4d5dd9a1cb91bce4f8d75c56a87eba32e39620467fc002c696e3e9709448b132784b2367ec41fdd4092fb464527a08cf1c51b5f34d211ab23f25cdf02ddfb2004d799bacd550f577c210a5f08e84cff9dbf3af3278787981a515758387d0dd474fbcf19a0456b2c17e5fd2157a5cb95f94af1b10701e51e40c42cad91083d1a7d50978aa18952c82597a4981185e4f8316d0f0c4535f18f6b5dded58d2cf5ca3379fb6b415352c39f9ed7f974e07569c575de5a4a57e05307d5decae8dc731a0156c1e6ae4222bf020275c90898660b5f0b4aad7761a0bd9ed8d3e8d4869b15877b99468c5abf110ef131361e175820711f816c1ae755c35730433f3877586cc61051e10c33951b0f66313202286ab8c8e16971260c7d311fdbff01c664f828267c8063938c21349aa062e9e7f54d0595789fbbaeac85b2e1c9c81b6371496c02ba8aab586377f1c22e938d9f221eac21615d8d88801d1ea0c625e30172411cb4246fe08329ad7549f6837cd32a2ffced5954d34642d25ea7cfb2b2ecf13589c553d9b8698db8ab48776f6600da9aff951fbdf26809fe52c463f630b19179dcee64229dc9622f841289221a564b2c8a6fdc7ce0f901084e5fdd3805fabdb41fe510a243f1f0e5e2f773d5aab744201c4706974202129f67dd58fdb828a4ebd1b9ec757a96bfba1d858fb0dfed76e588482de644389f8ccb7299196525f088de8cc048a3623f5c343d42e26caee4e60b526c791b5209d650683a9c95d89c9e83244293d69827989989e4a5a76c1e304061916663a7a6dec9b57d7dbd3819e5dd1432c01bdc65c1a1b13995f14e6d3a9bc4659c53326ddcc6e4c368cbe68ce843b9fe88d5a381609e4ab1d2afa3205ce7721d16790dbf4f56c3e3efdfb8b6155e45df9017626f4d9d2c3305708beca836545781181751a6108ea1505c5fcb02ab44bad8d54804309c77db22d4dc78931f9b837d51238de240802fab338123f5c68a0b2e55b4030363c02c92b9a683e8976027d5da7ddfec29e37b3266fe1bc0cfc79e863e1570279c24fbbda821a47d1dd60aa0180290fbb57a7da6ee49182995fcc2e8e53423c39b1102b7750df25d40c00846b5432aafd81e510dcd4c3791fcb8b2cc241ef43e945aa9c01dcbcaead8ead7297b54279c16597d2cb2ad015bb80ef7845a341ed15cc596fa91312ca652114bd744956a8df47e29afee5d8981672282fccb9b3cc03a3fdf52eeb833037c874a37209c1177c2000ebc24b429397bfb0151792ea26726a27da58e10ad47a35c200ecd48e08fb576310118de18cd10d7430006fa5f0260a3e4a536485a210529f87c02e6e60ce1d76d583713cac989c52370bae770218b44082246f5250a492ac2ad46fce4f7bcb7db27f722dc336a6929694dc23ac4d68dd2d96a3cddd8aa139a1cc763f1a54b79119c584fe1779da52b5b81a7b78ad96ae5448144c5cd67bc4dbf28d38faa057cc3fd299aebb798782a0d40dde0105237011e8432df191c364156b861b6be90286826bf610225aacc51adecf871478d21ff474d279fc51748818260d61a18353eec4632c593c30b232cc0f9e479e0c631ad6b56ae0618ee063ee8d98e6d99e9b767bbe485be451050800ccf74b083dd36b431eefaf278aa6ccdaf461cb31d338e1d13d126a06e46939f3685bef49292daa16f4a93ea4f51393acd14437a1b127c83da830b58d3013b9c974a7ec519c93796b6249b50bbdc06f8d2a3052d2774bd68ef0fde08c503d33acf2c4faa9ed6f598647bfe7a867f503ab90e3dc100c40a270bf9d2fe06c4d906e7eede3f8f0c4c31c19df4de24610fa56d863636141996c7ce358f70105ec708250c96c7585a22fee89a27a9255f70da35868efc7b70e80a508fd816746a3a21b138df2dac8782eb77cec1eefce7436287dce7b5513b3c0b3feaa54b09da9333d8eaa14b331027f4ef996561017541a598733370e5df1a7574a5dd6c6542d0e8202cd8f8bb1244d83706f01d45e7785c5c139c1e2ef81a65c624d75ad052b207f241870201b3b211b9bc5830ff21b071bc0eb1aa30b3cbbc15cd4a36bcc1b281572d3aead9127bebef17a9604fe731430bfb01c680c09e380b399092c022cff7b6b3644240f36a83eaa2787c8d658aeafd791db68cb6b7244f53330506876291b2b9feb5fda4168975b4fa466ffa626b87bb38d302c2c2cba4c13f789f713726e9338ed699abbde048374df6f6ed1f2f0f2982b5256076a810bfd02ac1a510be2fe3b5f72c7880b2b3dd8f746237c1cfde9c6ee8bd877b48544b1b70eec14621967d249a0fa234ef021ec314932311888ab6bbb1d48ce36714fb51692b9f7f6ebd0ce3008023eeac60f1e7ead6274449aac9d08e7e7b61d71961902a7a73ca05d9fc18e935b57e8374b219f16f09eb9a7883c00be2d0dee4a1fc0131e2a3ce12a82169733e702963689c9da6eaaf0ee478aa830c871c6324cebaa691c9ae2ab582064282d4da5966d650a30602481ce4ac06f21782392a6c8df1619e71da5461c38615c535f4dacb8ca3caedd41ab90e28f7d7888652668d7ba0265ca929fed74b31b686a60d41bec89e51d158d66b42f1a64546b15b77f9848bdde8b7f7ca60008275c72774e85a8b30cf94f0b2e245035ce4a5a3f7ae8df6a84075427b81e7540e5e2b28a7e262bdc32082e0ff9ff4850a33ad981c040b6fdb7bcda6893fd77bdb8502aac4396ea0e8ef410da45edbeca84c90f3d20530d37464c34c1dd5ce8372cf34b1f711f0884346032a29896318362267fe10e254160d3a4923ac73814caa476ca5b026afa903dc866943d64a7c3986aca621ab1f818e52813893d5ac69011b691704f7c4808bb95141006371f518a8981f0d922c402f78b3c46554c8435acd477e5fe4ab72b82d856b2f401df3813864db67bd225aceb3b2c4dfd5e6db472a41270e2c15773deed4676466f8afb3da68ae91f8f42732550d161f818b88fb69685004ce67ec4eb87d6f92af89301702a14c8997c7a47e695018ce1a7e83a524096ffbc4e5d6b5db53ff2689ed65d1cc67dd31357156d9af9b87bdd580cb191d9d8a9a56191c8ceb8047ec0f76766621546297e88eed8b86fdba73ba432c3e4d7762b6e0c10f09323c3abe91be6e42ab52c749c8fd84a494246a0ee95b13adc649e39bf2760d0efe9dc337c0f078a1a65b0b86d94708897c31e61170b45ab819ff130a3ceda08492392a37d1b039965b7ba78589bb849666d46ebec9c919a7b496746bc904abaf9ed2daf7f8ac6a40d7382162a0480d2b76908188555761bc3e77e994e72ae33e08a70fc3549c8657dc464af2b4e5ba2d6c26e00399070dcd62c7614e97d700ac255df03dac6f214c4503deccc8bd6f4f3bc90b65a04a9a3adc1a8a954a277eef97dbad9058308f3f8e4729346318a14bea022a6421dfe40de9e6d5c6db77770c9b42470fb9dc8d85f3188cb97024b6336a5c6ab1f02d48232be069ed7ee04b5802cbb65a6c5f2fd3cad6eec204a440c46f1c5bd4eab18ed6b0c190730d0347bf07d32804c647dbc8ce9597abe9a266a39e2d2e51d0b5dd4e4d2e75909ce8b916673b31e28a75c4d14a959ad76aa16f626192f04361ab72592016359dc4e40a422d6800ee63e8175715a356e87a27ee71b593b986f5e2845ed66bd96ce5a3dd318179de81201faec785b15a148be2fd1c9d3866d951034197e8555bc25db3be4e2885f307a67fc5d479d39153d0ef2fba518cc74f7a62fd142d1aca93d41c41a2da723ae022395375b228c68200bb7f07c09aa7e8f824c0fb0b3774149469290a6da0c2c2c4aff9b945382b4be62187ecbeef8a2b146d3f004d8ff908499505c3c3c66a01bd23a01470a4bcc33a20b841e55ab9c82121b1b6e6d5b9a92713f28f1108b2f15f6327efd9de9457f97a2275e153b104774185521ec1c260728e08ca07630804270c58e1bad19a10c288e949e7526deda91777bed547c74e69d58b0bcc22c42cc8a0a5e1a1ab62b4d77e1b857c7fc1265de27190757a0fd82805d8f2c5f9d29836c0be67d2468902a3e079aab6a95620c01124adead914b9b16272fe50801898cbc0be3821ba9da25a15095109fcf9f8f28af9f15729c76e7db34c5d428b7f93e863595b780ba84a7e5cd39a4b46c117d50c368a6ba409755a0fddf0db260dbe1bdaf1ac835dfe4b1835fc3fafaebb26e4d147a2065dab6dc8e1102d062d910068991ada155b725d7ff5d0aad0eb5e9f7307c5d2d9b25e87e2492d4e4e003ef4af232e2a34c8b4e702d465b9c5d92217162818cbcc43b5a08cb365e56d2d219ee816b4be5ff3fde3ebe2c1541aaa8fd42a54dc49592a3e0b29e48698f15b93e630919823159a9538897e946e700e2cf31a788ee36cff14d4bd17196bd01f6486a36cadb3e7179ef944bedc1a004638299b4fb8bfbb3d4ca33004d33a87cfde094f99484c934334d1f42f7fcd87099e0bb9fc43fd5e248673f02f5365de86c39379f24c4279f653e39e466ecd9b0e747ae79b88a534057af79b95349e13bb986cb80ae3ca2fa15be547cfbc53fb7e7634b4bb3ef049a5f7c8b68b3066ad744d88d045da16b963e4030455611facd12f1fcc298c7a27d168b89c548b6d80bc00af55e3b07ed23a6465f8bf6bc1f31922b28d0c7364ab31dc2ee49e16d77a5650330afdf69996bbeec707a96b2695a4049aa94fda1410c99391b97ed03f00d35de186873769370741e98b38882b27e3ca699ac4d7af53e691b51d4d2498db177180a0c414d783ad9a228b83cdcfcd9faa8f6778650b52f26c5de9faa208ed1eee3548dd2f36c74b578dbe09f4508b9af3d60052ba3a867f27c94c371a49ce3000da865769f3c2d197754301cd64ffaa92e5c0407fcb26852c885cc5ee682374d86bbbb4916a8f2b2b2e6b7df09a21e816d172ec18fcea42732b4ae3e9370c40940bca1c78d8bb8f7c71af42f305988eb9ac66df96e9188467602d9f5d11daae49159103ba53208ef345c5e7940efac9fe9c3c5c4b8c5daec9df26b5d7e6a1cd9b8749274e11e301d1baa161c1f71b31da8ce4a09311b811f55838db63972c0b2653c483e9507d61ee76ba79e3cdc3b1946cbb50ada60325f1af76ecec0f2bb82b730be4ae52aef568a98fa1748a5900da8502322b6671bd5eeee7278fffdd3b318815cc7020f26d237ede53a02e673d95360a12699543134f7cc9c05e32478c81745798edfe8f205db4bc8243d3b38838c943266d14b5bc50f25421b1c8beca9bb76753e3a82e538d4099545f20cd88593c086415929adf8bde77356b123d0e4d761e544e7bcc0cdd7808bb59d7b2967d83367c086ed165bc661db72306106ce881b5b00683fc3599e6ee3d5ea1748523783395d7ad94ed3ea95aa2c6fca4b21d68685118438a282838cc649ab28f5d32a98964afc369c0e68e396bb5da642dcf59d8245f4a6d3668f388a316ecfaf403a1ca5f1c2e2cd3ff3d306a0b11cffc6d20bcb43cc52b35dba63dccc86e7677a67c97ab6d4980817e9aaa3386f80c5034ec9ee3aad9d87ef106f92c8ed277acc48b19e2e846c6daf7c740c918bd26a336038c454b4df2e0430f9788d5d5094f9bad85dac413e0ed8482a7ae72c70972aa27281508290b9e1448157c69712134262837ed788297e3135a989c09d1f92220777c125131e42214a8c208fb23dfeef5aeeb5f520a2ba2962dc85ee05424bbfe8996bac3a876e2f2c084b7c9566a2f0127c26ffb54ccd7009ee2d3690cf67d03682a232a8973fdbf258a79fb01d21af956c283134f985077c6da41fcd3ca29511942569a65f00f785af44bb81f51473f035f5abb0aa6e571e1ef62bbab7de5e4a91ceeeb084179c1d7f544851df20f3c09f9358fd5c47bd5f6e23a8b9600ab40b029caf8f51b143de2a22e8da1d6345df026c292cc49d12b0e18a95179c74a1795abdabc022c3332311d7d5c55791a36691aa8b32d119cebe176553838aaa526f10fb22368543d64a837ac20d991a566ec12f33edf8d3b3f93c712b69b4514aa998d720af491c8117070664ff777fef880f71fe7d12f4e8497ada8e9d3cec8fdb856711436f13abd3d7aa924b56b6f1f58f01a1738d7491dcec0a36c04dd4f5e2a9c00782dc5fae4bec6cee7b64ad9a2e291baaa8d2d2801001845cfe15b23a86eab8381f33466c15639dfb699de2bcb512d6bd4cb1a195913eecf8790a9d4b3cc5242978f3ff7e1210d3d57f561defd2ec1dd4af40b62f5ea2ab151c7e20799dd057886e87768c4c9a85bb9179599f36a8cdb6316217d569a81a8ee3d6d6dc7ffe6ff278e708e2276c143cbba79813876962f1006783cdd2e220b2d70a08b8d770b7387b9d4fefa65f2b047bfae122d61191cbee1d8d5618f79d6bf14a4a8267785f4feaaf4cb968555d2f1f359661293c46f21540255daaaf43c5666e59ceb1b352e8abeb73b00aa4c1a2faf12d1d4e1816f4522645ccf894409084180483cf81413f16ffd09a83a2883287f099776adc927d576b29953d4de02c168f2562d094e1246787b2476932533bcc884113aeb731838baa385d5b86115d52beb8cbb7f0fd41af31375ba91f281b153848d279c795c224f6fe5ac081be738f217c3c6597d2fd3db292d461d17778ab7b287e40f4d9c5a7f31b5067cbc05c245ebe7268c1f71f4d5785dc0cf0abc0f0fbf06d6dcfe6ac510ee366edeafc473a712575859383a2977d5a8725cd601c0e6198bc2df29fa48d059a8d96f25e9c9e0b3bbeaef06f020a08c8eeabee2514880a8f653d272fc4a917f8b6543403928b8c58564792b3352ed121e74358311ff8b465baaafed7e00378924118bc03dd13706f69d370b9d5adaaf1670a1396c8d90eece2ec6d0fedf2882a969f764ebe97410d6509476d7d8ff892eee2516204a92f8cecc44aa2a052599118ff968c21e4db5a5cc53c870b44eab04b1fcf39ada88b8aa0b6af6186792c7cd0487ff54342ec052688304bf1cd404b8cf42db07ee9502ef85a2dee3db31880fa884aee9acf73b6634ab19e0748f81ebdb988089eed4a79f2f35b0d0b87ee57b4e5822a1cce90c45bf7fed005e1f7027b381f26a31e36346b624b26d3acfbd6b77850bd7eb08ecf1f6e00a4d3b0c3ce1641f051ba8aec619f5930dd639fd970da762afdf0c509b4d8fb2e84dda28524f6984a934171f24f9f7772826da7d7735234d14f60b926c20d80c139bdf5caa729f6dce727c555621f2b0ab5d472cc9a099e01b77bbe079e435bee7c707fb2e0733643ee34f5117fa37e942475013ab65c83600bc288df222d141a1bfeb9fd119d71596f7f46b437caa9295000e0dc8465a4152b63c46a3f56df63fb8e232aba660aa76c880381cc5a7fd8b6c530e38ead029eb8db7b070b307075d4225c09a5e675e1a2354f9aea1da24ff42a076e4411737f35684bf49966d4ab8626f58f99692db0d94f3177750a0502a2ab63acdb685577428717f6e02bf04b7676f0d564b9c074e83bd7e7889058b36033db02cb02721109c8033802b6f65ac43ea81b306bb9a5c83a9a3497cd19b143ec582a1bcdb476df9d350f2c469438f84fe2379063dccebb7c18cd66081f890fa6b58edd120815952b3ac7d4e367ae1ef86d165a4437de3363c594d1cef9331e4727f64ad266bf1f3a02e7638cff41119d27fecb40b4a822d71661f07771ac877f1541b101bf018837b37a9505c577013b7bbd6b3e6ffb3baef1ba84953f3fd3b3e86fedd34d0413e85e5049bb0122b5b47910e4225aed96d9ad7bff4a277d47fc3c9ddc77630512846ad16fc11999717fc82292179df983fdc4c55f97ee61e4255aa52429d87cd470014c4a200bed80e00f449716d7b44d8fe892ddce97b891a648ce7154c5e3bc573b1b4c541bd8a041db7887ff13a8841fb3c3f12485575430fd308e434e7a7ab872808cf5d9d7f1dd047b8029c4a03495b4276fb1ece2fc97c3bd4e362823108bdab07c721b461d3d9bd2cde4de57ecdb8e32a0028b6118a69aff5a7b33de901f78dba4335a518e1ab8ff79ae25c6b48b269d1a979ff986f6c7828fa61156af426a7f9779b54962d14dd4c72db34636d923b758442c4e2eda208498e9aa4b63879ffb49c1bc49a08860c2f170c20f345af48fded016d38e2bb65ddbdf8d894d286e9f2f3b9896585674d7d9a10aa2a12d39e08f2601245a8cef3031ccd49b243449852238a020f4467a6bf0cbb027de7be25078f11b2c7d1c2e673c53828187c4753d6af8b5c98b9be21d109ed823ef3f5fcb690ef512337c36f1dee8a98f6ce0129e1234532d8c84eb313082490886338aec5eed2ca79a50d997cb4680810b17311fc533dcd5102ce87b3cb977c7fd320a47ce47e578421c37f9c0d5c85202a483496c4582cf2355457fb29d3fea9528a0c5e9755f6d5d2aa6069511829bebbf66ddff68b91eb07bdfa7dd5d47bb917e82d83233a3fcaf86a66b52703ade7f512f9d7ba94f54774939d199f54d12557ac04921c474d6500b7f549830ee1f4d841697986915cc7bb0aa1ff868192fa87423ee2bc2ec28c877c11bbe22f02f5f379737b35c5601d784809b1cbe633d3cc1cccf42e6902c697834cc91e0d9a58040471f00c658e0e892bd01d128c2d8183dfe73201fd3df794a6f29f10dd58e969f542076e34c1eec31f040bce2da7ef209268668d05379db530197e2145779d2a19ac0aad717d1b5895903b69f186a8be1d6a0e921e88b0c06703470939b6dd7436298618b9ff8adce73f8cdb275f1f26de537b3ba27e73aed42849d73cf350cb60659f545b11ac73bcaf15a03ce7cd605c70b6f324a1377409ca0cf4e74a5c2e336d85e195b5e4cbb8c5b861c24aedf6fc636b06e03755b62209290a0e377d14cf49f0dd49073dd600212856895cd1861494dd1a28a1e3fb997d9807aae17a5418115351d8e45c2121b00e3915c4045d9c671f014425436e3df306b1281725210f4343d3b6ca7f38d89dfc857203c3c380243aa95d1c9ef98089b8c7ed9b2622a09c3720fa4a94c6898729b848bfccc8971784400b62697fddffc1f5fb7c9a8e702d8004ca63da78c10be836e143566ac45d521c38a43b99814135d2d01aa142cb727ca00c6988fcff549e46938dfe67cdb23f8e1d5a7cc358f9026c23029928403e4c16b79e50a638ac48d6a5ba7ca9e040d24cfb1e0e926647dce49286838252aafd07406353f48620a951bb5eb47274fe977d9a0867bc84e01dbc642b4324b8f7ce388c77984d8c3c93b3c3641a7a9bb6aee62e506fcdad7d1ad47f90c38533a06669ed9000c67d1ab72086ad0545e58563dfcbb3b47910a6be9797d4766d398882b22219f137c0dace141fa0a82bbcd6d65d128d624c3a241cd14a39835b267dc808d6fd2fd15866c495db3feadf3b46fb3461245da099d2097ce145f2704672b8997e6f63b50cc90cd653e509ff20b034a6f2afcc285c319f66c915c18198e3ba23e05d06d7cf9758b3850c7dc6de0d3414606009cdc103626e3eca909572205028f6005bd40b71e74a47920ee89f4c45f7c830b7450ed1be09e58e421bc79cbf8bbc59f20e60425ec0058d76e19e6f60b84688419d3bb4a65df0f6e192c792814cf265fde8a92ccd5fdff2d7c8ec228bd206db1985eaa142478cd572ce6cac0b04b8c9cb77fe6a3789c3926ace972838baeb69e4449483668d50885b2eae10a48db088edbffed238574cc646dd44bea75f003c9f39484a63e68e7ca5cc5d0cb84c3fd3c7e1ffc9e1a23e85a2588bca8a1e6cb14ae4a2a19f7d57c98cce51b5672183a2539c7f90e866d55d2038aca97684c9f014d0e18803d7b2387fae3673308a82c29ca9ea6f88cd91e287ab1cf788eb1cfe549ed0b7f74da37b815ea36935c6e2b9da537502602256155231743fcebceff721071e814e1f9999d6f1efc2b1b7b1d1330b9576618b9d9ad7fae6b55f4a54fcd3460c29a39e28f2a60ed3a5746659374b0e0cbee0893b95c6e07cec42420a1230edb0ece32766a17343bc82d3998d4928d58f90e6f9f7cc68f3ab5054bdcfda76b8a620ffdda45263dbc125b8787dd79976c2885aebfdce570605056e08caa9110e783d949510dce83bdb444e064e371d99daa34ec7fa0e0797189ba04dbbdec4dc9df61c3a7c5a06d162c88048ab54ba1e6494ba708db1224df501105003208714df0bec026754a29282715cdd102133412a3061198108e7dfd79bccfdf8a8797eebbb61ac6840d34c5b4b9706f4f14eda0f78289842d979e25d431e345ab766c8bfcf0000d010557d5319095f6580c2d3b1a78360c7f0590c6a907df2bd333a1612678ccf52419b246ae281268baf6ce8bca158daaa7066d616f6a32254021fad221630c18095d39f65751383db40300d8ba3daea62c08abecd7c5c4d1ae812d9de9baa89d3c6e81406909388a950e6ea1c3042c7e67c5663eae2e82c9f819923dba2a5ec200f15d1045d1c5bf8707b4a8b5cb2326c4a08c44b73451ef24495b960c1cea7bb56b4a789083e31165a2e7e2c3f088c76ea749fff75f3e40bf0ad66c1fa826940dd8c5642dc346709f47d43b6792c21f056ca8595041723238fc3a36c21ada0037e3fdbfb524675ad3b19ec5fbc36859f5912a238e9c27ee35648be8c59316238e6a8cd080bf0d4e8c46db42e82cd29d17ffc8df92b6292228024677153b8105dea236ea9461ce2a48bc5ac3c5e6b14acb23ddcd6ed33fdc674214e7426aac17a700783991961016a1edefcff2567d5e771b44e76716013bf0309577e531f61388e217c44e06008f511681714f5507d4eef73b199dfea8290f017cbf2cc338f00d9060c682d790426006a07ef1d52ca5d59bf910b511cc9d943a40897cf8e488b3c70bdf81da6a79b120009c01a176b4cd483a7c31e9c19e6358a3b5b446566b54f62358a2ef20147107c480020c2bd49a0f33892bb8e8704561e4babf7fd19f370180ade5fc5e31a2afb253c907cdfe4dcf066d6afcbff4cf4050c1cf9f8e1212750d3dacd909130b13e57bddc7eaa060e438004930004c514ab21499fc791d1bc0485e93faa16e113fcfe4e3369ea3eeb3c2eea45ea2ff13b404883153030ac18303ac8871822018eda5804561f7282b60f88abdfcf0786016b557631f850fc66002ec6e362967086e0aa8b5dd3df41e12699676a1cf0ccf244980ae08c9d09077441b9dc3d7852e97fdf1a0ac9915367c3713a4fab4dcdae31155bec3ab1c7cf3ba013b3614029ca3d944c25bcc341ff7ccf15e5e47d9e6fff9edbf8a4a88f829242e09d711770c761b39591922228bf7d5a43dc80ec52eda4ca2edbb4129da7535369b076a495b05acd4e9a024caa8f10d19752c8009b20f027cccf3a96fb5188db182f920bfb62e02ddf64b5e320b5f5b53d266844dfbc1e17881d6d04dadbb3bbf0965bb2b079ee845276ab4ea064aada4eb20abfc7993eeee219cd5527567045456d3805b4a06baf8b7affd870f7bd8c1a7f1f5809de4da94b4dab5c9b57ffcacd71380aeda2553304e5dd5e72c5df598d80b133723df239819a0e80d464dc189ddae7810cc5a3d831d7974e14a69a61f307320f81b63bb4b44dfd6d193240608398749bf4cc41173f0b6abacbc3d1de829af34222a7194ffcbbe7395a3631cbe5714682096b1cdd67b70235b041f00a645e1f4b378971a0ef350d5ca0491d9a4193b486386f12f6b0881db3a6f86f8871b847a627ea76954bbf6a055b8812d2e78aa4ea54878310142cfcd7b21b70449d5b67cf702b5bf4c154d00c6f588f29c59430a0953e74c3b8bf8ee25219e123130f700f7c1e4d119d708c328c6f203ae19c84661f46aab28810e00d619af623a357f65bb15322aa79b6be02bffc73a71e9e440190ad04dbc888cac614d7333102849ae0ff7e6555869533f03473f81f469fe36a703a871776860a161a0d08fcf6a079f13ef413267bece133c68b2d2a7329c56dea9632d799d41e1f5fd903e20139f832a8e41f40ab0093532e85e4b14296fd033ce218aa65cf86df63b9162232ac38c80d026565e270ee5d93d7956f28980afcf0588e87af17916411f4cdb0401b738dfc740bc240ea82ee6b37e0c61a800c02d13bee413e3ecd7734f68845ebff125ecc700d3755da1aedf77f781b62dd8c06c701b0573bcb3c0f8907dee5a2fbd2d6fbf7ac62c6e18f7ff6dc6b78a787d5d1a18c2795422f703d8b9d752c7af65b2ad8c50c8d3afbae417bfa11ea239852cb7eb090d2bc6ae01e3144bf7826c97f01782426133d230f72f4e28065ba2fa3383c371366982376010b1cd3dfa89273a9b9142e88b91b5d09fab914ce0abe89720de4bab08885593a9d9939a9b5f81e9207146ef563eaab5d3b3753c1a5216024542eac05b7e4e6d70c6f6716657fbd2f613f5bba8267dc2baf87fadbd731bbaa2570856f0710a1534534ab0b7630d8adf893081b0c4bfc6fa0684df48bed768b864657d2957cc5f58b9ac04d594118b8d8c6276a34f6f6c2c224f851a7ec97f88ce9d7fe5d2299cda8bbe57568bf4629668a78793eb114315ab7e3389ea768d1f0b2add1790d8257f3187e3ccd39c7fda41d73fd3fd1a261ed6b3d4ed9e46929ef43d8945a8070773eb3313a2a9c86663c2d1dd6da7ae85a86ed5aff052e1aa2d5fa151d13cfbf1c2ac8a6cf64d0214e5594ac5c56cf1cf3f4bac7c3075f8e3981bb2514a6b4e1aec80a5ea355cc929aeb2c793cfe52dfde03c8c706c8c1cf6fa2a1ffe2d506625002624745eff68a414bde5d34831ace73dd54d3ae4ffcee0fc45ba6180898741d831a25b8e898c8c6c0f585f8b10b39fb73a06d40d61b65a8c3f9d9489307b15907f00381ed1ee6aaf390120d4e0cddec3868762991f54443ed5a08605c448e10021dc2091a2f242c21f824db482aad436d30ffa4fbc1230229cecef37233945a9845a68309eac5551eda352bddfbce5926aa4c3ef54a643aec02dcb1c66e7b5c40b23c6ee532eb4e07d6c59d7a7c1974024ae523387ec4e673d110fb4dc8e46885596eb82833265a4ada93ca9d2309d5971a6d68c6ff48714657c901b27ccc2769b7b99b9072506f1812d6a62db00139eedc07ed7a02258b2172ef7d407977b4f88da2658f22b07bc088a716f28cc58e115b23a1e81980a2e4328f5104800588908779f6e017bd2efad6b3645a45d414af74e3af65064a0d500ae53b6aa1044215e4c940e0a7753d17a819de5506e52afeb9756803a7176a5fd3b198d66344cffa3d07b005777e4b7472517e6cdd4b5645ca886a65b4d0e9e90804778e37a5233888124075e94b29298671ab039b324d1e0b2e16d832eb06520efd65e07bdf4d92793674304f298a565d265ee78d5038948eb75c182f2a273f83fa714c59c0906d0a2c35e92350092dcd04af9bf9a0f7adb890761243dd79958493e3e3639945f3917f5bdb9a239c6d9fc8ae58b7d5ef62d107652ce66986866312cef6c0e05dbd49428f45281808cb3515d09cbf9c4186b838bd85cf51f3123d5a99e96003356d0c8729f9583b20b585cfabd4cf487aefaa5275ebdd624e5aa35ad025f816ab0a4728180a5e0b54c5d8b5c33c56cde5f3d24da89d960458789be29773c5ddfad04e04981533c2078daa81253b86034fb430026c3bb98dbe4d3a337ba25dddd98ef32dfcd2224fb43d52effb3eb3022cc96d7e73c82d5afed447ddaf98c2d1938c21f58cf6691ef7fd775ee8a0e68c36df445d6e125bfe2bec3010aa1b6ba8e76d9866b3b1918fb446eddaa17edb9538313bfc783947cbd5a411723b5a89f9d2cf8740d6b0b21c207539728acb6e1715163464a3364f3a2a7fa16607a49d3bf36fde3affd2a8b3d8bfd8651fed0e6ed3182cd27e0a564384097bf95b2caa80b6868178c2d7d37366bf8a2cbe3e8461529a94b4b8d03c7db7735a840c6d462e9b60c63cf8af08a83f0b3ff455acf40b3490189bbc69e16ccae8dfcba5cd7257d94e962aa4aa309798525295f5cc664128e0d03edd95f3a87d70f586c709da573aa87be1f5270d0e4524225350b228f5856ccb4063e03d42bb8f94e29f2f49249b71962bd3887c68a491cfd8d80cf475e9158599de10aea3feb29c1a2b2648e6d713202cd29373a5d7f167b872ece24948cbc6adcaefaa0d1392a386ccc1390944095638686454aad1dee8676d2284494e4b72e7f78d3b1099c24c412b904f046ff6e73435afc2dae0e9b9f233caa254166a22a248e30de12e2e50452cb521b96520d34eb449060b40f223f9d141bd2566189900dd575ce765a85ad8486eef00384fc471dce09c42535d4b06a29ad01856aeaf4fe68f490fa8af15cced23446a0c3be00f59298bd361819d6e3adde9d5ae730c8f3fa2a75bbe9794f621b8fda55ea95db7b2824f86c0147934944332b4f2a9cafcb210404cf2c03ee920ff3d9a59d65492c3dd71c45c1511e06f94e82eb07cdd0c5716de038d490b060d44884a3a48d1efe09e81dc1a000b0249084b101358d93cd79dcb95190c49a07da48a242069dec23c3e8f400fad3fa9d79cb3470a42ecfd0e52eba455059d9e461ce6094d9c58c3097bde545c8e41473ec9a70408e91518929e7b61221ff53f3db3515e67836c234f006f8711b65c3afd850fef12267004a3e50fb040728d62ed1fdfd2bab5af6554e6e40e4c6b866474d463b6b812f778e69b318d16981a57d5c7b4529cd025e52041b4e724197f0bb854daf948f6fed661e56c581084872138d9e920c88ea651205821d82ee3be02387501ff5283afea96f564cd7693e74983a3bfc44fb557bae8996adcc993c25627d81f2352d4c6b5cbf1516e4f4c2b6a62ca7fdc887e7b48cdda581aa8087ea2d5543b6f2e3de49c3dea51cc28dbdb6efae6a993be2e3a717871546a40f554284cb0462cd9aecb18680ddf627d4ff501fce67f3a0ca673f4c8f6b5bc16f63a5536f2df7408d48720a24657981846b4b45a0703817fe0fe5a9cca0a27c932c2fd05c1bf13681724fa87ad8cedfddc6b695f7e02bdcb1e86d4a086f514b7a5a2deb724048d2f17a89d20b1b747bfa1ad19e8b23fea383be3ccc5bf0f27722de05d3ff7001027ff44ed3afc0f4fac39635927f2ff9b74fd2cd355de24e86f1cbf99a30c587cdb2d7c19fc317dfed4a9db329e50211785d5daffb2b4c848bf1d38cd942722e42bde4fc5d27b2005f245209fef99736149b4a93404730d0bc9b215879a23188b5b3fa53035d75ea3b952156e44af7160076351bc7c1adcb4145891166cf73181ad4525b05d6fe88e8f502cbacb3d67569169c484be23336fc46de95f2e832265b439b48b1b587bee1d722c8950c10858d82993bd621ee640dd10d04389aa6a55c154e7cc8afe66c1cc41e7d2c5ce8d9ad50a6c833a483823277a115ea84c230ed154b00241da58083671fa962def5ebdd823547de73ceff9e99cf944ea6dedd4305c4b8428b029befcbe37463273203b23e6d9d4260c8a43908f59625d8c041f0091a03214bebc32d0f949f0accc0a3947d5cedfc99272142dfe7ba11f26aff5af4c9cd5fa1124906d7df21a8240367f89196d819bff0c34d32273718e8a53edac1cd71adfe05b4d6e5d66d176e654c99bed01a68d804e848287c4e8429809141814cc0b4316796046e11ab8aed249ad083ecfee0d1be85845ad8e46d55cf5e87a8e6ecf14350f81153e1d8e5ce0545205656ef967b0fdbe5ed21b58892bf6d0c09001b2d1bc2c3adf0634be2d360567dd16099e925ca775b66a8b4245f628eb3e233903a2223f877330142bc35414beced574af549b48cd257fb7e36b61ede78b637e52410ed7cc5f9adeb4eee42f2089be5771283a03725ac613be4ecb1581d1766a7a0df13bd2557626f7f008622f4bbe43aab4579ed41b900fcd01b36a094ac89ed50d6805596b854da4a7fc53014301060a429f5905bda9c8af5657b4883fd25a401e4ef1e13a0d0f6445e103ac6078302b0a1e66c5e2835971f8302b1c1f6485c7cb3e0e6dad2c8fa593ac6a7962998c06fd9ee482e48812915a9ec75fce8805915e9e6da2de8755e4fb5a9eca2ada65acfa948f11c55691ef6b792aabcc8eaa5aa58aa2307954f0b72c94c7ee51c51ae428761ff69d4d2afa5a0c185d2030bb6f14dc685cc9db277a1ba0a8d790669e52cad7e4bb15614099e3823c08d8c4004bfb410ec8ce27c7f692535da3798e1f076129cd68c92c23161bc93f10e9737b654d38fbd8c4ae5df0d4bec4c89ab05b2bdd874ab3b3bc8f27ea840622f524c2c1da162fa3f979375af46afe3b2e0848be78444c64f103a3d9e59958c3a288459bdd15d7480b7d88e6ce8e7ec1a011791867e254c9b17b3f71282188df3e591a2180df66d2a687ee0c777d21f59b8b837a7b1ee2209bc65a9b1a32b434f297a30870b9c082a3b1ee097fee48150c2ecf291698e11a208c1b7093522fba1adf1302567a189c67cd38ce46ed071da72d9e4a7304bc8aa0a50abee8f68c812d52e952ecfc74be74524ea69f1f9490b34c3fdb130fa8f544780e4cb15bfe962e5c6018a332ddf84de8341ad3ad2d0b76376dbb5f4ef171c9b3b7a5280226a555e954cf235ebada44d508b2c3b59d065219b7d72f8c426b04700da606cf6cd1abc4c0f89608126d80b930843f6e01750143e586933b5fdca08963a70a7003006ded367efde510b6f9f31a19d8e5e57162384288e9fcb31956ec9f418b8c51b4803988c75337653c6896fb3a44ba4fa7c37700e33056077eac0f7fc2a73e6a1fcf43dd131dcd364578c96e47697ce710c5393fd7eef4956b10b4d5655d8a5bce3b35b01d7083fafb8038d2454da1e412a40c372faa8efa9d76150b1865a66c73fb96d12e0408b1ff6baf1c45c46314adbba3d02dae86d284a1b22ba77afae8f8b2032e65938666767f0aaa8ede779c7f729dffbeecda3ee269973ffce7660f63acfce9d8cd3e9ff19f5607f0443ad11b281d9f90087aa374c8b2c603c06707c83f4f7f8ac9cbf24f5a1533e023e64fcd65a86cec2c857deb56500b42e929a839e44864839aa3f1cd6116145d0489209b111b24f1cfec7644f45ec79e91fcf2b3dfdf16907edbb85fc9422645f85360f16e677d4e0980ce0a738176c2c077c32a27ccb946931b39d5f1bfdab4cc63b1e67e4ffec8d51afd48594d9539471a0c826d4c7ed295088b20769aad2860bbc5f1725e335eff5dbaa63917d4d753711bec124c60081fe8fbeb9712f77ae1127094acc265c4f0dc23ab131f78fc654d79ca3e681b596672afd34ea98d602189307794b53e7a52c10784aed42a410fb1ed8d0182da67ba8cea0a76910db98cbf855effd234bcdd26653711f805dc7692915e988a4d66819a019609797f46a0bb79e1e5db556f8da635a2d97d2afd40160f37470daed1dea082c3f324ac413fc3c9939d388013e7e7166dc694a23cc9bc9bec3c9fb9a1663c6d19ba1d7670ea672fe1bbd188864dad08df9e554c95c090f84d2a173b5e0b8a76a46ce7d406226fe3d6297052a9609f784b43997c9fb28b951e22e7af778d9c98385f086b93e2d8c6ef7eec681b0209c2a78f92695197fb3d48d58671aa929f45b5df1e17b92b092716396912b6307fe8575cd10848eb528940d23da8929698fa3f99688dbdcd5c97ff39fc812a41859af3a36ae586b96f7d8c9b46a3f1548064bf54777cd068a87c0e987ee6a9e4dc490cf473ab805a1bf62003adebb1cc7d4e15e0144602538b6cdb564c490d29145a2fda0c1dc31f69c71b20a29651e9afc7f00b2ad15cc19e9b2c1a0b36ec20aef995bc86e467b8380123e38ecfbc292d3a10ba0016bcb5486efac2c3337c0d457ede7c14ab394fd55f6db6c02756188b7ad830c1cb77b97a785ed6312194973b546f1b04e02e8b0be33f66648343a28c01cc7bd467cf3bb3af96e8d219f6b9cc02bfe0a5fbb589f00a2f6ac70b63f4da37a1b6b0bdeb7932f58033e578d6ff05e5b06ac3c04ae279be81be7061a34390dfd9d449e5ca0180434b8cecbf5193aba80d89849061fecd86b2428677d1c96cc68b4ca6d97235d3dd9a166e9f47ebb19e22ba9b2b336bbc01e92d33b85d4026e93c39554c51ef04aed60471ef1d725b8517d83c8999a553b0dd0ed583bf8b9c657810f1f228bbb1ab05f5ad1f5580410b3dd580a661a6efcb1c1507f55bd1d0354f4d5ee1b7eef0804256bc002fe5735225903e5450c7762817d8efbb848fa07bfed0cf2f6394717ca6b26d49db279353d17a5a857fd9fa7ca0145e87ce2303335afb760f683951ef30d2dfa5801718404cb9b8866cd71380aac65193cd0b7b34774643e9da87ea630f3bb3f4ec06061fe8a47fa240f7138e442908f5b438cde093d9f4d8708a11207e4a22c42fcb90651d93e39dc846d3682809b65fe787b267a407d3527bb92283865c367e6d6d9f3709fd98e1de5c88819d38c65b84ac1262db3f61ddd8075867a7f5b954ac96fa55d950cf07461868daf60d5c1dcedcaf5f420c777de035afe22981a55db9f898dd92b56b07d0bed55c7ecef15e6951275a2e4eb35b039323de2eaf77e7f2543723c29e5c7d1bcd497ec821ad2b27491402afcfaec07e50cb17ebef07a09b81045c027ad925c8a880583b0f0db1fbb451049ca208137d17113c6a47003f5e55a83d2761bdab32b987e2743007b55d7f4b3b098e02ebcf05d30c9e62f4f463c2d8cda82feec9ea1458c0686d6387d1bda592cd4744cce142a19e0af4301e604eb992371659eb1743c21817c6ba6dd21354b9b1705214e846aeb75b3e65e418aa538873306de2dbc5da62bae8cc98cd5ba50b8d73e3051d2f1c4953eff55d26caa4ecf403025302e92fb2917154912d60d2f55668df6a9cf0b51615d42db840792c14385a254408c127c2b67c64298da5b4289cc13fb16fd8c5e671e9263c6c634a6c5a34816f941f93dc8a997463d8f5e91fa8167d05a40c1631701a099a0ee93d240c7dee70294748cdc10998438bd19c7788c006a8669687cdc577477a839264179fd28fba3b6013c6a8e294133f076164b74143aab6afaa5a5ff510a29ddee392fd212410164dc0aca9adcc02045cb81731cae17ccf8b6a0190cf4ac78052648c0cce87406dd23a467c7396b79403743a8f1ed78cd0355ca4a18001c4ebf263d70a3eaa193f73ef30e4b635a3521b959fe09c0de1b8c1ffe1ae74a1ab89078977513ff2c22a57e412a54bc856a944a2f501fdb1d43c9d825faaeefae3235cc2270ce4a11727ebca5013d0782005d0d79108376b96e31b333e8165136ea056f5dc6ef03a61c858079e465e9665e48d52bcf22693ff23048d301cc0fbf29d452c0d884f58212e706061b05fe2d49c444666a7d94ca4c20a46efccef8b96f23e2faf517e45c7d51f5a327fd51559ff8cf2f5ead2d774a89d2af2e3b7267f6d83f0fd03061adfde81cbbe547ebba0181f926cc43142a230c9b00d2ef77315f3a3d54f22d480a86839c1f2cd0d502c5e4a4d00cb7242eba11c5585741d03813c00d00b32f14311dfc2f1fc0b392680df81360e5963dcd56acdfa51d18c1da3559afe2e618e72b43b9f19c76858b8b90838b759ccebfdf5c1f168d44ae2e3605aba29b290705d8b26360a72355542555bb625047980c968ef3ff744410508ca274767575a0e9042ba6ea59bc03128795a27bfce2d19b82a227b07685569fe9d348a1afee185fe4824b65582bc8f7bf053c8a032341da8c508b40e145efbe5ddb94cc89b29d4441db5414783f6a5178a36dfad128d8d7d4cded516cdb4e650eca356d6e7d905edeb7a93e9737d35d025d17e9c20fb5461446b73a164c61fbf55945d256104b609115c167ab00ca017645154b2b179194cc3abdb824aa7ec997e0bece6abb95cda6a45834b7547673353173ce06756877db720f1373882946e3055d826e30db73f4282ae51a2a7571e1e4b7be5e8fac53d2acec2ebdab9f459f4c7286bcbae295e8dc4f3e300ae3dc05e3986e3f4dab7b1e5b0787a6248081cc46f9f1c45c99a4e4754d752e1b420c735eb9f815b7626578c9e0d773384e30b794155ba7e69798fff2fc37030ae4c2dccb465617db2fe122500a30ce10106b8d16a5b1685c2597c23e6fbd648b06dcff02087d0eea5e566b2cc82304c5b87384bb3dbbe02e208d5dc0cfe7bc3188795048881c480ce0848c24610e83bb518eafa0c7f811787170eceb94fe1f619435192c8076b709ab89c09502273bd935e984f8fbcc055b0be8a1903828c7bc728da876512589d75b56d91703bf387cc915b3c9055c2d4863a2019a5cc7a5d2978f864472182ee440a3828b2fd834766b246cc6bc752c24762f38b9849097492ed26ff799fe368b7a73c7461063e505956809856ce9a9baef3be8f9bae961d010db5a3f56f7aa4487950475f2eadc4d7a31e7ae6fbcdca5ffabc5ad6b0384ab4a35a8e9d7880747986724171c0929e10b666a23c5d10c00ae36b59f8b5d9e21217dc118e28cd28771ed21661d549efeb4adb1e15e9a28b67ad42b5152c2dc990651bf67cfa5ce7badd78d213196b07729d8204bebd5b0261f2603d7df45ff6f40c66cf07f99ba2a337b4fbb885defe7dd647d6e05b40eeaf8c1357b60ff19c25cb1e8d953a21fc4a822f2f9947536f7fe6818010af95683b4bb2bc06016532a358c54a8c69fa150b5a06f1d5d5a4b973fe9241223f6145989b18bf6dd006319a5a949132d0cc0fe4af537212ceab2019581dcb0ea0037344b56affc45df40501a9bf9ad4241dad28a46a480c55e09a53d807ed6ec561e6fb898597b49e64ebe845143761ca22c7be22de47aeb66f82a8cd886c2f0ea79e4b85e7d3d3af1c7e52d964826a1d89fe548d0f831c5f395f25e186d655e3bb01b8d45922080537bd5aa34b54a053f92a882c0e34879671e2f86ae5baed44e540cdabaa129035867cd5c7848382952a6ed79dafea5e0a44aff2afaf8c116b9852b813db5d0be15ffc146cf94034ce29f85a674e0dc7b8c309c1dda81819d8253d7ef52f26004f7123c173059af2ddf70ecf4f7c55f5a0df157ad3c30823c7a90af129a85b79385fdd5d03111194d29937f04c43d990eb9e45c368b728d2d0bc4c6752acaf3d2c6dc21cec8aa8f549d1aace6388c80902ab98bcf1f64aa8d22d7e302a7dffa1378a772b528f2ac04e248fb9f678c07659c44178199d17e70c1d76c1f41848422eccbdc21ff7af7b7cbb0007add1f5d330d00cbe607ccf00bd4ad04745184045e1a4c531a9e59711c1c84c4324dc78f3d65e7581f93f720002a8cc55eae4390a16508fce0fa1fd3c66d60f03c0a7b20e0a5009c45a1069de39518caa3544783c59463861eaa171f2b000397d3dd85d00cec87dcd0e1b28be8b81afc634089f07990ca0df59cf5416237ee4d9faf145c6fccaaca71823a16e01c23db5174a5d7d16f9c305005006ce714e3bfddc45ae69e0c029e4338bab096837fe6f184c4c99982706af60277586340d760732ad98bd48ff63175b8c2bef308364efd55e0556ccc47c4b488e9b15cf94bbc585ed18806af5c4fd43cf8c6c5ee60427be1366c77415c5d067cce709c6e9622df8528a56c093b4193fc61141f224b1bb91a99cb53626dddb7d4eb8d31c92a04de28aad3d8fd5b650fb4b80d28b6aac46244f7374936304dca02720db9509773abe8ab9e09b7c2ebaaddab4861dd0b846d05cbc9ae9ffcf1b14b9d463b007d1a920ee857b1396cb00679449e9ef8e997bb2a5ba4e957bb6639a1878c37ea74a6c4fcdecf3a99379527affe77ebed7bfff1ed537601a4c6aa3128d75f40d5f86ae6d8238dd24369c82b8a3ee6a1728e939ad9a9a824905e6e39fe26b83f071923d5f6835335cd9d62e439511015ca43522516161e000b3dcb2c35932e47e4ce0f9391ff06d9a92fc1647b9125a34d342cd1d6940a78a25ed16cf9a5c53e42f472b1cfa6284a1f142cafee9ac9b22674214062870caf5eb9a4805b0aff17e7066dad10902047e3e7786e8101a5bd2d3be2e8bcd12caf2eb891459b9d1cbfc1ea6b535471e5ba778a1450bbe600ad217ebd32f7ac423442f68a634d2c60d150443667e8d59b3c601179903a90d4c62e15a61d5300d437afc51bc079ed20173ebeb9befddb8724da90ca8c88667cca6fde30ad32271a547de49e0ca6895a5e44d054163402f2acb03055c71e1d6d8fc1e5ca11c3197fad4b3d54eb9524be794343bb4b06a2e5e2620c35f8d4a290205a5d8a8136381a24a8014f0c57d73b619344136b6c7103a913d406ae801507f9480c5b2ecc435928c3cbad5851a0851a519612e93ee2e9c9a68edad16a09ae66b2349332004dd93480b6bcee4226bd2f76d80fc6fe7800cf05740546e5b739b6b71d92d27ac2980d25336566d790e6044572f01cb7405758269f064e3f7c7839a9bfe52dbcc0ba2ae8f55e4b68b4920ae2ceedc5415cc7402a129d86e1497094392d3e138491a69aeb176dbf64b540c99146bb7d8e0bad552e1d073deb613e9a9ca31ebafc3f2a2acfe9a01abdc586e5f0fe7b11b0638aabced2ae5e5b939e9d3af2ee99eac360beba6939483a59d5729413229f87a11761550d67a71386369507c8c6ae490c8122a466b78374a602ec809334c9e064ba5196a1849fb279a84aa88b16e194cfb8a74747ee2330b07fbf098c2032f6f3e5e529dc9a9ad51b14aea54ee1fc430fa75065a8f5c0ce33e9879b0feba6abb72ddee4289780a3166cb365ba0d9d6aa5ca7e65134dc2269960450d1147322a6ce4c352c9c0d70a2c94decdec4b99207e837f067150864c593dc67be4e0227d858e67e32404d48e7afdb05eeb94883080137004c125bd6847c6838b38a7e02d4d019d003996014d8da0e565a77f2d54b91cbaab3a238be6e386fca505c171a55cd5191496f8ff1693a36958be4ae4d7328427c8d2d506d469cdf138c631cb28a0cece0c0c96af0fd0537ff7928b1cb72cd3ac86fe3bf652345263a21154f7174735d5f500c985ed0eb5f5638d28e204e3793b5b71610b6ca120a683621ce43145a6024484c294f8fd73ff4b8526c4274583529fe302dfeb23043eb2179b5d4c40cc556698308c09873542abe1f516705781773ad7ff0379d30e94ff31d3606f0d24ef52611959000064ee9ee60b09c9631e4714b4aea1f01dae2783c4016e7616f4bd42a31fbbdcb887624251e08d1aa950f6c8b993b87a1b4d43d8837b537a76f3f2250bf777f2c05f13eab37a9a797092aae84b3c4839daeac2d0cc2f8973af936f5cea1dc14ab43a9ec7e1b04e95ed5c0ebb5ff146967ffb7010e6b25b237795647e57b799d2a7d562c538e64c1031de50f0647b0711f28d77c63d7e78aec65a3fe3a94a8f64aceeb568178d84aa715516157b9dc725f610f7d83fc2cd199e71dcc57e170ec8571f1829eb8e818ecb06a6069ca32c4c5f0a61257c1f13cecbb569e7c971c2014db186db4ee4aeb95dd276728d8f175a9bb207684a6ebd07445bc15b9dea2856b959ae6b7a381b73d8b989021fdef785e7e1f409584d440dd869427a1a7dbd285d7317406159ad550208b4eddcffabd6a90f7a5e3f046c3ba4cc39f435f113ed3e54b6a59a5d4da43baa96b2320511d3e7b5739586ce4b9b4d5061aa5ee5e17a463c9a9db3921e4fe708d947d4983b43ea7e85ae58e4ffd899224fb83f904bce19ce386cd4c8493da86ac0f0923e7958c17dc2b34f0822c07561b8e73a4c7d7d29d43415514095e402a47180ab1b0dc808e72c43b303ebc301dc3abb72821c063336ea003b75d46190856370f09e985a0cc988e79efe16dd73391531540b79d67f37f157e24b2f402b6e1d45088fe88574c2d077419d1602c87e727dbda5726c5cec2f76c3e8d68dc04f2ac0fc84f2f4c580710cbb0ae04945ad3b5526b2dac344b15b0f0e878ac0056cad88b52abadf65940345c2966607f065c307f4259a596d217e879d325e6aad73d22fa5b96a7e6c0b61f9764ca3f88748e5ab51f2ea50b5d45c0281dc40de3474ed9a2c12b4ddee5fa8177fbb1e92f076d19681a7ef7f50dfc65bb29593334de6524e05be59d192fd7e190b1209845944d99701295a6e61776faf080ef1e95dfdb4bfe1b45109d32b0da18ec1e3d678362d78f95ec6d6e11d1de96202010f39581100e5e99b9f0d7215e5c2710034596ff40ddc22f3b95f427e8bae4f56f52ea7f16fdd54b2aa3d3cf9ac2c4365b5618701039cd6be4c2bbdb2e26db2980781538708ce2a97260ff4e28fd0bd2191e0d5f0a4f8e53d559171ff3856008e83b734005251741fb871f52d38434feda02b7f76f540fe5240e7081279944e1069884fe5b61906dd5cb550410eccf64529d1c38178a83c697d2e457cbe329cd5a55ca0cbd6804045e27e3f9ea787a0a1e736b54e343e24e345d7b52fe2400188a8a25233e104480f9372c90631b4bc23d088e8ffda4998b85e62bc1db74818a26ba832be4a4cc230136435baadfc749594dfdffeebfb886bc7d65109b7d8f22d793c4182dc595e29d3d782e848da09d3b9884f579e3d0e2514ea9ff20c0ab07fb29044e6118c032e74c57e34b005f655fb9ea44a7632facd735ddd019b77019c22ceec4020f38f2099805fce50e824291139699df9bdce3648d2c62303c385473082b1f7beac877c3440cdd1ff5fb56a2171bcf1cff5a3a2dc2ceb81ead6370064757f2f723d4367d74cfb844bc70a30a0257117921e1111539a9be4723567109da9835782a9f20bbb806b9170756af646177f4f03dea0df36b690460d08af997d0e9444485bc455dd903f319cf5662de26260cc4c72acb8ce324b2da208172429a495db93770a700c29f2b4f0987622b3e2d9f38ff5d1c772faa0ca58564269bd738bd86084de7bca50cec88e40a48b59a6958a775d1f44276405fceeb1a01ead68d1669f0cf8a00a549cb15c822f0abb440a1d3c6c7fec76bad23c3378bd828350a4004d5b36ef71c3fb69a6a3474f7d634fbe4b0f6e9d37e79e19d8a68da8fabb7058a9789c328b49d69a16340ed8945f6616591e772dd6b7ba7966e000e541156d1e0414b210d0585a5f00e02d5df36c52a0e4695964d2e1de622a1c512ac79d46b6268913cda3940bfd871f242a44958c49a21172ce5d4b4e4c867e7e5baf292ce38fb3de3a9656d235fbd4e8ef7286a18c48886756a61488d57aacf620939e2d7eb9020c987711ddb4d5a5d49cda39c7950f87a51370afc44be4afe17974d0cc398258b249e77de998242612684d80560295086a0bc019d4bce5ff4f79ad27ba158b0794e4c4ea955662b7cb191b8d5c3664172ced66904900c4a3da49175eecc477f0ad48e1defc5b86e32419d9627572d11b600e6e8372dcff9b5bb782c75ad76ffda84a4c98a80fdd53a260b7d64180bcece3e2ac3a0ab5d33fdf194450c2570dc11212063ab69c4125d2fe491a1d9ba7e6205e9be5fcf033581f800621a1003b7e2022585925f6fe8315fe9b518ccf2c2430c570020afa228322b66d9c8e439b3889b7537b08d3a96a92ecf2defbab41de674d2bcad0f1213949b572fb0262a93192150660cd2a20a1620b3d4f964c5a05cf875628ec36a321b4cc922f40db21c5a4460545dc1491e63138f6bc0488e2b3a905ea35b79d929f973c80133f9ab4c56b39173925668399984271c3fa5b91dddb061284d13d6f93916807c7c5274679aa560f7a3bd7af7211b67589998736c1589905d4e9a168b0b8195efe5b62ca4cb3d7adf4cbbed0f1fcd73d49659fb2ca40e1b531503690274c7a4d12f692ef2804d0fc4dad4fe5e325518dbc6e4b2b0330c5a4af457b8ab6b7500e8426ea4e598189fdac0fe21f5394316170d4f0c0330e2b6e9fd910550d89c5b5f4207592f9f8a00ee289e726b2d29f83064677b9ce1c1741ec4767967f4977824f0fb62a95f0c396c5085bd1aa307b4afda449f432224ba5796eff092c5adc3abe8d58c630d552b8116eb0c4f1e03a666a2e128280a433d64549a38933acc6c8b3f7a84018378e4b9499cfe308224c0c0d38062f604bcef9d569403cdbbaddfa2e22d1d54534adf595d892d69db0a32e64ab79bc9b41c872159e8a1dd147154f920c4e22dfd9fde17ae53d451e26121634d893992e26349ea94414078451c8ed65bdd651d4b406d73d5ef57bf0f1356d058eecf599dd1ee0b0f1b099de643b9408b509e5d237fde778846a8eb059d5f1644182e7562864037543ab4a9e62391435601f2cad7def6cd941ae629f22704bf0d6359d6ce1e02b457905fca60ae27831c9a8797d37820fda9ea32104ff18d04f0390b27675b9fe111ea65389d1365f5e42d354b777ec056cedcc7f2e2bf19aee120474bbd00c6e90fc55e509aed6fabc5be1342b12ae9b94e16b1702a295bb1db8a34b3161e3cafea8301f55e5fa87e999cc78ce56258d33bb27612a4721bf97f839cfee17d9908dc4c837b158979fa36ba1d77246b545cd820401f2e765e3751e0095217d1d60497bf7892253a3e4330c024dac4ef537df0daa830c79e0a5ddd8da7593d05bbd826dd6f834e90e2231b3568083c52981ece22ccf2cfd04ebce6a22ff3c72d96d82c227029c7ee78e1f8994f021a886477ce086866946d12ccb94edff8d6f44261dde5558c6bb7cc26122f3c7adecde4d7dc645a151a8ab37fe08ca05c842aab2c0b5e8e7eebed6f3b77d21f06573308fa96e46946163bc9a26a130d4b5b6f58aa6437982479dcbb15460bed2a7a8dfec467a91607da1764c929730a09ae1847be508ba8befd296322664ebaf225bd6819a34fb03fc969908f094646d80067d71056750552bf82ceac6fb88b1b1bb55c24eb335a423941eee558dc617e5112756f75aa469863b2644afaccb273bea436795af8e20f0ce0e86d61c5fa80823efe1b7a29220756f8c60f59008f3b1f6d36e8f88781496348b12197b8053c1609052d2bfd908a155f9b4cf4307791d3a78b371ac421eaac69ff7981682f2157c82fdb82291b0a5500add78e0b24f282e84e22bf9c35ed5ead2a7b66cabb2312b977ef764e071c1798a9971d97b94656e0bfd365e0c18bb89b70f4f6e08a015c057c1dbc728426295b06538a011498308809e5d7eb5ee034e8c4af5e54d121f9778f50bb40e27d899570d7962a4c2b2af2586ba907f4e312348396334b5b669d52ee03bd6316742883174e712640272283b633fadb1171a7750b0089c0f59c9c4945bfbc108aad47b8914e74b647508d3354585e4c12983a86646b0fb7b962e605ce10b6950049eee364c816121fba2b6ba1fabdda18502c6357bb314b1d45b677fc6593ed214b21906c1148891ba831e117bedd00a608209d8e30f50bdbf7dd8de1ae8d4304a83cb083fe1a55ce9c1c2665af0930a159fc8c7c884aa4c6ab8b3c3484daa5f1969cb039ef231b50b922fe04e7c8a950e2f58c0a73985fd249ae4034b188a4a55b03bc8557b797fd8a92fb03ac11f7ae23b3e0b25a31a85814fb4dcb1c4f4709fca56348df66419cba2ac174dd4699817e83de845781ea14bf064e66d2649e02c81be63e9cc07d9a99050ceb05281157d948330481886fa0fe5180bbb31aab1b7614e62513c27303ed46f10a8932d78d9f10db569c6fe10d015892f0198bb18dd0649dd74b5b26a4530d308ce30966128b2cdcbac5f2374ffbec8d4b1022fa64466a1bf7f2723ca1ff63dd9702ac3ad5b12c935ce3929d3085c57320828dcc84437a993052ac557a44f6972ff6b3fb863a650528853392765d1f511288e0447e6e868129d22c17154a2d4133653196f0b89690a644d80b1ca27500c7ba6a4377eb31590e0974cf3d2411f9f591f585884ec3316c8616b9f753021bde65539eace988c9886a10b868af88554cf11574ab61672d35e4bbf930a91db9229dd09c4924b5147685c9507d71e5e932083491dc704ef46841300005720d61aaeba714d47bb22a46bc317133aebfe3202dd53e6e8e42c429a90d0e15bb4fa7115b97dad808d0c9548ca09aee47ca553a036be8d3e78fcf05519c1ae66526ba4f9b47721c5a51a5c482236ad43440707523810039fa21267ddcd38004a8817cd4f8287f1f01e20888c7348fbbafc31d352e33aeddbc6f17bcbf609be74f4b9f65cba30d629067edc8165c2581c83066b21c45a7abc93665fd204c00e728bc36e781a85ac913b34075168d17f11cc50d12051406071009a3467ebd281765cd232b2ba31d968cb3f875a3254acaa16fe29000ec465b5d428398c8e07c4cd65e581376515cff57081fe28d0627132144a056197fa34796959ffc413461c8c526e1aace32b7d40a2d55ca7181442e88295b43caea10169cb60bb495645382fd9ad6466fd0d382908bc91ad89510dfd3430f931fe71ccfa19a8c8b1a9afd6d61e9338eb133c20436a106b8f2ca0c442e1964782a119a5899a2a60aecc2180429ad76c4459a1c8df09cda686e7fad0423f50e9ec2be6eadf039babc5e0d9480d3f5bbeb24311dc2e28a0a89efd657bf57bbc84ed7c2cd9d447e18d5366114d4e7e74cccd71ce4767dff46f062bd705a020be2921f0df3e5cdcba882569ed39660307fa1ef9600853100a2f8a91c543ceb720194e7df62d505789cd811108815431cb8afb1faca01e732e0c81f923901bcb24737f7cf337306c0145718cd5e9a87c7837aebca63057eb86f6d8688c01af5ae3b50c58cd26e3793051e2e24f38f49e5038bebf429203ac0696d196973ef94ae22c2fc3cd409b7a1af410b6a75399255a01cbe82ecc38282fae88aea51e21e5cf5b5024730865e07f43b7d392a248587403fcdddef280c7d52c26737465282f0466470ca1853d42f1b09d4e0971f314bbdc42c246407d148572f6bad0a2a99b8aae3947ae32c1620a77b6f814833f09781bf092fa7decf5d0e1c5e0557e61ccf280f19e7c1d407475342cb980cdf27e6a48789cc940ca21942c4417531ae6ce97dd792cb33e4c0869c30a190a8063cfeb3201d89472075269a5873c21708069101a2df33c1dd8724ee8093ad5db20ac195bcfa3cddad855f7e72bc20b7685593c40768d1f9ec18a8788c8940f419b980bd3baf2f6582ad62e1bf5e158395fb9f7e72120c0ea7c598ee31bbe967a450d118416b0844e84725cb5919898fc234da8fdd01328ff0d8f2a4a688f38c017cf17a29e52df8e56efeaac180b79140dadfa22d07efe457ac2e5362aee6435184cdf0967c716dc426c2f2a266b8180d26185176cab95ad9d47de8b8d6360146cf5171d08c2fb644c385cd1617df0f25aa39054166dd91d01955aff02af59c213a30e864e8d9ed91e5bc034045b126f289f62f19d2c8b75550eb0877c6160b968e6ad2b406a7c9f6d196de1effae5701eb1c19cd6910d67f893a520cb2bbc6b49b039be282744d0d072870872d8ae36ac20570f819c0ad844faaf3efb1975914d331dbf90046396c4fd9a18bc65656b93f5f115f18da87668ff5a6274dac9fb71cb28adeeb70e8592e5b0aff17828c6f6fc280e6e2bdafc13b40a4c49432e6f70c6d72358b0c99dc5452cf869101315a352252cd3f388b24ddb2606bede44ae71f17e69eb19a8ee57175664a237891533f744d8b801298493fd7acc70003cb01154c62f9ebc30e15a6f15c968740659c50b29378fbadbd2c70345970aef4dc089f60060d141140ce24b00ee91b214d75a341930ec2e8b264c9f986d064c3df2cc6bff99244d03d26188be8013c3a82d3c07358da9675fa7223237cdec4901f56057cba593c1ab9980b739f4cd9b0c000a637391357b2ae84dcbd6a500973fa69de41dcb00ea5b2b04993a5bbf82ce0544d74e19b3a364ac644ebf9214751aeebe771b639bb04e1f2b0ec740ad11da56cd1fc3a403ecad342d77900c67eb2ba9bf9353000c2184c5709c2c0a6e06b91c708825ee241479ddfcda511a80d3e06a6c0347ee795d34591b1cf3a4a87ceefc7b53f69e1c88bcb5c7b2ccd06cae88efd826769175b98dcc45b5e024cd25869391a6f4d927514c162ee83c9867397155c9bb1d6395d154a389c389020b3f1261eb239d26ef9baaa0e5e08dd877d4227af215dcdba9e7509de84d80eeac94f3d32c8b1c186e1dfa51a30b0b593c53403b7054889cda74f8c6ea2a4738a39be530016c312809be4916ff70a6144b12061c8e60a4f747a2ef25661b41536df1acfd16250ac297304638503e085d43cb090c1d6d7ea889098548d078152578ae4981aaa027cc43e161ca764de55aff6115c602e8dbb2957efb918be09a6bc090f547ea2a5077ef2645ddff671cbf5352cee8817ca51ab3e8eaec63e7ab9b4f4fe0738a3340dc6c50e8029da3a59549f7606b20c30ca2e3a41580277083ffb3b3b0c2776e447356dd5852fae2bef399a8354ce4066a219114fe26d1fa177c59ece637dac5b6b5a9dfe83a5d614cf8a3d28792f82ae5e4bf70b5b495a69c0dcc55677e2c5835d70578a92c5689690ae98c760d26e6a36163bc906d0d358bc7cc6e23e6007f9803dd2023be12922246aecfd2624f2808349ffbb8cdb547e70798658fbeb00202f5c611be276cfd0bdeeef482217b1e68b23a9954e1cd91847c88d00237ed8d89a33ccb432f930d2c30796d595c98a04a9dbae88127d784dcaf92edaed414961471307216d4173124988793c1ff29b04a7b2c6fc82473f96c13621e9b9f9f5d6fab7dd671abbb86646d709bc3a62ba467dfafe321cf2b59ffe540fdf5bb9f7996f25ae1615740386c02c885f8d6086c01c73e7f1e46a09f0c10163c579d80b150557bee3ec4169780716d001cf25d587fcdadb15c7c1238ab18b5d732bebbd728486e8c449bb5958dcde6068c229fa4a5f1d0b37cfc8e93892c861a93a16b67f4b6d629c253cfc12116912a7528af695f15f0630dcd22dd5aeadaaa55ab55db534abb669bb66e93665d12cdd154e2e8c907aa6f2a5ccb2008a3a05a8ec893bc70e950aa265ec070ea7231fb8511d3c179222652b2602b00be6365565fe137537ec676ffc1b60f2417830c16a414f57dc2fcc9a5c22ac88649b3997645eb3f846eb852d45480ba131efe360c1ee63b8d7b62f262bc24a22dfd3110d408537d00e7742a11eef2288c35e5887de6d9453f1dc4abe3c257fae8afc5f2715067ff6e6226c11ebfc1801d609f13608380bd1b8f871481a2f7d752cf2e36f70daa81fbaa8d9e9c3aafaa5dc21c711215cb2ae583fd5ee254251854dd3169d5accedc2dc7606e51b9102d99677733afcd824a9c046d195de13547cfdee18d494a8bf5402e2c95ee1bf0faa8777fc7a7d81f33ff43cccaec1455fb2b0b9c64d20447cbe852811d3b54a1d1b6c3a18f35ef52dbf0cfab66a96db78b67f1b01174a0154dfa3c5526b376ba05e0b33de9e70735da16c1a67dbe0f55b655aff146843936fb12713e7d6529acb6649efaf2625c0987d242fb8401b5202c790c7e9f030705cc48a07566d6e3a4d10b578da4dde64b75c6ae1a11bc4a71e5cdf31136db81ece6b91a3530eb3249a78003edd090bcee91102ea4ee20020e73ac92a7af10a348c9161e6ce2a6cb848e560f7b2a36d8820329b916c87e27d456c04aa38794014c7e0c75f25f0eaca91b8e4ba23074c0a461a9b7ea090a7daba4344c0a4e714db56859c6f18c8efcda4250626ba3587fd601dc65d140a31a8addd42513aaaedbeb4b394d827d1e4c23911d04a646e37125b4c9da9f14f84422006b241cfa89c94bda674ac2e79597ec0002d8e5a0a8ec5c7d4df42bf1b8dcb70815beb1a5b7238833864d7b3f9a9d242a5690b72909ff7eeebf0b224595a4de046d72b227216019d590348261bd3b8c101e6d3321384c01b74154997f4a189fc6b89f05c47b7895869eca6ed9c07ea2fe4f745b07eea9cc8a21de7ed59a2297d56801edcd2a5d4b42d053f94b0898f2f91a4ceab0e2748756356c3023d9b9abf66011f1f86e40907ed6955ca1e46107c59d250ee957969a3bb2bdad0d9c88bc88730abe86ed200483e25619224251c2feba259ee36d4c41bbaee398d4112525eb4690385c61a06925486880d324b59936a14334933fd466e597842d4bacd14695d121480a8ac5481d9df785b5b745e1d5be9277e0adcebf6e892c064e84c43e7682c952f16832fe02d3d04100e03b2c7c30072411cf36760c4600609f700f23a98761408ae64d0fd6cf815f825c991e9a408b03771b6dafaf14501280abf999eb97fe92284eba46f61f0050556ab0b0f0b00ee19def9c384f251d19fae21365943c8d5760303da6687bcc79ed76425a600a7a4d47b6bfa053c0ee1df28808f8058984be1171e603a551d0327c4d4f900d4d194222354de5c9740f916e0af29bef08b4991d1355bdef8eab4e56e11d8009fb6989c34dfc26f54b5bfc4c6fed3a818172ee6fe4b3f43cce1f1460e48dacf8c168011d23926ac62a233cf22ccac05846883eab611c481808d738110c3bcd33fa009ca4b9e139320fac914faa2662163814b742830c2a4f6624fb293eaa2512e3d44e184a28268138fefc97969e8ac9e1ca263316d0bfaef8dcf16431be1e2611867e5f4c2859a99d4d21c4d245aaccaa80ef5f3f8e03b7e03712f3df87e09d051fa2e8cd23b3d7bf290170d84fd91ccf2d95a2f32a0266046acb2a4f8e0c9bf55bd5e61cea116aca07d348e9b3c25b221cb96212c43b2482e4837c0cb821b81b8c43a4252a0b85d6aa966d0b5a63a338bfc41a1cf2a26f002795fa356f4b192466d64114082d169d90253c1bc0749e15c8394f8313052a44f22430f0813a7850f1635f2bd5fcfa382bbbeb39b690bd3eea64bca28ab7e73eab9bc5f39587cb0c054b8e2e3a0ac2afadda565b8661c45fde8cd5d10927897a67369b99bdbfbaf56404afb408c7c9d37774f2a4ecaaab2e9d19bfa2ed2e1e0a78486cab242d8a3bb3675c80cdc820e293862c7689c1429e98b1ee6244aea099588123c48f989839dba2ec3cff82dcf4e7f2eaa2e9d15ce2d8ab4dca4c7bc311acbc40579b4669c0c58d5773746104e1c40019fd559e55314092e44ea34a314514069db5a891e30d834d8f6d17951b4eaac7ada193c18463bb6ddc81243adf9fa6594162639a4985b4966ea64f84a9ff8735f20e9bd2284ba0481814eefcdd99ac832f3bbe26684e50f5a1b7c798bc321bea86bcb797e5df7c6ec237224f81266603b938bdebaad59fe74665daad944e63cbb35d36f26fe4b98a8bfc388231e8a5f68c73108cf0e2cec646aa23fa8e9a618459e66fb26099636dfb7e77e3de972d276922c67f6ceab3dda434c58591f9e9cdad48641a5dc79fbd237f1f77508b4f7ed34d883229f2b1b5dbf992cc0276542f599efe53ee119a281c061561c135efaa8437b4a646a6bfebcd30df0faabcbcd7616049d4498aa02658ba389defa5c29a7d068f51277e9e3cc8b3488efe26649682da6bf9f4e3aae1173ec1da63994f03af378434bdf5dd19028039cf250a16ffa433903d39344c502661a94f4f316b631660444dd281314d9e4b9b26a88fad1f910b5411abd79ee89a258f25c711ca209139e5d630777b9f3995c1ee6d853f180dea723300306b0fcd4c687db76b90876125d81d4d20d61f45e73130d1f52d80619389f254318641ff4eccf557bf7a84c52f9c63222b41b850ba3546b8a8966f2e35058c830f86c86c202713c652a4d128f8f7361b4002d4a0b43d058c2ba33639d2ba783b87c35b6b98de4f30ad948b94c19cb30f578867fec6ce7f6b7d943f33f0b850568f85ecb322e1c4f549b02983e4efc37abb01e6b8e22bfd9ae682ebf1714b534661bb3cf6dd43bb8833ce340da85c2e31ba44cd03ce98d920b18d2625360ed3ae1416fd4705d5818053d26314e00706816f063aaffac81c2a840e6f29c4c047ab879e6cbdc7ada01552da5d686f3d55784558b4e93cc436c19aa4bf1fcc20dfb3e809f12de99dd048b9753d216fa53f2facddf6e9c781413041e1492d09c4ef03ba364d5437ef185af634ae9caa1264d7d54fda254ba87d15d24b6df8a1095fa02d62d2f89ecf39f127e861f4182c426b36aec5f29e6b5f99bf7efd5058a53994993753761c8ce800fc1c1a5b655ce2447f03b3f2792578c8476787a816d49c2c4e19c8cece6ea827b1bed4fc85102d5c422ca20554fa46dad3f0547811a0f2f82e6baa38b71849b959e9879a106d02dc320052f884d395f243a26c49b4cfaf0b21d8d34c51fc86951d9b47b9216741b41014e9bcf27cc05c2b591e41b9d5d97b5f9f3885f9d13243a48b9285694f8730426990bb19c7f901ea8effdfafe5e9b7279e22244dd3e207d5b0e3ac109c1802541522509e5b9fd371d4af0ec962494472e6535718971efe16e4659c6fa42f78da6dc61e60aaf66f211007f8504e4c49da82b10cbd0b3cc0e0865d83331f60232deeda4608a3b48f11d8baef4897327e2c016e13680cf3b1d0483db380d5eb9688a8edc0716c5a8c92d819bd3cbb59a68fce9e4d20dd85001a9e21069a87d7b0f0184a19d0b7293e0a055c447dd5b1d2bfb6986476d9fb56ed25bba7d5332a26a30e78567aba061fd0bd2cc6a2687fb819286739e9341fef4f08d3cc32db0d8be6130b7bcfa9d1ceee2438c61576c794635c57bdb8132053e7c6567c20e4471164286a0d989b390e72f4f08654582d98f48bdf620abb8f3b05df9ef470f48b47a07a8f230a24562ca5fbaf9b228056ccc1fedce1be56171e873220b751c8611366ca8e3a1f93c33b467034c9074044ce3c300a28fb594ae44cf003fc3a01e1fd953f1fdf3eea679896a4da75c75cad2dd7827922b19f72a68a6e376f6cda897e060aa6b6d41d11563a39a90512abcb1be24518853d6d2819dc63e5d76b2c7991b4286a60352639304ad2c80d6e88ec2717e108d9e5179bcbcb8915ea5acb137f6345f435c8c0a003c45b345d8b2c88c2ac2e804034ee5f3e80d5e2cf5ac9c3cf4f30d8e7de97ee1651373a9081fbc13f0a6ea98b77aeda56bc7f9345aa7ee16b36c2a0af27bba418b25a1267d66adda69802f7c7ae51e247faa6e0ec8567303afc6f2b9ccf1b63534733f65bd8da31a995f42018de28972976268177298232bc02208c92c2edb0487b4fdd9a04b83291bc55b6704e4ad89d669d72b72e087cac6f22dfb171021635ff34cd7b6a0b72d971d3920a0aa23ebb545acfcdf03075f809e192af0090852d0bbe3bff22416a4f25d0bdb6cd51e9901b7d2936b651d93e9c08b509abfe5d7226c45ed77514dff066b5c3cb7d77aa949c7ce50f1f960ab5f3df69cb51fb9059a344289fbfd82b34c7e36ac1d06c6706e6c325b1f965d4dd395247416f834cea05f4438e9536cc403ddabf86086eb7f4440e7ca480f109695b4f1cbc9b0d2abc04b825157836e25a7f34b4646208d56486027fd444a0186deb5fd791c155c6b01754215d882daf4f73cca77e4b015ca6d8b3f18d9657421b81636c91813f7b355972842bd04df74361dd9dc913e0a20e9eb2c482c88c97c315ea9713723caeb2cc1274b4754ecb3ee2dab3ba23d8108231f656e4f1b538b25225398fe82a73a614a36e43c8e4fc5c4bc9ee3af621430f1765368d026e93ec0f4c9c358ab27e8718163c11a38ca72585e0a00278962b3671b2e5ce71b37200e9faf463b1ae6a9fed3e2e1db55930627f1d289244ed74539a1b88f39b11358adfd2e35d0f17e590f0850eda6b22cb7561c9e49aec1c5b9585150528b5e3d594d9bb52f62223a77cf61261b01b90288ff3c05a0a87b56228c741dec86a3b7fa44cff4b8755b3a3415cd742b1b17a0c1224fb2faa9529556d191f92560729a93586a0f73a5afcbd0607cd013fdc6440fd231df6b62d234594834282f54a2d65e8095cff8a7825acfec098bd8c78112336288ab63f3011ce758374cd252e089ac4c69a7ec285dcd4d228fe530e0302f03ddaeee20a085122b746292574baf34afd1ad3b5ea14483177f2c876910499055b18487730d5b7276910a2ccf94d7422ab18493e7302450c3e4a69ea59c0310037c03f205ca191a2f22c7f47632fdb32180f6ecab5f8fe0a2a4a33239e9da11a811fa617c402ec207eeb8b267569ed4ca92c717d5759b20f314b60ab7c47156744e1395175bdd545be579fcbf841a0e76d8de5215b672d85ed2ede8afaab9ce6832ff6675151421c3c4d293f326191718c306514916c6c1f8e2fd72387b4a18809adce8d5b0fb65aa041edd322002c222dcb62e60b87513e13250099cdb342ca3ecf005488e7b8f24f309d2f111c0da192817549de3a8acabbbc6e2641c1c78ca42337408b6e3bf15e2e65f5d0a458134d317e25e1a9a3198e13567a7749dbfb952d5c1db7221ca6fded8be18f6cbe3110b70c9fa01ee78f74b74fa0d1fa0e9967bf1919f3ab8e2f8a5be225bcee9cd0df5a6eb9bdc5448539afed8458f944d55ce20be40909ea5d4a4a6155127976cbe16692bc305d3c3fd1e73c80096692ae64e00fe660657f729cee370f1bfd9aac0ab642ce3fb789fabef5f069a3cb9cf4929e67a7e2a7f9a4f3036c74428c1de9eef867d87a09e8c1fb8c20be004d9444ae03e2fbf9281d702735d658b5525c1afe4a20f083bc9be2f0d2e175bf22e070d3627951fc5b335bc4d34a46e7f8f6da193e8dd6219c04d946d788de1b65394dd4a5a04648809d0b746c2b5aae8a6ae87b4778f6933f77e1931dd8f241eac7429d2bb05d252cef7dca4c452670aa617558ded6b8d4c6c5aae0c1151130e09c2c3040bb52040c58d5f1aff96847189b7863084aaa95497b058cb9c20678f2f66d9ceb8e573c086c7f9abde1ea6689ff76186113dbff09f621124075a5b8e0b9878c6ba8b24c2c16886755a1768aceed1034f6d455b04294a874af654f3073bd32d7920750d15a0dc0f16da2bf73628b0e9dce9c8000077bc36cb661385c2d7a040ad7b8f9a709e8a227c35aa44fbfaff078722c802bb1a1f90c9405754978d24cd0bfa563d09d7a8577f6b781b94239e658574bea6ba0c1ff5049304666ba1c19385a0f4dd3555d7b42522e72bb0020a7196c936c8502163a9eab288153e96abbb8737a17aaebcf94e0bbaf3dc077bb5726d159de5bf276fa003cb70fd8d408752399b4cbac7cd58084673e1935291b8cc8b73c07c3dddd8663c53d037e685fd7fba9b44d796a169c8fc444b34e70732c7d397f82ccdbb5e3bcd9594f6be5b63ec7951778f34e8c6c5d2cc1ce0cd6ad86e0743a96af89a81421dd57ee02050eb880f230fd434b71edbf2ce9daf5bf7ae209a9fc48871989410311428de71d6203b10ff443533e6cf4fbf16ed777f642fb4fa1533af78e8f28a03c51b6047ab42837cf443aeb8aea0f900e27298bb90da6ffe375c9406b870e75551035d4663f55c54531ea53fdfab38a5f5d86d1d8d2b7b4f2154dc7c7f6cba2e67249f580193be9d0e5f4d6c1a050acf4bb856305e15251db9592203b7d8bc5740b9a19465d468472c3995e0623b350cdc0120ac6104a8dc2cbafc7e11a5f767450a98c909253d3e0163003b8f7b567507636feb377338e8ffa24f486b6d93b6c9266413b2f7967b07850b4d0b590bafa24a8246d945db036559e8d8b5bd1cb92bcd631c334f9fe46d4e74ec55445dc5f2c857128b0a8140f75eac4d202b13babd6c9777fdba92b4cbf5e9d6c64cd96bcd44d7eed5eefcd50e13b5e9a26da6466deb60d6e47491769192e9a688ae1da6a7a972438455ae24b7de77739a735e3c679d5eaabf598de97622d1a41dbb202ba3f209cfd8ad83f9f64ef64c255bb9575dc91e8964b784bbab8233cbf2a8759a269a26344dbb98e40e7b8e9e11dd893c656d73f9c019f3b7bb94e40ed3b2f9ee4a82dd631aeeae2419bb767a0d6bef348a67a68baecd8bf4ae776094beae21faa46d77ca4cb7697a15e1f9cb07bec09eb281481bcad691b210164fb4130dcf8c3e3f61d88447c77090f2c433ef48a3cf93135cba171d833ce24b8c31f64e9e8ebd26795e7b26c221286e878304d2b0687a86bbde91b1a73dcee92290a64dc7de51d02b1b031acd7cb797a77c439047aff20a7dc246a34f9bccf7a28b6e5defc8938e3cfdc9479daad6a75f57c01932c90dd58f6c8c452bbc30eca0cdc6805e475b0773a6bd6a176d77eb48f98eb68e94a7576d93794558d6357c7f35ed322f6bb824fa8c16d2b9a51adaa96b983a3d4d1e6da13f3b458789d847dbdb709072085f57c017d8efd65d19c3b6eba0cd6259b72a5a92a2e68b2a50081d8aaa5c8b76918f93940fd2d82fe65d5fb8539e2b793ecac8f3de7341000fa878dccb5d6e1df9b1cc88855ac9d0ab550be9247410b8d349803b425ac87b17dc0177c015401bb84307d5a75a5191542baa4ff54903acf83d21c7c5051c1714ae24ae0fb2c20b63840f6802d4ab0af735071f2c4244c7878e1a1f244282e0f0c082494f911f3a363a92f8f008e981f38385911e184b260f08694c4f911f3ad246ea48e2c32324f688383f5818e9d9f9a124c9101ed8a3c98f91fc8adcc642bc5f45ee7b2eb8194388fc2e8568eebd6deba44c631965941104e3b978af707ab1a9092ad598725fe6c6d71378e8215706d902846ea8b56de2ec9b394fcd29a594d463a434863a916994336ef1ee902fc78d9a53a4a9e0dca9f58aef750c849889e6de895c49ae2b2e9fb6b9ae689b2bc995a4fa514951e9d09c4a0a9a53fda87e18b9d7c8ed77f76a0edae40ec76ba205da5c096a8b765902be2b75e36bce127ccb4fd950497d32e6230c427d0c58c28026997a23314391e975c6f9256adcdc81be7c0e98a3ac6ffc9e0bd8cdc3535bddbafa17f14ced539f708d3e05a71258ee80b437a8b7fc00cc18bdccabaf4e5997f6c6f48a3f00f3c3dd8d49e12efec5537846ce34114ac02c315502e69634987f5da297a12e4f23f370e90332bf2b81e5876f1de2921230c77f40667825309afcf007e08d3eb428ae415de68079ceb4056113189a145b00020c966ef6e47953e1e4e4f92e45e6485d1879daa44faef1824adecbf55ae6df0f4b9eaf459eef4f4224ed1261929a6521fa797a59d3f3517933e769c30c4e31f46d3375e4f9ae8a3fdd327bb6cbe348b96bdafdee7b795364328f4bf4f28d4573f36d63c9cc5c7164d29ccdf3550d76ca909f1208599327eeb43c3fdb06b6cc9348f73e2679be8a2118733e6eb781335cf05e409f6f163c97eab3af77180ad536f171d4411bf55aa8c7cd6ed42f8c6a1bf1bb3032658da0799e26aa9ae834c5e9cf524cc5387ba8be8e44979927e3c9987f9f1dfb8de9847008f5b1c4aeff5a62ca49fce41fa4c39472bed26dfec6d4a7f832c2b332f2b9984a6099c6d76e1244129c0199dc15d293d179bafc8533cb1c5a9152227cf36569e3b92f94d11d85d112f10884b8517ca3893773ac216b6a9a6a8a1ac17c1541e8d1568626cbd305641aed023005fb0e587cb0e7abd2c4589658092c431a0ac22822cf746863229d2fb6f45cc9486f36758a29757acadab84067a4151b3e64914516f09a79864a9b5993a3129f4ce42727bf0754b98ee8ac19d9182977e4107cc6109a35192577443288cf1864d4269f909278135f20b1e87332e3cd6d273069434491cd833511266d90b6794831c31be3650edcc1c524a5618e853a4760214f2c6349beca30c31be3159780322719e207b2e2c277a902c54d3ede2a672f0843189020894144224d0ba164d99c55761494d3644d4b49219148a1d1898692611886a16428d989360202040c5ff002292545b3d65a6bb58ca43dcbb450d5b24cd3484cd490bbecbd97108f15e22169dac948cb0ec4910b47279a966559968db4d1899661188661d8cd50b2a3a06427da6874a269599665d9485321a58c4e545246271a2914229142211229142291b4ec279a9665170359f89363173421c03668dd83125017405c004de1bef87e03680b20232023dcc546a318a54814f2793256721469a3d169720585b2cc429e7ba5e4a8f30398135be26b2834ca34d1dc4859135dec8a4e507aa058880371461ae9dab9240b6fb20ba405ed0265e1e4026101e502f59048292aa5140cbbe6059a19e80a176405950b5485520fa339c2d94d8847a4591ba38b9ed918d1c908530b6b78b8660fd7c42a1011108f0f55558198010c608b440f3fd82336d188464c000c4b35036ed293f5744b3ce840d898ace7aac17d73f16483115be281b05c7311086b23e6d19f0b92b511fa3c8a2502084bc4e8a1d7ed0215c17834128944225168044468249a1d29db5b7b15501661941c22daa50dd1b5a3d8184d84e99110ce7aa6f0c30fa391482412755c0efd104468141a81a8608108e29a5b070127774d0ca3267532415368d18272a2b564a39696f991e8190e7d848910e14b2112291bc7b493674e8fceb433071bab86764fac7932769e8ce9fd59d3ddddddbd3d5350465ab3513b58e824c1417233e10a24056a554d6191e1544186ef1a09194e1dd3e661aa87c87def664daee8b4c9560dbda92fbe4c41bdfa7badd406f336c5746a7a0d991bbe19f90abfd702822c2b5a81d894cb344354a76a4c5742eaa88e822994889173c4015430b193999e5a1ba33cbdd63a5d5757dd6d4d10c5d6d688204b847c9fa2a6806f4a8184436cc0a756ebf68d2d55c2c87679af1b243bdb8b8879492aa1dc6086a91bccd526af23dc0703af2ae355b99bad0d6608c8c1c78d08a800c880e7029e8b2f375e0b3c14c3eb429e0e131fcf7c8f9125533e150d150d29a8d7f519a9531b43dfa26381d7adbf5755086a6dc4eb7abc0e3fad57ebba713d9e5edb24698c943ca01d6b8dd575590c34ab7a591830605897b541a594f430ca085bd218c9025fcf041f234551aa5ed6aee1c68bc6170c2467fd3b0bd722e6776ca3b1e58136d2a51ea90d665b6fddb236a8c757f571ebaa7aeaf7b24e6d8d7aea147ded5b587235680c852ccd49fcf922f6cc3557cf2454394d1aedd2f93d9f0cd357901b7da0146aac955a20f96450eb8fd12f59afc8c7036f756a63ac532a6140075da7ac8d7af949ce577beac2b2b9faf9685d1a44cc4c318c1104acc03c17fd4907157d67e16200e01d06103146fa686d5c20a767cec9a2d4558d20768c6e21c2437ac1b568917b4850df03ba1bc36ec3e96f9ad6c6083a2ac719ea4dbdeca2e10e62541952a739e764514a5f1e09be9833f453b63ec1193cbc17fd18fd5cf45772ac024e34b9be07505a298aa2a88a06cac650b5fa646d4c7fb0f36d175a61fab631d4192eb4a0fc011623eebe3c94333005d38c2ba495fa9eaa454975a2d676ebd32b6b4304d3aae86463e89cd5e32b9cc5fce24510f175b970ea7bc054efabd19748544062b25faaa44237b8fd97e70df9eecf4c088bd8f75cb47c904e2dc8c95bc895a42c6d875ae1fd9218cd3d1a319a838fe54ea8dddd2d65655100c23824c618615733d75cbb48ccd25cb7c8f3709a302d8750949443a28cf209928702f20972489443628c924a087127c9b23b2e91b2e392aaab9886a824a601be809f8f4baab8a43958bdfadcaa572b52ca29af22b7eb24b9c33169f4a0d183860d68e0b40f0d1bd0e841a3c7bd682c883de19a024c73ef3a3946fb63be5f52b8b87934f7a470676e7c11b95defc81d8e186315bda37540a0b97e50b88de39bfac852274b8c5b347745e1c2772c195ed8b8477e87fdc610e782c2ede04e7e134e17183992b50b842dbba6a6a62647cb928d17710e981b431886fababeae01fdd12bb44448192bbaf679a56c3a528e820f9182a7d0b49fbc35a9bd42c86533c343ccc44528289b75d1565f29cac6a09cb231a2de4250f479a08d41b12af8ebf4d4a7fa0b4f6d6f305aa4df0d664bf4be0f1d07295b9f2eb631f3fdc54cfc2addeab7ba2eaaf57a76cb6e33b9eee10dd57ab8357c35c25779e1ef363adcfaa193c34d7b68cbae68abd6d5dcac3fd93498ddebca422125a87c399143a351adf7bdc1df6e1b13c2400f6d718bb1873666097becf5baa0959132f6d9ec9919c86ee79a9b571bba2ccf48297de8d469723784dd1076ee2ecbae375c49f193198c9430d4ebe59b55db7dd9daeb82bf3678086d8d8ae52b8beac1a597dbdd2eeae37653cc8c4a74a023d738a9e6d136cde55457a97264fd55b7cc0897fa93bf53d63a6db07734d7364b8821e34dcc5e610b9e0c7873d1e0529fb6be037c21e1006fda0e422e7ccc69971f70c64dbbbc9bee7a699bd82277b4e0c9a02e0f9f8033e8e5a18d8ed66942c2e2e5e4d88b76f92320d02ef7f21420f54bbcb9fccdda65742ec2c79bf89348b5527a73b3c58474441fe169833d48ee16daa08f0eee642cf2687b194a98e34dc4c932e664294f8cf8c0175dfb60eaba07f07127d4161595ba31de0bd64a5fb2f6b656dc1dfb5922aa5f7f95bade25b531a2531b037a080a48821a263ec488e8759bb39f6fd0f67265a998112e51a0c30e0729539389e6eaa52de2cdc44fefa9da2d766512af2165f089b606cdf5d56e33f6f5d42a41658acad5c6481ba97a98686932b435aa15af10bbd731bb85e8451b759858ad8d811784e978ecaf39ec3848b9631a9722b631737cc44c34875d36d7313291ede1067af5b1152b4165db39912b8c15097c015fb70ec644f8beb5314b80acc38d367737521bf0db6473f24c6e94cdfdc29b830a25097624e8b9b8e2c629f3f21b0384d1f32247d07321860e94a3cccbb2b90b098c9a78a5e17659961de38cf2092517369412ca28e6414ab8345e71b8d348a6625f70b84db0f7316bd6cf5febd1c6cc67a4ebbadd3a9a6cfbde7b99972feefec54d93a90dabb6d0b6d5a6c915e83a75d9db2eefc210a76e1dc4c9efd6466d0c4551d5df10a28be42b4993a70de6b7809857dea4a35e69b8f110a4842b3f77e0922632d3e690dc9b9f135ca0243fdb479e8bf7264af26f08ea0fc398301e7e015250e55382bd2aa680223f0bd09a76c9321f5eebadcf95eb296787c4dd5bf8badcfb420fa9c47b5dd8865b5f7d2020dc7a5db2ce0b74499718bacd55d6eb55857b6fd55a65ea4397ed5292549c76f05e62cd3484947a37a8d39c843f8664f914dc91a08ff6116db2843ea4b8d7a9ea34c693f15ee06b4979d58f4e793701e9944aad1d047139a44fa3b843c8f241bc9b9090bb89489653913c19a1ec1235b67c31d75cca595edf16c23011f5a18770ad416c1dcc298796089a6c6196e652da055eb0af94d73be94c39938f286e75fa145c3d9e657b59866eb36c30c39a287d6412a9440a69903472937f54ab866aeda11ebe97298793ef567ab50b0dbdbefa7068637e580367b05c1e96009ae0b90471d922037b47a25e4b8d8fab67d9deab6fa9e76a85a10aa10de177ad6a5916f66aebaab358df5e5f41d805404b104184ce823b98ef0b02b32cebc6760c77a199d0310b10af9411ea080a101bcb26771a8be664b748d95c65a25d42f8429d1fd007f41144907ee1788a4823ed02bae4e192489647b27c10876909440291413a6335f40fc85caf04962bfee1dd94b385fe2c11a1e32e62979f76daa50269172bbe481d978b0996872e5f4333403c07cc419c055f4fb8416cf247e892419a135d4224901890cee5e1f620ccea203c139176e1e13b5902c942b29c8664794b44e8d7136e27756442782674fc19b9d39cfcd19cfc9b934e962c6f25cdc9735b2fe9169210180402d101027754de62c1d087f52a81b40bcba54aad179d6e628b3c65c153ce74736fb27c55830fff614b62cb01f386736cf57a37e54c394f868f49a75d7cb8fcf4a35dac4b9a576e5e21e595bfb772794b56fc2e8c9c135f60cd9453e30396409a93b707bd9340a2c869978639be5ee64c3eda45a7befa00cc550fdbcb3c6cdd5392e557b6ee66b99b72b21420599e421f599eb4a16cdd75b2e52c41652311ac691172a92e8f040e987ea1b185c66f0b1842c88b3b7a3b9225e7b98e656243cd3437d91cad616900cca0f2c83d7890b2c7122a78e8c8d6c6c095f6894aac8d4b6e624b4fa49b63c634883e9da4247b597612f1e58e4e4239017d54b53c6d1a7faa6da6de892c5564bf9a5e3555a95a455aaf973c5c563cc425b9e525eed30ec7d5e1b824c5331445c634588d4bf53489dbc3b14bcbe854557109e5e15d79a04f22bec094ded19cf2d72f29f7a107bc823b4a276be2e115ccc4c34a095f58fbd01e966549a924fee46e3e47cf547722b794ed1395c019f23432e9cf292ec9937e5a322ec9d3fa64e1997ef5e95d8e39c54a5a75621995c017f32a9b4dd9bacfc3c496f88b3b4a2f0aee2eee48240d77c71d37c21d17aa42af169da12edf732e49d23593dcb8c371493c43fdd5a2d465a8741d7bf9e393882fc737b6c4c7eea4b89dfe8061ce318dfd29ab83301c82c2cac8cf54541ee6c4df18d30067488be3ea2419e6904837c7aa7d281b63a98baa16ada84f8a7a758b4e365d27c9fd47ea34c4169f494d72b67c961808e95434b92b1cd3409764681bbf1b97e4b925d11c134d34173fbb63fcdd4a40850f98e4fe61228cec1f507f145b99670abf6e69d1dc1586db3d222dba97058e249664f922124083043482d4f0f4842dad7c9d46345784eceeeec6483437e50491609281e6e6a439e699688208ac99873afae50d316ff2a44005da65a25b115c9e454c4e521e982798f314e31c5792dbb23b43cc447373e67858c09c095252c09d3c4d46343715313d0c792a439e2638e42902af6582c07331411fed32e968179907e18e97bb3704de4c873c9ae40eeae4e94c343125a05e65b89d1c9280767927d13fbec013bc96e92dc8d32ddc5119e409e2209332863a9e8be94a72a7c31d2174a220ebd6046d14972c6951eb94526859b728b5dd1d638cf3515e578dd99aece9d6c96c6573168e375114755dd7655ebe70c97ee68ab7945691265b1b8e2b57b89202bea03ea81e10673621c1cd9cb3e7e79c73ce1963f6ecd93de7fc9c73ce391bc7782ee6af2bae9c308ce6e61c43bfc732230e5a702ccd09d19cbc01f2001e0cd013ee330223cb438002156897d23c063290a30978c9e46f286b50b343a3b81dcd92c69718b1459ec6a0f0bd07697c31c06b9177c29542963286186e8c2c5bb4f0892cd0c11e4be59a9332e68ed19cbc1059bec4e81629c465863b3f25a05d645e8411ed5262394227032e727b7948ee9ecf0f6a72f794cc1ecfc55506967679f575055e0b7c927cdf73c1445ea1089222b9be0bdc57c50f244030925f93fcaa880249ae5847f3ccf23a854314a0a3904ef4d3a14d9e8e8354a2d8c6ccf414d7e4e9b262d6655eb670a97ec67abc85234d9eb6eea2c974ab56c017f2d3d6c589490c776870029bfca050939361e437240b26b2374ac3703b1af25d21cbcbf7258dfcb2846f092384bdc1c795e6a43c921bdf2cb295003f3d52d434e10e89dc95261ca43ca95f7208eaf49edaae0f2e9da7d73efa343f33f53bdf4f9699be34611b3353a730131513cdd16bdba85ebf5e5bf4de3151b883237ba35a99da3b1e153af5908da15e7ce91dd0d5344db35ea569f3f74eadc233a35b775229372e4ec15de751d73779620a539466dd86655d7bf69df802714011ab319d3a75a875f730f152cf34919581a742f686f614d034af95993e337107b16962184b3c51d7403646344714455158a36962cef70eeab37be42ebbb6cddc3b91a9adcbae69cd2377d99caa4c7b36ca9ea33315638c233c43c518638d7bead9b56da228ead6c553f6aa66539bdac4a5fbf9ec300d71e24b83709e7d6ea257ab775aebe81398e86df3049c9155b5ce8c0eb20b181d7498065dc2aaf613f4a64a98615b4793b1471b83051d4cd293e3911c63f77a60cd9351a45dde903bf4e4173944ec20099e0a72842fa8418e3c310a6183919c8076e96811f388f8e2c357de511ea20f383e1e30c542b4981846732c99e5176c9f941e401964c78831a7534a062b23659e280a279ca8eee9c6076d9a83375d00f81d448831462343803a601158243661823be1520dfa89620804439d1a5864e776d0a64896a14d7ca141a91b49a49fe360348d2628b4e91618636c5cb2214b35e2a93c43612432901b57a0658637cdc1439b215868b3733b1af0341260040426869101243a896761863637383007ea080183468873c0dcb742b8fae50dc1d202fa5c3ef14179e1c883dee0b5bcdc613253ec782d2f4fb8ce49a2640ee48edb0b1c0225f73b073c599e8ae276241d1d1d1d12e4c0ab6debc8934814e2c8431c263810073261c2041a8981add3405aa77ff4cf93f1ee146e4723cbb78e8e655d4a6ed73f13ec9f5e021ae0bdf4cf6b918fe90b81090c347063b8174858b852e8e7843abc1788d3290f061038287e03520c2e0b4c90e5f65ab21cc0cf91f8d23a47748e407c44477e073b5104e1814c7ebafba2147791e67a9a33d247e24bac411459de0e21cb373ed23f4d244bd9d12ed22e90c239e77cf3689779299f1cb2bcec600fe8a7a675b48b4def803db007f6c09e2c3f872c7fbaf7037f32067dc01f3008e4690933083285b975e20b29b6c89348f7ea64f94a8a2ffd135be429bdf7a704b723492066717fe2cbe8928afef393e547a2ade61ea637d80307e240264de427b457a113b4d3c65415a594d2377d9fe23e06edd6e5c8f6d8f6ae4893ed86e3ca17dc608f6dda986ac22bcd21b910dfc6544eb724b8cd7335c906f5b174924996ffa46f9a8ee4ae9b487ca1b27b28bd9744fa394e421eaecead23e579e56915214fb90b8314e33c1c111d3d768adb45253ba34651495939175f9ae26e54d2372bb88351c2ddeb49c11df788a8e0eeb87b3c19ee6234ee2e8c1156c251d3ec41c2111f791b041de983f6503d534f4f7c8994dedb33491f5247feb8892f3d84d7228f0427b414b2fc8467106e277372da454e1d691b4280024a2a605dde08ae050c21625c97a7615d4ad7a72558349135ddd246de481c224f86e5c3a642f9dc86b40b0877f0d2d1d6367b823638648342987041efa0902c799a93541457d43aac296e078964083437e52191d17b7807838777dccabba7bc23a99c083d912cfb06460fb883c17d05773f790aee4879d42ab8bb79444737dd223f8a4a9a49dfc41749efa5f8262727e7e522cde5c41729e54bc12a52f64892a432b3366b82db491e2559be6b1e394412a1c9a187ba2f7774f1a66b36c81eeda264496412b1883fb10975492f532291f8671179169167599bd637cf85fc95e4bee64ab87b4848b87b466e1e79c41e3eaef59393935b585e1f7e42baca96b295a8bffc2ca904f2cd862703cfd7c9c6cc4fd50f4a51eae509e5f3f328372a29e08b69ba354f4dd3aa7e4cd42dfdecfaa6eb2164f9d1d60920cb8be4435b2765c62c21fd22879013bc91efd13a9acb1dd4d13e601dd706779aa310673e9b9b2c9994fa079b4a45f1e2b5c4d3f8228bfb2247ecd575fddab8e6aa5715fdb5bdebb11ee55a76721d05a55239e8292fa9a01ce52c28a3d153b6dbdce8275b088a7b5d7494873699974f5ea38d41c1ef5e284d9c9c5cd32e4dc3a513edda75458982f2f8686b4814edd7c9c9310cc37e7282728242da5ec64828b56abf36ecda751414ecbaae1d05c37e5da45f97125426910ed31a7614d2cb996c6e74d0d6dd3ca2cd8d603adbae38dcaac22aacba3a62176655a32adab09f6ca1437b6ff5eb625575f24a24fa6834424141b9cccb28b844fa0c0ee9dc520d946347c1af39946327fd9e265f5b77e5eb275b0749dbd6d17c657f563b4dd632d12fd1c8126118b27eb71014173b08c36873fdec4663afeaaaba5bb1aceae271ddacd283b6aebe7ad44fefcfe85db67527af150d1d45a397f4a30d0a81439ab38e623ddbb48f7e323a1c8d328c8394315ccab06355256d48e78ef047d5efd6d1e40b026920d0481b8d40a2572311063a86551f55d5b11108f4aa128d5e5507814418e823d013590f5970a739eb34f9aa2e6817103386d43add5eae96d5219d1b3b3e04a915d5a22e1adc2afe0074bbd5e97a360d730c73ce59d1061da669608f7a9adcf852621dbe777cb44ebf806ef568cec269cefa81cd8700bd6ff523ed96c6948d012de136e4e91d7bcb525bb4d65b064f86bdf59e019c516fbdda9e2d6b6b18c01756f76cbd71bfe0b9b00e1272ad1ed9b2ac5b5696556a8d35dec233cd43b1810a287ed4d72e724ea9853b5f5324de831333d14864139484fb4ad3f49e799e7a3f132e3566221ae13a86d9674a6db416b6376ab62e2bf3decb56c6d8ebb562b5d699f9aa5a312c56ec730570467db4a1db79618b2bf6f90ec7d5590c5700d336e2d2fcb56e7157c3babdbd057535c31df114742b73dd560bf41b5f7e23ee6065c5882f85ad8b0ac12666edadc537d334611fb4b18f102777f4206b61b7a0431b38c33a08c3449b235a7007e814b3e00e1b313c635f1f8fc5f85b50dc3099b1cddacf8a6db5810e13e15d81adb562558551308de11275d0e96fc4d79e5eef64067d5a19ec331057d81f2fb8023803b30781e69429b80238835a3b537f658baf5aa96a59a05bb77654107e769ebe42100874999741a0c763a0c783224db616db40969e6e7484857c1512ea3f72c5e21f4b177b32f67a5df13dd05f84363f3294f8615686ba746ffad12eef51764ff5d1067adcaad747f5c316f54ed19c4ae79daa82584fda5769c95b3b91b278c6b28fcf8e5e7cef51959a39f516502d2ae2923d7cd53cef117735dee38df7083b2a6e5df523439095918fd6de80ef9e185fbd4bb332ef3354aca2014f45e2b823ff70d7012dc371c74232b39dac1863c45d8c91e6543ab10a92bbea303eeab0d28133de21ae767257490acfc4f74a9efe00c16be937e0bd24118f783246973804218e8ac29ab65b3cac628cb7b43a4cebc017f19595a1afafb607ba68b360cdc3342789f8d23c1104efa541e7e92ade4bac02fa60d8c39894ddf52e4f61182ed15b4872d73d3eb02656f15e600aa0cfd53df12589eec92d43505c1c17683be2b9b03ead0cf5990a7750da1b57a60e5360bd1bf05aacc72462254507e22fcbe239655a490167d40ec7f3b1aacaf2514921e5dfe6a39202cec8a97e641933a8e2a31af1239e8c239e0bf8f748d9573816182d62f0bc2117cae7783d30f1080c2431d914dceee6ee6ede4a91eb99a7d8ddda36663ac571759e9fb9e1c31484841bfb12976ccc3cf158ea97f516b736ae39ead43507f972dfda5ebe7e6e7df5d1b5df5778b30ec07cc9817494637f246c63e6d15946dbd51ce8a22d6b0e746cbbcd819e8d2efab5c9bc9c89a27535916dd9354df4696344b89465cf34cdcab25b2bb2f65926da3a27b2f66763b293ed657b72cbfa89fde8d6663fb2ae6d938db1966559349f5816954f0ed3f6c45edbac8fb693db1ce828dbdd5e86e99b84a52c4559f15a6b594abdc3f17ceaddecb30d3bb4d42545fd9ea2b25337fb7d28143af98cbd667f72d069b2b57557b6dee5c8a39f6c9a956da23f3bca369a3c12dd5b37440fda42505816b4687334b9aa16655114a5e829a5f00cac5820c910686e9aeaa3d7a6638ad893a74b9d523136e4d15c84dd9718122902633ca80957be09a70912696eaa70c0b92c32dcf8f98602678337cd4d8f1be461844b935fe010d321ce4dbbf0b8148d4c0991a9161d4ba656a653971d6384524222d05275ba892fb048b74c9f3a3884e34e1a32e1c021cd4dc7e276cfc07424a6e3783d49e478496a78e40eda1c71447c8143865c65b8f088044c2fc288768912420156214f5b98c290a7090e792ea60fe91ad014bdbda4fcfdc1d0efbd30147ae8de946edb53d3a6b42b6c1f26f4a2db0842781ca41c7a0c4188fb18167aad189561e744ee6872c4fa7d1006bd370c746ceb8330cbc660d50a508cd2c6d8d777df8d20262c5b83e6198aba42dbbd8fb9b51b51ba5524a153db3d4c0c6f88ae815c575c3eb36d5ae7ea5054efc85424b54e8c91745dc1c3a46ffa89def1c44d8eb6b120ee4a2f20c04a1de29bfdb8398a3b433febe9619aaaaed709b70b7734d4b32133c530716298e303eae4401f3aed323d3981f0b29cd50af862d624568a3b1d429d76b151e440eaf447bb543b4172077357ad802f2a7c85225dfc91e3af308492335b57eb9071ea9c0875762a2baefc862801034f902ab0c8c733591cdc3e063280c42996798e9a762941d92d7d7919b9d465e7344e0f1fb98d5c493f0412d94a1416690e1ae917bc190d782f6eb490e1bba7854b083c0e7e6e14781c8ccfe708882f1f59f6797aa7488f868fc20c478e49e4584db388e6fab2b75b55104eb02f2ddc8e7b3e2d321721bcda85e6269128bd9459ca1849a4dcb345b774243d688304069ad3c285d0873261895cd81123ed9df84271e7c47e793b3927be4420dd024f2f7189c23b3acd4108ed3cbc91fd6207a9e2421e39ec18f151e16d2965c3d72f728877870079211d4ae48f941d8ee74323865dd18270bdddae785d8f52d6573fae2b6ef4d606a5b5e22653a230673a155124913686d281c189048b1969e555e0d124f191defb083d12236dda5c5715ee90682e624027528a816e8953ce908803319083dbf5cff381a4dc3ff10536a15437f9899f624f4dea1ecd45082145e10ec70561146e079bd81cdc0e3681d5d6471e8d53aa7f1907b7d28dea668910420871d79dd3e3d6c8cc9f1bdcde583206e229ed78c4c7c747ebd00977f73eff744b6c96bc12a40d64f8696ed2ed65081bff547183dbc1233f4794c012129f25edc2a45da0b5c18d36cd451b5cea5db4c93153fdd34db658a3a37b47f718691d16ce0a2f23777ae5a326234105143f39c668e43635c448ac692ec8bcf57e9a8b3ded62e16e52fd94a8a8a3b9b823c79d76794d720777722491ee8d3487cbe141935c80fca8e04115b942c8a35be2df90dc3d1fd8a3737e744bfc1092901c630492e3e395c585f9074e2c37189658614a0d14f28302097c3214741ca1f941a104445870fb2508826364073a4ec88f8a9c2446b44bc9c6cceff188e722c7487e54e8a048eea891dc50c7b4d971c303e2f48039a5f8a090214df27b2eae29dcae45862c2ba4eb4eb0a239bb6694573681c19515a498c808a59432ce08a18f1f3f9a7b3e9a0642086447c80f128a502896935352cecbf91989837432595ebf00f109c4167d624b9f481ca47c72908d39c1a588a34f64d964b74494975e7a25cd93a294fd4494b89fb032db79b86c1750fcca7b47e96d73336b8ebdd6138aa2541ea6a8939389f14cca554e663c518911aba8a448159553d72e314c479f6c2425354f4ea2b66d1dccdb4156e68747fb43bcf64e931965329eb278525454b6975352289a26e2a736bb07b5cd9cdc891c53a4764a9ed266fcc9c9b14649edd88cda658aca898665d48e37d261e2b669c7189e939ad4c9e7b5c3b40fb8bb3d6079ed73d34e3a4561954f7184af3dc32aa437e92425454bf9e829291f1da653524e460781a4e86630cb6863bccaa58c564b9130a5081289441aa56ca47e62e5d9c6032e6d2594bfbc825f73a02ba350944fdb9c9ce02bc968c4d39c90e6668dcf4eefa8892f2ca7e4ac9970582e9fb6f9b9aec0a249f4e9963e4dc11dc5f161c4e7c8758591ecbaa2b4f251d47cf8f8b48b9624255bd93a98575e7a0549345fe9621e9db2a54b96e4557ef2d72e2a5449aaa8dce8ac72d99ccaa145c125d9f58e946b9a06514e4e489bdc3ad226f3320a0330ece4e4d994a7e090ce9559654bb9f6948d269350b49f6cdd057ab68db00c6dd7056197f4b150f844253e160a1f9f5993f9e00e400a2a5593fb3f84d81fa0a03c5af90352bcca880797a270907296a333e9d3c664299f295bec892d8d511845c989634f7cb9ba65ce9eecd496e1d28ca51e446eefbc823f7e80fe5c6ecc15c273419b7b35d97a177b8034b72395c4887b32892d9bbc94cc192325b13cd25c37d5e4fe64125f624f0f2152ad18127a0768b28c528b33a25f988e3bb85d0b017339d22ea3770be1c97850fb044f4e8e6d206deb62be97b6d4dc68ced27c7c863b9a6c8499f8c94cd8984b0eb7271ae9179409f74049865bc88f0a1f37395214759997295cca3e239fdde6c87134471b4d9e18c636d0250a8e525268a30b6e4763d722df1871a6cd95e2a75317c60518d1dc7b29e6885823a2436d1edc3c1bb303222fdac6d827eea319d22b4efc927c0fbaa1f6a1ca1587db43daa51e16e99e36d247da0549bb608787479a4302856be4b980f0f9e48e25c308936cd3afcd3ab4f5393ae091a9e0c14e7e54ec20488e911f153b3892eb74416b9fb83057960c2b2eddcfe090ce9dbf588e52c6d722c77b2f0d782df1544fdd7e5c50b811cf89e311cf459c182e815148926147650a770f0e10875e1896e29f9c18a7396c5b70616e1f2a49b52cb816acc2a7497e43ee70240b20bf2aac68922395451659d821bf1fbc2b6ef2f3ab620c4c727d1af0b931e59e769efad46f6a9a72ff35c914fe01fdb34e5c434c212d11f2539613db9012c72b10e19973cece893c5fee38c94a6793393d4f41d98499fb062ab8f2af5df0665370e7fc24ffae2b67ddedb2fc3eb18cdd37b9719a47e3e4b636d7cd4832ef87e71e8638793ab529b85b090ac97d2824c32179486e4c41c963e57543ef932bf6de419b5ad157af9310db1bef9895b94e2fdff779b4e9bb5e298aa2ea36333d8ba26aa5aa157006755a3f3d3b6d5df5c9b4aa847a40bd47dfa3b5c6abaa4f577d64ec9fadb0374e7c89394f8e2eba28b6af721473a87cb7a2508e75ddd469caafa269e221a17549eee273f4cc25294aab57243549ee22ad3ed56337eeaa4f8ef4f494be5fa7ef115278fa5e95afacccf55b315f6a059c01c2a04aa3154d3a1c0f534a312e4daf6c6eaec6c1c9f5f62a21283a99e9672aee20a5b11e52dc7580a65a5161f5a689d247bb004aca3c49fc2e2f59ad803360f5c91d77f2fb816604519450e3cd7ee76fcd36238ec0f7374233f7463417b96e89a377a2d061e88aee10a2c31b458f2caf22e20b8b111dcb686b713f9a09fd7e6674aeb918baa88574b1ef46a39e61df8d463daa7d8d469d7419bdab67a9f51dcb4c3dd7a25d6a673796c8d22e236be30079c4b5b8f5305d73541185903c4317855e1fc58f7c17701f3a4c5716386309b875aecdf2644898597a66962723e678209ecba854710d38b2352e686f3c9e3c7a689b59e6502874686b744d56226691850bd1855c2bf381cea12542f0bd103d072967d1bd11c2f071a27b6a6dc41c8a1dc2efb910e1229a8bd711f1dd7d11db11303f6b447337bb4f84b3ed75cbec17782f2ecd7a37267eae75fad03b963c75649fe25ef439ab59e3539adf4a139386e85872d63d311811cff2643c11be9a2b8d4a237cab504874c893a9e3b8b2904c9db227b8f1dcf5f8cac2752d728421448e3168440b02814422d1655e16e1d2e833a2cf8fde16daeed6e5c8f7a34d849d26dfed8184b09505b3f5628cd43b961ca96a9be6a44e294afa845a93c18e9452ca9601e47703e4f7ed09f15ce4df0a0fef488f079c1303bfd8d2c1c071f861e51df7b2823b27b6c4edcd680cb1802fe2df031e179f849c042404e9de99aece892f13782d58c01947b021c81972bc187274401c72bc7572a16884375be1c6692e36687a9eb07832a60ab70f7b842bb7f6f18c7047ef39293dee9ce722de16e1569d33c2545aa7db1250b461b104dc724e36b8a4b9f86ceb72480be4e6daf34d21c7daa012c8e45ef7376aef2ce58f74945255e99c1cdf3aed12df39eda37fe438bd93684a0134b9e5d4019a4cb1077cc88d4ba3fea893c83209d0eb5425ee94b8f903a55c5de20a97aacfd09697fdd1d651b744a7a2beaac36ed11bcf884ef18ccafb52661156b9f5d2666dd4f7dbd650c1b2b9147c8b8262b32c935936a9ec3d4fb2db53d95bdae78839eb646b19d66eb5f7a649dbb79f0f7587de1688e810976a5c5677aabff5f76e5d35aabff755129987af7c84690bc51d5dd95eb74c11e854fdfdc55df5910268a6e9a3d32dbbdc8a78b94469d6191b7d9ae665165d62d15f73a2119ea95e297c6fdddc20eb958db1570d2d570c994025422e7c124dc43311af09a884ad55c54d2b158d08000004001314000028140c07c462a150342a9786bd3d14800d9aae54724c9a66499043c818430c0120300000020000c06010008c78502f586b75588bbc10d822f450c62711065e684fbfd3bd016c22b6f55d8ea64413026fc1c58bb8fb9ed66553c9f342454a2cc188084a8928c0278711eb55c55bc1b98937d7f2b22a1c2de9859b402c3767a25772a3108349a8ad1b1dec131cf4da8993ebdd94f2745b7fe97f406dd14bb84e8068fdfa0af60064b924cf0ba91efb859cd5addd1199b3abf09ebefe554afdf698a3405f3e98cdc9b4ace2ddc01427e6c754fabb2a9bc089fc4095f8f0aaaf0e36b930b4655177da3af365bd4842c6dd85aa31f3337e0efdc18c3a4a8c1e3cf6918a11709cace16e4bf95e2b9760b82c07fb648c6830c38198f3849e7a7c0110ef8264ce4ac489ac66e9cf45af714785a4807b33093934aad58d7e894093e15d8def1cc93c46c18f8ea2185e9a0115f514a442b832e5ec611b9b829757bcb9dda25ab34002e7d22d5267a774a5eae61e71860b9d2eec967d7b1e411d4cfbf9011069f6f4ae61f33d82fa4aa43632dc3dbb05e2f5f76616fb24ae947a2a5e4be11f40dfec6e00bd41611da7f5f4e3b4a157301141f9bc1d7b9439561144c953eac27b5da620f4c96bc8a9dbea2261a294ad1aab24dd05d971439c47abceaa9e688a80a95ef009d5b966f2e494585044b5e40aabe54c99e825a1e34fc7f9d17da37ecf49be47f9ab170f26c1205ced2a980a1f50731d3b8b5439eec82e5822e30582ba448cc5fe19f88f30513acfe2b20ed156f1735607d92ff9306114a8ae7a0fd4d580a28ed6a103416168db1808d61d173ead28d82bbee65094ca6f1d08b4801b35f37d9bc3a7325fbb8f9476f86381e6492aff2de288c0896eebb561296ce3c3e5fab76b293dadea3b558983c93b3b1b9cf0c26faba5a5bb5dfef69dcbc7c0b1370ed43d35eb2c9909dc4976466eb66a62c05b9d54661554ae6c144167aaa93e1072eda86d4bafdcdc3223655dc944c2e69602b676dcbbcae77022cf364d7685884a395073f6a65100c0d229bb8689f895ca8164055c5f7e7dc42e33b036a249655bf80b0adab0b5f92e599b21a8af68f99451d01299100bab27be9a07b249359d6baf376cef9786dc2cdb58bf2806022d9e56d9cbc0e688192bc8e786295525470f4e588347506da1cb7802d008c422a2818ed8183c02300960e259c18c36d125870deb3c6a9fc0a14f7b8e92959a62c3e3fc96f1db362a834774c90bc91162fefdf241dfaa026cfd9c6270c462b81996002b2084eb5cbf4d1a88f0440bf6a13b924f444b7913f85402f4574b42516e044c17ade12d8e83556a3e2a0e0ff9445e6f094066e26d83305800e231124dfdb49962e1d33c5a17d668466a3d9dfd520bc9a31c9dae6724e39e76aa7011c34fb63c59064bf1009199ae3eb283bb50569d69a845e6ad54056318a35ca84a10fbe9e58a51f57499df14ba5a9eee0489963e757c408dea6ca025c12125af18490067e074bf756b3dca978d0cc00798a25add13d067d613dfb305d0ecb167782e0eab3b58294591527854f2b1abe21a2da0f081a01d29679aac1c41d03fa883144481d032aee0eb7cc5589fb84adfdcfd02c19e071ec0617afd56cce2d585083d319335966200420b385ee57d52c24c1677db16f370b6a6d3d17da1ae03848cc75d25a19a086ae41f3c14a3ee4440979d8f2a45350de0b61a6b1c95df411ab759c3a185c1c52097b7d77797ea895626c1aa9ec21760aea838e85b1434b5b9966af56ddcb4a4a18df921130e502f717df3b6550179e18e65852ad11ba5c0273b8fe3bc153920cf2c4cf35261ee292dfaa70f524d6246a1df54bcf7317c3f5830abe6d36bac593d4fa22ee651eb9db72174845b880e45e4433a27f2a6a98128b2a613f0239ec5f6ab006274e7e53ed27421ae0463439fc881b5792e669f27b857bd02685b1e89b6085e1b418f3573216a502c1d2c5e33ac813c6f092c02016c8a8e92697b4c1639bfb8e7fdc80f5667181da170da77f089ba0ed63e1d394f444b30460e4187db6c225c0291779a6a4091ffed24f9bcd233e52fbc502cf38c7780482e789fc2150ad3bf85542ce8762286223dc14678acfdea6bf3c5e65504e7c3c1ed0a3b8096cca74d440818b68b800e819689fa670d38d36aa404c4cb253ce5d15d3bb7fb29e88a54de72bb086276e500ca881df6260a18a74a3ea6e0d637e41035ab14a903ff172694868617a5368f6a61ecc317482f7ef3c4e5738df73026597e27d6bd01d1c73ea034d8dc7c4b6f3146415821cef8713ecebe81d16091b35a47d59c583ab9a4c132f004318d433810bd6241d86d238dc62ddcc85cc0bb9abd5d94bdf1c70b650c49ad99fc045a9489ab005979e799baccaf78fe970010f3bfa04ad05810319513d22483c3f6e3cf5d2f9c8a946a9b89de3a65710b538b46632468fb6deeb310181c16b085d7a00e52efcdc6848b6c0c7fad3cf9f1943a9a439f27906d2906a5773934128612d035c2a4167184f9d947f9a823d805ef62cc53478b31c3f6963d97b58d840d1b3a6c7ced57348f124f6d0c4af13a5799d4d041655e5f412536279040c09fd4b525ba948d1c3dc4382ebc80784a8208a158338385ebda69f58fdf7c895e10b2b0a0f5b641e7651d16e53f918e727db58ba17f0d42929891e4e97136140f03d434f1060c7e9896a4322328e317ee81d5f56a63e64d11708ceb1c196a44001fc6b2996944c40e3aef66185870b8d3e63c6908ba21746cb9433ab0188cc3d0644e0e56c26095b7ed208a9efe646eca53f525645344c547a90d9725e6f4b6b5803a8f6ff29576e04aa010b32f47f2ea5f102ef94cc3c7fde2b35cb1e8927db9b87e07700772104a0a1cccae0cf4b883cc34c437f38b021f44aef1e0ef51a9d6e7acfe64be6c56d8352cf38b96ba5922bac1fe232a362bb4819da6f6b276920565491137f060aebd71242595e66785097c61cb4e782a136a4038a720342342782c131faf374498cdff41b87194bf839b2d6021a1ecbe9dc20c5364c3ebee6e685545484b8b282ef762028b23ad52dc22a65a191c2821c629489cc1346c5e33a95f045c5ed7a8dd2e477fc3b0c109fdb901cb87e4d4e686fbd6e3dff32730ccdfc113d3c88c8631137bfb4dbc84c31fca25d059ee1f7b1474863ff575e6f36a870b4d6874515b83402c52e3ee5d237f0b2229f6ad31d9e6058e455f5eaf318ef416ec9dd47a1f745224c50191285a457a10c035f9399e1ecfa1763256e695dd067cbfc6902473d2a77ac5da22f111577f0aac86b90d8f608638c552a6b0a957046ab1fe2146b40b664c3d5a625569efb12914536dbbebf561e34066ba12cecfbe34b40481dbf2c0141d851b3459aa84d71e60ba151da05eb51d48e42d14cea6dc530c29cfc010eebcdd7c46303d8313edd6966a0503a886b91bfc53c61e34062ef0a17948e058b55cb6470222df8ebcf403d87526c9b03fa67c20b8112482cc7d8172336609c46920a5cccf7d06d0a0bff363d02093901514ee301c6c3a9e3a7c74b9ce2125434a0b92f1b8b6cefad5c9fcd6fd7077a25f90bcc89f89e8f6043674ec3ab2f0fa880fad20825ba8e4e43a0207126d38ce03670aebc15618adc19944038e2ee9c6949f2b9346c3c30db6c391bc838bd101b939765c61995c22356f301a0585be13fa414190e27af22db59f984724f1e5c5059297949563a43121f408f57514a662cfd9638ba25df0a0311784a05e9c156688179b9747193f68dd333f26ac68dc7d152d875c9f50b4232ea3d302f45652eefd8202471632d4ef3a1339f789d7e80f46e1ad4888007629138f3668d26ff401914ce52eb7182174241af43b8282f0efd035e148ed218bd90571758e89703cd26e2029b6765ff7adbdbfa020548b7d92096e7f434c47ea16c59bf6dc263063731bfe1cc7f318eae0df61644b8331991192f9265cc74e29601169d7dec00e31cb84c49eff766b2358ae9bd5df80e438786d823130c92e570650b28f66ac2a8db7d362e8e0d984887b022519538824fe118ef546d043428cac3c2aa9c0ed94695d247ebc1ca65d82e2d38479769137b4ebde4299d1fe0a544ded112c5173bf1e168d87a0a4f2dc6934dd566b145b82f6169eaea8f94148f0b4680ecdcebb7414a3f43ed40bdba7b8e5d49f41ceb79b31995845ea6b52b39b81e04c47717f4d1751a77ba6e2aee8c2cc082930f3c88836eb7a1b2ae37411a374dfb92149dc9f882fa3c24871cf06f8381c87f2fca1da3e52882aa25fe5a2badec40e900687c8ec8c86278f615468acabbb01c8bb48f01c536813057b339ab238f1c68950b078e29d49dfe352421e52fa89df339a934c0406d1379eac1c7fa9e4784c4403065e0730da702ff5b917a64a8a2713cda3ba2024fea92605a036038bf0d32b0db0ad80dc968cc116941551b16a12c4b0b468b0381aa96969468debf36ccca614afd6c7d5b5b71a3c14ab3fea828a508ca4186db50bc0c412ad6e7230d628011c5c95a10ef4d9a3c981f86f9e44e4c80009e483fd8815cf382132a4cbe569f39ee0fc0322ea17e8e9530a287904edd8c6b93ea8b20b0d023065c8521891366a483480c19d40609afb4c1fb65fa465bb984400b9e1bd28278b759442862a74ae69b65f31f927a5d60e8afd8afce82b4ec2d7ada7052ef84af2e1c7c871bf2f4ae848f152bf21901a74543424630cfff35f777552bebbfd96a21983a2c1d11f27e4b233b080dba94cc4aff8ccc3a264447433ca9af3a7a37bf6e539404fd599545bbd3def7219372cec0a61e13c6588ce3bbf9336af57beca1364e9f0603187ebbd0302c5ffdd9d8b14f2524dc876d369e9c8015d4fbfbfa88fe209bf092ba0aa05cf9fbafbb5736930fb09ba2699380fb974ba55ae965107dd7cbc8b28771388dac8d75cdc26f1908725c02956bf96bc078e6fa4f169410f154a1e8b23c6ff82f20a8349b0fec99c923cf0106d349905005da5a4e165091bf86b1c0c48775a8656799239c8f1d2cfdca344a292abac19343023c0e766a7d1eb8206b08940061cd94d7cb84d601a01d3dc0f89de60c8ab6f7064ebc0305c11ff46db744cc11d822876731b5304b8ad92338859fd410100844dfdd578ebbc1599717364b83ad95d6b9b496c47d2a4f919b7931b34afec3171f3267fe6512a897597b184c90c4455e5bb564175e8daf20f8e4f0d74f1ad4163782ad6a2313d8b0745ecb8fc27e28dde439f53c9fad660d1be684b94d86f3f04c20e86326d2d83e7c986db37d5ac339cd38c22847229f82c9fd00d8d3b9d981197deb591087f510d5dab01c5aa0787091244b0710912cfb6468806a25fb47455653b6b4d21bf1ac406b2b75ba63869ecca448977aaa5aec34da54f6f57520d954c50aa310561561932d45644a0fd5b715a8bd4884e2290662f0107af7fe16f4c73029bd269ac886afd2f23747e97b30ebaa8457123a22c1345b4169e20dfdad91158b98a0306df49f1d21a174b194c08ca7968b1b4558f517fc8eb9076d32beeebb42babd522ac7912cd46c148533e2d65a5f1555b3815950a04fc11f732fe30e9a76f5c81db28130d366ef44034638916cca9dd5870182b85c7beac0387a5f28d33c9578491fbf6300776a7bc29b46d907dc39038b6975761512b88631c2d34c6dbf95cf8bcc9df50e3bdc376d71cfe97e5fd5d744ab31b85613ee0a85d168b8df51e4c30c292fab86e012e847f14bf7bc87bb72888121a9ac136ce7074e38c1fe466f21080b2b6129ce5f94c77b12322068e62c05e3bbeb0c562107e59117825e772eeb85ad38968442d663e934374d3f0f38eee44979c025a15fc1dee61a309084280bc5e206bb5e829b3d43eac7b31461230211f5b21de9c90857fa8ea66bc9873990ab8d5cb80c1530b5503987a0bd4241bc322523ecb0a60da45a0433f6c1b543639332093ba2644bf07ccb3acf5dab317bdb702a6accb2c5a28942387f71d567b84889aa9e158ff69e541f42ad0509e369081938e79fd5dd95754e10f09da63f7f8d78035d7a5a6ad74b4c9802cc84cdb2a76bd3a20313c9fd4011451c9709a927e6add04246073b033354708dfc01439f8e38fce45bdf6e9eb979327758b766308f140c1a1b9e80bbc8e31b29cd805de6ea69f87c28c0b7e1340aa94134e4ef4286c14a9c47550d1e539550f28225bdfeda8f7a07243f820933c9350d9e9cc2e4e05e04b41e596db86255d961a5001ead7cb95f242205f07820ff43c0721669281adc7e0224812a9c75a03a4b02d445b60641f020dcdc8113999450928f277062f604c9682748909e16fd7edd20ad6e3749608f81b3c4e7653f07a6536c0bef9b3da174958245332fe56271b91b6d2eb83f27c1fc615ea276b532711011575cc7342e99c41b0a73e7900195a1395a32a681f857f50017dabdecac1c76867000539d07d9a1e56181600de8463512a90e2d90b4ab3d00caf35fdb7ac2c20fa5a466a6c10c24acd51e89797c9d1e37e335b329fb3e09725148ec42ffd9d5efc81fa6321d330bd27144e2d113434ec9487899f8fadca778dbfd2d0894801a0341f85b4d1eb28d6049a6a4ba47b0b099ffdee5949a400f0d7804228a8ecef4d6383102859b7dffc440227de56c58640ec89e8c5b3e6ee23bacce8a9b22ec45d60b320ac4fa2f4073899f71ca70a48645ad4ca1998cf063c768b0c28e5c673f14de2ca2f1278c8630bb7b3414029572431bd4ed97d7ea46aad2feca544dffb423b3d9ea107fca6376d4e3fb8934bc027ad1f2830273f9ae2da9322e943db7e1fe0b44889bca4f4aa8026f8e75799784b2addea4b265dcf4cf83900566dc320b1058e7381038be2c4b2db64295ea79a615388ee9113c387be38c8079b54c33defa6aea5d3e4835d5dbc9559888839395e2979108c9773d68ec38b5cc243bb58f7dc117fa4e96f58aae2ade07aaf851bae801e390916303d85bcc5eacad3ef203e1fd4c7889c7c43fab2d52fa561c895a257767fbfb60d42eea2ded46dabc9a915b0d17c35500158635f5e094570b69c87ac0d62b5c9588a0d2e981e6883d72c35b75ea8fdfd6f29fcb21df3c952a017e570d4e4d7dd9614019d64a1c4433566123fcab8912324837d769dcdfb61044f90882d751e0fbdefde6ee555580768c4c8766f68f0b94b775fce3955618a33575ae63a1d97b99efa3a4f6b1ac465bb0b00425292e4424120d432ee70d47d9eb77537331c16ece3775fff236c7274e2ceb673c1756432fe2422bbe69fa34513aeeac10a7e431387d25b3817a7d4628601b022d729fd36afe417345795d5fddc3075ec6533dd82e9bdf62237e4951fd545a5701dfc121ce1fdd962247dc9561967025a04d9aa7d53d41a22ee6c7ff1ad8d5182f99d458539f0ae67f2ea7475d181f238ebc5567e394745b68511b9b1d503208e6b5c4127142a7328a20e5768bc04342e6bc3d0a2700ae62a8edc53b73aaadfbb8c208c0cb40181e9cef4233314bcf80100a91400d51919ad278106622b5b67acf7ab0195450d573969fd210e8eb67afe461bf8f55c286a9bec1fcea6e5094aa5018b5740492fa79c232cce5190a81e32c8309b3e0bd44fc90fe631a47031ada91534d37dc39075d2d9292768d04eab9d2be89afb0050d5618d1dca3ad05b06770986d2e62b99f7e45141e4b9a6e26340b96c97bff9e328836204e5bb353f0c76d2bde7a33aa55a913fdf380ea7d8a0ff025360ba84a59df10cc9f02f4e31bbfe57593339415a6ca68505759de3185fb981292d3604e7949626c2c9f0b54736d70b466b57f291cc610e63796214b01a9dd2d9242eed738cd62b3d82a51addc2fa56885d107aa6607baf8629c40a7216e071f2b5a9e90a4c68b431bc140836f6b83cda9e51c518eddaecb81bed3b16818b164b9c890f4e8bcc81c8e007d05511df3792a51174a3facdd47d3f7abb9ed41af80d8d8fab7af25e0f5ff5c446339b0882ac44ab467667267777c84840d71500410f587f3bfe1fc1928821e821a97a5cdcbe9576236d7f55d8f05e15acda7c92c3a499dd7a5ca10c53ce7a4e019f245089eb0f420d26dbcc103494c63b322b3cb12fbde062e19050606efc7329714736f5beb964627b93e5789304c419514f4e605ad58907700992726e772ec33f2a7d530b15f05cce04ed96438e0fd7898054c68ce5c115b4ae1f0eb4be48e6a8f99d7acfb828aa88a1ea97c00cf3da3c7ba50782045b3e9f31d46e0db0b49597050edae820e5e3de0e6cc1ce9ec464414c3d99d482ad2aa40a79f2982934f797ea331f712d75c3229b6a01dce4eabd72bdf5b7c2f3eec2989100aa1315e54b442ad698c17ba6911d24213a30e5d226fdc41185f4979c58d68c0691ebd195518f9717e097ab5e935d8a31eeddaf99c29678563d4ac4ee44bb992dacf1402b5145998167c42a957552b488c6ad5e448e0b66cc201488c3a927ff3e893ccf57e8e8937bca2058c83aca9114caabf4fa91122b93026fd2d53e446a3504dbb70a137665131e19246d7dc9f342b2d9233b814d4c19b1dd81d2647821b6721fa8b199bfa24a9c38ec63c7925884e565e07c2adc1e74b8b3a568dbc0fe758050d40c08f2a32458e1c693c35261b27ff5ca375267e36fa08d786120e242c8f3c54631537b884f5231e772a2656f63797cd4a0bb3dfc2f4a808eb55c14374092cdea009c4017eed64c01d9ab93f44046fc3be6a6b0fad1207469cf23a26cdde0939a76d86b0c04bbb6d5ad7482146bec528956470bbe1dc28fbe8dd01e14c2744cc8f64551c7cc38c17b09b6058ecccfc16ec55d1130750c0c2a2588dba9c6a5a9924027758733d8e0aa66cdce8cfdf67b7208129d82f86252d12d89bd57842fa075ba7413196abc3fd4ec8dd74cf4aa0b279ab38f0c7b979c29ec0609c16d2cf00b648d13616c39d07670e0ad288c0f1cb3214d65302c40fa5dc731ace0886b754ee8a5fd28e08f51d0d67a45191f9b3d633bf209bfc020127c7f0c24f691b25fc5c2842b9c4b516b004fa535eb13125c9e5d5744bcd707457c04f7a6b93cf105df9ffd21aca4838588b8144c7715f56a0811ce5b7ddbd877dacb4e150bf20f801f2e2811eaa70678e3b511e173abd2ead91f636dc12044986d328a4d256bb4bcfbefb8a00e0c5634cbc0d7a63b8a10dc929b29595e9dcb3d7873d6a0e19be2c418722b42b71236654c301a0269c0a1079a4fe6adba5f7da50a223e3686b49ef133db0f025b4b01a8cc609a47c6891b7b32ce23e88606338188c8411a50675945223597f83142a9df21a92023e0e113e9a8892ac228878a8f6b592f924307438c7baa23fec9f7284a713504c65c870c6b248741c143d9d0f86cb82a72f15e3fcbbe98a4e2fb69dc7f083707e950662ad0f4827a9e66edafa6204d747968b214f8d3626b9936c72459b79e496bc9f84aad6257d42387dc19faf1d6f7fd0b0ea9a027d88836b42bdee1a5e8248913a5ace55c85e7bc35ceb46d2b2777a6c4c6fd63988d7d1d2e049c302656dd33f76c60c2cfd8d048df90fb9e17aa08b49518746667a5cfacc15e85ed9a55232cf55fb91839f9d25fedf9345ac80b722a75f8daaffb3df455e2f5aab359f9381311a531521ec0be4a52a9530a3dc4c37b213663d447e19ff1f8eba7d0c58005204f78bb0def85a45a1518e018de7a2b4e1700c96be053a1216c4428cc5bf6e5cb129ead0a5746ebfc6b0cff67b7aa8e1c8e8ee6c2088e0201bc0bcca19a878af3e84d24520a4602efea3e28744cd337d634712a3576a18acc675585adf8e3c20437ccbb52ac17203ba283f702515e00db0f7f0bc7a8eea37ff3fee7a914e8eb3b22c3e50e0f5f846659d178b0b754d48ccf82125801bab0da54def24b12c50a2ce299e2e977278cdc2136ad6dad987a034e3d917fd0d636fa89dd303925cf9877cd3af2e44bc5731d1209627cbf999f5529d59e5fa5bcce41404e08e23432c0b0b50b370ed221ae254a80388db65fddebae27cf56dbd514979ae14494a298b1c9a5e1baf5235c7a024284d65f1d0481e439e8421f57f69240d43bddacaca68ff7965e602e1c268c144cede6c67ac3c3ca5780628cefe3a0ff751bbf709d7aaeb327bd165ac23bfd543df6a7fb149def14c2a3c1301c87f816ebc6fa00c25113264c160a024e919a14e4be895ea19711728f63054e906b627c0e2b9a8886ced010829d7bb0faf4468376e02c34d8702391926899003a7375ab98bffc040239084d754e3e00efe4066bd8df635751922cfeed80b1122a2328d755ea83f884d1023836082fc293dc16318a0f13b801216eaae2a78ddf53f05ed46f08bfcc2df83714f7a7d91214872d73dd08e1cd6bbe89bdd15a8f15cc520402824b082d6197167440bb03e1ca8ecbc448feb531d18a66a92681fe03eeb6968a514071298f9328bd8223c962fdfde752a9ab0f4021a8bde3ae8a5ab8db844b2113bccc512d567eadc83d45da70aebaaf98036f64b7f5ce880fd5fa0b19f290d138c2c9d3b14e9ded4098c086efd4b001e17c212df4432711f12df86f44a4e740929287b01f45ba10b91ab0bc6f477662539d7e1ed298b92d728f089e9d0a5b1f911c3d2e6b501fe0e857ea6c76e2b2dd7ef442e69e1ecda5254bbd1d556aabb3b79c3b8555ed8d3a4fec44ce07acb6205fc5b3f3357d7b8289db91841dfe14f16b298c3700111072c6019d66612006d1928b05e57dd71af42ae898855f07f4196c9161c220cdefb616fd169fd105b68b37017c498e496d9fff209b7d03fd7e5ef1e6c58754b51c6b43faab1906ab80bb1bf2b7da39a020db809e70470a7f2050c28374fbe2859d9c65892ba5fbd7d81f0ba81b471a42eb668b916c842284afd93431a7e60d10085d2af2b66b961903e31f6a70d5903a467776fb779d832cd8f4d6679d7dc2870a36bddc36866648d583837e475af775f8475c46222bc4a1a8476556df8c57e3b057f9c53bb8c991cccc0d1011e6fbd7ae3f8d65562fd6b0235b3453c270eba41c928c3f03e3ead7473a8d5516cc770cbb4bd7ef9827046cdfcc50c8d70c44e38356c1832669401c62d34bb085e1518e7f0e745e375220a45f79e25cba865e88e08f5b1382d3565806a44bd73f3b0c539a2a41016a3ce74a858eb745028777c8c265788db0eef462fc6fea2771ca17906f4e2f1b79961cb3ebc8c42d49374b30dbf4971a38b3c241395dc13b601ce3447d0f971a62cc1cc2438c70c4eeba4320289a789afaf77508f7aa8ceb5d4558aed4a68d6b3b709896269f05d1e253006c47883a3da824f9d67c0779862bc270a2e6a3d36be755b7a475475ed2fdbcbdb52d0394f40432c0c623aac3656330d878af9e7f97f9c12e8f8c0ff25060fad6760dbe47a2d835dd6177d53789673c1a6026fd17725995765bf87e068fde3d9992865f08df14b640a3770680c4b6230e2316ca27eea0f335ed130180b73402ac597e0289ef25cad75646d43dcdbfd9e1c359e55f0414b435bf06f1c135ca2df4367e743a06667b48de376f5e48d167c630fab546482a1d73e1fb600d3b5f87ce1e5f6ed62677cf253bcf25e84da739c0a1cb247be0ceb043c18f3264e60ecad18a7b1c06a2c0996532a6cfcbb08408907829f0a11b4315f084c314df65261e2959c645ded1bfdf07ba2398e3aec9598977e8b752da50d39a9754f2bbff0352d064ee266446fabcd95e5e9c7f8374a67d9c0d280c95256adc034459f59b1a3229c1e32599fff304a1202f5c5862ec225a9c34f306b23e2fa74c14069b926d8c03c489ecb09a0703e5d0256a27cdd26ef209c18ee1ef8d0fef84c757a4cca45515191725b156d170909bb7e2353a6ec779f78ed379d6ff24e88e916c33fd6cbfdaf36c0fbd7229a9d7b62e34f642673601c3303c3a331d8284949fb6814143e0493d46d424098aab238185d78e77672e9d1be116b3017881e2bd894039572cd1b51c91a10e6e55456e9008568e8e9599906250b741a60f5976e6ea60ab00abe439931fdd3ac9a5d18833b22f5bfbd73287127a551c2e53c7dfd888b470dc4573e892c179fc6f43725fe5fdd772c18ba28d3c4abc0a03734bda33c24b83e8709be6d8f79ef5e4bd4d33b961505953f9641a69a92bdea844f7fa421fb018571301ef87d6d866917f20af5f9312bb83e67cca4caf1e74c351615459c420ea7653ab943b05d8b1f9a1473c165cb9fb27f7c8b8c0c0703fd07eda8ca4e0f34f8f8f5678c29b6d09a71a3f27ea2365f3f250e08bfa02d0443f8ae882370d974f4e2c9b924b623ef7bf020bf9c725c993bc47940049577050ee057f400e136f6825a30f68cb7b5703269b40533dd46736176b1836f62dfb0e916c27d823acf37645a6c95727a3b5630f0df6b0f4d272547b607ac66bf6e73594f00d3e251288e5237e819cb06a9585fd063224741f2b0832a921c072d0e6b286cb90b691a472e304cc179f0a9ca1ab7a3610ae41618897f80631749624485897c427040b10813161dc12f7c6f7284328049ff1ee714f9f0473f4ddcffe2bf4ec50ce4838fd55dc82ed7237e00f7e91835f542f2211ce196a0ed0b40a39e40d1f7885c9e095c8dcafbc48ee62900ed8e97a5bf12306280ab7f13b9827563605398c54c00b3b85a537aa9973b001fc27dc521314104f1c2b5c8fa947eeed5fec2ba45f9278c28cc8df5f4767afb1d7962802d1598ca14fa903a4b43d76dcb5a7925b95138bad078e5398e12ddc00b4e3ab8f9e1960969c901820e132a02c7c8a03eef5b37ce1a2a49c00de5de4ee4d167103e5a9f6d73a9b2def844075b82dc0ae0cacedf332b4f61b59d7e03e8b092287b67570f9dc41b14ffaeb64a90864a03d241816c1179c894c0693a379cd4326b6bd80b80640ed29ccc78d9a9f632a35f1b13667b76e22f300c3c918eb2fe74dfcbf404ece845ea95b1e9c62b56a86ea4c5caa8f5213974c6920c3b3a321f574d0e011e4792e1a96a45cd10c4525dc8b72cd1c930c4770f35a73b07f99cb6f86507679e3f9d0c5425140c09b734490e01b746860041fe5a3afad71332e2c5d5f1122551c78f2d45ab458e5ad45237ef680c88c5fb9fcded3dfb22ea37c0b9c33981780b42dd60aaeac2b15ee99be2617c45861a0674a6d6b3d888cd0aaaffc380aff1228b825d2f15c94deb6b663865ecb2278e5c87b0a4dd29f523bc020ac7c364f8d74a41b06c3032c57202175b6eae8245f47acd5e63b4cb0bdc23aa9ff8d826248a8140b249a4adf077086620838b36b5463f8c146e654458802aaed4fc3af9946919fb4a6e86904a45f0a02c0e48a94568b05f80770cd234a950f2a4b2cf03d922a9f33452acfa6b5a1d6fd0408da321135a1c45bc7667ad9c37970a55683cb8ab0931455f2df740aa3112dbdbc807d1adfa8ae360704612329cfc87daaac90db5ca768f03fe876169c5c23562eda05731903ae0e98ecc1eb00b995e2c6f41d48d6b24c15413605e9d5ac4a58f734b8849060780adac3f2a1b48cd56bdbf1912967f03c44bed8e5a00fda1f8458551f2ea55023477a621643b10265e3ada54911749e91967aa39e82898a20202a445332a5c6ddf6d1c31dfebf41f5c07d96fd81d9a1918cd112a6c18615b3ad200a6ff3880a9a3277d49879d10d839d25a26411f2604115b46fb7d9d55344e4e23537200db84732ddf4c27c7beb275a0a37980c8233c2ca76820aa1ccf126d2479f7c4c470bacb90779a80280c0605dee5bb024b6a6ba2979f87c8823ac5f47daee138458079b520607dad693b0cb3a3d5de707fc34b62c1507b0d4a63277c05843a7bb438aba35069b158ef73ac465a644484c670d934e80ae866b71f2a1f1bbb594cfd58d4a0f7b65a9671818df4718630e2334a5837157e416208b2b403326af09551e5650fc7acad7c6f3754288f6060c5df7c59fea1a46da23e1a945db54dc7746785d5d0014e47be6c9f110b11bf995146719577b55d816dfed0c28f4302b9e1f0f96094bb6592566f2933cf956305fad3220f50678dcd4297bfd60f40e7716a71cd9728a34a3c3303d694e64517d4945f72d7a4fcf1d3db116bd3c3daf9a798015d414f19d23f16d4da8931880db42214774de575549e2e6f2182a5e1cd366d93bda92e5d586ca76120e0f3b64127828b362912ace91d3abd84739dfd4a63b3e91b0ac5461411657e2b4e476539a05b7f30dcccef323f54038e8d69a760b88873288dbc245af5844abfc3459c9356c4529f10a77d3b7a5e0fa6c7e22751162e81ce3b8b04cb9db4fc4ca998e85707facb345e3a9ec776c7ef34649b709e62022a17ad8aa6122e73da3601c959c20f4de6ac5b8a667c603846ec976d014b4a11d44776eba818c6f6be16eec0bcb4bf63c0ebdb904651614765dc0fce051bd5020aceeb32ff71b49b1662c5bf8e499cc9752b6fd76446d3465ffa641bf72743588ce449199715d40cd64d145e526485f4b52025a9e1d03aed1d8b62353599b855be49480dd241a9e9116cefd5c224d6955c1bb548590e68870a3e5fe3b099802e04b8f761cc9c9429e8f16b6221104157eb614ba65aa158f47f0fa55ecaf730142feeca65ee2b179306a659dac57440fda91379a95b621faaa68c04071c2bec7fe512319b80f6ec9ecb420fb51a1e40a7af201385b25a41a37e5a4ea2872f4aa90033b404ef4aa5d60cba7b836c61250518ebaa251704ed6159cfcb82d7eb8f344207bf48ef710947ca562c37aa9b4b2576c395b8e7412f91f73685a09c99faefbe3f8a82fbb326d1413db38eea29b65024a3253ed7d100ec16b32a366b0b8183cd187c32df1dc52121bc776e48c50b1279d3bd7bd21ac89d799a00729abcd9ea6c41c29e1fab0b3ea5f709aa6e3a35eb0bb3baef71fab069c35b4cf0e15409bc04c973adc3b906b290cbabcb25650982f852cb223cce88e3a4867e688154e7c22675056b61e07de8b5fd1276ea3bc2a110b12e1a3ff70460f9281dc5e0689472b32dfd1c80425f4bf2d477666532442407cef827d4f577fa8ad8fa7379a524bda4f27f5733a6a970ed27cbb3e54cade90c83aee353472f623653a4c3e615517ac0d5314abb19ad1763876d77aa6c064ec1b83582f1d7dae260b318bc0c970ad4ea18f8264104a73e4b0fa249c582a030bc06dcfa703e56a39f5a212eacb66979e177b6d26a868213cee6e364837860dfdefb4d80010b3b19471c7f6b892f040b23590ea1aa57dbf5afa5319a58a2f662b3bfcff4f0eab2fead8ab1bcdc1441861d8e6c714bbfc840c5bcb293ffd2dfa6d7d8122056bf1a2317c929bcfbfe12d6cd6dd96b6253d67751675786243e4fc66b95e18c24ec88c6fd9a925e14e546684dbb91ce57480703b128891f17f033f14fefceb0aac8a994233f27f553587f916df3d138bb2557caa0299a973e8155f008830fec15dff1cd6ce8a9183bb40bec7386809df95980eafa3f7a5e8e8815e508511b0e2d245a598a04a352c88cbb3a3e4ab170aaa5a9dc9d6f8f242d765d20e9b958f3d859e7318779129863f1adb90b8eeed2da920686a11865802239e9197ef3b6030282f955cb3bcd6cd2a229402d7752b8cf13bd847d64f8976a5d73efc044c4c44f8cb342062408e09c553120f67425097a38d583588fb5ec2c3cab945ae35dc63ab90c9b726599e46382a6ac0f4760c25dfe835ffc84b1739a9acbbbfcd88fa04d395ba15c47fe8c51513027d5ac53869a9524bd50c9483ede4911892d3bd5d4e4622922512f17a301c134824b885e8d8062d5560941e5ba9d88b0798906944d8039365a8d80e5302739953076b13e2bfb454801bae8464204087b56e469b977b0b5b4c49be4ac04f5fa60432de8f98e0e620df616b1a4258f9c1e7812ea63b0ae7b0be852091657701030bfa667dd2144c29ab8ed561bc8be203b19caec45ee1caee9a10fc1ac8e79874c992498c7d49867eaafe4a7d220d183039b188c88f82b91fec87c8698b472e1c3baac17f74040cccf01da923afb49b7602e5eb25adfc5081cceb7e1ac061afc57424601175fbb5d587e98468504c8b7ed5f91d6f981342922f7b815184fccb2f17f3aba19f112127c050b2241337da1c967e2e9e64a43f648c1413d94dd14011c077beb10308e04291f484f66b40915d5da0075a940143021449d96fd650040386303149ac348322f5f3a03876ec031844332238e96ce68f516660c20874cdfd31d802309805d930db4d02a53740689ec1f9ff138d3a07b1c6e8783aaf3ce4896131c8dbb335870a8afca820bc9dfc1eb9266589ba51ac16080fc40ac31ca1e2b97d465026e8b2c648ddf8e4e3268cbf3140689825c87c1004aed4968809a20dd462a90712d5bed6169f587076257d88d7b1740c73dda51b5c31f2183b4e6dbd693438a662755f43cc7ca138b7ea4df3d9694964ba00362408fcf93fad2f6bbed5cdabe29005e6ff2c1dea7bb89d4d3427392eba232acb939889af86253ae25aec24e18a1223904e15a59a05ac32a486ab8778d442707e5f0dd0dc24a0cad5069c7091a7c1375830956c5f7e31920e5e56580e07c29d463408318144d70861655a8fb58045eb847ecf88086012ac59b18da75de7a803ca941b9ebe981d957473ed9b4154d7ea5cef125c7b36e7f24a0c8063d29d30035337a50e740ac94a3295dd725ece9844926b5c82050445adcf58e5791a750848b2e13867f50cca64d9b41109ded800fac38f1c890e5a06afb8e38771bf1a53177cf9e2bf799fe26a5088e31708bc548233b591260a93294e02edaf3a4ebc54b629100092fd1db22e1c84044ed241b45a983cd21ae594b8ca7ef47d45f1319214412f69b875609026c0a1f89f2af6d0ac0420eefd7765895bdf268099193073c9da83ade4b780a90d602bd030b5a888f19f889f6467be7824542b7b6e98ff084d26b3ba37fd9a13e4b31196b02a5a1988365a757c9884dff196c02b4dd306f75e48dec99058b689f00964178eb6914c28c732a5be4333401c0378d0a15224c3af9eb351f2d414ee82e222dfa7c1ece24b3804a4186c7e680be4fe5ab6582ed3591a9bf65213263eb20087042351c1995be5d00d3fd41b6ac5cd01e359b0e8bfcbbd93daab40a3dfd0ea10e83ac8520e49e74161eeff678360f0449cb010bc26097cd610f5330c065f311e2c74ec2b1c9012a089a191eb238321e1f51bc4e9afb490ac3d6673a40e08bce76d5ec96024fc0387e101e53f509fe3b08342c508fd62550f1bb9baa76a6893b64fe12a06c1d6ccb85a223a5c0d19a6f4e1a25881eb83e491ef0c97957f834175f89aa08f0b144abd836ae92b1407ada4b6f97a13a0a977069b2fa8ead770b91ef22c54ab5d17ac0c2bf698c179a1f37d13d748ed7cc25913a178e51a977e4d8b32623a0df8e3b199f8d413e487c12d1ea720842d17cbdf144e1f2fae34d4f571bcc50e8401c55e739460919d9a808d962956a4beca7e0e630e927d162253582ee89efe9c0b822c70f99297e457904167ac440a0c381de2adcbc0f8ae40d9064e4cd1a69be1f9170f5c26ba22668f2a24288b89b21a35d03b80498a4adb9fd01c5ab33c0e265a88bec7356b75b476c43582c18dd957a101098b2f9f2d5c94dd6e195fb2896070cea6c5aaeb34fe55605a09614e98397934475c097e51ac0c0c74572760169044eb04c02a083d351a2f80935a054efd3914ef1ae6ff67a3360250c69957e9e63ff54d52e38416a293b3c813a6dd7199a56dfd517f1817a92459ec20627e0ed234c2c6a47ad50bf5c5e702d3efd7ede020f314c14e7290dfff9f08da6d4b58946a9510ecb7a9b00c8a3f52d8dfcf08fd7116f721b435049044c3fe5edb7b7621e4db0bc240012a20d2f10f3ebd9c21280924227cc2f022545cfb423ffb97bfe8f4723f9f45fc4e1c7f1b58d872baa35bcac12a85030036bc0fa6ce0600361858cc69c1d4effe55abf1a0f24f87a5560467f9f2387e4b757a271afddd4f34c5e2be9910f1a07c57cd0fc23bb12ee13eba4f8f2df9075b88c1298a473c5723456222e0eeb5ba229dc454b73e9a05726e606ccb26f7a7f0c5e1312e375a0ee7453cbb228f36d3c69b3bd780d7a11e6f9015b3839d2c89fa049fc245bd4c834ebeafac27479e5f9148734709f25cb7ececcf3feeb72f917a2d5e828f9f59f523454d43713dd35731893d69458a8ad263188eb08cbd1f946a244c3200259ecbd9201ad8ecd76c1c1bb871495fa9159865355e4985291bb27b2f8a907a78506a1d8b4fdf300b4c3b523673b14f8caaaf7d18504a8f3f3753437af5640bf7d711c241938152da3070db12815a2c8152a4f2685f6287fb47b20293d51f78309e469874f9b9d80423359936dc94702bba5be171b154e0589994202020c414beadd752c8c8c6a449cef3c3d018af7e1e75403e21bbcbddf071ec5365677d2733f7dc2bc495d726ab31d35d88f42e6ca0571ffc21b08384fe81ca3270ecb8b4328ae559749174528d46ef9e6f13b2486de286269f6e2d624cc53bca6eb2bc6238014df7b29b940cca60360d6b0bc336c3279f8a15bcc98915566705940252508ab0e43a4fc1b779a2038d53846d4b82265b8a07d5408168fa32f444d58ca693376efb8b0109b58f206d1e10ea6549d0eab1ffb5be2c0907c30d036146fdb224d843364ecdf29d501d084e20c3d215b960a04e5d4aa8ea8461db411d28509a02bb1ff06c163c1d533d6f7ae76b9c83b843eaf181c39fb9d3c5411bc8a07901b5da5edce573d82b961278a089fb70f6c58891cfe98f6d1ac2383b3f51202d5f8d216ad209a706a2101d653c8884a2db21ca9474b955f116479bfe195b76cb58695430c15229d2cdf07b9b216123b8cbee92e61f9ec1f202460858f2b77d3d8c61a5267244a43332c8f649bff66e0760beb7ca00be6e2172523cba26a96bab074e1af6aa1326b21735b8c1a4eaf3299d700cc2833868a70a5e315ae0f68f39ff90061cba18f7305422cf20cfb9267e3a8235dbc34192a47ddd81b5d872036a48bbfbe78b0d3900142f369d8c612c457e344e432beebe0d90cb211b48ef65493e495350f6c2936e79b98f665ca0e5bcec563a62c0de91e4aeb2a28b8bb8d51ea36b6a12ea799b20953b92c6a5e5a94a413cc6b51072bf5be92962d013c8c60bec2a445a02d6fcbee9297170f74e6bcd43688d57b309d504883cbb45a42ddc9dabcd7a4838f51ec30883f5d2bc6b2ce6df160022efb3be4e44578c9238f0d793851e2b4a5cd21b014504b2b8fc79ae33953aa4ac8d06361ef7ba92fc68b91d9579032c050004a7b7a2821c067792eb22ef165c64ae083720e6d62e694ea41f8404992993dddb5d3bf8f034dc7d8fdc0b3a35740a2e499178ec52e6d6feb01def4cf7432263dd88046b7f79dd068e4e9da33c33f2f333da7c53c4e5522d309cf3f806434ac3102d8f3e663b1de6306038e58dd3152cb247fda1ec2e2eda9c45565711d66cf33b7e7b076709e5e45e3d8c9f9b8554ce2c43bb8a1edc59d185a7056af5257d0047da14b7098bf10ce1d1c37c3cdcf4513389504a2e4c3d84f29e689b4cbb63ab3c1994695a3c0991280ef2a0e6332c4d694befe72edd0818bc5911f5f9bf27b331c252af6c8d004228a46cbc8221d93ba07e92c0f4719d4d4b111ca81e2971e34aefe05ba3cb53f1bf010422ba6cf42b69185fb62e113c0c6f6e6ec05589386a9fb957fba44634d1e4c0c34970f5989c9f926799736b6f7a3340da3788a439abcecbf505c1670ad482d35cf9cb4b74c2e7b0280af57c8cf27efcffa49c3794a778667afcadb670bbeafee4ab65141dbd51c97a719761eb1565d7facc2cb995d653cc0d24fe6aa0697a3b96498f96f0c3ee249f9949e327cba6a83b6338285d8bfdeb6e9f34677fc71e81b075167858d14c5b340a4eca55a6758e3f2ea7da34024091866ecded37d6d56c3340016c1b56be6dbe02670da7d8fccf50405d0b77f36626f0c234f19fca1ccae53d54647d27472ab01943338abd1a8b4d54940e417b0ca55a00ce84254e8045ec70a08fa194e93426c9c090b35c6fd7b964e457468b44eadf4b13607aa666f3272883a8e2525a87c609e89f53dc7ef64b80537f9001565b9c4fd4a48d3b23c04fee8f8bcb3adf7dac1ba8433ac06da523e98e36bc78a3eb9157e2b17c7cec29e3f44bcb9775f502dad365b04ec4efc6f5033f04b6698592b18a644a75118ff0942074882d8380363a2d03abc925cdafc0fb329ba8b3f31f70e6ee75fa0d615b168aa58e9c50a240a294084f6bc45b67abe193566a7f28b040c200856925c2b1ae97c485d2414edccecc5f9e879ce42f2dc3923d7a0c4177e0c27999a72224cbedee6b72ed088ee48cf4516cedf942f29d45cb17f4f4ab1bd4c31d135211266423dcee2619baa8d02b4501f3371b134dd24754877088a6ed6c61dc2edbf47672692ae6540ae4b36a218a6a2450ffb42817e5d67b329c84584dc1d00793f33205ff769f8a212618a64ddb122718354af3d4cf6e5fa8461902befb1fd6d6bd5f45d5f19e2229176a963679232a8a1cd0b4d1cae5c19ca9297dc81814cf2184b0901aae8b745f435a01ed8bfe0af8bcfe86291c17fcc024efdda21bc6a24ed4273fb110a129f62c0fa517fc7652e79cb486c9a5a59dff7026557b0e1b7ce4fade0eded34360c39ef62e196d0dc37a02c4fbcf0e170028086bc0b1692f2ad879079e7a606fc87da1c89a9ce808460b7ec5f5419c07b79a74d93e4a3d0ba9227d5e8cdacf2b77ea03d01079c9e75b72cd8c4cb7d1444b0f21def3ff0cce7b0485b5871f3ade5e2b9fe48ec74cf91b28f1c2f84675933a9fd43d3f2b69e221cf5fbdacb5ba7888ada3a8c75ff4818aebcf98fd17eaf24162d9d28442a22e1262931e3e82fb458331d3a3345affd2f0df1dc031ed0b7276c93d49e9298dfcaace0cc384865db77b5b0cab37967ac21d7a4d99923b3f6bf5390b44fd974d35a2ce88513268e4bcb3ec15a623309d10f79ba317db494eaf8b18df4b7cabf0fbc8d11cce74f9d974cb2d02257c992b3e516039af0db8745f3090975575b8ae0189392fead53bbc365115e80ed83d7ab8c8bd2ba3805d934c2a5f9b161016fe301ce37b38aa9dd7ed40f749b19a51ade875d0ab34cd0f4487062127a56b1fedae843a11d121b668347e67ba5a89630090516b939ed161414dd6313fecb2e97a05991a0dbd1b0d0ed95a06d441f6b45a4d016b2c6a31d619d9becacaa061c569b3ab987c5d9a84f30b1a510c0e312c960bf92f264464e03dde0758f0a42531fd5e94e8bab95ceb918560e48a6d2b8d00815d301cfd88282a3bd9b858e21922199b5d94f1541025aa68c65baea21a33f597f5bbf0b31a60e647647be5d8d02204be612bc0b8d221083e684ee75933232e3148331168a5e9c715429af30f342406511b74bdb3f7a30c00d6d6a46ffdbcd8d6e860fd44e0f3c2b24f38d93870f914de08be1696e24f5bf0d8c79cfcd5a393f53025fdaf862aae71d9537670f9648ce79408e212a0db24e716e2ec8589becaad42c123c11a550485d253d10f41a5ae80c98ef0aa6558cbf6afea6aa20b837476cf3660e8cdea7938b7dcea850c79849c28e3ec4c17ff35ff57db7f25a07c2869c778a4b7e8ff2662dd0bd60ea2d9ac231d71510cee84802ca8c31aedb8a3999e0267f201869410cb3758b3c425a2825eb5462da240ed7c08cb7603c2da1d76fba363f8c54b3d5df89383e438044056ad869b0c0d991ec2a73756611a3a96b9b9abe3acbab9d23aaa25e5aa1b3b5659fb245c07775d388be2d896eca26713505084c668c72b79703c9736d8907aab43cf6527f0b6ac7f38239352c06b00095a5ecf6421ac7da4aea201970924a06a85c1891c9c8a417ba803d397537b83002c2a7de8e1928344873c08f7e810007bdd342f83a58828f3c88d4d42e378a142b3088acf688907efd68bdc36416e9555aad306f58a4fbce4a320440bdee7a36dce16b060c05e63d1b5e16e14ac1d2a05a5cbfed655ad35b30657751d7803d6bf5dbc46d023e138d05f143a3dd6e4965857a4d9226f9fe7fd8c64dad6ae10e53c7f8908bebbc460677f287a307f1cb69bf9a863adf60fbee11d9f04ca11f4955f4b64ab9483c1ebfd9a39f4acd3c6bf821b8aac3e01dd0a99ac0d2ac46ab5910b7f0e4149a64d4172b8a2f80da2236815392f439ccb6f09ed9babe6300e00db970a0a8f3f7d4abf146b7b815af800b5f461626164304a2359bc5af105f4b59435f02b32a2a8435f4311d9e14db454020fcbe180076034816b285d01ce63f0c0292a8962a3024f01428874a1b073b9f19cf9b5ecd413962739525d0eca735447d68b58b9ca6c7695cb3e9e04b94969908a5e046a434cb64d8510588eaffba46d5127c87d95252f36700c51121d5c74aba0fec544da902abdb9e8045db451f82eafdc942bcfa1484d2a0dd634f7636d27e15bcb16247863eeddf5e6d9621393782a833f474dd02ce37db930680c0996f14e80f7b708831c1ac4ad1187084b065827c7e761a297108e459c046db5381c60b18d9807e2e9ae8a75783c138d477cc4c1418ae3d270bac2980511a259c495086246ae8d54fc3853eb963e43c3cae83e01fb93ab4f70a00deabb295ae583399a4abbf080d5dba5835c76839d39064710115dd30dea07117c6368aee51bbbb70c46161b6e185eec65cd03057510d0c51e94d38716ac94acc740689226381b3151a0741232b2ca1a240cbb7c3744ed15684ce26953dccd31a377186dfba679dda9871faae503984ee4a846d54e7dd46109111556043b7581ea547f4bbd7d67fde37a440ca598d8eb08884082f1e739b44b1316f43e895eff360d6f05e29c7c0845dbbead5a7c3b76815c280ed186ed3825c5c844d128f6707563a4e2003dde3307005933b25ddf934c5a7573982754512a15ef3bae532e851e7899278dc86b6614b829ace6a667c44ab6e6de2f281916ec0e159b5aebfe8b4a6ca5cac782199df2bdf1516a10ffefb46afdfdcda97e14a1f8ee590f015d0e02c647ef2d6e787899863deca9dfe21912060cbedc733891d85e3be26a0486b0a2fae54abc97305e3c280648fe3ea002c4feffaf2fc1feef8285e99adb9b98e81df12b93331b48d590428589eccc51fcaf40c36edf12dcf8e70e22fc9d48b2e83b9f2a6493b9a49c6f1361742674728b82300ab4fc4c63f837039d1bc0328e058d2c97aefcae919d35741edb59efa8688006db1c5fdc502a8e24f06e21de81dd948a38b19ae4933e52a3537d3ac6e281e7b1066039883c2a15f21ebb0f8f982ae095df8ca9642cbec428bfddd3f58f324caccb5ad2c9b15e34c15f52833221e20fcddfa73234bce83180a3fa8e9fc8d35fd8101e1aaaf80fc164aa5285abb8f4f37343479aea0a64fc3f143c6e8bae2bc6abfe4cab5eaa52b6a0de6e455e9459b0e165c98852f817fb44aeff7c1842ce0a47fda7d1702a5cd648ce64266b030f739afe6193b30c1cc5fa60f026418d8e01e32400b911b422afa403fe4ba99b5e35191dd91aec12029a6c8b2615f04f46c4b55b4cb3c5b07fef638734a8753afdcc5276f7b547b6a3ec16bc1658499a7c00870a7f3938ca6b8893011c0042fd0ba21282b86c089484be52aa5778066f079b5720bc55d890c15f9a821428031d4beb85691b62507e4ce0787514f7346138e35bc257ad3d09f4473c8205467be0ca285528a3c97b9326c1a4269851f6003b55c652abea66020fe22de3d9a3405600c0813b94663a6eed127c07df30a7b6f6e004e0185878bb5b61aeafd657b3c5cb07db29c0cd24cc9355304ebdc9959292cb568ee4a81e508989e779098a707088ac1c67fc22acd8b9147e8c18fb8db230dec8894f4bf680818e9549b599dc2e155508100d478c52a5a9300ef8a9e8d1d9dc6fdf4b935f2adbbdaa7981540db896ac0d43d7e07de6f899228d4418cbce8fc83d8f9edaef58e96ad838c993771b134373ba51cc91bf38177eb89cda48d51fae07929b1da7c19c8b0d4f3d93dbabbd86478e87389426f21fab86512284f9801a9848b6fd927d918da249f737213852975f21ac9d55ed01381ed3d0276e78b49c88aae9f6e4310b039520a07807ce3430d50b1a2233aac6b0c2c9606bb405f66814b3d57d41216e323dc60a8397267f3bf8f908c5f9ad7247eb6dca1edd9a10cd49f2a60a3a801e8fc426e583e53752a53af7e0c148e2ae8ff7a5131a837659b091239aa18629b6f409c601ea5a2e7a915a99dcbb7025f8ac0a39f3797cb7b56071903d40eea4e8638ccdb758045e86b88e6cf5416e1c644938f48db8b135cc23e94d630491b9196a3839d1956b91946f862ddefeee7ba966bf9f10bcf7e46fc852a9d298cf7c081c0ea1bbae405e28d18aaf422794143fa50a1a80432de62751875ef0a2292ab79d002cd94abdf4d6803bdcadc3100717249adcadf25dbf9a6d2ad15f6e21c7d003913920085cc3f7af22629c605902839062bbd78591d3bb54ceaf4b526d04e7dc689a539ff624d0142d4c7966d74a1368888e10f35972a34921fa98856d188a3a2cdccc1d5bd630b67963304f6cc73075a4757dd45ed54327545a954930d5c027932a12d259b788443fe1e147ac6657fdddb297286914e1292609d5e5800ea418fb9c44305b76810828c2052769c28ee2d150d24fd6aea3371c80ce0340c27a861107e8e50a17d4a11bcea9d9aef03bef6b71852ab7e83915038d3a229fb2cb6517b9d8c3f63957d03ef526e8e63a9ef9f7becf0d9f4a655302d235d9b2463d6a388045811a0f4eaea28b56ddd4e028d80e2aab81e482634119813250fa5a3586b8efac402aa794a5aa38211b079428438b4fcd1c63c94970cb1cae303686f51e7dfa1ffc6058d1dbd132022984fb5184b7d5ce8b0f3f232ddbb88dd86fd468f5c7386f0305d65fc192400c03aa6aad8b3737da202aad7d585de5f4ffce006bd3d3e9f1f0d3f9f241411653af616429891ab1af55acc0f65f8e4617ba2873da760820eb4111e29f2812276a2d8fac0acbbfb8c49c6aa202e487a4ef9e8ac22f4f5b21503cac299b70510ad8b1f4639187a7e6ff093c3a88c9c54f3c059a8ae78ce474e54090d3d0c61ef55f5224685c26d0d74846be5409093cd0e2623e823da70052c8f3f2ef69470440f64a6f9a48a694d04d5df94c55043d5394af69c4e32b2fe1ddf7d6133bf75da003ba6f854188f25f06020c7c72321eeef047d9fd2ab54bd036810686415e02e659391e1313008c18180d1885984e035ac3de90ebe70de20a1e7b60a8e69c33b307bb0af9d833240101fa0a98a155399c8dbfd6723b09c273ee57113a74eebed3b5fcd0791e1bf58469e0bfc4a445d601bc22d4e3cedbc0a5c428eb0cd3f17cb659b219424f1d5135ed821ba65bf3f52194ef25934f5077d1368a2337d1865962e40ce6bb082f738490c850b73213c0a8c342e52e56a2a5103c64c2f1df42ec329eb76ead27d1e0650cf93346990c9e0ada07a3e198880eec687ac46b63985411478e80ceb375dcd1caac6a73169fcfe0d8a83dd4e10fffb250f5134d79345584e4f964659209cd2ca1e099b407a6816189476e240a1d4df0f9e6508cc6b95e13472e6c74a6223d4bdad01abdaf8bfea39911c5de835fa54612b250ea9b99305a0f1e6414f7aae678594041aef626559c5bd530e31cadecbe3645775bc2e8f0dcf16809f1edc6e50ecb754b8381389daec088150442b12f4a3098329198e0f6e2020011587bd952ec6aebbfed1494ebe966e9736897e9873889b8a32507a2c0602a665c31bbca0d6f66073ffabdf96db4cb441c9c4f4fca15f6838567677941d5eba585f34aca928a84f8197a692e8c76322d397f2fc065af3298cf43ae9703576d4bbb7bd67a2f31988067183cfdc7b05d752154243cb09a8a44c55b049ee8bc9069a42a37521ca7b4a613d324930fb49c70092bed6bda525ebab8881c8aaf216b9cc80c99737ef9fd6091037402a843780df4493297e8d398b022585d6357748e1462393a98c581ce2d6b8f2e4f404d5bc93c3c72af8705985b523f4d2ca24648e5c452716b99a1a2f8c7baa995b8c245499b8bd9d520f030daea9e5380a1c1b9557e81255e0b3a4272036754fa056846bc019b0d6f38d62761c1b0ab3b56206a022060786bc6ec75ce60d59930410c35213c66aa2125e3d80c57d12a925995eccb001fea5134735c606d4084a7588a387888a7d4e06a724e876f6006b7b16cce2fcddb1861d735b3a589a714cf4e9214451b06ef47ea276afe58cb0f25bd7c9db2d47dfb1fe716c8ca841724aef6afe6e75f335104b7ca92c846c1cac077232228d4d2ca3650234ded05595d672b04d2cec9520d4c599d9a27460be142324a4bdc80d6b273f860e17597950ab569781dfef5031253999f672e4f804cb076355c0b3cd6420fedd53f0cff0fc28c729c490cf8cdf1be8e56170ba4786b020c9895c01ca970bf290557c5e2180e810558cb2a1b8edb43fed33c7e203d05add7d1d2b053f9e062c5a8c8da4a32332a40226e2a6445e3be67c8ac886aeb0359d0649ab6f20e360eb125b6b70baf1083ea62afd2aee93bf4d35c7d58bed2a5c873a0a8a4a75d07cdf7d17cc564c8ec3417585d247d6556a7a79c570c672a2c604238e2380ee20cb3f0c287431e2d710f413ed173c0a359575fd81e99274836a2492236a443a1cac73a8f8847f0a36349e4ca784ab788f0caba46f3c1ded72874b3f3054de4dd72cbacbc38f5a3e21e8d2cc03509569d3b1715edb0b5c7b4322b85ebe05e1ceb120f70259ddb7156f81f7394c713c0849942986b391d4632d7a2c0c7304e25132473359808f8a86fce9377551e5752475ae813fb26364212a3a2126544352d01dbb898aa5367747e60fc2999a2d2b3c5d0bfd583697b421f470d981939f369a4bf0518810ba936572c5bdbb5d16338811ce62823eb3e134c964c491ce24bd1a786c357ac66c5146e77d1105856cd6a336c283d1a14258dd76e6e3b94112ed10a4aa487b6bd5ad48927a0600da790a566a505e940bb36432caf253e02876c57b4f93ab805bac86022e111d4acc419af7e0b48cd2a20ab3c296c1f3c53c60f903e4b3012a289d9cd3d316bb3aa49eddf1281ab042d663e3fea979086a59adc652136a27a45901879d5396fb49a167056c0b196774e883c9695a880b352e0c8ee76387770565c9473518756e876555adf948c3024016e0054dacb6ab4c1e21d75c2db08cd4b975dbfe7259f956a6e78e74ebdcc4ee66cc0328314f71d749852203d80873938a7117572401163ba3a5b7b5c685bac9b2e9aab3ce08cd2ec0fc67d0cac56f83a311349d4680ea999ea0463d853980bdda24bdf58e244f76fdaaaaed51843f810f48cf04994446c25f0e79ba5e90ad9729dee6f58ecc6b6c25bef2e58bfafba4fffd780f06a8db3be01b32dcea447abf4f47712bc7cad68758cd913126d3cfa7c8d083d8b046b0f352c132be7c0f66eecc6438336fe5a69e3f19839dc4a6c563a85d2049f5605fa8647b180c438c98005337b5f57819f4efb19bf133b6add27ac7de0708bb0d5989d141cdbc5bee35518a047627bc81a2c882a6cfe282e225b99e04f440b0037eda89e49030c6c9f98508bb7085342b6504add97c653d27dc68ae87a4eb5df6e0019fe62f5cf5abf74828e7f138fbbadd54213e6ba1b3af2fc6b8d6984ec6486685ef90194618be32db295757d0a22f9aab23ae48e1f49c9015311c879e20542da6faa67f91bb52197622906fa787d7784af2716e6124dd2f785c52ea8a2ed90a071434b2d1bd33c902e35664ee2e8091a5fd42f91b1f38ac55f80be264ce827db401ee0490a509033806dc7e53e6b9bd235067cf6fcd4262c0230f998ad37a23f40d0fb870b842ce7a2d129d4240ca7facb3e01d4f75fc2d055dd5f9faa9ae48fdba1648550c4cc10130e358806d7554c41e8e7ec60ad5c6a92da28290c675c465ef805e2423825657b3a241a0408a5a5091e3e05d898db2ea3d1991ad0a5db2b330adcc239a4b8a80abdb84fefa788ea644948609b4b16fab1d56d493efbe9456c2b160dee6b22f820fef7a4a15359e23f38e6769a5092da894b036072ec9deaffa6840ca32f42b91f8fd7f15846ab4c24f95b1135ff3aa467d9c6e101a16e2e9ae800bacd4d7b387be07583cca27439d5bc44cbb5c7ec17763431263030e35c51c6ec14d09a310c4e441397ef9e9d94f729cd780b4d561af649d9688d5363996b306036e179aef10105eb85f79df248ad40b78203ce36002e7016699b1493b3a0f5cb29a2e356a712f35d8081eca3d4c63d6863bfbf35296dc6589d7c3b2902b358ddb7b00eca8371b9dd090b1d7f8fe017b7aa7d27976e540c57468ddd94506f6590520e63ff253477766bfb1a72adf943c8cc4af5142af75e739e1dcc492098a6c4bfd265cb0b2a0ca5ce45e1f30e20d7ee75a87e5667fbba72b9023a7acd690cffcb34988c8e5600ea4ad77046a39a699f5522974bcde8ddaf69a705293cd325b1a432e74fa7972f4c7a3d1eafdf9fffc917dd853cf25bc5257129f63c045219ad58f511ddf89419fbfee981a5801a4d8a5875284bf1d2ca61c4fc2a60ed0007ca7152eacae2d387bbbe19ed6c3a4096ce6a05cfa7ff321009ed9710052cdcba2902aa12b4660b9e27418257e084bf28711f59ae08b942dd95287aa525667a9d11d40461743d6f2e69e98b92e014a455add172865fea974606cc1361065c269bfe4c8595755b8bc21b9895add571d6d693e0c629254a8157572aeb1a9295561e30a09852bcd3782e772a1bf0bb8246b7d14340887c408c995250f15f5880b12174bf508ee3cf9d9e1a3c6403f852d199ecd7bc0280def4d0b287a50f567bd25922597cced48656303c4f21370cc50a74292c3018dc089d132c2dd91fc60b8794500caeacd0742e8fc04fefb6aeb93679cfe08a24f0b500dbe09301b5e941e0e5a30115a433001dc401dcf073da28779c83e5093f96500f2b83f4f88ca1d47081d5fed166e728ad4ddc331f3620fa469da97a37acce094668652a0bae0252201898f490e4014480941d1aa837ed637a21b742ac75baf4f4e5dea0fe82056e3f4cb87280b0e60b9254515cec5286bca36f197d15c9aa743508419fe8a5ce01a6b472a6f6cb21edc8d773528ee29a593eb40e37502539bc9e1ab35e8fc407da69d75fec39670a8a46ddfa8a029801c7502bf5fea26d3465f1d72e8e9ffe06b3e52b007b86bccc9c6a4a8a2ab861a63e66fde8cd52e5b15611aa7e58ef273a85099ef097458fbf76c6843e91a46e8ec8d1f1e1d39b225aa8b58ab579d670ffd1af7d4e59480d3b4cf838c78b2f0ee626f79433b8e94b020d0b198394a1d3a704b8a04b3ac676af420ef6e584aa8747421c6aba6b68d280c2075da7246860caf17a6855e396335e3650a761d82982e7ed9fe45e0f13719c0ac9bbbe4ff48985bc369e5931b2ba795ec1e4036787dc50174285116bf5f8a29c95ccbb775052f30597620a27c3d03ea34ecee8db42c07abf4a7f52519ec07436a9be906092c89c40fade5585e513d6bdc3ee26ac6a0805869fa2dcc6edb088cf0e0eba1a85c8a059660f679561a2d3f5502be42fbc746c2d71c0ac6a8d7dd6b1dc68ad8707ff300fad381f04da9a3999ca69bc415a6b7c1a51e4eb5ad12a6ddc61643a056bb602488ebe7af557420ba9bc3fb168b69dd743db0a4185fc55a4e3a69ea2d1affe7b6ae90a964a2f1d447d4b9c8b5223d87151a1c6c16ee7969b960e0973e16110db85ed91a4419661d1898e36739fcd885fda528dc9189ae377cb2299b2172d98701f1bda1e2019903abd2d684a862e5ebfcf3dd8646fb6f5da7ac0d5693c80b2c5a3fed335e41a8ab21d450349aebfc342aa6d3d6df278fdf23ca1f734b6516a235f4df0e7c344eda60b0f7ff0089353a22d60f58d09090e5d7b0fee245e421507a189f49c43eee8a05124877ca879b28e9968179c88b5124015220a810ff28718c85a181ec0194e97167b90930130109a6c7f375d72e490cf925b517d05b0c228b9bb4ff62e0be906a41597ef3930869378b87ba682504198b2ff25304a82bccf20f39570dac18f7d6790bd32f8f857f0d9a61a6ac002130a4d9ebe5e7b78d53f9b9261a94c14ffbf4a04176a7c70e3c58291b80bfc83918078bff3ae221e4c6ca110a969a52a94af1b4b312ecef5beeebaaec971c6cf2a526c84536915a16b89a6360ffb66fe942c2e3396ea7fdf2099742421fb6af2b05c9a47954478c7dcead7003aa76e9a2be4e1a6c0de8567e6a58fa06e763fdcd8ed7b0cb5586f24eb9f5b867e535b79381d3123a5619a83eb63f0e51fa1c7a8afad5ac6005da311691c4b28f6e5a9918de28e1fc3f0bb341c60aa5742c6ce51ffacb429765aea6e6660396c3500cad30e606dbc226bfb267883f57be9c5dea2494e3f61cc8c2e1e229a1959829b1b372572510e7db8b8fb0088fedf259ee39fd0eca9c13f368d1b42fff7a163d2c4c9a0a0b8d51ac77032e8a1c7c440af3cd4e17c88f11e3de8c8e32f29bf79c44f49cc4c077ea9ed5ef4543d632952c2df88bd495902163c543016686d43fb86d3d3526ef1e33ab285332101162e8cf9c09f2c5ce631c61a733a86b5f2d9718a8627232a635891d3ab8e6a099b883e6f42b36f316b6f54a8a0548e67cb03ad612388f51e380f73cdb11ca798aecdc530e63cf58816d4f972254626732cc8c4c1a4a3de0d8a7acba89d37646bf386b9972ae9f2ae26dc0e941f913ec1c0e20325868e14796de53dc30d5e37160017cbd2036def19c93a940cfddc417a78063b7909b0d22d924e52654320028805fcedf4fe3b17a70772eb38a2561c5176193c074d38da5f8c4b52e080ad423563ba4547630351fcfcdb20c11af46e2f625c3b4dc385a439c2a442cf52740a5abb86f27fd295c9ae8e224e984cd33f0edbd34096efc85928268de869aa92344ce13f21e310afdba549b5a20ae02f21e8e5bb8de06763669c30de0ba22cb8956ba85441a95c9b859975a629bd101e90ab056842a53fa09ad7e0c290a750b54f85b93bda61a9dd6813831d229596da5a0af43f9ea72226bc2280229a7598e4ad811713e04df51e6eb8eb8b9b990ac9484d26aa5faf2ff3169fc992c9d4856d97d82788bc59899d92a60c1e2c3673a790e28071d7a5ef4dc3f9b9f938fb3adfd2cddbc71c29c797758e95a78159c93e4d7f824752cd552b9c95b1d8041ad7292da8b5112309de7f65df1b59fcaf4652f8919f494b39533a802ab59cce26377d2520529c8b2ca056afb46640c6bc230bf305a1b9b069406d98db237683a3370301f18611f2fe0630aaa8cfc1d0ddf9fcf14ff22ab9c11dd9270adf1188c415b72113aa7c3ea77d6c0efb093621c811b4331d3745189efc45222f1ac5dd9c8ceee1f60f413a165f24274ebd402c29e512c30f65e67855ed37ea76172ca07e7b5f5d36404edf3c3832ed7d45036c9bbaf72a45a1a6ba1a2749c4551fae4fe3b5a86317741a9ab4803d1b9dda5ec73f05b07caa5db11c5af64533fc91cc460df8677563f648420d5334c9d1113ee289c68ace4cb5cd23403e6b08132c4cd04a29028b232e76bc7259051ce5692531fc866e7a2283a8c50021812e5721422f64292721849fe3384b0160ee6ab2911f81defbed0c9b94ad9cc38438490627387e53b5412a637aa73079ac5fc81ab01242faf7950ecc77d90dd612ff254b3ea8f4d924ae278e764fd12c243ee6c7c0924dd2cde3700e3f239244361010bb277092b2492c01df6259457a18a924d7f4f0f0005db5b2f839d29f813c6450d92491086ec7767ddc2d5cbf179bd5b9c60710f085363f13093844dc1b8d7cb9b4742dcd8124083e862f6ae78b6b9d9653ad23f9f40d20c33caa490e302621236d7a57756d77da07fd9ba681600b96aa131b961ae52e752921e272aa34ed1691a3f18ced14614f67967c52f23f34571fb212c425bc18812cbc44953c1863056cc3e9a5a51ce04c014637ba7a8abe2430aeae4768085e5e10ada70b43202a4747dd760e9dc7cbc88001d33624173f3610e74d118adca2e0f12f62d6a84c253d2afd810749dab6b765eeabd2b554ca80c6f4da820e79e9320c9b6d10ef05884cb68b06a9a6f8587ef8ec1dbf961f6aa85673ed5f41e1a98485b70d2675dc69c2668d7f9532bc0a4cc8761f66279cc8a36a5cff0584fb69e669396598d5c66943b498561ad6eb5eb00e64b1deed8c6e1083c0ced716c8d98358af08c1455b48cb1c12701634587deed815087c31d4426356d37f6b93c96c1bbb1c3f8f22a06cf9d54643d6eaa05ce1928e75348ebf9a34e41c325a3ac3026145b1742a0116ac860a8bf89b753c7eecc705bf817cc2877bd93b91fff3c6b90ec7dd7179123fc0c068bb4f06efa10931547e82beff0690a0280e193263186397442ea3640c4af412da6838148962b6db1fa3a65f24a844018db88ea3e409c947a0373d46f1186ff30c68744d85a2b89b8e1d7bfb6066603bf674312c753c01d9540c2656c97ce32d3c048e49d935113c3a3c4aa6cee3b5e6cb5e17aa5bf28eb61065bc27132da9a1372e17222c405d8573a011cca025880aa5eec5c2ddb06cd5b353130e9db35a314e2c07e25a4e71bafb8e12f163fe1e8480d90fea1025462fdc28e3af7e26067c30e47bf43045efb39beb01f2fc84072742d1d829584dea9841d3b39b92b3d0ec487fc98d20c5397040608fe0e9edcdef68a0fbfcef4a1924577aad0bea2feb04ddcd60696b06ec827aa242d3b1f6cd1862ffd3e9ffe80ab129ac9fcab0622b901be2095b3cedff8f64ea8728555f867a0b7a7413d54acdcdf49cdf78c506fa42fbf49e7a73d890f3f77ad0fbe8c34b11cda2ec750afc2e55d2b4d14a5be49f31204d2f5f0ff27d063727e55908dd0f4ff849fbd4412ca1a0f406627752cee09e7f4c01c5cf4e0b18795f1dfcd340758eda34c766606c8271dc463ce082e89a716cdc96b9bea0453969c4d8a1e5f6b8c1bc73956b2bbe68d72f031c409f13e87101150ea0c10168b8010537a0e0025438800a0750e1021a9c808613d07032e0eb4ed498aec64642c71d1156e8648302996319ac7e604586509ae9d705985a2b2a9f82a394a165a9ded4b87d1ad76522077d37aeefc66119e6709fc6e9dbf87d3456511421f158e787cb97e3fb6abcd23442e62cef1b18a9c2ee6337c67205277b3c149b54aa7d412eac946d86b87690656b4e2e65364476145f985e02fc639f858657cc409a352bff98b0cbc73af8b993c1fc3fe625800451b65b5d003f416099701b83751aedf75f073fb0f6b2c58006fafb8c55bdddcf5820e211b3ac3f49f506bc8dde4069ae5903f732250f0698c6968aaf7e71ca344ef2e37f99602f47a0884905338dc22fc1591ab3e4bb18de3625699d58d1b565154c3201d1e2355e97066046c4b281a13ccc49fa20e824ce75877929247ca56ad4496c8fa1e21c7f2c5d06238d69a717e7da7b61a7865ba7eddea228b18ed479fb3ced1af958dd082720e4d0bc8327ab4db26285eb1475f7a63ff81a8b922a51a7f2d6458286dbb92e933a8f7c1a7b60413ec24fade41e1f6e916ff0edd95d4de1a68d05c81e3c3d5b4ad6fd0a2bd9c4bc07b981872699ef6c63b9fd03415f39260135213db7d14857e89a1854014530151b0c2c6ae04f7b3b7d028719b0db4225d6e265f2127a79cd7bdd16a86a38c702bc26db34e7212571aede48196430f116603dce6ddef97060c3de085c265e1fa2999be0f0b8634dd31b37b0596ec644bfe48623c0f93820b69fe0e9fde67769a0f3e8dd9532e2d54bd32b37aa596eee40bffc4627d8b93860c63ec1d7bb4def0140efd1b7973a961ca9290cb29739e834a16f9a032ab139f035e7405e71d0c105b24f4939823021015dc8bf1712a6369160d6586d6ada48c85f115ab02b3c4e6f5eea1113c70d51f960dc84960bf7f2e82bc8771b2cd935b46eb1eef01239bf3f642fe83818d6ef4a0799b9da43f0206e10e74d89e139c8efae2080cb260a8625624bb21d83b0cfb813fc0767af522323d8aa6eaf256eb54cad042f3823a384ff65d14cbfe023b747da43302dda88f3ffa40cbd034c1ed1bb71782d9e6c58702bafd3a43b36848511175823c93346d7e99f5220b2a06d3e9cd2f0d1894e61a174c671e10485847cde4b644892b5f27e2c0420f75912673bc54cf318585fd58b8a18ebbe52949ccc567d29ba46b3f995dc1c1cf234944149797a8423db5caf76f04c3879381cec0569b00097e53ed86ff389f1fbd663d382bb31344a6784013e6033768141b02ef06ae85da57d146892d58f1e80e804ab72eb609103013a1f66f6ae8bec2efa514b405434fecaafccfe00d82d0f7316b105e875e6c6dd0075f25e04148927aeb3e04be7ccd4adb39203c057ff2489926e934d995f140c03dd625faa6048f629c9003cbae779cb0dbd766f42c7534f1ca787df84efccf0f74e9dccfd0ce67c369eec2cd8c1c27778006fbad871ddc03d76325a61566eaa305a358e6875cd254d1e459316fbc2253376af7ca9b6ac145b06a86ae1431bbfad7f2fc1bbda566e2ba55c4add1ea00b80a80309249a410ba4fb8c0a1255224627bfa48893bb5dc5873876fb4a3a3e13bbcc311ab731ef79f2887cb61a3b4cec3765e1af7c4ed4b90a85512602341058392b76c299541c7255a199af923a3d75305feb2c00674a6d276b9b84fd2ebaa58a503162a95addddfb8f3bdc469503e1182fb4448c1b76530d2a6199b0546d516a290d759bb8ec618b407a897a21c035cb3b41ba16b6040c7918288634fc524efb7a66b0c4e530b0a6dbdba85454d39a1f95b44dd03ae6b4a4d9b3df4aaa0a720a55b4a51f0a76557b63f22ca879e2207641da5ba797908eb092b37499cb114302a0d5dcb5a950f6001c0dd3f70cd945e7238fce42802b158bce04cedcc3012185e9a41512dbee14a01f92fd16def871baf038253be7d105acd2134cc9bf010a8c42688c8ec39ec9514877a0d60e87e99a235a8d97f840f3a5d760412d3f8c161b7f5b2d8b4efd600d6873ff41a9b3742472a6690739f2eb69505ee2084e54d2850039e77ab89bb8fb938fc318e8e21d56612fa79112487f8aa7c39ce7601b8f047e71cd9276214fa4e2636a958183bd710a96c596e45cc05a4996548b340ace47036aaba9f2e41756e2d9e71af1d22eb0ca49dbfbb6ca29d5b0e5bff515c0db7fbb3e345d8fb2a8d3bbb8d5209fa8966df02f2c7d559f98b3ad14863015f07e1d6e49e2d24e67fa390072396456fffce06416ff53c7c8b57a94c30761bf0e90d8b43b7ca616be174368b1cbd52719cc9cc346df855efa9cb551ab9dc3080383508e207003c927e32d30b99220cfaea4dafc39a89399bcee380efe716d88a3e3f34573bd5c907675211cf096888e0b8d2b1729f69c85c2807b520e7d8fbcff35cfc09c8a05ae76482c87be3e04b8cfbe31a83d09dacc1688b4f33030ac7ca9b3d720410b88cbaee6d46775979a7ee0dabd062009c95f8b9ad73ced1a8dd88796ad1644fd58c8f4a0765c7dbd240de28836a67ef156da1e96e105b3629b799e9533ada2ef04be23eec0283a30668b4b9a693e01f2dc3de5811d337f8608c97dc9602fd3e002b92c30c00cfb72d3d05e7373f039c70b30b0dbf15b2cb6d0e59328908fcf6d735aeab47dea7f5337670ab1da6fcf9f651b4ad09019dc04336cee67cf0c43b94550957a7de4f3cadad98093c1d4cf8d7b9d27a240468c900d481fccb7b51b5dfb978dc23112a8aab2dfbbc2eba3aa1f9df8a4a8b3b1f77a0fca4cca1aa4d5ca05ed2ac2066fc72c01f289061f9066feff8a291b5d9ab0e726f2a85256c76c742d91f009ce6aa1ea1db803531a0512e3beac04a5ac91a59734aabe60321faa235114370f6e9c924811a8fb956d78966aadb9e17daec763d7a7e1d1cf304cf85a9f7ea183abf0ab345a918099fc9eb537078a842021e97a36eae81b5f78415319222cf1ca5231f143cb55f01e03acd05ba11864a621f0480385c6ec3abdd7a337bd06ec1431ccaba330cfd10def2907e6b84e0cc0833225f303e171e276db6931d293bfad305feb3d54c36261c9e8beaea89d66dc93e1661bd2153b6f21dd5a09a826a254bbe5a09f57e09b29bd5863c58346d41bc92fba0fb4cb839b1c1ca293bbe77ab887403b741e06dad7a87a7412447283b2a20b3678c5835ebac4efd655447d06557ba8984f85671c8293572f5d6a467c070aaaa0da51f8d1f726ca1c972e135579ccc45b008a6423c6e35866715c8b60d067e3f6d08c91f9911609f2548f39801fd12210d5b7984abfe80b0a70e8824afe080526c97ab597478c705fd24c4a686fc0e99188559d00e9d9bad809d0b8357c874c045a50884286ce74467c6800c4865765a3bd79dc85f4e11ad11213e320c4cfbf9b92c1688c714250df352111abae7cbcd5249e893ec8afa32d38103d476ca6832d5dbf52e72aaaa718e11aa5dedee11310c7aa84cb4b02c3aa77a9ad274aa4b23e885c51925393deb494980436e2746d0463b7fa4abf921dc5b62205a8d27c82fe17e4dc355807dd567e47372c3ccf4d1b376feb0bdda747b654174fba1688a9a0920d0d15786a0d229fad9e009bc9747bb689a17456046d1ffa846908ce221dc61b9088f9e1466191d634f9b8e6570ff118e13dd9905be3d3099cadba85aae1e2d1a711d89414031859ba6473bac0664eea7a6356308193c90a6e0d5df930c029c324252a874b959294f7fe00747257f0f48afc28e022d26b2280826f22c23d73de43437b38bcbf1fee143a3060f1fed08be127337eb9796715476cf8950708ea0a785e0e052b61f2ca1ee48cd5eeccc8967de0fb830350434df77a45c5a3407c33203d669631417a7e8cafffe3f385df2cf80453c7d7d6fbf38ec072e125fdd9f51e991fc3ca137937761892809501cf3e1fa0fe7a61cfdc6820b1aafd94b99ad092a94ea249e3db505583104affbf50af64f9791f124eac4845a5755e89f359c46f6b36f7f510643aa2e38b9ca43c818457aba155b61d0fe32554d19dca8ee77d8079e378bb723697cca4a39dbfd0698012a0c814c442a4831ae8b0908639234063004aa602e3990987e3a88810190ce64041639402415010fc032003e4b824d767b7121b31748e7e1265508dc019301a0cf0a101a1c1001f377845a0fc26e77d53f09aa7cd0d5cda28b940137d8de1f79beb140e71c312e4afcdf968418ae7de8f7d973ab2b7c8e8030f436300a2dfb4363b0600fd8654d0a7857aff5d68201f265a3212b66e25d13dfdf9d175deec0f0d7f0fd461987f048eda6fe3dfff923ec8d56dca2d858e161a71a031960c7e2001ac6719e76646985632a49bf3410eb522cf5afa462eb54fc2646449de74c26e95505838721115dd18358e37a528b75c5011d8e09b30387d2017bdc8fe6342c16a955ef6b6c5011a473a4135914133196d0c345d83bdf1aa47215984cd17d1c79763db4fc58ac17ca0554d504b34bd34daa2370b5d8026b1704ed0b8538897fb6df612f1cbd0380e6a29dc7ff1fe18f33bfda143e1c3d04243d019f3fd8107a53bdd74a7199ba527122ff23c9687ce8e97235bdb78832690d38b732118d0abd8e3f9f65b7b64819ca991a78fd4b54b75f233250527706307c1aa9e9deb5b00807da8095edaf7662c0679616093a280fc4af87d7ad72d83ed724120a719122382634f5deed60512b2a7c0f73c97ed0bcc07cc0e02b9efedb00936a5e56202ffa47387c07fb6529fc5e59831efcac754855caad1f12f46aab12842af3c95ecf9c208ed333aa1214059809c5742a397953ed5197ba1d2382583932b4436625063ad714190a31901a93a94851416a4fa820bfc1569798298a7416311b503645844c2f84ab91c3a054438a7d1e357e166a0f949cb606c07724e658a41931ea04eb3fddec9d34c63e1133c66e1cb818a35d881dc553a46a9df9aaeb98ecf142cd2e8275393070b4bc9618a8026b82c3b90ebc3e103e5bb4a23d8d6a7e95d69843c4efa3e7e7bfa90718630e4f3b8eae917d249b9438e312175df09668ce2aae7a2742af079e104d07b3682e0b3e637448aa5fdcec2414c6b38f294c002390a5acf4505b1ea21926a3399542077edab17e66e7aad9da3025bff36a53ab0efd7b8e71bd6f45526acce3e68acff14d0bfb849f7713fe72f9dc21afd3e8db8046421deb83aa8f4aa7f0fc240508419e204c227c438a8057b8e067668077bdfc7e75eda41924d24b2754015ecb90aa658699178294a860644c9740c45a91412b2d3c30b82874eb13419e519793eec6d5e2ad8ee8a0eec7172b21e17d785a0946e03175c8fbd5f3d673e1b9a83890689446e058eed923679599adcb41a3817a4200a6ab1e2fa26b134aad190713561ea7aa356bf6c5cb84e8f240cd2c69784b7f1775aad81a894955a20be1b728c3241b3222abf432cb42f472ad11f6d0d0784807a90adf74c3e6aaa686b58bdf870a4b2ad6edab0c3f39a58a53412d4d3110acb7580b26ec8a2d2c114a034f2800894b524880391284942cc412c1ea0ddad3fc1c8fa11367321d7e3e7f96fda54b9716466099b8e22ea20c833334e2085ed2060078120060415b3797bae471f08509250fb4626b402415c1415dd09aee6a244c744ff8ac345e95f5f9af2d99701ca89c4c3e14199ebd9be3aeb25fe60661fd105639b7065d76d4e9ecde6e3ceb141f95dc2f445a4794ca5243bec95acc8de9bf4c55d9d15784d8833482e1798ad4640306db51e469dfad354fe30b414de1d7242c73f45ea05794e2e65f20740138e59003ba27ddb866e71a1887188e15601fb819f3013e3178ef1005810cb08fee4ba971d07492bf768df252f0331e4210f396d81ac5b8c9f86b1d3e4b0e49054226f0727e5177838885cdc9a3688a4794ca8f3d0136de371ce8fd7b40a41f1e4637cf4d04fe6ad5737535e6a72f89e844c7d81ad1ffebf7481d3b38549523c5f3c75eff250601aef71d2bccc559569ce17b7a7f7595dde27e24cce91c26050d5817f30622d761a59ca531f5d42e55a405b81639a1ee00092de3d3cf72c315fb8431627c5fbf285a66e45b967927c0581e2f9f964cfa7197c08ab40ee9e7148651a98370dc50a654c6ea5fe8f40645e1512aeda115e08e136058aa6f597a44411e32c5e8a8fe6f338e6381cf6810151526a09122d27642edd409685f8875fb2655322e9429f23a92be579d17070e6590a702cda997aa90a3db13e484a74da91c25c4b9c8468c10d25aa59b7603900e92ddb633c93f6669a5ad59d571b7b6c62d97341a9418a2a22a0d6091ac21bacdba28724f820646b72531d0056efae619485ab67293deef026cef386f4a5fcff4ab77698db53a06703a7ecee306b74b886db217ed9810d1e8633a8f172c7ddd4c4058bd5e5bf7b9683faede26546e2cad5938153761b1c51e47307d78e497c208e12b2b9782b2e55800f6783c4d89ae188b2cc378220ca2113387e69672b24329cb6922371e97a76358cac5d779c90f5ffb3f75ea405e6bd97f4da2b10b5c675ea9bc2ce6f8f85c5168762e9903167d1f98b0e1a2d5d488b0634b3a1df0e4f3bf4f5a3e8d1271b2fbaab5a87cd6c86782aa795c9d07bdf9971a87487371179f8438ae5a3cf677aff1b3446d0f27f079a85e130eebc247ed54fed88619defdf3d6141abf535ec0daed1d7e9dea3ee813a1559e74c182a885e040c522e988e7866b62140abf665a94108a7c65769c75a5182c3de5cf80e692c7eb62aa435387bf90ca424bd4774ce356da1925d731f118cb4c616285817af631625d92fe659f011986e165fd8562cb8e6b4d5d2bada6e31ada0514ad0d5255a5fbf9de57049834090158caaf7a9f5edd3015cf5fa5c0d2dbf7041cba89c65a0dd9ebde9a10c4e74341ff2a6c052127405bdc34116e159b8cd8ecc26f9ada96a85b1146b41f5503d6b2561f39ebddd3868e0c4fb70f55862d0a032e5b247f8edc9178dc7f70401e2e7931ab576bc1b5aa5c8cbc5e5ede9772c524fb19a14612677abcc749cbafdd6f7480d810883f76399a27a56df21177ebb017da5b2af363e1e3966a9af7c1b41dc3e6473ce8beaa1683fc09477bdc8d04bd5752253ff22b75d5489eab114b1df93b88f579a6e9281c22521043bf0e6528f5ab61b58a346726e0e1ae00d086252a7cc801676e9b0bb17f17eff2ba7bddc077631c47069b4cad7471bc690207bcc1b253f3aa0bb5fbaa6096375e261829043d4980ebeadc1e712143f562fc23bdc6064f49e67ba1523ea594e4ff648cddaab8d772946d0359f8f824fe62d7d381125bbe5e801510f4755d5514dcfd3681a54f8894687158266008bb5af85844e6d125d6b4b25ea81fa5db28a3328612b9810cec27bac377cd6623e144f6db0b080b04275a227656341c9021144577e453a6d4162c4aa203d7c2ca7aed708ed2a78acb14e95fc4407aa2a303658272b03cb594948a82471efe369f8812b9276c9587c6291abff3c79fddbe93d138b9191cf68ac4ecc546aab98952303b37850d7300ff1a62f9d2ae42ec1a72b9a01eccc72c8c95d453c314ca14379739043c67783fa29061220b3433f04108990d1af381931473b91da73625f8c6845b4a4a2714dcfb21c5af73e40b7e70df323c9e5b4fd8dd4485a452aee40814ce4ba66c3215a625de45600915dd96803f41945ddb3589674b991aba2d314a0ae1cf8a1add4a574c88ae1d5c935ae82fe7e828c5d8acb7e22e397f3372d7f7f8299839440728f989545a812ff91372a29d7896cec37a54ca9197bcaaddbb40151567d2ae2be6c3cdf2a104435c62e10f224d14a7827ecd1ef0784c000f8536cc6f4f896a352873790b61b6b373c413943cf3be076973c9b0d00f81cf58bf7cf683d733a7a33c7769cd279eb300010945a9c14a20ab0bb60eb0688ed3ec8bef82aa3d818775ab47d185af3a5af7dc4b45b394fb18e67457ada7a792558d148a6b6b7e677a2b4586b6741c9941fa95b9c13ff1e13b4ba60eef39bd481131caeb86518607058aa52961f40364c523fc7581c93e65d16c0f769dc24202049002a79ee616f96d04247ed0c4affd93222012e9c38219fbc8f625ce17d5ea8366968770340611c9e6ba7338de5ec4ceac5fa58b03a66451e1b78ff38f23853868d21e637dd7887d50747f94011f7a7678358ce51f07a5f1606cfe800f4af5c701c20fa9385c3156b41ed3ed70ea11af0e2695d28b9f98bd3c70b7d241e105ddd85ad5821cd2c89077b857c0f6f0c46a4b12ecbea8bec0a0d7d644ba3ec4e5d84d9bda44a226e8e9538e8af7b62dc5ea7ca7346c6dcad7fde1fde468c0b994115430fe35e6fad7870d874adb2928a99e79a28854f230d74454fcfef8b36a1f540a36768725450c6faa9d0bc3ed9cf2eb40fdd48facb8722e512aed25b9297e396da84aee80f8e9fb038d95f5e9d409715f354e18bbe2efc338089c6f9759a8288227b81f273ec852490a18ddde0aeb920cc06530ccffc50727c33277293be09d34c0ebea8ff651ecc2edd0836e37a06a50bbfad55b14d349f81c3fd9d8597fa9c01382eebb81901242055ae24d3ed18cf659756dc0619d461d699041c819a012e83a8aa4bc797cf97ce4128b9daebb4887a763fec0b45cc3262871d353045e63149ec096f719ea8b9f357a46b976a4a52a94c46438f8186b2d77fbd17075b0e04a75bf826c068b1d4237345eaa16d9e0daba712e3834db89f6ad87f6c8084ba2a7c1b14868a2d84d66a8bfa7037b617dd285b1da66d29026426f9c5b3fd64f7037fede8944f77c9419c3980207d2b6cff9f5c06ff30b640854fee3c9bf111c02afea591ca7be5d081bc06e23ebebd5df60837e0c14daee885ed4920c4ac51867a9eb502051451bd60a0b17e93d928a0ba579d9b2f4d2b1f622bf51b394ee4c5b8f2476f9666efd24558745138510aa6fdce61609727eb9624967f9bbbf41fdc46b9dc3f06046ad286f433169001a831559fe2cdc1982136203f88b78886abc65e2504e48b78ad738f31ba7331a52a786368d4b1a2e705fdc080ff316d598246181010976c72a65a5500180351396c4d69c1709d05e33b468461d6a2af3980c3cbea2548667f46c69da8965246d3d05d32b4807ac933373a818aeacade32b51b34fc2036748cd826f985679194b0adb1a5990f365b92f63db11ecaa960a69a040f07efc7c8c0694f5f531cfca5da81a466c70da0c0c247c641ebb43ff25c30e15794993bd180b9865764bfb956ecaa47111d3c401965d8b4ee49913630b9f980c7834a9d5c97f9c3b939f47ece0aefae346e042ab367ba54201e95493a751cd1ec48d4ff45b323d795eab0d1c55428f66747876876245a9f5757a7e68058fe5696e0626991bca8e6b7657ef3ad70449b86b03c367c1e8b632fa647190b865a6b8d34420869846cb2f7967b073e0b340b570c4f988214e64fdbb7d30f298644219820d06c4e6d5e0cafae3629a54b4ca0c17825301bdd145f2b47962716a37cc9a306a54dcacdb3459e212acfb3b85d15be50d2e483e0ecd12e4df44080685a9865b327a6c86b38890627a61675d2a0f60cd79b5ad3200ea221a230bb3e26a6b10b67d24ca23559bee59c7822d59ae9a23ca73a7990209f4edf24fd6d2288cc5976eab3d58aa36dd77e68473d6edee82b7baeaa8731b26692b553d66c74d1d7676cd9ae3dc6176a2457e4357cec8822bd8cb84b150e599f51ada93fd145a34274c12e5f6bbc96d6f60d4fa3d74db76819aa85fd66d6e6b1eedf0d63648b9b90dc6d429aae8fc42ec5eaa35d14be79d32e131625267803388906314c1b64e1069c12acb3c257e431e44127ac3ed82b4fcc64aca75294f060d487e7ce9ed343ca437b1a94f39e30f56950b672489a65ce1ed21c9e2c4f75bae534871ee9961d4a84e862b7db0d8792def4c8327ad3a09c3138d448bd35a753e84d96383b5b9c5220e9bec2b367f668339fde7838c311c3b3a741195dd810e3ac16a83c7bc289445fb9ea744b4873b294af39dd228f64f98e0adf7ccc217d65195de22bec409975d9c1667526bfe963d4a06c826699d360ad3f0dca8a1355e499f0fdc01e4466ede144ca52fe98136926519a7530999eddd06213a6af06a53667cc349ca72f0dfbc1300502fa429ae9ab093a7de88ffc2950b7cc9efa53812ace74c938c414797987ec894f05591e0706f2b367c6f97d3db387ab35d566d296d1a88b92a6ab931053e4b50cf585dd1323cba376459896eef58593ce1bf651d3d60e9ab1d38ce11879450e9dc8da9968903628bb27aa482dbad02b7228a3cad45ea3c189e11fad1dd881c050de238a704286b539316d01b159489d80124bb840d9e0bb22f72751280d726f992e695a26cc03cc2659a4c1d77c42749147882ad24783dbb90d539ee862ea9ee9ca7e16eb5996c599f504e597d92357e4edc3ce36286bf2253eb2864bae13446056dde1a0a62756778208cceaf4863d918aac5d62a163d04e0e8144a12c82d5639e3e567875ed62ab3b6f380219054498d58f90e557f70922322f9c1a9a1913944006060a2230188d75c64f600242aa5611da22ca2631968cbd59e28c5c54c1c09fc5fab0094415ec49047d219749ecb248068632e6b231532e105f18a04474b1c7feb16c3000c3308cd6d74c4e8eaf199b31f4e4388531e8e4301665ccbebb6c3a91c32d5710c8c8c8982087209091915141ae8f2eb30683628b285b8d4e899225e3cdf2d8123385fe8b2e32cb25ead1b498daa8388988c9f664976366896b449521590351852a61852fac71c444bbb299f2a3070ec41714b9428fd1d4882e33d30dbb32a34761c912cc52aab27cd843fe6a30346c5b57d7366fba18135409da4033fe14318364090227b27c114df8b6c84483da83e83062b31b76b3ac6241ba0504417cd45a332e8b42d949f6315dacec630981a026a936b559802baeb8a2b5437e7ee2d003acfc631ec7bcbc361aeccc6a908806b39b35383922706c5012b1b1baa5735329afa5b8df31e10b59b9a5307dba4cb8595fb35821a84db1d17f2dd68964160e656eb1a56ee7161b867538b0635dfd1617209f329253b7f4a6bec9ef437d0f518fa8d3519f3f50f1b49d4e271c9e4ecf4e3f2d3dd3cbef74e2b6d3773aea8419d020fd11ddf551842f8c41a7874056d93efe88764998c8433ef5ee769c9ec2a1f564eeb4543f4ca552a9d60ed65bbc050e599848de52b773ea346b71432152e34e97653b1ca7a36ec9b78d43dd92a7727cf77459a93bb30977baacc72e47eace8c3a3d08cddefd910a5367e1389d763a664ebdfbdcf093638e79a332b697c2ad1dd93ba72561ea70c4c8acfad655ac837bf7185f4e0fbd14eeec7de61f4de88839935c7f734559f504bb45c9408d868965abc1d9e888f0b28e986f34481fe49475c45c44835eac717a9d51b5beabe976fe587ca6d46536fd48c50c09b79bcee2b676d49fde44ea2537461593fc6e0c2fd77b5edee4eb8aec3eafeeb3ecfaaa8ba33bc7e88ae248965344e1532473ef36cb7957cae4ef4a27e4543d0172ad5d6bf7a9246e74121f4e61edaa2b331d9c774ae110484ead72f7daf54075bf314fa1f7c3c3d889873ccec1bd7b365d11866607596c64faca3ffadd4d376c1edcbb296896b2f7c68e65f73ebd530f7b5bfc1ea666ea13f578439951a69fa6bde77d7ed7bebb4db9d345ddcbf1dd266454f11e84e6d34d77a39e5763eefc5d794596371c52822c65a630049cee749cdef974adc371ba46bbd4b7ed1b8dd34bfd467fb79e8b9157648efbf13d75ef863766486b47eaa737f11df5ee9bb73d77b7003072ea3060c457ee6ebc227fb7b58300397502e4d44f97003976588ccc29fca3efdd7bc6beec39bbcf9ff76c7a31f3b4eca70c631be7bd0c9f775abbbbd7dad1fd7b17a3cae931aaa45237f442efa8cb2e87f7cf6bed389d7b086465af0756390492310c6495e5ab3c0bd952ea11946596798b0bd0a24092b30ffb8868504edae5901905d46af2dce4878486334bc351227cf20b3421cd21102edaec5023a409d048a5a4921464d28f2a2585576d4c264d97c98f7cf956687cc8f331a4524a0aafaa529d1e7177d5cdaec2f248f5135d541d96495e552689df53a954ca43a5bca354582675573d8c2f99f4752ad46d427a32491e613e3e157bc5ba462a7b5ef6dbf6eea44a61524926c92472a9bbea7dbb7b5e97f250a757a1befed747a1505ee85d4b7d9dea8d5d2d0f1f8048ee70abf3de79477929eff574d4e9aa1baa544fdd76dde9aa772a7b3a1de5a94ea98a6559ea5b2a533de5a99eca541e0e332c4ba552d953e7529cea3bba6fdd8f4ef5d885dd877deb52a9ef43a152a99f50ef0a915975ba7dc36177d53f950a7f47794fa550de511895ea9cbaa177d37715a54f9d4e47e1d3877f743477787bfd72dfa8d5cc62588f113ef91b461c216be44db7845fdef1612448bb280c8f0e4e189766f29c47399436311ec62cc09833a6815583621a2c3b2c4f744bf86e14d12da6f78d38a25b324b83a55b253b1ca6538abbef7bec3c140a8542bd1e85eb53b7df97427df7f4b512e44ac7e35d2aab111663236e70e16baebbbbbb7b9553125b4197d5ba21692931ad4d449c30715e737dee467b19c77533e3eebdbb9dc7795dc4dc56c556850ee6b4119b119b119b11d334ab59ab6956d3ac66b50dc95a6b4f354dc3ae691a0f32eee459d35d9c3cefe4791e3ea95017954ae1907e38336d18485cdaaa5871d9d247c489ba21d5cd682bdaaa381171624372426d484e9b116a3b9d70b815499aaf6e27d4e9439df047b9ad8aad8aad8aad8aad0a9b440b433892cecb8f88137443da8aa2c441b22cb33765ddb5e67038eca5b8fcd1fce130c3f1ba08331a0d6b9b8966ab62abe26b4bc399342cabb5d61fa13dfd902ca3edce26eda9996eea2ccb3253cc32cb4cf73c53e6fd46775b7b5967268b754f2f7b77aecbb0d9655c167ee0d9bbebcc740e875ffefc66c2916638b4d8eca46dc2168ab6536cce491fb199a9cd2ca5449c681aae2876c825c5964dfbf4286686f6167bc819596b5927efd8c31fadddc5697b7798dbb66f716ee7b68de3ba731b4a957a5fb59251fdf4d58ddd57ddc6a18781b0b276acc3198e260c84489645b81ff2f6d88a3bb5f6ca1e2f3fedcb449c18929b862bb232e4927e84a65b29abe58e307a17a81d98b4daa18838b19d2b92dfb8a41fde6396f4a347d90dc7cc4ff6f050d216c9da2b6afb36eca27edb5651f25e639cd1edf5decd1b0e4d78d5a0b49c1572a5318cb906a527b31acb19695c91c62571469c51175d74f76e668a7db67dca703864356e7b72a1be6b29a96718f5ec294d3beade148dc319ce3cd339edf3a276f06d38fc9c53725660ae6b2b85978db546b2c59fc5914a61b76a71c6e97c61eb64960755dba4acaf5c915cb19c6c1a9d233b3a47767aa0f39282da1767855cb1dc91ed81ce0e4f8fcf6b87079f947587a7c7e7c559a1b3e3a373c41538cc3a1c3e4e2061be7f387ca0f013a83b41042647fd56b1b74ef770e8237badd3e9a75a3d1ca33dec2e6466294480f281c24f3831e40a278cc10d74b8031eae80411d0a2230280c85ea5f8763e6b94845968ff447910275d51d22619e8857c0a4304d0b18148e02752886404104e643a15028140af513d880417d080acfccccd0d880f94e03c27c9fa161c17ca7c960becfcc9c208379e2a42423c38279c22ec9c8c07c9f390108f3c4cc830cccf713d880f9308be89b2e141c80210b344128e2822dc0a88a583145910d9e70861f182239335798d141d052198460b21934610b2cb022095f8802a6efb5890e1b1c5035c06cb48b3553ecadb54184922768c44ce936ee446be44c3fcd596bb78c44b57b98d164fba869a7d3bb5d60867641bba05dd02e689bcce73cd93ec63e92ad668d84dcb7d34988cc590fd34fd86bd3dbf46a7ab51cb779576e5a585f617d85f515d617689475393a5fa15f9d345df5d52948ddd2cf5ae97bb1802ef49ae0cf62757777777777777777d7d7566db7a3dfd1a21f242c3a0ddab72ae601e689675077aaa6d76a7af7132522da4e4d977e812e85b4a8857e8927ff90e3cf124ddebecfbb31cf9c0653b2f6d6de2c389bbbf0851307d3f141cf1eda7be2b4565f9428aad8ad3e8156a37ad4d73cecde3cdddb6eda6eda6eda7ef2bebdce6004e4e8fd2e2ffd16b17777769d9f3132e95897a4e2fa6afc8285ef47e5f00e0d0b395dbeafea7af43d2c04084e7e40743b52729d69d0765ef8fad3e36ec5b8067ba57fe69c2653e795743b325ab14f70e34cc7a1e9b2238ae69898539ec74023b76115f9b0996c6796b29da9f1f3d5a16c310cc3300cc3300cc3300cc35ed2e1c0565d8fedd3bb9cf13ebf3d9ce71e4a9a1d1387a7af6ffd77ebb74bdf75e10beb0b6b22c897b3a36ebadc4f5b05b2950af9a66ef9a940a98ec776137785c8cc61d49d39882b3b882ad6064b50783a753b4e5888ccdf372e7c3d71a24b8773105d629e39dd42e74fe5681ca5bb1bfa6647258f3c82c924794c92c724794c6d327561d660d6f538610e0b91b9c3a1e95fb7c3bbe907f7e37b10d39ba014c986ebcca75d1a442c36a812b8fdb0e5e818f18dfe81ebaecddba544f40b140c45546949a6412392646bed37ad86352a15826c4d7a55caf6a66e4763aac2e58a061a9fc17af195e4d8e5f81a5df555a3d0dd826b78195861f8b6d03dac56c8b9e98c4517882e1953b4db2b115dbcbf450b142a869ad584d0ec3de694bd9bbc9b753dbc6f58488e20327b980b69956131e1e8a5485a701b2da24888a851a7d813859488fe745bf8b467b929919c4bdeeda7d2bb8b658ad32d28ac93550ea752d3191af6180eb59bded51f179ce9d62435a922d5a35b81a28a3d772b15a28afde9d62ac895a02a748564b9c3f5c788e9aa439d622f93d17c35d91ebbc1706c7785e862b37da5e9166de67facb05df535a98c2f9448aed8371094dc1242f3f79853d645e17b45979fe882cd242396183e2e6421db87958a6cb310a7c8f67328c6c8bc3dac484958489f51b68f712249caf6767b4d4a2459dfc4f5952d0e6bee13658b6204901a1e22b984f3d347457686a6527431125de8ebbb31aad0ae4777add5e568715bf62e8e79edd61fd3ad40a6a04eb1b7918d58900c857d4e6b81eb4f54b1a7b7beba20efd5126acf1a9c3a3449d45d12750b875bda3b3c83b2bd14a95b13964275fbec745518dc79f5bc845e70275d8ec63fbc07911c143e0db7b47313075b0f4f9c062d97ad3e160dcb6223f7eb0362e1e064fb8d06e7d577cd9ccc3c1e23b376d674d59f4eb10ffa108824db872cd9be22e51ffdb0fe68f86bd07e622ed2a965187b6dcd23055b44093b7651f86451f75152d3fe6274a133f1459620ae4417f9449e58ca44152d7c618d2c29cd323a337a39d3384d339b858f9332b90451ca544a250d383a44bb456ed9b9977e726b60890669cbcc392b656525560dcecbe388a1580d32d1555aa2ee0a1d151d1a3a2a8c3a37746da0c2a3bda98993b76e2f8bb8b8bdb4e99616b7ac5b935b16b7973952471ee916d56deaf69247f6481ff9923fdced65d0902492486451bb7e7b792491dad53433c5be4626b959b2b6f518adc7c8de59965191bd7384f1ed6aeffbe29462d8c97ceb36cdccb28fc6c5856172593fb9f17f271491d87e1565db3d44f6ad9be55993ed7441b6efb0f0c5f8c9c3fe37932b732bc64fae753d5a8ff1acf51826adc730897185c86c02e34e9e1e9f1797ced0748abddc341053a24b661fa78dd6b64c6ea6712737e6d6cdf27461dfc29e656f62cfc2bec47e65afb24fdd39348926923b8bee346ad0bebbf3c81eb3af7726994a0d2e3528d3a0fd2f9de914fbedd2223a64966faf043f3367da4f1d1ad95ecbb2c79ce130cb324dcbecdbf64fb64782c2a6226718eb7a64efa0e8d2f1c8b20c6796d6b4e85317589fac1e413e197b638f2ef37651f89a983fe9969a6e69ddc56b8bd7b7916e61bdbe7158bcbe758ea85e53afa8d7b74fb77cafef57ff748bf7faaeefa016eaa1266a245df43eea96ecf58dd4ae599324d779b394274eaef5db8661309eddbebd2fae69dcddde7df774d4fd9ebaa8ab6eeaabab7ac95d9dc52db989c969cc10994933b3afb6dee2ba38ebb6f8bc31c69d09c28b9fe03031de097d456aadb5d61aa30bad940bb9bec3c2377f529fc560dd18264ede753d589fe7589fac08e3ce233b3c2fee5ca23234d1056b42e6931b2fcd649fdc0c6bdd79a4c17a1777ee34c8d3603debce9e06eb4deef469b09ec59daf06eb4beefc69b07e75275083f5aa3b831aac4fdd29d4603deacea149d460fde94e24b3681acda33b9166528349a6d25cea94991c147cf321a5c9d408a95b8e66ced8537ca044831a884b4fd22d7355e91a1d123367eac87c21a5a199393595ba20633db0374d115a135d220fac254d953537b9b694527675d1a9216cb25b7e2cf2934311ccb13d1a55382a3e941c1ba5c1f8d89252afb523a2e0b0971dfd464d3436184f23a68dbb1cf4de27bd6723531dde447d4241da953af618e3f7184f345297a553b6c6dc447d37fc32f7d30d59997b77c31899c34dc8ac81d8bdabe1d51bc48c681083c39de896231aa4c3d79aa7adc951eea45bb0a3192fc292f64edf61cf6ce4894f1ac4be6a10bb5dc1e79dc87675d04ffaf989693e82086df5c3538ee3501ac4fe06b192632b4c85a5b0925596a9be2f851121b3cf8f667556cc6bd14cb3d763f58486e6a23018d62101e6fa6559966559a6d9b36851ab1f3b28e5300ac5631c86c3bde0e6d4cfbc27be7eec30889d0dfe68d13c7128a318b6cfed73db52f0c9cf47eea1b63d44c5387cd8e5bd28bef0d9b6666b621e60966d38fcb23561b0413abf81d145bac4c8a4946cb3da2131bfb5b2cb471470c3adec1906b30bf17169eed8f0617f7c5123d86188e5c70e4199e62a879c5cc31ab9bed2dee873dfd094652a4b1759ce141955ea6bad36707d0785af9e060a0b78848fe8125b4e4fe6467b967d1f8b154350939718343ddc6e2f6feceed6be811d84664d7bcc49eb41afe11b53521e32d763af4164a6e0fcc2b6b988a7ac5b6690c63f70ec9098f8c70f247e4ccc7d0b9fc4f40527dd1284c617a5bd21895b1549a044105144d5304bc4120d12916f34d81856319011404044dc2862da67cf6816a98d06bbd2241e98d446f2899a16b6cf50ee23ba4a9f18bd4e478755b9e3d37538a274c5ce43fd644fc4891a6b03dd1fdc87e4ba9256de466a2336699f1c5f2ba60f83504f9a4e236e71a79f7ff6451cee8834c6184eda753a4c1e4ddaf5c76e61516565b1496c72d3af8409cd58e050f2e0d0904c261395524a2965030dc9b1ca2b77ea69bf64571fb60f0edb27c7cbeeb24a19a58c554a1e13d73dddea6aaf77aae2ab933b99876946bb53d395a03d0c424d268edea4c48f68fac961d3e735ee9b768df39ebdaf84a995c0b3633b1c9acd326bb35556825c99973e92a7be95205f76da27a905127ea0f084274021d9b16e071623eb7f548c688b28e1a928d76fb227ad98cd34d3c675dee943a554ab121626ac162e5aaf9ea26cffbcbde0a6942d2526e537185c3c8d2d27efdde30bc987584139de00b1425bc3358166ca8cdf2690d14948aed41fd93861ada24abde97e51e5252721f9828a2bf52cdf7712b247f6c822b56be562a75e0f9e0f1ee8a5dcf3667828f7b6239a23efdee3683c19f736202020200fdfdb8c3623cfdb74747474bc17f7b69f1f2fc6bd8dc6f33c0fc6bd2d27c7f34c474747475e8b7bdb8ce7b5ee99808080803c17f74c46469e67d2d1d1d1f14aee997e7e3c937b261acff33c16f74c39399ea71d1d1d257997484c339ea7baa70101010179a97b9a915ca9469ea7e9e8e8e878da7f3cedc7d3683ccff372bc7720be6839f6de99e81679ef40a2cb090808c8bb8f76654033a51a79df115f32231d1d2274bcd36857a673c4bcf7e37d467cc97ee44a8d4de365edca686696f125cbf1e83dcf4b0171c8f2a187191d4a6786ef74378e86ab39ba47471c4dae8721c3c34046401708a8fec5bb179bcef6e36d3a2f361d9d9f5c7f128383b1d16c39de46f362a3d96872727deb646b613ada663cd3510bd3d1d13693eb5db44c2e4c402623cf04d4c204046494eb5bb0b412938ee9c733e9949874747e723dcb246361a231e578269a12138d892627d79bac2c4a3b32cd78da114a3b3a32cde47a162a2ca50169469e0684d280808c727dc957354d47fbf1341d4d47d3d17e72fdca9ae1a31a8d96a3d168341a8d9673bd4b2cbd69036404040464d49993b3eafce8e8e8fce4fa793b6fab69f3049aae6fdaef9b5fb67997ebe178ee375d9c117b7424d71cab865cdf197d6176749421b52b88e7b4cb1efd00c48c8ec6bb6c26a503df9dcab4cbca40e9a1f3e19d25c21d9276d99b1ba3ae769de5e9ded32e4c49e955bbda75d6a6eb3022a269a476b5ebb024dd4952bbb09e9e56aa5ded3a6ca80b6a1776733384a4eb301e9e29fc4417964ebbaa92d28e524fd761365df79e6957252a42d4365d579374aba276d59e9ea39ea4aeab439d4fbbeacdcdcf4d50778458bbefdde54dbba89292c451d2e9ecbb6a433453ea52f70ec4179aa43b13dd727a7720d1451e7d45dd7dd4ee3be20b1dfab921a246ee4ea35df4e60823a20b7d77b05bb6d087dc7d467ca13cddb3764da59952dfe50e25ba78efba777856e1a399be320d7b94cdccc0216bc681c0e1f7c3510ace66727d04735786efe483b5443de01928d8f6c8c018d7abae07c35a0bc35a9b7a1703b3180c0cb3a8179c0b0cc35c6018f69d6c2d0cc35c6018766a61628161f51e4b3351c26c945828d57725598a2809518a88a89e5b5955ed194ad56f282cab3795e7a6def455ab345ddc4db561b13eacc4d11325a249b89d5c591f517d56866fe6d022a13d433d3d3d439f99ac1e0dbde1a99b77e9b7244bbb2519dd8e94ec19e16c3853a7d425e16e389ba54ea946fa26ec926e3c9b5c3d23b956ec464fa4993493748be566a7a373b74493e56434194d4693b1e829e7a4d3ae20ba25da29758b952b571a754afd36b9ec882bc26265474af3a87245727de76e89b369b03e3b9a2eeea68bc817ce0571a5beeeb058dfe46a8e38184495fa906341ae37713551a5beb3e2e34e425ffca250fd4928578ba45bc22ec91ad5675b24756a97d4256997caebbb254fc69bd9ecbc995ccd9c46f2e5932bf5df37818cb2ecfb58ac77d88c36827dae66bab6f8357703d54daeade3d9d68e0c9fedb0f049a1f2ec12875d925cbf652d67ccaa372f871aac0fe24aa24ea9cfeeaac17a95cbea947a7a8f623d9999545f59e06597f4217136ed9a3793abe1565c4dae9f3773baba241dc32e29d72fd74c7197d460fd1abe2e09ec1f35d8e2769a6f6ee5b2453365be0653274f7b2357e66dd17445dbd37323b7788aa0ec69498c6639c6a8041b7b627cec91f59ea22a82d224a6d0cf15508c5d8cbbc9194db7d4e4799ac9cc6733332b923b8aa4810c6000e5023294b040053005262081081c023192788003603480010b50c049025a3e7a20c0051247f038006b8789113a72b0c051840160565975a30004400d2045c48bcb2780930d574b370400025043088fdb58568250f901081a9a294b017de86106663590010c5c40090b548002139040042090c4031cd000062c400109f0d10301481cc1e3003b8cd0910347110680c9370a40800110f1e222001bae96216a04000042b0ac04a14203881f52401f7a9821e3c68c1224e3ca8c12244485a322222bcc98018475b0ce111efcf8f0488182922323c68df93331aecc9fa12901ce4dcd133264c8c0288251642486b99404690c3f9218ad1bf3894f3ef1792581480868093162f4b8b871716324063c477266707262d332b931b392c8cc4aa2f4861a1a9938b45a492c8458080d51816484040b2c5690c9eac8eac88e0f805e3d403031d1a141d1148122c7880d0a56ab99d4edacca9f91cc9fd11119649492caa05215f1dcdcdcf0bc72f7fa6182443214e484cea79839239c111c1af4ece8d8e074ba51d294e2921c6c8accd081e3926443d9105116928e8ab6b06d422c184b0d95a01a2268d89ce862c9c0437a04030f29cf051e529f1bc497239478487190fbef5399e8f261818794a6020f690d051ed29b2ce3fd5987f80264020fe71d72dff72792e86242020fa751041e4e24083c9c49607021bec822493c9c5e188a2e273dd1256b1ef070be1cf0700235e0e1148a2119f0e2fd69135d7267010fa711053c9c3909e8cf9ab982f822837c3c9c2dc8fd5924bab092a24b0af578d84a0878386590e8561ae28b443ae261afe128bab4088a2e99c4e3610f1de06123d9f1b08d72b39822be7411231ef6147ea2cb4a27baba46c7c3dec9f1b07b703cec9cce417ce923453cec1d449792e8ea1d033cec22300fdb26770a0ff1a5836e3c94572c4597af28ba5aa8000fe511011ecaa4015cf585f8d248443c9461208a2e289fe8eaa49787f2c7e5a10c12c0654fb71c21becc227265da78289190fb26ba668deba1c46979287586f8e9351e4a18e4be74417c99478244d7dc9929f3423c8c4b007828677200581e4637e47e07e2cb0c9235d1a57b9f0920d1255b79188f8278188b54ee23baa6d04c99341e462be4fe8ef832531ec69f1f1e1201c469cccd457b830f7dc8edc3630c5933501ece9967c4175a83125d2ab5912b3366004f0ce0f0cbdd72011cb2f211f2c52251c2c774d9220b085540880238646520f2c5124d00879d99982e2b011c819804015c44bed8a1248ad44c97bd79000e3307d434a0e6887cb13c0c38b2335d98d2027614b093809d20f9626d7ce0b0e7a5d07461443d709821400a11e5792424927cc1921c81c39e58cf4c99cf78e0303b00de814356c6868cc06e74d4e4a8c1517344be603c451cc9b32a19008719ccce7cde09922f98cd8da03cdf42d35589664a0184082034001cb27223c9974a4423e5398bc8975ae711f9525f3ac9a59304d049368a642e1c662d38fc86c03570d8992acd20f9526d28d144922f34003b00d811628725680587ac2f081c7e2a3470d893f6d4c8173a94c94c17bda13c72651e08fc034e4a016bb20f3864f5806760146c8344becca42424bf31632199b1d0504ea25450248a040b593e9c704041092a222a2a2a22ba3766194764967164c70740af1e2060ac736fe7f70cf5f4f40ce59861c80c83d2d022148a2c9f438d501b8a821fdb1bcb636fec8dbdb13c2f6ecc318c5e5c9963181d91414629a90c306014bdb89d4f94ac8d929292b561dd985dbc5cbc7e9890e591cca119349d7072327d300cc330acc58db925736b1a99389306b367ee4c9d6903172d3a6f580f3684f5cc19330b25164a4b729845e60c1d58ac2459de603cd80d76336f3224b3c9105116928e8ab6c0820516cab2f3aa62b556cc26c79cda49dde6e92004f54ffbf41056ab3e429484888828498e59a5ea225dd351e8344edfb40a52298ceabcd59ea19e9e9ea13cef1dc9ec1d2199616629091abe0fd71b9e7a536fea0d4f9ea79f1fa02714110945c1f370773b734ad5464949a9dae469923839f2063e3c47240e380e13252122224ab2b4540779236b24cd1d3a673d433d3d3d43797eab441149e4421224232fdc4c572633298f7c89acef9bf426ec99698d1a4264f92944936700a6c52c9d37132773323319ceda7809752693c97459f8fa332d13d62c3f516e4e6af20cad15dd19be10cc926381df63b556d8ccc6f762013d93892fb648aecc8735cb74ca7c89a07cbd0588a07c9c2e03c414593f3b2bd42289a33bc31752997a9a2b0e87648a35991c6510c180943078c316512cbde931da39ce7b8663e215598ad4c3faaeebba6e5ec3d445f7852fc61899bd8befe1186984157bdabd9b5e6f9885f55e96634c093d1c336fb4ec141061bcfad3a9d6572e37c6b5bbd16bba008eb10c1928283366f4d0830f3e80604aca0f3f0001040d1a2a2a4104b1b2c2c222040002506388215ebc754fcebaadd535e9dbe2a95b72efa68e5deff73677b30be072b7f7bee2d857fb9d5c7b30a6af1c193272745050748ecc987164a7871e76787cf081a707047b7c52527c5e3ffcf0fa0102881f201a34808254548284820842686865e51811cb591e368644882200bc1e330ac0510da4212e04120014e50018d5381a0229d763492d495c4a3604d092e44a624349002d0470c39aed6d5cd70dbb6cdf7287b86149b6af710370c317d91e0037bcd95e881bcec8f62c77e5862ad93e881b0a91ed556e3844b6a7714301647b206e38806cffc30de313b27dca0de314d91ebc61a442b6f7e186918a6cdfc30d6316b2fd8c1ba2dc307e21dbcbb8611443b6c7378c64c8f631aa4415fb7bb3a862ffcb4515fb18f78b2af630ee2aaad8bfb8aca8627f724fa28a7deb3eaad8b32e4a54b137b96054b15f5d1a51c5bee4b24415fbd4ad1155ecbd6b23aad8639788a8629fdd1b45181155ec4df788a862af5d1f51c57ebb0c882af62c6e1251c5dabbb84a449538c537f366ca71c14c20ab4596fde0e128afe4f8b394246fb4d21f1ad44a2abd30775aa0ecab9e360ac0df88b24531a57265882e698498522f4346aba552e550166d399445ae29d329f531b4f1bda60c7d3568445f2052ae8fef90be5016b584985256924515cf22a997d46993abcc74cdef63b15e3f79a0891da36ceda0f65366be64be39e9949932260f67d0a4427b6132343235a8c12ad429350731a55e094c3a0e4e58717c40842f094f78ac383527aad479b4c3835cbf94e448ac5a83bc30c599c03a42ae3508b1e24495ba86cf3eac91b7b8001f253c10e18127636fec8df530d2b73e4b4639362b75f999acd7e1a0af067fa64c0d7d75cbcca4892e514497194818c81af9822dc9214829240e6ab2b5967b0d24e6bc2d7a931676ad8549810412b8e2f8ecfcf4d497c9b56f9a8976ecb4c54db4164d78da293635cca3b7f4d6de3e521bfe287990d45357bd6becebb1255b5363ed12ed72a4505cc96d748b2a75d6d0f62d12d1a912ef9eb2f4aee7ddcebb9c7737ef9abcab7937f3aef52e4654bd4b65cdccde6d8f05a6d160bfa491682c38f9995e23bad0d7b344170c9432576225d98703404d41857d3844aedfa83db5db4d9296743a3e533754734a66e4e843d61ed2882fd9585ce4b8db5d0e8a0204e57e79bba72c8d4415d34f79bb9e9297b7db0d7579bbdc0e97b7bbcd225bdeaee9c894b7abfd6879bb59e3d8259bb78b116179bb95e752591355660612554cbfd1464415d3ed8c12554ce7e4278d8a34d83c3b0d56aed5e1987346a6e6549de8f2bdbefa20baa0a19621b670f2a58fd43a9b0ed90d7da4da737fd1f1e06eb9d05adb6db5567f3746b6faf6b678b29e1b36cf9499295527579c211ca006e9f0f5b38753a68fea90e8631fa5f8e7155d9e105dbc57a0985326b3d77dfb1e0ffaceb2a8d5f4d6a0a006a9d7e1c82a0ea5ae04bccadc487c3ceca11e0f3b080148d44f99e94a00ae3838823efe1e2c1602be0f091c3ba576c5a93962f85ab43dea35411fc344c6363a7cf6a6871567b31c0d42338dadec15e7b6b287606e651bae400dd68a131423937276acc341bf297df5f4457fbac5645f616298c831aaa8ba1e298a6d8fa01dcda36ffbd6d21b73c2de0495464264f8012215bbad9a75ec1a2b845c2f8bfac52aca9505d3ee66b128718b66dbb7958811edc414b688b2c922bd4483b57e462c69229db9e9d634b6177fa3e7125165fb46bd7f33a5d64f080cb7bc7afc6ecc94aafa4909b952b99294bc32d7daa9e19bdfb0afbe6cf4ac562b95ea29d553aaa7ec4b56a7abd3d5e957efbcf0612beec64cf5d93dab155e3dd53bd125f258ad5658d513a8a7504fa29e453d8fba14c75d1cdce9672ac5aa6046a3caa457a5faf671a74e07e569900524815edddd5d1abea4d466c2c9249f6e41cdd70467cdcc803ea1c9229a2f9ae09149d157e3cafc8d39e794b912f3a92f65b1e6245092a442744597d3bf7a095792a492402a09a47a8852015d2028aac79cb20a3f1ed5f5b057adaefa4a857f9c545f9d54b8a5fa4a95c2a82b6b1a8c9d924aa552a994b4e16eb4d13274e6fa9a7993baeae1a441ae57e1d860d743f5548dcdbc892e91870a67ac66e99ddee99d68f3ea96d58d7c2bece149386b7c4aaecddcc531cf2a798b78a3721c7765c9b59d8e9997882ad2266f9dcdf6c22179e2691355ea69cb7409e6ebed595c19534a9eb56cf62d4a1ea24a1e6a98514949c9634eb9a4e4114b9b064f48b9feab47d5a41ef625dd8e94ba99c8af67fac866c2a5ae902cab9092d4e6296a243daef65142be34116a501b215a91b35c827be7e88bd105eb6957cbcc94faecf501b18426d1ac611de99c4aa7cdacb182045a3d85696d999e691a2cdf28c23a394ac9518f5d8e59336fa64db7a4706bf5d4ace996d6aa8fe4fa2628584b502d53c4a6658cb44c4ecb1c69199ead447eb1eb9192a74f83dd3495bee46147914b56a732334d135d3a1eab53da46481121be7c443bd145f57a12fa58257775290baee4d67ca39ef57d5dd2255dd2e177674d83d839287cf5a104ca15ffc0aefdc7ea41644ecda7ce5d996550b7582c058b57ae5e7597882af5f3ae210db91e45e3034f2658dab0c046b29cef088be73e9bc96c194daae761ef347b1dd64054a9e764963fd1c58473683888cc2e28866712aa0970832d76531a34a337a3ad797b2ca311062102e6ecda0d93c8f560a7c3872c83d02cafdd7aaad1e82284e21605431a6960614a160a84d7fcb3cc3a9ee7bb9ed6cac93ae71b0975d8c95feed820c7715c9e51c58a872c79b2e0d97dea178d3032ed13b9421f51e8fb45505e6e5ca10f25145986444196f8f3f592c6b84d56cb28b39e11c41ea7cbc613ec3158d831ec2477bf6395a2d6539ef44d2b6d23be9e950fcc5f22bebf90fb15854deedc58064439a4b9c76045c6c0d72257312746e485298ce18a298c810e79d5a09cc218d090575f970025cad9623f27f66d727d9b9d7eb396abb43b00915c11106997a3bb55411e4de567af618a2f1ce56f0aa2a51ccfc5557e01b6d8c3171fed8612be0bc3b7c50e0c1fd62d3ffa5bd7bdce3abfd4b76c666c36c7e1509ab27bc761f6ee37667689ec5cb169db63a88685b4c8da63e83ff023fbdce8468f7dcb9e7dcb708c869252a6ee762044764e323946950f8715cf6f73fb69abdf1e4aae7e7bddb09998872b60547f82c6c24041044685e34cc166cc8c91a18e98636caec768376f0e7a13677a76204476f2c4b28985b4c8dec3994d4cf54cfb9d5385e1180f4b1185eaabd56ab55aad562b954aa552a9543f810d18d587a8f03753e46ab55aad56ab9fc006cc0ab33aa24fdef4983b29a511d174ce1412d9c9dcb7badd1ffdd60e2dcf29afc812ab43c670a8e10c4ba17aab7096a9076cc6ee650ccf1e8d5b1689d68e2cd303b119c34266e354a39ed8bee99a73ce1885082315391eb3d6da1885b0df361c32914d16c3300cc3304cd3281339d486d45aabb5d65a6b2d7d8c292108e69cb31f638af645610203c59c73ce39677737f6211543d1af94523ac410a11339d46e8a01d03e89e450e331718c4268979d0e994d9387cca66cd2b0eb04762886a838c10c3e80821bb2a00322983a8488145e30811d8060831f94400b3073ce89a1c070104c38ce5a6badb5fe043660eaa170227b142630500cc1acb5d65afb13d880b187c209130e7270041ac4c00956c0817122c3ac99223f2412e9e0018a21232ee4210830df4c915996655996659642f135866118866158c550c44ec1d94c9173ce39e7fc096cc04c0c05263287d85e0561db6208a494524a8982d2097df46144e263a6c8974caebc58363e968d0e5feddc32aad496730e5bccdb0947444191605491510587c481d2f9fa61d6208e54b69452887e3b4dfa7e4885c8de21e9ad4fb6c7e8198ee4ec186561616161d9628c99065f8ccc356268a69143960fb182bed879d28794521a14d322c5ba1edd0eec9623a2218402f49a2c7dc11cf3d849748b44ede0fb7c4a96f807f6cc763ce803a8d2a8d4eb174c83a053866604000000048315000030100c864342d15014c8c266db0114800d8ca44c5a581d49c4248581c8186390410040060000000000a00100a2434aa49803dec163596551263f045bd048b77b22bbc8f18c7274931f022d34a4db3d114317369b41bc687dec439ffbec14ad6dfa14c16077b447eb66dc0adcbc3f34fe876ad68b5671bc417f81d2fdc8ca697e4a677e6b3a67b5c8c132aa784d6799402f6036e441af6b2bfd20c9ed7632c86cfdf906f7650874883bf627a9a3a3bace0588151354467ac3dfc97b9121c7374147c5c26f1a957984f69c84d4cc63908fd93f0c43b0aa856bf483fc79e0497f6d0700b77a67bf8380110f801fec7f7e382c5964ea5cb90dc141116c391fcea54f9cd3c26d5a591d6b8c4af38306b71265569868e2e613717ec710c79b3ec5f9d2899e1abf6a03c49a4e16887c29bca660ec90b7e393a76097b4667c0d479bd6ac9dfc5d7a17e7af1de3d4e7974c10739e32b7fff4251cd75a339a3fe6d3de77c69e54c26c482810c2b4854f2012953cc8bb10b980f382ecc4beb6c0fb767bbde86ff37e228b4d7b048cc66032273b9c0e901c35d2ca72358bb64f8d2f8c0300249e5f643d4f57f0f8be165c02bf39a917e8e2a5785368fb25074aba3b7eb887297fa9d043dff25a3256d885ab8744e7e4c39fa9cc21011478bef46d6412dadcb85a80c6c3946004580daf2ff4d5070c779bde7bb1bd3cc5ac7b3eedbb96c18e90de048104153ea294a9adfe4784a6db38663b0bf744bbaf2cf464f36c61f7aa423971356ca466dd6f1058140f28b657573bb028757e2acd5823ec12f5e7d689b3a9d0010451224a7a2b5b393a5b6c17a47a0571d000c05594d234ba5eed45d24357d53824c13738764e6882ae91ca058cb2b6cb7220bcfbd0c093be86dfd52815730318b1f0181ef185211e2d908eef68e865465031a256ac7293e20e9b69c27d7ef59325ce057e821730f844c4b804acbfce71ae4388aa289b43b1ab8bb9872c24fe735dbd19cbf032ea1fa6f306c7fa1d9952441f2360624732ca2140120c81a9cc6c59a2001bb3748e43c02fc2c768b35f49ee1f3d9b233fa22e8206e1caa7bb4e50caaf748406e3925fa9086d2b303dce8028e3d6063993f5f5ee1de12d3d4e85506ebfb7c16fad406633fcfec473a25df1adc425582fd8c1e633243c70a52d864067eff303e089887a0d1524d6ee145cebf717fd0d05a9060253853ac3d798dad34a0bb8d94b27bdd6de58903acf0b6359c01d0bf4771ca400c42689c4adb9d2a15d6cbdcc540fe3a11540e9d701f60a22bd047be2e2d2b49de4023e34941d4d57cf908a5ad3205b32f3307906fb195f0902edccc7b54412347f11051ff230a1876f1f84653cf0ad9665ec6680687bca895609b0bc2bebecafd2095b9b6ef6a48e01423f0f0b866e692c6a63c55bd18a1fd26781290ddcc8733b237a240f4aa6dd0339cb347a71a95387db2c3414944c118f98a792e61fb1a883a8bfa82161705befd2d2e775ae544283e8b90d5d8f8504173440cda451935e72581ea3d8e4db6762f8b3cea852cbbc0b0e391aa6edc9c559c2cc843ecc91c4aeb8d48440dba0ea0920d3d2d21d646d035c9b1450312a1ce4dc46ef256e854762432393c544c2ad9487d506956cff1db2eb43bc70c6fb1912dcc5d97836e02e169e2ee71bd677ebc9b2646561bc320008527852a3dc9e77e97f32ccbc2c3db393e9b4de3bf0d3be7a1c54b8ce167363b5b1a71174af17b8c6ad35a38bd509b376a977d0d9d3485f13a5d5d2ede8e551bbd0375c70c61f4ffb76e61a5df4aaa7e6642002627422f31b6e5f16d545af3cad678a38fec1f9fe942e0ffba7a3df930083d35f58a4e2847ecb2e6e8ea573ba5ceca76667113fbf9e46a17ad84406ee79ba84150b2108ada97f5e6467e5f0e77b6af0620b4d94148720859109dbc6a1ec465ad5b3de3848efcf35ea5d31293fa5b236a6187b3592a95f86b8817a4f35a6397117a0a3535581deba78e9fc70f54e0209846ffedca64f79aa6eeed426d70bbff91cffe11537b9834ca1dcfa4b0e9ed85017d61ebaaad64a8fd003b4adf50a813039bad931567cbe5c8559854afff8f781f621086de07c4eb05152923764693a4d264ac8f9612cdda9f4cd708d456a46181f07842f424c33bf9c7b817f4fbde0ee4fbb519b4e78135828211caef909315a51406407f9ceadd3e970d1534a8e12db747eb047aa3de756fc68fa9793ead196ff0e1264f02c0a531a43a2949fcc3f1e8ec7f908ea74efb05e9b65410af9127a92ee89696043a6ba4c06f00d1a7dd2209dd410b9dcd234608314b79e2398825937f99c86aa550b82989036c099c4a576a164ffdd534fd1bc7dd16cc7fec7f2448060ce07fe2539893a557cd8bc08c319067b16c10403fdb97344249e66317c46132192e6713072449f34281ff8e2d099a2f9bc46be95a430bdf3cc49afd1436a01d9a827df9e4e2d9a00b7c1483b067f2bf3dd0ef2711f4279f07de0096765381c6684b7aca9f91301c5901c5c0f085a97c5b042c604a7922bc02f0391f74142bf016d96b375a3dfe6259fe390f17a282691f4a61b340e3c6ec96a6685e9b90783efbe253416503a63e35b103c4a066d7d9db95884de4bfc1befabbdc7987d4ca28078a9a8b5e36f77b266977dae393eaef23a45d6463bcbf98d7242c13fb3d853f497a3ebdb7858c65c934c8893a6395ca10e619b6a7d7b07303d4bf96102924b9b55221102bc18d0ce5664c6834f9881256177d2f5aa66617cc5709235681f33fdcf4b3f3ffa73e85748283bf02f4b1e5c70807dfc99173de97cc90e0a0c4621f0c37867c158c8a1e21ca9c31f188203814fcda3250e1ab8c6794a751de0d0d6a2c138ca5ea085b2ee2dee3c050c5096b7e0c2e0753e650df27b961e8c278fb8aab9db01653c951698c3a0a346d7b019e22cf35e71d6b045fa90dd469ef0f6648c5653092b13752be879b9ab17168d00b7b557483d2439821c0b7ace12667901ee62509cf8052b606d39c88f2cbaf25bf91824ea1e718c2e37e86481ce68183118c7b35fda17a98c07a2d6e8f5908a8de990d42aecbd87ea3b1b8a5608cc1f7ed049a4da593df9bbd7664b7e525fdd6b969c649faacbc978f7675c1604709752b9ce927f9ee2b058eede7ec391b7a75edee860ebeafc1bf988633caeba694ebfffd1c9eca4bd093ae2dd8424ea8b3a1f518fc50225dc0c263e6c17227d1f0e3e643a6d36d24de0ddc9b0859db26b8a72a1df9c96da8e027c770c61648ae187b950b33ea1bf25ba7c2177c58c69923c6f2d079f4e81364922d0697e0b2b3323cf5172e740b056f2fdc0029aa4df2e323a854a13d49068b2434ad293cc51a58974b0ced84f734624680a9685df905c3eafb459c6dde38fba7b0a0f5020741b4d9cc2a566c94596bf26d6ce4fa66ec8e99c936fb0116a3d48f747af56a64e093f82cef823d5a2930a92da2e485a4dd753adc6adb2783038177e18af2289a7eeb67c3ce19ee63dbec8a5c75b823d8e2a3f45533f6cf0d4c08318fe4cc89e82d6aa3ee87bc7f85caffa787d53aa0e0eee7964c59a35113705eccd94a69002e8f9b3b742300e9ad9e4be81d04083dd398560e261c5a045b4572652b893ca1a844917f3c6d27f12b6067867e318b88f890c2149280365eddcd4175b31a4c8c7373ee1b05331428633ae83deeb8dedc4f4053690b0a4be03a2f34b5639455aa26d5f0cf7d38291dbe1e2ebf128741a9863fe8bbc656c86c2f68ceb3d8c0fdfd86019b73a94dacc76631a7b1708ab3a81256e1dd188c23956070d03d3fcb761ed6125ea0e72e003fd784d0bf26fc63d13475f4368afad69ba08102ed6ffb1ff2c3226680db78a076e0c49e3de587865ef1d1f0a9579944282f8a56fa66e232774b0d2c79b688461bdc5c1090717a0209f250b4445b5135319a3e2281cf697b7e028b2c16b3cd5afadccf133ec0e8615ea3c2437e5d8c825543eb248055bbb7a0dc1dcf296a36d8d83bd46a7e3af6e7d66d7bd185f74631b97055ea4a7e0c29a4615ec008bf6e235721ab7c1ac34137861892fa4a1efe82004621fee7520c5d2c0c5595d98a6b08f05722f0bce39cf087a3d9943b8e5b7177581bea72173c52c3746aa4049aaea0df0ea4e3e23e706044adc179aa568d026c6662bbf862044086d6cc709ffda8c0b456852e237df10309d401261696ebbbdbf0a17b102f3584a013d6bf2b85c6003b364818999057f41270bd36d7051e653bb319c94998f47f7d76bb0b0d8ff9591e2e72f8d06911d1b0895b93e48d210690c2ca50578f353479513e87eb36e1c978476df74e91137b5c40b089cdb4a0fde110a35c081ac11e16438c2735862f71a472aba5102796bf8ab7411e1c2123ebb73a40e55fba155d857f0b2339450a374fee7111b48a27f9868b81bfa1ac3f16b045a880e3d7762d05559c901869fb65b9c54dbcf28d0d2dee531502115baac4fbd95b00bb4bbf109380c034ea9949f8478d8f8bcd5c37b9807b0be6db74767442a7fec36f2551312fea90dd71f9bf238608614cd6815552cf9f032ad8376c70429987a9ba03c4152c5d16a7b9c05912c04743141a93417015738c186822605c0e1d32c70fd944d057f2aa44313461fbec939bb6f81011ba6f12d254fdd520b1fb217832ac5fe1d7db1c97edd488836f7af9327820f83a7150473470bafa6817fa4235a308052ca0bd9e1c3d42b1d0ebde34605832b9181693c138493e291c7ceba34a9a232d4d3821d2eac18588284d27d4979f6daa68a9eb04c21f0685784f9305512a4b159d09ff572f707fd0442e74faf9aea3a2e623f35d4567d63e0cbec08490312216b067298e6c71b475ad3307b5e21e59f11e1c1218709065345ada578a2332ee90f786d8ad37f56c7049cd337bcabd00d3772ebc8ceef87ae42b043cad6f52688de3cbc1c80b4dacfd75035fd1b67ca22d195192a61c19d31f0f513c28857efdb4c5e0b1434832c610b7cdce35d74a9b48ef1e7bccb0ef272f2c99e3b82097454054e8e885de84e96986291a7cb27e2f588d1890823c09c0dd0bb1a1498a74136d58e3c173317b7d47bef584a570d3876397b10856403bad7c8676b134212c8dd3e2dbef017f399c6c21b2c8f75e28cf81afa7386a9596766c67c560262adaf010524c85739f3a12b0ab824a0b57c3d4c6cdd83d94e091ff98629fd2ba8a0635549728ffa7ffe666a8d948cf927fab28596a9b9bd3705cea6dfd7d1566f35ab23466032755aa2ef737b9ed372641ee6cfff9bb26cd5394b602c8c1877628cb7ba7a10cd653b26d9fd7510541efd1fa79ab17ffdb098e7598b6a444b4ffe1c3042a61f270ee32b2a941bb75d9dd64d0a6fafff0043a5db8c174da261c86f47ba2d35e0a2d9df17ecc0496f03e8a1b971ef220653ee8dbb09a3f529335b888f208d5eb54e167643d403948ee8f9fccdf87ca9de93ad43ec4098d5797ad2b19d3ea76d8b27cb0c825fd6ddb1f9aef29c16cda3e472848eac447d164e744437a2b463c5e8aefadab6a42a3a8cc5715cd11e02f92ff08fe9fae5fabb9f54b7c4f72b31e4e89300f86c7251126d050500e56ca9635a2086c52974d9503d72052d9958d7e3af56ce1161646c1685658a32928ea99684f3ea43d7260d5ed28dbe4a4a6afe1ce156a01c0e09c210945a07a3fa2a47e27c57729b9b97f158c578b9013c680e69726422e0a09800d1b5f1cc76b791aa4e1276dc639b27ffa1d0cc6b6175507c5144d0d765c31532c656c40de0a1341b5e3bcca274e23647d6a4c2cb0f0bfb238534fe3f0ee462ed9b89a5bd07149e10bf3264d5247c0e31a26cb84923d79b1f8564a7d39251009dce68732dc26b64b3563f0060d9764d0ac31204fcd777abc3b5b141020f70cdf15c36f305d76c7975c807a9b0f163b92cabd8689a819fd0a1ec83f2b99d3e8d1fe2de2dc81649b7298285f678b7cf16ec219c230181d2a905c1441826a31ee57801130b1a04c30a39c73a333b4c470f1e2702c9234fa35935a80b4ac88a8d8efee4f1811d4383191a787659868a6132dcf47f95830774922612ce354b56e934837bec7553b50d5120c9ce0c1232dc1e08ee208c87ddcca3363988512fcf0326c9fdf530d0de1ef0531974e6e0f54c6e10ed8b9fc558fd78023b8a8a11417057f2a08ced6d365fa474751e7144bed1f26f58126b670c8da594c3b3794ea8d25d211e4199074b9da034708b737e509d1ed06d2fbc2b2154410c04ab7aa1d4b91085401f20cf289be4d7f6ecb3db9cce68c939d9f110e2a9ed3605f696b4ad96ece7d2094398ce3dd6e7f90b2ad695293e1b679ca274d1a49214fa910684b8b39651dd5e9ea51a5aa5911730f94b31d236858a4cf615430ae9b729b90bc27dc279713d302144fe59e516999e9d543e664db437e5919b02d7ea5fd4ef6b87cb41b01e09dce6d3cead246cc53b5089d01415ef90646c37cbed0e2e10ce9c5f888454b7912bfb6b75e45ddf4ff0d98563156f101740f8ac1e36f0344aa8767497c2846a166b371f6d43fdc23ca1eaae6f1239c228af4f587835079e89afd5ead581b79fe6fea80e70c176d5fe3a9a92a822c3cf152fc0f6e5b609ab0f6c2588daf64777fa619a83e0f187916a9fa8a184096b2d8873b99fc62b37c0d6b3c0d8cbf774ab5ab99c7045c820dfc2ed7b528f1e1f9edeb3055c4842f1e680305529ceb364527c8eba1e3057102a0c5e47d74e5ca892d3e09d400c410cfc89cc8f2ec8413a6bb1de1e219677af0d24b1ff5c7f4e55f7f56bfe99076a303612fdd26fca31ffbf8fe811f1fb64d19eb289f5c000f8d86297460b3971a33f1c2c71ad4adc8a9c1c6a1428549c593a9925937fa0887bcca5d558019a663c9c897d505e294ad156f3ad1ddd757fa9ce1869e547d7035c25b85beea5c4e6576fe2b3834a388ce612fec9a56599344dd8f0cb144ca05be173f7d8becf3619c4a60670652dc654008a640d3a366b90e868ac72cdbac1b4b53568f305421e84ca171b8237cdad36340c8cf33018a0e55dccfdf3069a5be7e8bf81c29280f1c8e7117d55a098372b4d11e62f0482c457f3361042bed6f24883e9f2a9fbb5152fe61498d981d3cece5771214791484de006172e8e043d459062bd6f979afdaa3cf6b734b8a71dd30f7fa31c05a8a247ee34f63867d0fcc23b4dcb33fc39e5462061c3a1f8730227faf446545e2b08dd63efa755701ebf99c2502aca0738721a789f7dfb899e959c7f7d7401fc20cc6bbe1b0a258e3e99a1964e52b2a004cb988cb059f1250acc08314e8c7dc83c872c7cbaaadb6559a147d04f405bceec2ff10c65b270c50c97c71de66852f819ee0e403164c13c52464130f786d28f4b6adabd80f3424f5112fca35d42854698fb7c9b8bc0b7ab3ae6a9b66b6f42c5e6563994d6af8c2efcb73a3843c01647d178a1c8556830b5ebb572c6eb193fb689e60b4d32290c7815905d14b97b81694ca67d50654def3c035406ae780b3dcaeb6f5fd1390219bf74e933057d0febd4e6f7c29c2a5e1baf156062bf8fb95ba68eef3c1f162020afa335cb7f486f746e193e1e448c7f26203b9b418979943e088a50dcfbf00895581e7fbb27d6d2a05b53a08e98584da3dab988c9eff49733032fc74b5a7093416844e4196ff45c0fa672412b7d0896b682956116152cd09c6cb959f327447326851ddb0123a9c49096c499a0b01997f6199e55d29ed6698751c799dcdc0b0e05e55ee801e2029921321a7fcddb767ea9cd884801e571c7241a0067e5bba362cb1ce78ecea535295e1fcd12a8a0f24fedfd18886ebd0e27e5d69c260dce4378ead69ecc621af02c1f3b92bc0118a3758142d70a75ce3afc5b8ef64128e882e7cb768a3433d64853498702e1ab16d950a7e71d63bde52e9279141c68f08f6e9ff758c6ec8801a0b6dce87b120c21449a92d36eef8977316a7518825c8506537bbdb6511864291cec4a87c335c20a7ee19be9f0c612c4c4f6aec611f3354e61922dee936e9665325e6d8a36dc502dcc86c00b1b9748c61ab79e082513e41406da9d279a134e0c0a33506811a1208c78088cdf51149e6f7ecd5c0058dfa0e4a3a6f0ac2e25362094a42d0c0c97a650222bfd55467da601eb32888a99a5b9ac1dccec799c4f82737a613796f8abe98202819cf39266be364d0258d553dcdc1b4167d330d8249651dbc5b6d21a1b902b03ad054d26973d070b606641e2efe4ac33bb1fbc219b145d6c46e8987204080ddb83c0f227ac3bc79e0bf0b16434a963d37b49bc0e9ef3e75d5afdf9eb85d5b26c4306845d40b4c74fd645419e0f50c3335697c05ddc05491079316848ca9cecd77629cdbb0229757f07f4c0bd594ed4086e38c6165905fc2a4caeffa88ae27680dd01bb46a7d80be5a839961a56e1e3d26992501b4202af761cc41686d133cc9efbbde7e35affc37a92c5fdd3d5f7a22571a78c8e52a63e2c97e957732235f066247d29313fa2ece8eee775c3b4596f4dac091873f69866b1af4c0ee97a1803c807c3025c54d0c367203702ef613f861a9380719c72d236197bf072a81f36fae0d40b2bb627469f943d622311d54328f2aa1c244e4320cd4fb871bdfbff5cab747d905bfec623a977ad3706ef66cb74c57d56e48469d8d52110a9d02d91ab3a48eb9af3813fd252322bf1725f9c966cfa04d17f4316cfa8b20023f303d5c445a29c239f7f4d09e7230de9d60c2230d083c880f8dac76a029e8df5ae1debabd8874d3cd195fdf585a1e770cb8c18c52a5631c5544cb115536cc514abd8c52846318a2986628ba998622aa618c538627889d12d0292473defb72664856f484dfa4958a0fc65b02d937f998969a59bd1b4eeb294bbd34191343bf36d28cf68b1627ab01aedc07967b441874b6fc2460277eee6a4222b146a8b0291bb18c0e571a8118eff0d6f95994b05eb4951222476dfd221144f1fa64109c294c11749729d061527f0e5f8c1bdf7a754641cfb7261a34eb4b4c55cbae41db16a23095f050523c7deac1628f8c9b0dba8a96f18edc4ee2485384fe2a7b5fc6cad4fa6356c7379a0ed27b516af2d9a2e1005180335cc724db98e7d34336a6fd484b3f5934bce143903383afc5d8bedfd3089c949b8c5939aba6f42175d47064481bf73bc429377e4b197cf1e21917acc6f1d5fda792388d4c85ff6c0ffec61ff7e392c88a631a42bd520826d3f585e7ea254fed86a5c41d45eff00aef49d021903e2218906b314af00a0289241a476ffdbfea2203a14bf4204fe160efdb5b730ba067c01f04bc62052df7fd8affeb22bfef9ebae203adebf1084cf20e2ea7f3ab4fed949ff70ebae203ae8bf9c1d31f0cebea2534602220e211385f41b1b41c4a3ffa27c471095fa75a34f48e8a6190ea95514c52fe88a8e497fdfc35bd0b7205251feb31ffcb973ffffe50982e808999d48dc41c44dd8fbb0dae11eb74f9b04112fbb87e640215510ae219d02111c71049959241944fc1c92f0f8c520ca34784fa24dec581b3b47fb777436d525888e19a0723b88a6a5f17627870b22d8e3d3e5a9a0340e27114447f34d26e04afcb1cfd32ee02062851aaaa642b8b7d452c4612cdae503fd2b4904e4965aaeef74065f390cb41096e5f50c5f7b9714cea3f540d0434751d58444b754ec58b709921ed247403fba2934dedb90eda09329005ca8d9321da78153cbc9733a72db4fc5a0d6baa82f9d2a76e735dba47704841cfdf0c1d075c45161ac9414dbe41739ed4408759b533178a63548f064e4a0d9caa3abd30b8367648385dce5e6e7232834720086748cea3ca640423a6dfc6393be302c4b167c8eaf325ffec9c1f6140cde744d08fd98396f76ef28e9f5cae08dd068219739f96904228c1e882189aa86a72198800ecdc30950471a71364133a41ff837b1d07385b814fba9e2ddd8891c7433d3212f7701b916cbd4dde8f2a45c13946fc76a189794d7e931316af28b9a6dcdd54d230194c41399f43123d33b33b4eae9c17f7016f3d7eca6f52184c2a8269fd2e1b28b668b01332fb92bed7e8a8595c315c8183b1ea99056c718d6b7c82d60569f6b0479c50660c629994faaee8885a2313ae4da7d0a510bac1d789f8bd23c0b7fec60d22148994b322ba76d7575711e64e189e5476473ccc19a521f164f83742b103968ef48f64b1b651f5f0b2543a6e40f890126c67138a361007e7c51107eb3b0ae1ce0daaca20d0ce896ce84e07d0195aaabc6d752acfca3371c21a708ac240ef2819d0418db3f82fcda24041c2a2411f0ef20e2d06800d1b438d8018416c004fea10b08294c8070a771cc61a7d3fe50551c0e0ca0ea358e1f938b00e4f70f0e033145013847b2ff4e89bd914ac6e1c1ffbdd6e330900cf5dfbd7be6c7208dbb7ff50e3208b0c0939e59c019fc2d66102325b2ffa614781fd4a2a6aa03fe4e3a8800827bff17fb8daee07b66b0fda927436b0f84f0e7cc42367112fa29fbcf8f0c75aef937d11f4c07fafe7380219b38167ecaf6e7ef4339f7fb2fa080701a90e4e81484b4f70fed1f6a3aeddf2c656868798686ce008ae8b22bb13f8a694bee34bb8f212a614d9fdaddf45704538cfea7ad075b4a57ccbc43ff8977df4615e7239563e40acf313f4e83efdb788954bed0ff93bffd3dc8cddbe77e112c6f36331f89c12da6520d880b78221eefa7c317e21f18a120614f0bb91528063f2f8676ec1cfee4b394069829b03f7f3a59319bc8d32d647b14654ff32741bb0d1a94fdfb0086a1b50d76db16e8dee2d9903edb28090f645ab8a832481b81223d98a465bcfaadac9e369d36aaa8980cbf3668dfa9599ac80ef90e72e7e90f66f159dbfcd399aed240ee88483d19ef76553ffb81dc1a1ead13e25fd5f4258b5d7909677acc61e9e01a34fb9a0d4627c479add94916baf224c8f59cd3b2d35568fe373bc1fc901f5efccd204779f97b8b5e461edef4f2691ac68323954bf748b91c5a3c86c339b5710e966f6bea5d55486393c1bc178fe0dd7a1fb2df1b3790fc4edcec4c4fe366b75a8d382b4d3224d4381471a141ca9386188fba5cdafffc787318bc6b9f043353c792224919291aa66f969d9912651b0a517580a6fe01c1eeb6d834b0d3e9dd5603d3b0d7f56f436b7d3b1171b5786f7d487701dc20c8203699cf3f82d39a3ae6c7b1fbd0ee4c7fe6cc7a91b8af57d9345b31443cae2a870fe8e0be2db45adc5645fc175b9eea0220ed39149afe87781a9360c3c452f4c31a11252e209c72151a43e09479289531ea3545d89412877d5f18ad4c0876eb50266898db2aeae38d31cc96b50ec43ab265a196ac7c7c2cc20f9c89062d37ed5b4503197fd18c4565b8d772151063bdc604c7e835171b5a3e2d1428eb5f42a0814284d2ea5faf28b8f0a8bf59db3fa34d370d01687a21dac04b007ceffa1c20ec34f948d74d4fdc40c7406459298101f2a4bd8880f74e417ef22455a10428fe03f0fb02b8444cd04c3f806b02b61c509c22bca476722f3d07502ed959ee4e51aebd31d0aa896e8beee66cbac4739d82ffa083903530f3c1878c8affaf97f60fe44b42326a3160a6313bb844a18c7436fe872fd5b02872baafbf486c2dc62f04790a65b6e11424c25be826d8d480782949d01bd9e10601c2443dacd9f3cf5bd87d40f95e73e4278b35ea970dffe457c0c5d93f2279e329464ed6242e3a91a994dfa431b22237ee50764fc61acc3d61e0bed28ea370efca89dcba62ed42f0c8dcb1adb23e4f7dd54afda553b0eebaf112bebdebc2a06088162d758328941d24b2b9382e9c90495bd171fe43811ea5b89ae79294c0cee892f71b508b80f072305ad47a16cb169678a1ffe019a7d771d055bcb2808c516d381cb16a353a094d241aa7509d3e13bddf1623d0e6732cf4aef3924ce7f6dd0b259269404a49f9a4a5ddb4b6adfb85365553d7ac3bc024469e8ca0cd09489cd4149d32dca622f504301ea46819e1c64933c722c69de298ac42f4b2a2147a2e08d43d4006ed080f141eea1013290f8744d9ce3b3c5344cb7b3984c92f9066c640c3b52ccd7e636806a718c455600e91acfeb9952a5e1a2535263bd9ba641a0690ec942aac39d5b8dec5c9d9670172ac8041fb0f836986d7b2302a81a506d026bbc20ef15f1110f98f5812be0f740c570a6a0ef64435d727c09a227777f7192ff93d8f0b5607ca1a3d204c6a91870c6cb2997d875872db304119843b6f702da10bc9dbf92ca3ae247631a0bf622e1c183cbc1850fe54fb42ca81010a1bba624d5b9ddb195b1c54de1865bdc60ea72ee13d23e34343fad4cf258ca26dd475b31ef2cf01c609ec19a162e53d30ef9d1609ec1cb5e1520749da3e467e127539060c940f234cd91e19420f36445b1ac9de1fbcbfb53a4720a65b8138c16622cff30f95cb65c55229d2c02b2f9756536507d9e5623a90cb852ae159ef08d92c2d809216d5acf67c4f4e87da13544b03e781ef935a36a7124215093e8faa943aa5579b5509a1b2e497472aa54ea9c566aa215491ecf36895aa577ab1998a102a487e7aa4520815123e1e5115c20a894fcf3715576a7542d116dd4b7e5c314524af71bba7eefd2f70c827fca87b98f87a11f300f15b7c4b89def817dfa5a2cffb79df52d1f7febcb784e87b1fef5d2a7abc9ff72f153defc77b4b8a9ef7e1bda5a2c7fb78ff52d1f37e26bca545bf94e89688ce524d7896887e49d12d2dbaa536e12d15fd25a2b344744b616aafd41b034ef37d686227a3f29571ef25dd928a221343d0a6b6c8fbe4eab55e46dc6dd5f49654365da0ac96deea3d461172f9c05b109af6e2e7cbe5aa7a47da17879d6b7c37e951f31d995fdbd2b657ba2a4d5456cca09aed62dfcff5aa7a0fbd1639195fb6c0490f32eb98f9d92cedbd4fc7a5a265c708a2c916f15fb9d0ebc0214f88d9c9e6dd6fb36b27a404d11a0443dee7ac3b05a3d2472db441ad1edf1a4f569a5ef23e3ccf8b48c049e2d5dd93608a01133f60b293f1b7da84026466e99efb99851422800666522c869bd97871ef5d33d735ac21404929c26d6b0dc148b56ba0089e4cf065ef1532ac249e062a5b0c0e795dd80b04a5f9e46dd34cc183ea26a704d91a447f09b1b19beb450c3d6cd5a3cd91e512a9b6cb7b2cf8269e9c41b0d1945a1aa16e160a7159713d6a1bbe09e4d8e9f5bf9605401a0e85adaa205f58d7686ed473a961b234fdd9dcdd0b0b3f8540e63b43b9c996dac31c1adf2d4eb885e82791f95718c45f6388189fe249fd4d116d2e33bdf411fc0f1a8a225cc21683d7fa25cee46d97b8a27c1932e6fe6c36d51cc9acd0ff7f60b28f75c4d9b2f876e2fd7d9209eb38df6f7474c7f45eed5a80c64943d87518267d0ce07a3f3dc99623f88cd05ef823e45d2a69c525708d2689c65d91c26880cf7de31833f6898c0df93f90113f351e06d003efb3b6c3c8d856fb3e5a74bb7e78e98208a28ac7b17a70c12e9dacc5d44cd6a9b25b524960fed1001725b25cb24037fd4666bfb3f7ff0f3a0006db690432222e19cc2aad9e925264be69256e104bf9c27a2b8888906b175b11b5dccb04325298bb3b2fbabae789c7482c7f2cf0def2d2a9e399b8b68a7526bbf8690fa5cd4a5cdab5528aa9c057effccc35e33cb42bd97779f6f5a3c310f32cc66be32fb394990abb08aa650eb23c8b5f9aaeea7e229d849bf9cec9c323980106cf22c0ae73c4328cb4de2ff888adf8c2c394fa0139753cb946c60f00b3155f66330c7eac946f614c5cd9cf819694b21639162b3eae17d153feb44afef7a5a163f7db1ed2f962435c455740936bab787c7c3c4030d4c25bec6deb6bf416314693db80035b48cb6a65d907efdc70ef7d3b745b5172ce04932e25cd642aa60525233a608ca53813ec4613c175c407af81f86907b774220cf22738a5b88c0665b6a5cc4e812dc041f21cc581ec763f0731ad69ea42ebec6199d355a2b3b5b0f615cbc1ab0a5203833439db5e3de13390715bec6dcca6a19197dfd301dd163a9510c60d2140c501e82a9d4bb9f2116e5006b7767ad6c51ec06b35b064a9d4ef9bb0d4eb52ce8c037d8c4199d74d2da57cf6118d4179cf74f6dc67b6219903fa2a5343b71dd87c413a980a38cb413d08c906aaaf497c5260ca8c8634aab3033c41c3ce668fe3d4201420f54d4013f5aed8cd24d33347e6605def5437c7b9d12f21b71fac407c051178b4f1be8e706fba46ebe3568f9ab08394ebd8a3529c9fe995521545aec3eba1b40d55ce504af6c600119586b23813422fa99ca1e21121998a5ec4468b924f3d91533d5b3d79568940503811e7fd3fedd2c7f06ad6be33d7e083fd8b8e777e2f78b38c1cbacd7526820806e26ad82dde202a7b0c50cd3791a7b73d5bc346c57eeb36f7cd9c9aadb9482e5c32b5afd0f42d2194ae27bb46e119cd5c87e6897e08dd363392f5f0846c3f08add0b79a058cbeb5a9ebff8f18771468a64db87b7c7f73292aea2ef79955bd82c55b69a670be58366b8835d7c0756a30e164c4558fc85d2e331bec925e6b2d5ff42150a912cd1d27a396229deb6cd2066c965b3847663df1ca7d5a0217e47e93b155b9069a5a99f6cf33759aa914df42602a13d7beded9375067453170458d137aefd568c516e353d5dc9f93b585341454852db7d1082ee5bb2ca54eef2a6b8cc2180344e6da8078234610e74afb361ac1d41d979b79db78716fa85cacf1f1cdbf682e0dffd545de1056dfcb3488c2fc8992f89b8b6bef6e2e93593d97c82fbb70ea9a1aeb83f71d059cbd5ad148b15e27f66cd0280aa5eeba42151d88b88f3b64fe9a5dd237716960c91a55570294b80e0307d981fd604c35c743128d45c4b12030f52bb46b68edd984c0f6dbb4645e3d0bf0dc498cb28f2b0ed39ebb05a28daa6f20fb2f77739b4c5b73e2cd91d6966d44e90b99c6f1cc9b302de815ddaf593a7028f437adcaa13bee67164a9c2d3770aa50a55f349323c6553d464c7afd5a2cf750a0dd049ec4b438f885348c4883cd79b7f20eb9cfad335bcd96a583e0725adbd64d34c4d11cf01f56789e51cf654661827d66cc39ec3186f1e1f9a2159bc4e4724277a22315c92ce9d2f783c14b49679d724182ae08c8cd47c209ba0866e023485cfede23b335d4836e8f72a00e1051c9fdb5ce86aa291b87828604311af57386071a26e8e2797c15b31a9676361af73966780f53f945013a2a1d78e1390fb7152c604cf4352ab610471daf0fa1f1e53f010795d03089985a4b009aca9a5489c913a9d749fbac410ad7fbc86a1dce9cfa4c12a713c79f536c297521620136a835f142b362515cc1fccea1b3f2c324e4b5e56371b058ac6159e68d78b1f1859e02d247e09dd362cd875d9f5a48784ca1959e74c3ad498e51edc77b196f7030cd1193a40ff3088e85e6b85a958c1b052a47882ec676349b38fee0166ed5a6350ff21b221f630f886291b661af483909df9b8f75b651f36cbec279bc7b1b3eed1ca8f394e9b459cdbed9fe94be2a40e3ca36587eefde80f080bbf8ccc9134c24dbd11d7756c5d88b823c92bf4aa71c58055ff0661e827a880f91e584ce5300d481d337857805c6268548d684518f533290168a2f34913860edb99b1b5072a96099b7fe61f7f04f5abc49cc0b8974e9b4ae6596ceda0b552d30e83401784ce4dd3b9f2402f93edc0955bcaf96f5f5c3cef9974b452fb5a513e479fe87217278d92f66b20ced9b053df77375e1a2f505859b379d1f19f80152bbd961d5f1908dcb5e105af2350764977135e211518eded76f30cae95162e0dd3fd2e37aa619210a3d1b5e59aa8557f1446314560d3586cca9d7cfcf20e5ab0bd4f09fc900b983f7a15054fa6cb885274c6d97db97c40a92cfc87db081f453ae31017f72441a4657b19bffd4bb0e3e8075154678b83d4dbeca72afbe0d5e16abe407572c243c8b321fe4dcff44880b6061cd30dc7a6bd9893e3d87de90a95c79efd790f0abf887be57c2ba8b649bae574e9e3ba96a50e8e892922fa628522f57c461896cb60191541bed5dce58759c408cccaee6ca4af46a8907dc73b360c302367b6bb46086f72236d3171d5b5ad251a6573ebd0505f8406d976b0aab006e536b9c725dcb44b642cc8bc47ea4904cc98465ac4c71460857eecef7546862d37dbcdd8b44da28b450eef6b6e6e4e4255ca8864cc952a9b8130921ef6356d1ef62d76c5e3bc4e8ed21c2a02baa3216acc7db07aa60e61698cc43130b352c5c42bacb519374301a8a071483a0235067e0ca99e02b3a6811b24b4aabdb950a4852e02461b45763d769d483376c40d243b91fd0bef716893c9369efd6e574f02d6260e258d839b4d61c4b4cfe439c54dbd7d19e9007213178473ac5430b4c12e0d6810541b0e5dd9e0c1ba6066ee710d02e659b1b0e61da2987919f2b8d6c04722c699d444201c516a0ee3fcede3739e4ed524cc014849fd3e9cb374d1d4588b22b884da1983763376467aa287d0a5a5a5402c836fdbf52976c78e596f52d3a36cf5897f232923011364c8da9291c3618d0d20759f86d10529b799163b37fb0b22385b9ba075105371446bc64781deba25920782bdfe63a5a3ba780863ab6dc564fdfb7cc4f682dd723fdc39fac9907a73c57b0a22a1093320a367cd846dac106955b0502f8896068583c48d5df298404c4157265b9f789d79e217dfa3bdbf4e74404cf671ed5d478dc6678d31444f0f8805d01dee2e8913af18803953a63c0d861ac8642118c7db9991ac3ce4b981e382dc9520c1040d2fd46aec28797422253c496fb3bf540e8be92de4ea16a0185a78993590e02e06d39eb47323e261e09ae8bf549232800106a0bfebef7c8080280d868ac343b8015fd084a13067085c682e4c3dfff8b06f891d864f948a39744e1fa3c87d84c404cf533a9067d489a4180c5d1404d6ebdb51c675a2fe110ed8ff35406c079442b5cd7b46c8dd3a922730a9e1c1776371b84969f201ec4dd16a7bba214cee8493c7c15bea7219fd25ef00dc47e75332d748ba0d0990c9fa9b9f0d945b1c2189a012aa7ea35f8ec117e2d795c049a5adb9216f7d814609062655e72232e5d6b89b8ef21934e1b9b96fd4e0efdd70279baaef945b32507cac834db8364548a34e05b399d9c0e3106292bc2e411d7393a9d3c3af2d4dd54dabaeab1421332c0311bc7d13b53da30ef59e42ea4b14fd2d69259a5dbef4c6ec805ade2451d9c18aa51e316b34dd4a80f2ca3a1980fac77b521dd7e5fa69f90616d1d052ce4fd4f25c7714dbf42b29ee64d265f5858d8b24d37a1cecd98da7ebd6765824dee29900b63ada57bde6b8c3e7c80358d4ecea4b6d07bf94a7faae847f58409d97ab85d90cdad53cb487a76cbccd41403089df89c7ad457435ffcc4e20640814a546c6cdbd92873090bee8a3948c7a03d412220d8c1ecf28f20b05eefc14bc6610132494d30659d8ceb0174652d33e626d5d2562551d6796e5792f78963381cabe8e48aae68e2cc48a0218c3936885798a169fe1bf3ed0ba9bb5f5bd460727b0c92c3fb7053380d17725191a76c3172b809d01b03c04140a04970f0649a5c77193a865f74ea89ab570545b239abd91b8c8ff0c260f4005ab1f304f2100227e6b5902e684f52380d25ec1c7513cd8f80987ffe334d9d69ed55c0977ea22bf015251bb92ee9fdaf3fa2cf150dac0ea4941840e528e40be814ec76fb27879542d64659e0fc293b928446710afce356464628a216ee92837ab891b106437b7219de732f71be89f3db0305f5932842affe6fa68bfb228e840df9e8d49306716d214566f5b716d400d2795c11719dab8934bd40b7f98d8e09f223ba9935e23859e32758695b687c56c4c1de927bc39aa9bfdadb8fdc88ccc95a7b7bca97087914ee358d0b869c2d08d6720654e01ec8e6b8b919cb36e65292bdddf754377884c469d0057fa7fb297ef0f2c557f1b278d6128a0efbf490fd26bd7ff3f38b86eba90ee79ac28381101be5da385ea60fcc0bbdec545bd16230dd8c37ec3c2f0cdf96e84471d5155bb4de080c4fe1e1c389f8da1d3cd70faf22f0b35bf37a0b0460ee0321191811deb6507c85ce0d7432d154e3ddd966d0d614be0596b59827e0e4e2151b302712723d31e8dc9db8ffe90ae1514684188fabab5c8f6ee51a4df7d600ef417bebfa4e3b2811539ec27e90e74c39d5eaae13d01951a803b730c4cedfcda67c0b21f869ac565e90107102849210ea1112f412277d1885dd83e1b07b38c16b23118c036e7d7da26ff478ca273d1d71a302d529d938958e6d7a556ea3326bd5935c8ec6894e660867f022e8cce38b4f03d204e06bec6e4d10e28d020c775b06a0fdb9f379424acf11b94e84f5a2d279331cc55a775138a1abf3c313b58f1d7cc3ec93160995047ce65292698bda33c73818807cec39d26ff07ca90167c4ad9d78ad510fe713c5e308140d9a1bb0f027c401b74cccd6618e1e330cddd9986749775f4015df7c9eca684c9728a4590fc5c3052d4250b7accaae23fe9d2a76394cd62b8462d6f813544a86211e9c99c9a035b732d1bae5787eece24a2bcd3ac87175c85e458a8ead1e0ef482806f747765a9601d2e841b543c8062d050acb8023439c636c329bd853521894a6cfced1db16af1498e8da410cb10a55837c5a5be3da318070d52939adffc85ea007e5a9560bc23074c92f4c0b5266f4b3ec57f9acf9740169b68195066cd8b1c54fe9d9021036fcf07292b49fe3936597b683ae9cfdd80219835c5a07d4b1a2ed5f7e92eed6ef981cd1c966180cf129d68f9103e60198331c5d7c1f6c46c0588c1b731d6c3a28fb763843bf84a5e0f867a50312ed748cb964e7c0c7d30b992a7c8064e1dab2b5268aba9e37470af533ec870c31a000cd0a9c9dae11ecc18e495501d56bffdeafda22f0189a0af7cb149252af3b4d20fc8980a8be53263c4a4a981423c7e076363a9520eed69b470dec1752b6adecad4ae140b8f5e3d0f158a605076984e653c4ef59d1d53551d3e5e034bf0d12d8a4a1336156a076fa0bceb85493ab14389e393593720b1f3f400f1634000ee2b1cec97e08d0d178a93003081ccd49d5ee3361a3411bd9640b15bf84d39f2d9a2ef8b0b6c49aaea5ff22f49ea0efe4a14680dd76e510112a15425dde8d647f40273c237f71f9f694595c31b167fc3e720ecfd48e2e9229a5ba88276a87a6814305f0305fb3efdc33f562ffa94cc703d123e8b4106afc5e150f3a9a84cf04be65926f4deae716e95a91cf1ce0091fa4a87cf9a3b8382f44e5896c1c1428b546f29b5f3ad3e0d0b52ba69b947ab70a5c68f3d22cecf3442bc48720d928b0434ddf813a9fbc81726430e49bbc576fc3087b6e7460835b1c0f3f0222232e879b8627686b25f3418fa904a14f64a90eeb0e45f5155d8a61dc98a3b68820632e8b501e674be7e822154ca52aa48e1c4ecc8e96338998d828d6d786a251b214bea39872c2460d7500770853adbfb03f56c3ae3173e50e71ee2dc8aef5dcdb0d939ff7cb5a16dbab2276645abd3e4b7ca7a7e4ce83a9081310322879c1d0c0bf65dfd008a9d92de97b40d30bccfc0b61a980040307742dbf54a32253072ac6ce8896f76b552377687d8e1f6b28cdc6e0e9d34c5776c751780b03d2834e2b981d9ce388d122c0a5f9e9776fa51fc7e74df0b26f92dc8b3d94c1c1da206f274c83cef6e1bd7fd1072afc1c006f3efa074ef5fc93dc777c5bdc051f69b98c39791cf0b7e6da33d32da2a165dce784cd8bf12729ae84ac9fae29342225fc1e1ce10c088ba89d1669e82c0fe260990ab1116f21f26aad363e9a2dd642458ca02e57e0754366f2a4b02facd6919392549db39dac5f1a1faf1209960ca8b29174f7af6d2d454dbe377de274002896420ae03023f922aa77fe1f6e388ef528f43ad4af2d6fadd25228f7c9d5352a4220a7ede0e5ec6fbb89860f5549d3d5d929c4e5599ec8bee9bdfa3250a72a0bcc99b82e7347c036324591e8a14fd11bb90510c20e4ca8a0f3e53fbb036c508bf6bc38a62582e2c5309ce59a81524dac0939998d785d6920cbd0c4d97471b689a8f5ab5caf4cd82949394e3f42d39b219a53cf1d6395445a1273c3f2ebc210b09307c90a042e9722284d7ab00c8fd983881da5cfccd3ba69e618c3c89cdce5baf7d46af19ff20c44886f3f8037b096f673c0f384195bccb29b3173a17f2f8da8c786a1619ade4fcadd9f7ca615c15868487125f1d2521e3cfa99c1fbd6a94c3b2d5a9652866f0af57d2bff027d8a47ec15af608a16bac9da77c440d993ca82fcd5425005583ba428a15730b88a85ad21d0e630e3e29770b6fa092715a14d50d4dc7fb87c1794afea34af12c0a7a34356942a50859c856588559847f10cc5885ec2e830467e66b01e489104ada99592066d0303e7e2041fbfca26a532fda09ab9f59bc7d6de717aca6007d9ec1fb4602461c664ceec32e1fbb0c3419c2affc203a40cc19bcdd5a1f28311cd660eade575801b37c10308f1dd5b3a9fb35a6cf23167dc6a3c16a4042e0dba94856b563b7fb86cb01b28b553f6a6a513928f28fd1e80b1cbd26a0cd26af1921b2fcd38093bbc9c87108f85013c03315afd7db709de7ef7a4294f0c44b0544027c0b8156e7f32a1f2125bada5978b3ee1181ab5941d5e16578845187d99ee69b02f316aa6be3ab6409bc6eafa29ca6389a8fce6d7c850b357681e80a54920c01d50a7709f0212c4f3a08be473449607213ea126e4578c20f89fb551b6f1b3bd2de10e13f0838cd49c6e7e52b42b630e2ce4239e0624c74602cb17a5aa04f7c4fc838813eec5abaa0639115a7f9f3589e7f9703c9d0f483c42170eac0c3c372fcc69913ac171b0679dacd27fdc6f9e24233e004321e66674f2f6e008c37f94559b79de215bff96142802c7f13b30dd54e208595018e110238544d84852e851309f11f94ecb5f4f5a342349ef2623c151d3f9ad5623135128031737cc03a92aa082291a88e545733ab63c9c506df9932e3c0c0a5a979efa9d655e128cebd10a13b32461ed11354da6b64652ac0c143c8bb03db12da979521f62a5ac94825a6fbc6b70bed73cee032075aff4faa7b4d84451c886d946ef9d350e1c28b22de5ce5a083c2fcfa2fbed47ad4a5a31b1c06007048f48b927a7adb5d30dbe6f9bbce55dde5793f143fb351f7571536b19074d61dfba26c6912c1e97c86cabbd4c7d018c9997e88794cbe69083b97a1c37cd454fc952044d6e0204c522251eff04cc50c9c5f501e0c5950ef45a5be5da4721c4e37e2a2dd03945249408de5f9edf699251d30850f1ccf47219ccc61556f034de01db0bcf0e6991115549c3f204d5d6778e2a27bae688e4e61c8887f81f88151e417f308f0eea449a1a5d56555e46ee73ee3131f46e53b2669b49181a84dd9426fa5019ed729c3cc6cba919ab6f74c14c350940a43ec445007cf45b6473aefc3df19649cb36835e3150289724cf7785a27e0a2c32118a55cf33f607d10d56196344a85f37ed4d4816daa4dd0e5c7f8f5094c19cb0737c496bb18af553532828252da06a0314fa2da9509a34995538cae00761b0d9b85dd03b270970e90f8e8068a1fd41faa4a807b8d0004ea78ea31f102fe97664d08680922e0d559a168456478f2c5aaa0c55375bb7a0e867dc8519a26f907c4622902b2c3b6597c527ac6952b17ae33c73fa586b8cae55b4f9b1a7fe197be9d8a1a8b160ff08210f2226e7719979a6bfd46e1996b3c3855624250e7492be9e71c1a263ad70a519812ac64f33c2f475ee4508fe81b036db15e1eec6248eb086010add1b3b0e6ee75db0b27f5ea109bbb2dc7ce345fc2a9fe0adf95cd9c1655b18828d56679f1d390702c21a7be2c1c875e435df5ec2c2e1b66d1fea1d8f387685650ea047e035502a3dfc5359701e2099123982615370200d34c76387d79cfa950f00770e2a64a18eac34c9061f72730211b4854b124b6ecf5475729735cfe067cfecf273cadc51a4b25dde35ef109052fd7fc7e1065afbda7ff33a4354876071ed187899e1ba2506809ba8443742ae15b074e32d8832e5b69afcc004b41a2245eaa2e27f2ddddc760665ffdc4603f1e1f1fc5127e7ce87c01ae5ad60e17e70126757f7c3723f27a62653451e6ef6eb446bc1ea551d6433328bd9a88281e36dd193f5bc42d648e938405496b530b03bf5af1e1315131c7469609fd02943cb18cf418db6d0a41d0b35f89cd82d449fc8d42cfa9e2776333e02e0ff58a185c8fbd53f18a0630d650a74e85e2a19103dd835cf19a59fdb2cadd49e8609ba23cc57f6cee6493a85afd9971af06c124881ee34e12182f22acaaecc7480c9fa6a8b1f0253a42b73959877d19b7d2541fe46a0269b7c1de06eb4267b2e19de85be44b33b31faec81b3f34f8c7a31bdb45baacd721c63f3051268e9d7ada7e0926760dd3ff369b78156d5081593f8f6e12c26f3c3eeac2f164477bfe768fb380a0b80149d526bfd33c29cc833c9b34da019b93b70a1cada8d79b41d6c572baf492d53e704b23c28c3cfdd5f4ec6ff8bb746c113093f8191f0b706bc580ed5fc422874e3524ffa59dd9d0bef85ea209f6f7a2ebb8b9113b13f03232e1fb042809719be51c7cfb3a192cd5bdd9da8e652b0cb5c04999fd6a47eca11b13b4c440e69d23700e1c2d4f673211c411bc8991d28109abafb60c029f18a65ca67602ede15e2e2fea15121b9373cf14894a41fcb85fbc98d609261a5ee0333a7556daae9e186af513e99674c60b0b9223e0088585cdb36f7af97569615907131d0bec5370eb29e47126c98ec04836fe123808fdcc87a5bd4b9783a2b661de2cf0b8e184b838caef03d77ae7ce0bfb5a549f6bf8d68e71d7584072708c23b129e38962aef7e4eea1c48a5b44cf09fe286c62932e21a3f3e42a6ddb597283bfe2e03ae9efeb08e87a3d5d260aa18b364490121abbdb2533c037b27d35bbd24b2a5741cc00e017cfcd69d264b5bb1fb85f34558ede8045f8790b88e3be633ab6f5c27792b905a191a07a6792cc92af13b771bef01e05fccb2da9ff80448361be85c20a8d7116f842da6b4e6215c768b64b443d8b00da09121edcd7f1602d107c0b77ef0bf0893bac567dbcf46489856d473fdb3efdabccde6b310891182f3156eee2d25926d4bf2981e83a4bbc86a45d459fed38fca8d0f6c57c457c31fd72d5c52e41e36dffbe4aa452bcb777ec926bb7dd3a88fbebf68d4dd9e569509ec114f7b0153017a1931f5946d1bd70ebdbcc6aac6f19835ac5894193092a3b1beb788691feee2f516224247d970fe6f399986b888417ac597f0df562f8e1cb3f1c1c9175810873a08015ab4d51c7385babcceb70385b5082077d11fb0f30801bc09f49f39147400b7a527232e6b1a56200c85a12eb6abea890114b1a471f4b5365dfff7b346f8910ce3164438174f0341571fcf0bed9fdf75bd41c97be43725adad504cd5b6f92f39892bf8290b454751b146605300effb54e72ba46c6efcaf9ed162817c60505edaaace7c1f56f3612cf6e92cce91bd45e84f51ab26c1708a47815a338e2697f631dfd3a6097a7d12b2f59dbbbec0e3b02aeb11b226e751919233409b8ae88a44097f66330275a31300491f3e09163374a5f3697df114fbf1068d1f177972dc2a9d17b5044b658ef6c71854bce3d445decf0175c94219eb9ea17d0b34080ab2c8e0c268337eaa83f037dd7dd57bd409b6a74d4cb5726f610ddf08d87e52cd353bd3478e852d2efb588f1b7aeb5b6e2be1f53d4385166e885c165f7dfbaafb6852e5044b82b9ba17a6d9616523f986bcbd8c0438561b0ae6e20446a8f29ff8b1eb05fc90f1e6fdceaadbbae7b6f18f0b9bf37b89b3c2f84fdf82fe09c267ee82200c1bd866e4edfec763540836ff60458d8e595232cb32cdd8b10291f637d9c60a6cd919e18b12218ef252cec626f923ac0a1a274dcb0179d66abfeba33238608f9ffc5904a23618ce173cf2e6091754041ea8dca5a2e1348cdb22abcca4e63d7d10f58a4fdb8fce01ee1b7816d18b8cfac743ba197f5ffb8b63e33d14a2807934d7b1881aaebb4dab307c5a582d6fb5a8b6ab16767a5672821e3ddfe2d34c31c3a7ae1c2e332d6d9499b92bb6c8f0d5d9dea6dbf233b77cc81416d5f12a2b6bb569a262ce6c0feec892703bfb950b03d501f27fc35042b1140878caba32aab42eb6f227b233c9583f8c9c692c610d82f24ba7f5b30b87b83f26f3f2098be528fc00f77ec74c73a76bc0c172927933116f70a04d41fcdad8e1d9e93f25c4b5224555d9a25effb4b96e98ffa43abd2cd6231b068fb06f79bad3a21d6bbc64bc09da44cf0aab268cb0291ee62ddeaa9fffd3fe20df15f770dee4b0098e81d0ed240eed6d6c2caa08fcb8cc5a0296fbf32af5be09d18d05d470e2f20bc302b6d644c710d600d07535b913b95f85d7d22a416f0842e7182407b8ab22c72898060711110d3e970fe600610f9ecdd32a73b075444c37017300af9e751d5df17ea621a551dba0d5f1b5565c581daebac7b4db61f5ecc36cde1651316a72685bb053e2173d9b65024adbc79a42416c1e691b9922442e590cc8263b54fc5fb5c086b3d03024c225b26d7d8dcd25d7af3d57a76f21f150e09189f58b89cfb1f089a9d8e23cc875496a5dbdbdb4e0c0a6c5e61949dc6023c7dcc134378f8cd3589a433fbe218ebd264dfc65b49278e91efbe0fd827c4ec9b1b21d87e4bdba383eb59e0d8072aea9db17b19e0266bf64f398979ccafc54dc8df81e096435327054590c533b1a8d05563e288839a90d5205bfd6c13adacac61ad04458427e741bfed549044cecd4820b6fd310e2136a1d1bf2b767217e4189a3e9b722997c63a760b44b8ab58616404a55c9149b50ffb6b5f7a9e971f0d385186fe287bbc47273fc59bae9c665127eb8d09e1aeb32d4b84682c224a80252143968b6fda723f635f3d0afac9e563d34008371fba8e3600259b803bd4e64323011626f8e3d8fb56401eac6c710d748ec1f0455e699b70b00a4a3ea92032ffd4d000fc88e669f2184e05c6c3ee6fbc19f1a7fb0e315f05527476cd454c6b4379646503597a550270320d646854190b19585eb7dc54d816935be0187e2f8122413006b5eec57a3e675764e5b7b019d76f37340a6ab9156ae2f7ecd7593a2903b104ac056d75ff2eb985de376257a1a94da50e3404d4dc634118f9b59991f848901f9048a65ae9ded637347017b04eb441bb79e13f7c25dada0c9e9209a543f0113966096dcf67c1bf8ad084163518c36eab2e08d3548970cd4a0db4eda15bda5d95b9f7088e76d26cd387d9d5ef6a2d51a948905102820e168078e3d9c701692137eeba057b08dc6dc96c21209165aa6328a641b3c483676101b93dde974e028c64f618a9d4615382ed4d93b7baba296339af3a9ea7e9d4abd78ec692d7b038204a443f4612a5542c96a4bed87cb281d1a633751b6168c09c5d6568150a8b2e2e372ffd37b637687c88dd452cf992f92a08a6a165c6f0e1f6107aa3390696dcf55d3a447bcfe7efa2957eda19dc1e97ed026a279331f1b34ca45e1c648a1ef06d011ea627ceb4a56fad956efc8e2d3c890679e3e800697cac86801724ed85703e62025257f27120d726d1f11dfedb2ab8e168b62c3b75dfe6ed8f51adac488db2858730d8a9ce32572c74422942aa7dc977b8f777fad5ea97a56eaff65fac73a9c128564aa0acb8359c6fe2e5a40525a370b804e8396c9b2b42e29246475923501707211d424884c7245f38fb6d7047e59101b830dd2980e7b475dda9c1cab781a3a9995b4d8f95c4a42185bc8eb505f3d359938f5fd3a57944d305ad56b95a62d15b600bf5109a04359d475d22d1d38ad1110b6f5b908f9711a38e42a41e5132746ad93528360f851a931038869de6d962c32d9052bdb217d2e406cab5883df7480c7fc712add142705746bb93a5c1e7236154d89b6289395c9c4098941b2a9601f714e530ceb9199455b6e231a0f682302f771fe11e8700d407c1df420d292c2d443cc178901618ad2cebb9aed7e44faa67101cf2a1205abc43f767bc5e17914215187712802a15657077546c7155404a4b49232936aa8f5b5b88fea09282ab11a46602dbc6eb6b9cc9acd507af9dbc8b9efcfb18f370a4bd117f07ced7707d21fbeea1b2302de16ff8532234135f47af9ae44a2b40c5fc6b7cc3c0709854be7ecd7a5acb0822ad650add102144ddc836afaf9a4dd84bc7ed1d7159526739d70ce24612bad21d4d2865fa49d26552010190063c84303a86828206b2c23bd1c9d1750babdfd42fb67831592ef6cd56a3a826e24e0cc31da304aca5ce702f378cefdd349be597161145aac32a6034920bc3c4420137c2a4e30338745969d2a7570788e4ff5867213aa6592a4c1f3b8489a336f58f3d80bb3001cf0dec71efdaa91e642e622d4bdacaa8364d5a4970cf5df29c4b6465702dc5d45b00a1a11c44138ec104146488fd9a179a4106aab1d07bf7120e0f1a14d987d5e4b59e0d417d9c63035cf09bc90c87941a6c466573c1fc7d5d5777c1234bd94ece96daa4fabac67290902d1c2e801318125fa57a299f7c7b0b31c5e2a41f33768782cc9ac84f354957202d50b00f9ef0de636508c4feccad1f3bb8cee3bdd6d7dc37655246d360ffdba842f1f6cacad6ccc5eea7aa0554338ec94f400636bd9c872b9a6ef145f8c1b9c168f4c6c5ab7b58cbf92bb73f07a62226bcd7d675d477ea3bfd3d290f538b9c813cbe1489c3866866dfa534a80c675ada95b802bfe2feb735043b6f8f6e168ee0dce1a8e65b3b2381fc544b3a2dd92c1b41bcb43433cd5f701f2a02bfdc353a43754c8da886ac14805b0d886254c2c10b96ad270ec12b789f339d1df4e1344bb853ab781c81ce3d9fc6a61796278603b6e78f49d3d15062742f549de960d8e06dd1132560b5beff221aa82bf62989aabb74104330c2cf95bf7241e243871e5c7e3a35ff722d149a361bd45a0d507ae5f0a2bb2132b9a859cf2f6135cfa2651499f365d8ef1d3b54f3299652b8569e1fbc724fe3ea8323d4b0a30ee3b00e5c7e7af739c93d88d4c24dbe8fc39ce2e0554d9cdb821d517b872ffc5da438c03f307fae71821a3ea303844a4839389070115d04a43c2ce07b639ca3f1d2de35779f90eedfdd1175a8efd92069a68333068e5da13e82ae02442390b3eb72e2082986bf7096af7aa6c645219bf4fc9769b8a6f9b38b0eb7f52c54f764a440d20a4f2789a1d88ad7d6bc90210e2fb904a4099795ea20f3478ffc22947b1ee2cb3f8aa64067e05696e8b39f57d265c1867fa4d79f4f7475b496c3270fae6f7ce4b146205d027e7b11e80106396f9e66d1621a9012a86b0fd043a10e6038f2d11aa0e249d4e25340ab2181a2a4ce4d6a02219d43c05fec6be600db02bc5e5f929533e2b186bf63991230815f670dd14dcc7e12d954bb17ea8dec7616f2ac8490c9f982c77c7c86d60d28af5c608751a0b00d6c5df752908a4e16919cec225fb61b3086ada35606e259faeb9f3e9817960872eb87515afceefb07603b7cb8acd56e62427e6f4f8844bc199f69d4f6e7f4d111ad5063657a0ccb25100d7f73536d5fb871702cdbf583a6b06a4bec09750aa12999a8189b8a095fbdae22bfa0e0127f6d72d0908ede1be447ef4ce0d136fd082d2898da415dae54c4cfba5558395f0509603828f9b762957033eedfd01c8b5e1fe098d4c9b6ff60405583213d8f2dbcb13f2294534cd213a1c645bb286eadb737fd3021412ed0a8cfd8f4069e9ef98e5b28364cd12dad9fc95417e0d2f6e8222f5c30f070b00af40dc7ab1926f2170bc6f2014ea8ac7ebf3285e824a654bdc9b54db7ecdf0e61f30f1cdfb162ddf1743d9eb8428cfea67a2ded9e68daabc92f64dc466b4389ed7adcd56ede143b4b5039520a3ab1c0e8c64c1cffc88c3809195d93645ece2fb72ac074695ba962a9458cab0ba8c623388e0e124fb92d2af217ed11bcaf1327c4933fea7e5c363692e79c01022394585e295fe33994d3fe8beb0c071a8d5432aae5b87b144d7e798bae3d2c5e91ce5b43f5a0758b65bc7b2a2ca70a39f1512a66583278c565097999f77de3e2efe5316e02d5d91c0230304bf672499351665b965f9c92587bc51921ffdd10791e0a3a6d11fc6f9c9df92b99ca8c1a0b21f32d32da59d0f51664835a3a152fe5584575a8a4f7521600d625c7be3a77e56d6a6eaa7179d56363c2e452453bcf826657091c76af32f3b5553bbcc846c6dd968ed3614ec61bf130e29e7e0524736086f85dee36cbb2b524e9d4d534b79305649ce17640699bc47b9e594f15724c15ea366d33c5c980256a9999203cec725fe02c31d73ca5e7ac62669016b76be96f9baf09b3511bac1f80378b988c332188c1a05a231aff50ee5b0199eb1c681a9235a07ab398d77cd202db37a5b8e8a3542cdcd7e7c9ff9a99c8918c88b9ae2b086971ca665c4ccd3ec3de4c1c5201ad627bf0f962819114c2809e6319fe5e1e13d3c9a956d832e9642dd2723d940dd064f4e9025317376937a0bdfb29633520513db8be5a0b2a54926849802f80f7a090cfea20cfb1af522781d401a2fec0d216e7a34975fba0c52843ca62dd27ee78b60b548f2f4684009a66488d03098540bdf419eac576a9ca8335156bc86e5afd93726dcf52879a660f4e332ba4a2ecbd56463ce347b81ec8af768b1eaa4a82748cd44e67c3e0be69dc65f85fa44c08155ebcd24790df09dc5960f0f8aaa4f190b51746128fb7f3f4667c12e202c277a2bca531e59f143f74d44067b6ed2cb26eb04ec539e71278b02b30b6cc9de4a39fb079118c18e93815723838cd53d9cd9f9cd3d401124479af0319d3f5967142859fb45cc6861db0d1b5ea20003982dce4b645933082c6a3d0ac22135d16e11ccfc69a162d5aa02abf580b9fab84d44f68afab0bb2ef854746448efe40c1ed8e432e971f50e9015a1810f79a94000ab6b1d48780514ad29f5fd6dd8cc66a48328d5fe61a699f873ee7df0447b754b1318501f88e6eb5e3330ea797d55f6416d4ba2029f924a7f3ec113a97bb24722e3ab6279cc4d2b640858661df830b6a0c9826231312dc5c7c91bcb28add179953d2cb396979e5d6b6c3d60c02c820439dc49d02ea3da8b83838a1fa576670d61678928fd9772ca8296aa06267ad637dd7611360d13c977ee8b7405d5a0bb8d8598715aa1e352eb6bb4c0fe47b353da2b0e21ceea6350d0b8c73fc2899464e3adf54230f7246a9d45ef8056a7fe777cd4c034e29e7ac6519668036b5880c61944a8fb2a7a017bbfebb39e039e0b9de67046c49d872180404e8b2367627ba124d64cbbebd57078a61abbb4f86aba1d1af885603c44363719525d76a5ef2e34383ce2cb7def69a2bb56373699b47740dc5760a8bf6bf2f34cd827cd37417740018a9233ed463a4e55a921242a022ee6e0d59bcbbb970b363d9c3ff84367f1890877e7c76c4e4c43ba7b568c9ae7c80e7ac55a107a72846b24ddb531a0b42f1ba1721ad80cad0e0c9464a369016b62a7a96b6a202bd5dc0952b7d9ab1de8e4b2260ee48397c361ab8c916d6b2991c02fb3fa8fa3d5491b9058c1a31687f3c1f16271910c1d3b80f14c25f56293065ad055954360b2cd629ce578f44b9b27d8f87173040f1b64bec47b876bc34884d484c9625ddcb9ddf2218928d4804b3ccb06735a71f63484065b569dd00d9bf3640709a3347a40525c544d769563c99714b4f8855eb2ed94364aae6c1b06590373821a089efe42618282b2b74c353501d4ebccbc22bab809c06344bbc7208fc8f96848c0a6e10558818356ce986bc4141165b4d3c615aff38ff01d6920d205ef45d20aabc9d596d4951c31391143ebea3ed709c529a9e1a20ce12d76e49a0b933e2d7707699257beaf5b00bc2d01c6840e56ae91c0ffd43b710aabd2154100399d1d98496190fb8b99fdee113a9f7535ef1e0974ab955bb5940941f827e6fa639724f25c542d735a0fc3212b8edc0b3fd340e4586bf837b33bafd68a3a287c1d8a27c260275cb5ee47aee2abe37537798230320b87bc11871ee75d633cac7cb46943695f16a2775dbccb80dc74ff7dc84e62bbc4d91e1657b451345916c7982f11ed43fc46edc4cd9da2fa3da4967e986f3f3c8055b1f7d46c79718350184606d9846d067843089b271440d5e048f8ef74904f14fa4a0c06f898a948dd31f178a494832be265ad1eaf1f173f8e7bbccd37ea215141b3aebd0aad88ea313353ec9e313342c30ad1caf985e4466f5cc5d9fb7d08aef35ed449a348bcd817f4fd1883e8716fe0ea504cbce8d8d5356f084fb8b5616192de7d020a7b46a61b47db9bda07d91db3737a4d5d55592da7c3e7096e94323ad427ffa98f95c3fb616698505e66767c2706997b44709845e22f8405a8d2e459b38a4d8e22a71ea5e918c523d9b3523ad2e1f805c00a284198b68bfb7a8f80ecf4a445a01cc8ce9c38531b7a13080b1fe7ee59d5a6ba41520e3deeaec6d141ebce22f23040f19e4f1f6ac505d25018761c8999f58c1fac1500182d4f330d2b519c61bfcd84617cb2d7dcd79713bed4aeac254b4b83d1fd17a985d81f1c972a4a6869b5df11a809f590460d136bb826b0588edd65051a5506cacef7c21bf0c587bb3e31991496f1a4419aceef60d41428f6671e9ecaa8f55b08ff1bf7f14cb405ac8d662a0d0f9d28908c6f9246e44faf79afafecdae78780a1277431059ce1e18441ee56a04c7d7d915103e62c09efc61a28b1da56c47045df5da6ab7cb12c9c1423d036757888349840b0fcd4a0b2efe7028659e6aba1ae3238a1d1831a61454e5d9d5dd6ec38d403596db6deec1eae6366b726513548f076ac7c47bfda98612a5a6c8b78376665706abf76e2e967243cfaec05b53e61158566657a87bf17e8a987d3a3b292c767675d7f2823f8b05d344e0b29fbc37c12188edff0e1f82bba40f0ac2b501a09db1cdae321c29f26003582571c262bda07f7605309874c7ba9aaaf6b19c5d85aa564aff1cda2b4c0857cbc7fed64bde5771d57725efb51aef56956d5d615b09bc6f37f7ad7a9a02f0de7629a77243132c60df60592a5803350feb0b9631392a813d584ed98d96099d61b38b7d2685b5d89e7cc2d29ff3a1f124cd15a5d18640b270d18ebf3eb063a2543da568e14bc2851cb2cc80909b5dc9fe5a397c50318d90d66f6d8893835bc466d23635f8b96922af460d3aae720c1a74fb737f66a6e1463e05d79cdeb10ab4c83006a34d1c448cfd151e5a9650ba3c96e530f0d7fc55ecfc91903d8061828bb58ee2b0c96c8c023cb39a4683b4d6860bd9c74094e75ccb92bdc96de070f3d961e9e9e35f90fe19c8f871b096799133359e3611d3226407fccc3a24fe11ffb5d8723b1078756b06ae4209fd4ea5677c9cc92eb8a1ad1d762d66d9d867f450b216d40ddd0f30bc3960bdb4b61eb8bd874b3570ac6cacd8bd1dc1b393ac3c4ed3dde9a38887befe0403d98149ecd2af79b1bdfc473894dc837b9168245feb27e140eabbb8407c5a82a0b3d1bf919c3008ee50f589b93521acb10267f65da09ef093d8e06569d56ed1fab591a7283b650dd8f1aebf4842df16f18c2620918e7742a3c88ed79f692c8986d777acf83521b915841a38417b3d3425712432fbd4493beb032ed56328783b3d5bd07e6c21325de81043b2d0a667fd2644c543f160b095ff9d866f26140a7ecc44b60c885d587f82dca16d06b9c20f7ed0dff567a8fa46d53333fccd637e87439e1e29e3a7aabdad5fc2d5716278b6cafe377ddbcce2f487d8ad60a5b596b5aba47c9ce90071bd86451273df66d0b7115853fae563e7c6519b1932967778b715b8ce40bc65521e3c40e113159876e60ad9b778c6f33a6029d5e1434892cc07d5e1f0e132ddfce35946f7573fe2081d9d4ad45ed2abead9da1ae6c53139614d7309a6ea27d657b82e1654661f8b19f887fd01b339df6894ce1d93f854d5c39110d38a18ac8e9c6b0d2e911b4a4e483d48bed59a481500bf76ffa3254e3838150f88804feb6301d8a5f11603d841e3402f3a04301e50ca3e85a07302281b6330530fec2f7353352cf4d46c50a9008ac6f886213efb48df0508608ae1466e80272da173136c142879df011811b60cb98d41581c397deb44ab0c73eaf801f8178c6b439c7fd560ed65e6f301da45b05d6f67b9c1ad33800a13f115def7491bf18595f9c7fd99026e1b61b2134d8670cbe7cb09a77e2a3c832fc4409d42855fc6eaea2e049e50ba69d1c277208798e69dab0616ff0c32fd8f64e776604c8b60c002ec37805bcc48bd4edfca12881c589cfd782913cbe418e9354edc386aecac3248e5ccbb6f02d3e74ae4a0d8dfb3e30bbce178add24cc84a979a90562b0c946e691e43d8d3ca2ceedf1a74b429bb0516cc312bfd5bf3370fdb48eec9080e29d26b14e962e5e61d0be879ba52555a2c11676c2333debaa3f681ddd7a70efb6f2c9609036d7236336858738c127d74970880c9049d2cc80c2a615f3ee8980d0ee6cd018fa9afbc9d0e7431989d2cb9172db0041d37d5e41a56df8086aa1cc9202f73f15f268d5e70824ad0d7183f0d1d41d9b6362cc60bd569d6172c7149121c4e3091650689f244d0ebe0c7ae9690c3f8a5885d1f14e1f3c71557cef7d5605186713a344b5830ce4ef2431344723bf9cc18203c8be0297ff199e99e4e12386fa60294d48c6a851d8111824f157e6628f3e524c489c73a26e4e4957bd393636e45c274ffcfe5d38ab64f0cfaa587eeae968995449c90ba19127fd0a9564c9e25aa451abd23d08af444988465a007610ffb6fcbcc56a41d87a3d384654ed86a05131c987cc04d7387175833588aae61633feb391d04a8da71ec03e33f3013b3153c9c975ee731fb716eb76ebd19e4dd8201d43fb76c18eb646ab543d035dec92dc005d00400ef073cd9fb42bf465225da852b691f75a92dac00c638913e90ab371d439eff768d2280353fcf3b8d2f106ee36b506bb232d9430b2ef5ce9b2529cd8f8220b8460c030cdd681eb7398f2544bc63a039cd63d9a852b956983a2048f66f21b95b2d4bfbe8135c51a8da5fd77365880820bd0a1ccb531d221539e5dd4f417db3a1417e082e6263a29f30f98553166ee23e35ce30421d1575881307ef4abe612670b4ec16869e7195058634ac3256480084897234918e39e4e754df4b9214f28e846774568da26518ceae0f3009b7bbd1380c5e363a6b31a02d2b1a0d3654640612600d766b0463046d774899cbda44e14b9df02a4654c08434d3d052826194ca8c258e55f3d127aa1945463e2ecd6e0260ab60c2511b72e8ce236519b4f4e766aaa38e377e5f0bfd01392174d83dcddf723ed2c369869bd505094c6a0c9b7ba50ff8b37b43f352bae694f53e094801cbbb302c0e3e5f3175a9638a474dec192e6c5751c92c26963d33cf004234dc46e490cce790312798c9d3ecd7708d8fd9773fe2945ff92694369ae8aa047aa3c06f15ff07d4a385e1c7cdc36c4209875d249ed54b8c0d13461a177f8cf326c4c6111c311d67adaff6a51cb57381976fcdba9fec91cb9139062e5bd57ccb0afd124c55c85be53869e064e5facc6e0c15ed84ef3acfbee03d0337d31c979a0a9ed44095e1e23b28824e0c7db4201c38628902442c0e5e7c3f6267b9c0acb294c492c261d662c40d0bb03027a7eb8616cdefe85791efa10776205ce79bea7a25c4c26aa6e368ee2050289fbd5b7390aa50f62dc60f83d080b8418e5d45f0cfb7f3b619a0c0092fbe30b72fdea5a379594918af2d5032857e4138847c1775e435b1f37e3309a58b8d95ac93c95b5ab601c03a25cb1b2efa070feab3f3dc490c41d8e979df35fa55c7e165d98540eec945904fad2aeaff06b4026fb258741b9655676c4837228cdebcea26b0f3709b3f4c0696a0a6bf4ca4ae9633606da196d053625e2d1222943d6f9503865e54ea10ad7666234c19c9fd45ebe35aab53c8f938c4dc040a8c4e8ade147d4e977f8fb959ea0ab90185840608591d57311d612675944c86db5acd09da6eb4350e1441481adcdfcebefd253f96457a8b5a6c662655f5a92c82bc1b41f5b12cb6e00b847223dfb58f681558c4b909bcab29916a58ed1e6d79fe6cbd3bc58d8f658d7c5973b86d270e2ebd229c51f384f2bcf216a9c5719c981798bfb7bce305ca809047bf1802379fc63394e072c262fe2a8242a23c38d54dd25abf784aa39d590558de9db7b037b481bc6a7cc05fd4417963a67e2141321e15bdc18424caf2c5dab2e75552100db44c44f6d26e76ccd31498383960bcce557f2bdf6f7157fa445767a6cef7d495ebdd6e2fd2b27feb6694d96958e6df1197202629dbeec8735e9402b591bd440703ca2aee6958405e15a503b9414b80c2f1ac0bea71e42f71edcd403d38e3ea4634da699a27714b61fc4ce331ad3355193f870eee19571fd45243effb96c56e96602a34b57de954af1eadc9c57414811cec3722c9de52ee2db79432259902c1064b064e0636fc310bdb52c92f6de295e76332b5a0de70ff4aad39eb3beae570da4bad3dbf49622654324449e85d36db6aab2d9784f5fe5556fd6ff0fd9da5c2777f36d5454476e19f6e106d7f4b44a0eb94f3e8bddb67c331decde9f1307991dd44cee299fc0afb4acf06a28161fa1f68874f9baaabaebaeafe645be2c2eb1eba769b0eb7da24dc35b17925d69794fc56f2de5392f911ff9212eb477c36ef793cec584995794fd3f023afb2ded3da3be23e5aa821f769ed7de867b4cb42d68f5021d5117143c48d45f9a77a0f895e7954487d16a5426a5ff7ef275baeb10dc78550b4786ff12eab8cd4c7b0afb2ad62d6775a7b7267480b9e9cd9a61c3d32f94b0b6b6a539b6ef4cf10813dba51b991e726cf02c360557611e1deddbbbbf76f07d9213d721605429e1eddb80bb87a1d5ed4c226e1fcc6fe2bd2a3cd89dcf7defb8b0df53d5f2a84baf9e95a433d32ba7c725459b1cbc6ca4de23922ada92069ed3d1e8ef16ef87bf0dd87d78061acc71eb39bb3fcd4da7b24fe93e4bd7fef2713b7d6487af4d3a3ebbb05bcf2fe097983ba83fb8070bba75fb8dbb4f98efb3a49239920fa4a4fe7b9af2e19f72e731e363d2a3921ad0569ad86633c13f0ca7b1d5a8842d5d5503a5e4f8efb5ec7fb9fcc77b4f678eedba86018ebdff7b4b2b69470b067e9be9a1d3d9296a5bd1f85446bd2c5dd6a75f0d91d4277906645f73004248af1c4b9cb037a54bd943470dc1869c487557c2e006603546aa85fbdac36f815843e5ce883b7a398aaac6c8d520392bb69bfc9ed84c5c5a5dc5c4e4455e57229f97d5596abac249b98a0dc3f9784c78f32946d142afa37e5efc6fca9db7b90612aea376a7d655976b72f22a88f54a49470ee9f139950fee659fcf688d2fddaadde51fa5fcc6076837b4a972fecc9b97cf9ce6eedbd4c3fb428cff97ab63d0ee9fa0aee9cdd66a8e62b1275a516473bd70309210ef851bd833888762e67b2ca464d51371cd7693846bc7c1501e6f9630e1977f0b8f023134c8237b103177ea4816b60d8860b1f26816860a8860bab6078860b1f2281636058860b1f9e2018188ae1c28747a017187ee1c2873e700b0cbb70e1c31e9805860f4dd00a0cb170e14323700a0c1f1681506028850b1f128154307cc80397c0a448845b206cc2850f874024302916e116f85009700a264523dc021f1ee1c2873a90084c8a266e810f8b70a1f6f0611098147bb805c2215cf85008c3f0f0f0a10f98147db8053e04c2850f8330cc0e0f1ff28049f108b7c0873db8f021108681f1f0610e98144fdc021feee0c287390ca3f2f061144c8a4818e2e092e20fb7fc6098948737b8f0e10c981493700bb40fa1b8f0e1133edcc230fdf0a54ba975b4a05ab80be4a0ec6b5675f8900ea11c1e871c70407912ca6f7d49cffce2635efcd637e6990f7080674600029e39010978e619339ef9de67fee1876756800216f0cc0b90796619209e198867a641a3860d060421c433d778661bcfcc80670ee29985f869809719c5b2f82519f62bb2923f39d132d1f39069bf43c6c3c3c87678950cc6a7642a6fb394efccfe67fd42649bfb24f941723ae2d36332528408cf901d9d92902040727ef8883d6e9cbb9c92df5c58fd486b2bf7f2a9eefa6f1027be926f5007fa5c088f549f58591f1c6772a6577aa557b2b1b1b1f1f171f94ae0eec32bf0d9bfc02fefa4a1e0c22702d1eb403d9501e27089e2a054b284035f4acbe2b8333d652f9eba411c980a21182e7c58ea27b87063005d3cf47953fbf008a94024fcf14efea87f22d13bbd9394b596da6e9e23441644c680cc465623a39101916db1e7c297c916906dd1c885af80ec876c8b44666409c810906d51678b2552b6c5205b041273b6f823fad8628f0ddec8dbe26de6395c07c780af92f98ecc77c878c8dc8663c0d732bfc992703d649b3771e10320db1c04173e4bb6f9083637c1851f806cf3145cf82dd9e62cd8dc0517be00b2cd6370e10f20db7c06173e01b2cd6bb07914177e01b2cd7370e18fb2cd79b0b90f2e0cc2e644d87c8acd91b0f91236a7627328f8142eb4c2e643f6ef66fd704438d5713e93d77b1ce9955c0b7cb70293628f1e5830c23026536052f4e1a30a17be176118160fe38f1f7052c1a49893f3041e86a996c0a40804481386308c850426c5204194b0c3306f0a264521428ea0c3300620029362a9548412c3d0203029eae80c4108c3481f3029eeec00e1c2f720ce0326c521ae05fe901e5cf80e24f2f0c09228981489d48049b1c80c98148dc48049d1e45a20c3acf0c130273d701846f4447060040af8ee0226c51e163029fab816980226c523aec5044c8a27d7026f1806e5450eaf430f0c8eace08402ef007c52fc712db00926c524ae05324cf6f09d0926b90f84493e70e1cf1c321c5e872c8737c95c3c0b16ff015b7b77ffd6fd7c0d81d9278545c1debd5544152908ea7ec7d5726f62c28e871c2c0ed6f4c2a2587f6b43b1a127aad55657cb0dea7f525816921016c2b1017f86408f4afecc7337eb675eb7fb5772a47ef7762cae7d83f516dbede95c4bcb5a84d8c531cbabfc961478d6b053858cfb1ebba8c533671dc22cfb4a2eb2926f71f237642c4019cc6a4c20c02ef7f170379792677f29a2b21b0fffa290dd44d56eb539c421e7982d0aa8081efe45a2caa6c78fb15cf7db112cd639f6251975d1707f2364ddf720cbb19b09f676bb008ecb5f723d04e0257355d0a6815ba5702416233aec8dfaa0f767d507cd787de7ec5d50a5617e1078523892a39100478061a8771dfe76df0c048eccd9f6cab98aeb0c86ebbc85eb6c85eb763b82e5d6c730cc39e75cbf73a1877d05613fc3b16cfe9551fb5a93167777df6dd2701b25c74c05be70296c985455559e6df2665b062e67337ea37d52b8169f397964e404477a32abb813d7ec012c04180830136024c04a809500230136026e1dac0633015663c274603a301a23603a8c80e930426986923434343314e601cc0358135813580e2c47472addbcaeea6b6c372f6951496b95989452caebabdfae5a7ffebb6c5cd55a4fa1f74563bb794929a59492565f795f34beeb8e5dbd5b94a9b72a35792c6895c18fd97b47dd594929a5a48e446545a994524ea794bec4beeb4b57555f2395b2aaa4dde8cbcaa39b177659164629c564fd79c57961b69dacd83563adb5d65a6badb5d65a6bbda4bc2896c177d9c31e342f29ad97d27a392d394198947f49ea48f40894528c524a2946e9152a29095532a3ae9b57472ae5064b15adaaaaaaaa4aca23482aa594544a4a29959256efc7c56949392dcbb268dd62bb79498c0989552f31ebb22ccba2d5b2aabfa494524a29a594524a2965a52fabeaaf786926d3b1f2af7d046b567ffd9c5736e32e7d57a447d5a2c8a7a192a71e849584e85b52fe55492a29e42b8968d20616300ebca0ae63be18d04dd077f41d7d37c550fb395e143e87a16e7f238a7bd72f9dfbbfec2665ad33d358be1657eec36b08f7f4fbf9557ae43ebec6307c23b5d34d5765af2f3054f84f254661728f50faddb3bcf7efbdf7de73777ffedebff7fcbdf7de7bef3d154cd77409b57b06ed9337d06cfa98fb67b443790f6fd8e0b74a5880bafdae0d978d30a7abcc0fe7dd24f9294204488ed7f88e233e3b3a3d1aa769921829120488e3e16a4e470ca9a1c231f8e9900784c92a1b4673fb6f6e0fbc3790c7dd2445737bee3343dd280f23ae5dfc857fe87726dfa4f678509b761eb7ff3ab9d3be4e749d7beceeec987aefc5f538fbb01f3349fd1e5219ba8888641d494fde8efb2023da683e20ce6d6823e9dbd9b1d9b1793b3b3b3f3fb4ff95ee262592fa92bc9d1c7007e471f9df917e793bf7fdf80fb4798f75c6e0036d28680373a00f22456445a408883ed30ebc68fc75458cc6e8fc2f34d44dde394ba8ab25978d95ebd25aff739121a38ae8c5db5102c768fa90c02dedd74fddea35a134fabaa7eacbf8be8b46e9d1cd49d0886bf1dfdefd488754ecd9f80b0c62c4912011d7d297b5ac4d658ddc7e908823c1222217df0ec7e87f3fb0887ccb6e2277dbb2c8bd7e6aec19fe32be7287a5013336429c29878f217de211c48dd0bc1e73058dacf9bf1d7f79bce2df2f9a5f91dbf4baad2e1a0f6d585cf1061a5f56728841130ef274fb19dadced5d35f05c96e2b28e1a76dc799da13aeb44cc5037d7e3e4462f0d789d955ef295a627fd5e7297d48b3891dbfd4e9eda0c9355ae2aea466ff7b34a6b73f603b9f1638fcb97794c776855ef7a7a513ff3ee73b71ebe8cfe8b4958c09dae12ef3d5bee59251cca56c1af647ce8a443f7ac5b16ea201526d351ec1b2065adbe699779c58b8b3f9367e6150f9969f053fcd453f0297e964f321406fd7c6de2e2253664b75aadc31cc5be2f19eaa9cc2f191f5aa338db28e476e8607695a1f23bf68e603fdf738ffb2d71a9d65a6b961e31f514f5eed453568359f5fcc8501d85357eeb2b7eed52ecfe335a094959168ab21ae6d78c868f427d44a1ac055c1b92e8cb364ba2af0596a0b9949f6649b819b69bca65cac687b2def8f546af2270a98de5f2e672d9bd76fc9ea33171d30547b802911719b97cf90a3d97ff0d31696ebbd26dbfff6ebdd250ef63ce646beed94a863a70771f7ab3ba3aa94e6bd731bc92504b5256d677c837f5b80ed19fdabed2d6ede3853b843f666aa7aed55bfd2890b28f6796805001a3c1b7dbdf0c27e3d8f966ce3de05c92eb3ef028e7d3ef5512c2528ebfb8230e733a07fab88eeff40bc491ae0373208ebb6c4139ff7721ccf195fe23fd02815416e6f890d63ac7775aeb9ae3ae035d27486fd007f7e5f408080751fde3d6686bce66af660a3eb9ed5ea894be63277e478fd0995ffc857aa7301cd4ed5fa55f446eb9badcf717e6674fba4b30e74b0662c65de7d5b726df7a8a9fbeb3801b425a25bead12ce2d4af5f2a9b732944a5236624fe1a373ada7ef29cf66e4f5970d42a31a102817bd320bb821dc7bca6d10f119453ef5558622a9c812ed0d485d1339c22a93a7a353f2fc233260835f44be327f3eb3880a6d0a777e16ee7c96f3374672671257061d978f5cd621c38d5f32f27d70d790a1fc77e5fcf94c854e74c8a0e36e313b313ddaea9da3f90be851fffc1a2e723fa93c992fae9b4ba8d4cbefb7d2faea6bcc17624eaa9eb0ca8c47e24f8784bfdce02f2c7ede90395ef16791adc8e0bfc93fcae4a9aceff54e614f65eeb18c06f58e7af7ce6e0e52af99887f12db0437360b6e64175f89d15da89f4ec576f24f74bca85181b2357f2799e59ed47722ae13bb517f837a8a7a475ccd94b2754e4c25264d03b29bac2776abf6ca286bee3a341a5a55ee08954b5522ae77560977a9c7dcd57c7c23ec57551475d3e2bbf88b2bf54afc7741a20bd25a7ccc065583fff13717e465c5c76f1d3b9a478f6ea80a453a35dadcf89b0f36be12a38f1b7f45d6005f898f658f92c19a3f911c1b1d9c214c243acb5726c387d6dcc27ed4ed75153fa20e92d37d377ed3c41dd4a918dffd5d5a731b0176f079f3b6c46d9aa6e91e3d72d03b97d69c8d406b51d2d0b34e196ceed6342e8811213d8a312251f2f14b4ea058f1a0a69971f7b214682dbeab41c25fa46f357e11feb2c2c68f4003a2e4e101750e3a9377a8d5143fa8b9d53f4ee55c8f5cfe1672321ae175baab9cab5c7c23186687b3a900bfc8f015f9727335576e8ec77537a5315cf91ba3e14af99b63222ba235f92ea3406b52860c29453268fcada8ea277388b28f110ce357fe11f2290a0afa27fdf25f7391cf3d922a57b25cf90e470acedda3469473b235c7d43d469951ee23b44f05ae45c6650099df7b197dd781fa7b7d9b3e17f137eae9f309dcf712c22dbbcf573027a5ce5d64f40b123427a217ee1d66d4a173563d5f54f73b66e798257c0799b6f6dc7940b9c46650b7775d52f87cc864951e3907847a225fbc8ac63265baa918e35fddce753bd7525296d67e173f3297a478a2fa8b2a8f0aec89baa95ce8fcfd8330fa7335badb57a378349ef32c542fbfb2663416832a2d6b553f5d70f595a43a421e1a7cf925bbf3da5b94f129ead95112f68b61f20645ed07670d77e9cc73ff86d45f4af9d7c7c771a167db0c5bcf977b7604bd96ed1fb81607e44278c95096b64603d17b2267c7954fbdac15f682ba3d49a385ef42c651f63926f0b3c99cdc1afc9ea0986d7f6311f1ddeb87f03e1cd13920ac78fa436e7fcccd4599f14f7eb629c6a68476b7dd1c8df4636c9c88b969ec9271d4ac3e94953cd50f3251b70464a2402607325d48ada46f51ee2dfad64c4b9a31156363b9351ccbc4de90efd4cfe818271cc97ab785ec66636eae7b4aad7b8b3a4a29b52ca5d4dd53f9cea2b8e80261f49ddd6cd077ffae292be626e6e6b6bb56340bcb5351bfc2869ea8db0ca47f839a945ae1e244d1fe4759092f6b0d912e9d7b489d738e7e9b626cdc53f46738cdb6181f77ab3ebb61fd12d7d17f72eb8fb17124fa1d8373b78ada62aaaf28ca6e3137b77a964fd1a72acabdf5d4539594d6bbcab977abb2f467748c4d282b7993cce4dbb4c2c65f5cf0f80a7cb9c2e642f82e78fcc585a856f82727dd73f21fc4fc3e39b128d89b3c250a72e1bb38f94ba5f115f822918b938bd3851fe3c4bb083dd1261d2f1afd374016ba0f551af8314e3852571be3847bea4d305e2cc6094772ced9ed0878036f2e683b02deccef7754e517e92b7054fd48fe88be9b81f35dac7beb9e3be3cff6e98971a24df39f9c1f73e3442f5a732f5a833004352b931965adce1b3add536e06decac638e15aa89fe132a2d4643d40c2cf8fc4bdce95725edddd25cf7a37f65ece69bd8bace4b1cc722f6af12e504276936c37d175bbf170dfcf19aafdb5fe2bf5e3096537b05fe236b3e0fed0877642ef9585bd117a4c0a47aaef8dc3638f83ddba5f5814bbfd1a5cd84d54450b2bb2dd6dfd6b36b7fefec2beb2696d53dae129622a954aa552a9a6a6a6a6a6c64d393939393939ed23a78374a97744a7d3e974baa1542a954a2c6a6a6a6a6a569ce4e4e4e4e498b0bc9894dc0ed535a5524d4d4d4d4d8d9b4ea69fa6691d5d6352522a954aa5504d4d4d4d4d75939bdc0412808c1257236d2a8ec8c7e714512a954aa5528daf744d4d4d4d8ddb713c454c3e202ac2939fb052a9542a5db400060815e12f10877d7e1ccd3b9d6a4aa552c9d9381ce7c3e5b820f49ddee99d66a9542a9564c0541729a396443b8ff34e4568dabf4854abf4a927d1d3f0e8c0b1fcc1d00e5249a01b7aa236cff51788e3f244b7a78cdbcce3ce1246bb3d8e05e2ba90070cd5f54f12c6405c97c15063ae03d0e6e9d10aa79186061be67b8e9dc839616250d4fe19238c9657006d2696835a513c273afc04c90a4f30d288b49720cbba91e8b786f15ba47eb3527ec3507e2bb9fcec46d66f2c567e7301339f8df01700fcdff02e5a3c00e6f7307f653e2aca54deca5afc84148e814722ab626158caa65816c5e688a2c57be07f48113d6852a6a84bc62d0b9ee01878a4f2ef238cdf6015f7a121e537b80694df2213a316bfc5266e0441b4b9cf721747ad96f51608f415c83d28ba0ce8ff85e8a452a9325f4a19d083e2a45252521ea5ba88107d8af520d0fc1bd657e8a7536bef678c2a3f9f129d54aa6913342dcacfb72e22440fb24a00617dfd99f9a9479b9f2cbb81ec5bd445df75c9cc0b0887c39a735ad32d2b7369cdd25032e6f92919b3a66d31773e8c8c79fe146532589b5f80f9a01765325a9bef436b53caf943e0e9c124745a737e75c95813f4ef82ecb6048c6c73170628e5e129f2e8d1fca772838a8aca83b214ebd21ac8ca68edf1a3cf3a5508d9e9d1631f9e1e6d2c44ba488f64852618195f9a9db456bd4a96848362e56b36e3aec80a6184bfc81b5cf8b8a8c58ab5b627ca1c6ba0f95426294a564f589bbf92897865fee4079201f5f5f12307880e9a1c3834346138512089039cb34883727877c9e8f0351c29e5df3320081ec15839e9e1449e9c3c8c14d9c30a0804650a0fd60efff77ffecfb5feefac214dd3341e78786d0718307e468f52686872e89030a46dcb827ecee81982292a3fa91e3d82f1ef291ffdb2f2efa54aca4ad639bdf27e87ac83082981fe7d4ae6ee2c81af0346bc0f3c18ace0d13c0e3c9a9497b2d694df447787b7c3a7380dc3e40059fb443c08f459efdc243d9234397a64b94ae7b4f67e8719290ffaf7d324c552292a0ceee1650500bf55235806d6dea3f117005878065e79ff6c096c7a881fa859b16db8ef9d5ccbfbad211938c6fb0d9ef8aff5a887c041324e207b03f4d9dff01f47724219a63c8c77c36fbde36836d0da7b9965e024528137c51af152fe552ebec54f8b8aa0e8532c3c41130a8a49c68cbb6f635a7b8f433699e90922813f30499b744987faa5860ed9cba1c3af7902d99d1ceca38127dea18168f879109e2012f84355c7e1dd0d9e5abc4773c37b16d94657649be8fd49960425c35f58402c35fc45d6ba13061305a34956e0a75ea8b626e99346288a4a2a4c9ecc0de56563e5ce68cd7bf4e8a5f1bfa1bb480cf1bea3a8356ffb82b20b90ffa3b22aab6a9b9fba758fd83d1866060ce3de7fbc86ffe0bf2844031ed03b28e60eeb876d386e8d23f5c87dcfd2daaba1895ad42dba8fb21a35c30ccfc1c2745ffdf9f3a7a55afd25fe73ee1597b2569148632bdd25c7e87e439cbbfc660cd0803ec3330cc3a61b81d6de3fc071bc26e4e36f1c0fbf64aac7865037ee714f0385892031d32e47ff7b4f3a1d936ee1117900bbc87e96f71acbb3331cc3bdcb91c1748c65060331afd22fa0f7c93c3e337280de03ff03c8468161ef180618a66f9cfe22c301c75f6af88abfac55f4afe15c8f31c619edd6a747fbe81fd3005304f131678cb4868ba6b977f7d871aec89dfd031342f7e891fc487d0f1fadc59719f5d37a6a3bc2e5c2fee17a50f2abec5d8cc2ec0df8548f59d5235c6efc7a05b1c20650b041fb68cddf65035e43549bdb66dcbd71e3414cb67651be288afea0d13f665c8fd6bc0db7b3c031bc6715f53da494aff7def78fac7fb4e6f0bdfb4a5a1bef1da4715651dd4f8fee69cd5fda47860c17174dfbefd1e3fab70949958dd323ef97a1340dbe499a86fd3b878eb671cde3fa7b2e02143c7c2e77e37cfca54d740bd5875d11d7e3ef8ec65fca5adddbe42d1d039ac655c68c23661cc95de6e70b761678c5df0bd7c750d1709d6d9b684ffde7b471e8c26415fa53df3b25a5fbcb6ef55e57137552d5fb25b3d10b452fac69b21a040281404f51a0ea715c296b0692d6cff013abca625314c56f04935532d0a32712b148a46355dca37e17a127de75d7a3ae20aa680d017f46bbb7e19ea9fb26452d192874fc0ff36106c5ec871710fd019c67a8e4cd557549ebd8cc08000050008314000030100807c482a1602c1424ecb21d14000d8da44e6c549c674990e328c390410618000c0000000000800191290101fb8b3414fdaed73ee3d4d4ab288eb2cefbe362bdc168a89e3de3a2c265cb32c6cca6a8185511ca7a52961d256c4a9c4558410e7a20c79a4dd9126135ffc9c6c63c8b98386594b25dada14efaae54f99fe809ec84c7e20ce69103368cb022628a39320ab1cbf7892778626e3d6010340b4cbd094f9ae029f0b5d58d350b3982a552e4fb84266422e099f1f7a72c67ac32ca7b83246d5e6e339d6a4f89ef9dff6c013130f44c9f6477722bc96fbb1d93b90443983d0466280d6d9bd459d0c412dcd765cfa9e70c6195c61e05847602caf5eaec772be2cc2258f08f97fa67c8d1543d8cddf06011098d2b91570af94dcc844f02f6128f3c48f3082b22a0c895239733184861d77b0a399efff67fec3f3e2d059efaa0a7405cf6dd02da839f16cc145c31104b8c3781bc343a8da024692146904754c882234e826e7fd1661977ebe5fe20ac47f50f699f6461a50999e38f8cefc2dda1b880ba656be84e19549034d078686dec5d3404ce8df8286615de70ce523fd01f1ce1297597bccccf10648607a002e2358fb08a9013a24083c1bb1ac49a2457a018958d5149cc080349fc85fecc4679e14278c66c0f828bf0b725a994febd487a1a209ecc28473d79143d94a21ed78aa220f767aca75746f4491616ca3e9379b930d66d60b58a517d772232e7e92a5f702ad9720f9b62aec822302795b56bc211df49104b7e4c78e22672af6f7f14655804c42c37fdc750fdecf10362a220ae8c983d3dd9b36e1308783af04e84a40d51933f3c346e38e1ac4ee1c6c423cb1600d9198c133182a2e3a62f0599bcf2117fba3ecd6102498c3b00b8b816031e60423c7d2d212bf425618c60289ac1adc34a312aaf40c0784d0fbba01da4bb6aed387b2d1ebf8a8e8dd2ea1abd911a7f79eb18e72c63258b348ee573ef43cf1581995817e828f5953a10e5978e45208bc096d1d9530096c51e030e5392780b24317492cbc2035ea2982372c2b4dad6f0815a80125649d07072efbe5fd83b3cb032c8e5b7536905c15cfe1dfea6f66711531241bb93c8d7f7b7b3a5e5d16a799cf8e24e644059e11c0ea121659e28dd5dd0ec3a7e6def96bc6f25c09135942eef52e6e1990579626f2ca77f478f08971aabc4205647e676479e196167b24997e7d231c43499b429c9192b8e1c938b3dce5c629f7011a7a3d9019f76e0942f933f400ce75813465dc1b1002b2e60420a849fafc260822f27a3d8b1d414c6a7c056bb1d129faeeab8af03f891793ff219d69f40c95438370b20ffc3eea109f82eef05ffe6f74a2417cc12f66dc05502840e3e4de94c4141194bf049ed9d60c8f65afdd0c0b25abb04245f0e9bafa674a6e68b0c3fb0ef4e3132d0b0825a9a9046a2fa1488bf5d28cde0343cca735593674b002d7a7c97c6bafb4a9f3a1849689a40b4388dcacb14a9f1adb38939f370758e5a42d278ff90090a5e5e867217fc8d1e49904dc3a14274e207b8fdb658e21aca4abbb0cf9cc76574b58c69a3a5ab0e7ca2e88f29955e97b84f7ea669362015ef06da82cbf1936287e7d3568eaa22e870a19cf68feaf0b911353e561293ed6bf95c8cf8d5dd5e1f2052a47c21212c7b2efcc6e5a06d82921729d8bb29e7dd22a515cedbd010f539afd9f4a4cad90a0eba7e79b5cf50cf94491315dc78c91ae6586d8ae21d013c43fa5bdb2b191497fab811ca0a045f8a5ab1099e184c7871446a6a383d843f2a2cbe52b4338443da1c99af845c40bfed35b24c50e166ec236d3a275f385ffcb14f266dd6eec7c0b4df0f063e186bb66290e1d2273392ffc4f433064066336c9a2a523858b9883870e66568b2bc34797d1335b69d6fb3e6a6a3cb65db094c277dc7e54e0197b4fc866d5af673622f5b49fbfb49c38854063320e7a1e2f65d028e2bac295edc766c280527d4e45f867da45d4e784859a7b401007fa9d018b9388c5a8faef88f4ccbf50ffaabdb08ee39cefa73eeb950367c90a3942b118c0c070acd513742ce8028a33b6c50b0063f72bae6545de03fba5e4c5f47eb56a6ae590b625401387ef8bf619ce327abb3d629dc7cf6bfb578fc08b9fcd1a80130a99137143b963f4ddbdc331d9ea6ad549e89e44a38e5f86120de0ba5fd07b8df07a50821732cdcb94640dfa9bdc06a8fa91447e25800c7ccb919865fa01f5d4aea03e88f4eb573ce6ed4aa51be84037c8f7120db7fdf7f7e5ff5af5a9e382652bd1d8c9bce33de4f62204c5c1b91838dc9396da9247e04f8fb1be919a3090a8deca2d881ef1956af63e2427e361eb6f591a71f0cefad9cc4a78be36e217c802bc60d39811b9ec0aae73265fc12cf5ce02d9f344ae4d485f591503ea278cd25e747ad395288b2ffa3149cf0a8a0f2b20a4ed3832d0182b529fd055397ff7be1c242a9e54606ca6a9221cb06070e6a585baa110511f69f4089f0f40a9b4fbdcad30529be0fec76abc1e1909c4e1e9cd676cb6a0dcecd63559f98fe9bcacfed424524e9b907c8a6307a773040658343125caadc0e49f5f614b50b35d94104a3003f45fcf84d97bdc5df7e10a500e09ecb280e2f65c299c77e95bedf588a7e3b665cabe4190007588a8d07a20f6a12b2aef07e05c55c7ddbc6e61237c03c0960c035d8c4b670fc70b23f0c0604b60641d5241ba29817c849cefe4d85f2beda33fd374fd958332d5dfb91575be540b7f8695c38fbbf87ff8cfd5057e8b3be8398c0b34975f58c218178f66eb101bcfe3d639dabb171136feeb08e15986a03f9b5c281e890f2b278c632180ddd81d1f8a3073507a8a6736ab2004a32345aa33fb1e7f2f6a1a7148d0f84df038189f66880da0cebb4b33266cd85d692d3046fd137e41c07e07627f8e33c35c3d50bc6ce2016194e45e4dafe31e780dc8611fbc9b7cf0e89e114df0c72e3207746a60669bbf29e7fe4d4389ebe2384ffd15f83f6d1a0255378ad0f8adac38f21c8acd0c6b9eabad798f07d70bf7a3b774266ecceaaff11dd0244547132a6eee4ecae90a3fcc90aa187147116725274ca05bd02330d2448243f45c394982e5e1780969c5804ee531e16982fb7186b8f0bc0b414e22097942688274191f78e598da97bb5b20763b74d3ffe9a187df446d1a44fa1fa0c2bb1b1d60c84e4440267715ccce6fef1bfb2f4e59dc7d964ac78cb4c537a230d0706131f8cad9a253b317f4302b1be4323c5f3815a78181a5ebdf4234073f3678f46fc8828fb76697225a537d0c9cb9b6f9b8699acbbde888cf8efb8dfc8cc7e1e2613cb126a00346b078c235f7d7faaddc86e4a6f6623335b2abd997d4da389414698c79dcc0c89ed95852b41cc666ad0515cec8ef1a3c235a178379e4c8d2e53d75e26732d40d046754971095677e4d8802cbd593033143d7db3bba0830321b17f1ad8069d7a8333f711e9cd9ee1cc45e4d41b8b30c468c7ca2ec0ba6bed98980b68322bc8ba654037a8603150439f6fdcdbcecf7874d9dc673beb2a303ca883b44c5d29d412bd53e01bd74571e1c9d03dbd42c80f96826dfa8ffc343ad98a3f5666d54db6c0c560f30612cf80f8d4e1e6534879eb2631357e70f2e5c82e86f81e71d08e09455401863eb2bc9885d1d3e542ff9d8323626c1c6747cbef584a86120e14f45efcc859bb30301236b5f9e887a86e4899208f20f918591cece122ed16f203cf5915a2c9169745205d15f60cd17a2c1830ce3b8c6bad50de34e596e6d1488a66a4b35586f94b9824316451565b2e7d60b27a3b8848f3bf12828b46ea54dcf06ef8f48173d6cdba9967356d725730597cc6e0ccc88457c5fa5537b260de3c5999ef648c081500e06a699cf639caaf721f0d38c7898fb09537b4e03979ebbc8284c89cede42d5dc2ae62aefcf2b75418683679d421ed800e0d62d2a68ea4a46fe0a1e95380624ba0202028af7f44a58f07b68f377f7bd4698e06f6ed604180b789a82e5461a6df3d823230f984353672ebb821892835805f5950631464102904aaa016519148eb4b08c7ef997e700a4bcf8d5b55dc82e3653f6a35c4ae18b19d9cc452fd1b4d0ab8eddd3c657956afe2e70c258a28a336fefe7ae9fbff449703e22039910837aa574c0e5281875d06011fefa491c9fbc3f9df6dbc8c6eae5e696439d8bc7f643652706767cea3fbf733cad7d283bcba4091d3f70a1deb9dd0f0741bbcb6187672a5b4bf8ce982addf5099c6dc6854da6ff661f53edbb55cc7b3d94282f8592d2dfd65c37c3bc09b2d761e850e6ef4135b34af9f97baad521d89d224c0f30ef7b0b6f1a5eeb0982f200d0bce743f08cbb84acd04d28189769eb9ee9fd39ae42640b33fd57757e11e38ba8982d4a72282c5aba4c3881dc8b6b680438ad67d0015d5f49014953f903858e786d85175a7487665c5e53439fb07b9500e30d8016d7bb02a67a866ac1eb380557909d5c34b204832211a65e1fe58c37d154b3bc24735ccbf4f8506eea0c4ab02d6f0528c3850b82ba92b8077c431c412e1a027b3896d359cf823fab83b9661b78a1697991152223de42c1bfec1a1563f23d7b966dc3fd4a0547f1e6f656b13f01d7446868a8dee811deb0e836ad5dc532fb2888729741a10ef98eb40b1161c49c392db62e099ab7f6d95eb15e0e250844559278f05d48e387aefd8124c232cba1ff8aaf1a83d152651fb747bf6808e130b5b2ef21b0de4ca0d66e06419f59b4a83f8094ad2d2a3350b99873c6d7aed76bbbd8428c10441bf1b070a0821991125eee994a744a385cb6160173646282e647f5f6ce713b6731ae000f067a8497752866051bc700058df9c910fbb95eec35290c873b79fc08d47be3217d27b7aeca9f197851d14d0ac35f4df1d1ba2cb0e8459d7f0c68ee6fd19966903d4a16ae3c0d8156fb95a089d0b71572fbb5405a9465e6e298dbb05f00f591ea2eeed434cad09573d189df6a532aff85d9f42ac654531dc661af83031dd17bffb6cd3d1c5af79ccbfd318be20adb9b9968a86c24083367ca6b0294eb6f8d097de353401e08a361a12e56e286ccb56a76c1d26f136d97e398486cfed53ce42edd3bf2b8be810117014b0c61f7a5bed1f7625c28ce982dbef0d8b98dbd91ef5452b1808c3eb6a7ae39203183a4ef1424d2c21089151d093685bfd1332bff02ed653a8d4a65bb944638e43a8d03508c47d0583f2bf1d3c38bbb896f19a0903030f9b0de779c32182f86e37419e148d278a3bafe4fd980c127923397f2edd7951ce3e9cd911ffaf35d038eb2871fb6e2a9946fee4dc4db1659ffadcdef4db0265304ffc78334be5d9c16f89184026142d6cef2c507920f2d014798688d627e918749628616a2850122c63f0780267580e7f880a6145f60317471219cba1daadd8f614a678055fd3d4ecb88e37eee1ce52ec14264bf4b4f9e64a7adf14fd92be919c85cb219f42c6b23f8e5644794e80e7b0f3186f1f42a0c81388d7afa760b70a4b80621e49ee38f8226c89494fd5474b93799053c3c5970ad2ab056d524081ebce887f5ce9f946da1b084ddf7da17603efb0ee7407c12461dad18131837d23f590ff12a2c006ab4c44746851b956c7ec67252d61306d224d6010251eb7968cd8d90c4b1d7dce7af10adeb19638f5d466ecccabc6261b71c97a31d55036c01c6537e4a1056662b05ddb4d0e8b9a73c78a014ae8aa7ad253664fdbf1d2fb66086d9109ae75ff42d2d782be3b3703c6d99fe63120b909f120401a6ba80c1782e2360419b93e550e3cc0e9d2b541605f0dd2cc6d092fe7a7f093e0919269b25b7b40860dd7f432882eb05bc2302727ea2823c1455dd50fb8a350bec8b30edfc5f4632272bf5d070e5972bbf89b835fd0a2769e72778e02929b31ecfd680dbe671c3a502c5c538a19fdc2caf244c5f5e11f6982d84612fed32d20a99208c9d184236dfb34aeb7b0c56d1cf2047ebcb51167bd0f5ddd68968bc37b645322d68f4ccad610a9e7289d8d6f4ef3ec8840a8bace447f7f2b484718c20303d14102ad2b621c77b4f1db4b8503ff9e308f3e2cfa7c90aa5fccab7d5131d78280cf022430dca2a74d71e8f4223e8f01f17a49b05a658b266315389663d31d406676c37858d1b21f6314e8f94e9879053dafd17da070d20330116a21daf8c733cc4b229fa3520f9e99d9b07ac59c96dc5fe46704a437336c6dabe1f4040bda6785eaf935fc88ad300f2053fc89b06c2cb436ced8c7e00256535e422243dc63998acdd34392f037d2ee6a00cb42277a40b605d0b95dc1573289f8e0f26ad2013ad772064856a38139ce068a289b57058df023b0687515f2496286bbcdf8aaec7d174d3c0aec8295cb28dffbbbaff681e0246d542e2a92c026a75de723c0b61782407d0d4b81912c0eac787d8941d858cd12fbd37ef8128278980ca9b71282d0ff42109d95e150bfa1959145beab980b56803f6a276ad578cefdee7686cc9d53b4b507680be13046ed42312a8cf1dbf4a56aab6aebeecf3a2a6c7ffc6120e21b772fde7d8aa0300aadfaee075f9357b908a36804bc1fde7dfa3be0b02bcc8df83e0a197a88b510edc12d9edf06f6ad51d5948146cebdbf0934cb23d5711b85455b7e1246be7b52071f2c338264a82e684856423d91ec8a8f96124187fcb4114863e1f52f86aae077e2a3079309eab74d011681266b0940d5664aa6ef3f22147ed46ea5c9dd580934b6ec7ea0e935a6ef7b7fbfa8585fca47bc2872f99becf0894507592a800499e229cd1acc3a6dd136c92d8b1f351a7f3af6578bae4fafe7f7f2d4ee63bb0fd6dcfce32ac8eee1376f0dc70983fdc6ca84af775b38e46b7416b72c38a8d68896cd0753a55eaf697d9cba3b2a99022205925d80fb6389f339d2bb862362ddbfa42b46b92aa86013d84f481f761b3e365bc784a010fbe5ff8237a485343c6c022aa7c64a12dc1e47a0f399a5356661e8286616ea2e838137ede10691c9916ba8501e32654cfe5b7aa0d80063402858fb3141d994bb9c09f8d4b3c65d81d805521d64817d8847dfc58368d26512f6c31cddfe1781b82147156286128e57166162189b06a5afd01f2d0583798ea6a70813437e4ce9df167955e0451e50c9b230b30aac300e32954a183cf881045fe83a62447573d622ce0e2bd511a429b239a4ecec577fba107565a5845f4479bf50193cf5bd404884d28af9a0cd5f533fc436c89440743a3360003b84b519c22df01841eb434f28f1ec1e499407e16a328769d992cdd3c53feba9e419340023d8f938c3fea19cf27bb40079b00b0f0986f02fc29f93296b480f11aa8166f85ffd9cbcd9060f9725a52aa920be4512f8eb4f69c8dde1b32e86bbc11181242831ab59fb34a0d74f87cecbbcdaf4b5caef5889be90dfdc9acaa543b6bf74d1d852fe7f9cedb043a1428c73480e5314f2bf3eeb50c1ce597905a72d81340fa25f92eaaade5e63ba5f08aa433b2bfeb64cb96216a910aeca7a0e65aeb0d24d5f40fbb1e18431942b89be90207a8cfbf8df66277b5867cb3b2f9f5682002c580b3ad2d87e23f4f5473006dea537ce47e099a6c93ba5aca667ae30ee773472f2e3c35684b9e47457f32a3122effd2bf848bf5b13eb337d80ba154c1653c606c41db6a49f250156d2e8a5f9951434c59ed4e2d52538eece61e0511509542f1198b93acd6297978dca0440ff1838e4819173a128a91e86500a8e036841597b768149e42f99c750709907bb09b11deae7eccaa2ca082c2926c87b3de44ac9a26dbce94b0e52f398b228f0b0cb0029bd3eec30809112e376f4abb47ff14ebeabbafd2cdb67c0354a3041ca22a0c9bbc555ee46bbec1b4d7109c9e19a8bcb4cdf7a5910118035a3188f062fbb4335f21e8565a64655f0ef15c784de6231ff45e0c57f11a7470fae57ea42539194cb1749690e492d43e975a7238d2d5cbacafea271e50617e8e0b1868ec3278595d93e0a5efd22502f33820db4665153cfebcb9201618bb95c7131e6b6300f98cc377e74978d24d1cf0f3b0ce7d7040bdc65a39c84d90a4bac5a6116d4d66b53f5378a16ef20c5388014660e64950e6e4aba43fd32ea476f84f285126c3d8a26d8055678bc8aae3b9c5d135ed7f2a45ccb02c7d552a8fef985db579230a7113325266e3db83b86d03f38f50caa21e5573c37af046b94d001176fc378451c22d8853d73036e2d0a747143dd8f3c57d1955daf38da5c0056b8ccb774aa154d2f546d403f4bafa8bcbe4254b93de239e76380683f70e54f28f3a4235bfd9f448ae970595341af789aed15bf756345f648dfbce6317b30c8996c7e76b317ac0b6d25426f6ed5dab573bd0c6c0abdf8d58ed3c8b810808264d0087833a46b7d5b4b5f1b76a445f7d2d7d2deb6f122f532e2df5fc7ebcc935c298033a16d660e271f3f46a1591386165849e866b290057c061a1fd7d629bb6adfaacc80f7f2e19e5567ef517ea36e39d61a3e0d95582d92afd3c878be421180b1a03844edb892100a26f876fc96464ae32126f59098fe3f9af5d4c0a0a3c3be47b340572755bdb0de949145a1d151aeb630d75f134513164f9a7d8da19bf102a3bfd9c27eea243a3c1cec4abd0aa5b8b5a7c6c66020def89aafdf893536b65f5d3754bb3d6a348b16735d647e8c13d3f739ead6acf16d5636e853cdb757b9ccff580770ccff18f428497d27d10effe3040e4e40c50ba49ac8fc468b9c7bae171a6b1e03002abe301f94285ec0b8382af6153939b08d548c141f993c6920313b26b0ed03affb9ffc9fe3bf46eed056dd94afb15f40a3810b7c2f7da13df2c7cc392e68c2d3dee9ec3d80e01d91051e7b5da520db95b5e03aef41078463dd8100b5308ab980b95789e9acd2faafee6db485aef61c3e9c7b7d18b8e0c37024147aca4f29552a3c57191179ec95d19cdee973d994b8cc3305b89ef3c655db3f5082d6299cd283d074d88821ad7307d7345aa37bb95fa7d003acd9b2c2df5689eb66b8bff2e91cf321910d0892f91fe17cef170369293c331f17e9e11c6a999fa04a2158d0ee608b243294a24291323fcb7a6db4d61c683fbf579c2e75db61470235282d05dfdd92a7500312c62c5590e20ccacb568c57330db1b80f25ca67062bf4eebd0383d7a8baeab20550024bc566f61f8364e0867c0807cc0b3f45b9cc56cb8781860f637e26285fc258e94a801c8945675bb88cceb463c4ee571a9646f0cacc2ade02f56798265525a5fa08640637a8ecbdd33154c812311e0e88fae501c1147d5edf17513204b4267bb76a8517ea15de32b26e0275e9ad14ab9fced5120966c631a7612962d2da42d09f503820a6d7f933da5b28496c097c999cf2c4e182b56652e5fb51b927f422370b2cd2656ec77345e936f28724897d7f027672ba8ce852a3e92b6458d3e5d96a3a308cbe4a381770a0f3270bdfc247bdab4d19239641b6789cf974a43f4bf64dcba248f67e25fa36b3850ca8d1244bd8283a99722cbbaa4b488a97de7cea7b75cf946d7259e8e81ba195668cae584e4df643e62a3151a9ffa7f322d92cd66a426214e0cdf148a37b89ffeab52956d089ec6725ddd6932eb3129ec885a3344c0ff0121ae2ab3aa54b796a7dff551e10cb1d57ba43804d74c412db52f7d6124d372797b854a6908dd12046b79a12414f4bed1aad9611c09e07515349c9f5f5d53a7fb71dfe0738841e72f1b79a32850016f2df3462ca1a80e65d71ac72ceca554b2913807273352748b9904356419299234068ad2f8b55df4e4f9ccb13c0a36a6fb47166757bd0a76d6c616ef802d1d6a58e19e6871fa2894d726ffc37323d968bf0321e73c3f08b1d450c14260950fea701515daeb0d3725f336d80e63abc886e723eb989776a4204e562a31948828916428a5aa344a9ca5bebc6064889c152f25c1033ce4c645ef3d99b0448994a68d539a5b4c5d29947684e1b02b557a6cdb0171d13703ccd4f0bf66455a54ca1ea776a0d0f693098789e820cca7570b8dde09091231bf9e17385541656adad0695597197125ddcf4927063af66a17835639978fe5863846c8f170b0a29a8c43f45b433ff3aba39d496607439f595a2457bc711d655d76edeb58f53dc3fc58813c3d08808a506506abe0d042a74455d76630f8ab6adf067bf36ee8b568264c08c6d400b194c3484083c0cfc847840b5df4b0fcaee671408315bd696a0acb302d50ecb78709569490f2783eb1e549345a5f79a665ac0f608b66fa792bad37b5936cf813134aa27ecea8bac8076acf28a98dc602c476ce40f4055ebf67131c1008e6fb867d35d70bcc8c63cefda53d742aab3b5878af104f8bff6c67615dd26044f706780e6bb9866cfa48cf9c1364933ed0622a42938594e651054a0199b6acd3e3964ef2fc07e2a7b0a1a9dd33a83e3d84463e817e0f5a4535e1374cd963eac3a5c2b3eda88057b8a6c484c3dcb3165fc069703046f8f5c80560e0e2aae75fff75d24606748f280a84fc1e3d3d951c2548f6248cb22353ba6cd69e1efc891812821f4cbf26c5bd94c07b0ab565e8a26aed8f57e40b4bf49ad4b2b4c2cc9666ee565011b733f04f7f4f561f4c3e523955861c47a71681a9ac5fb527d385fb432a99c53991fa9b57b24ba6e1068d5d4a92e20cb116d21e79d03cfd9ea645fc08251eb994f1a65d647748b0c0b7fa13b6ca01611528741702d0134645904cbc81f74db06fe871b5c4b3873d6b510e60af9f5c5e79b3c9d552f202eee5d98b1a71fd39e58d40d48d190307d12e000578f8109e1b5002076744bd003f0cc12e4430e29e71e4d0206a8b3a79e3100f05367d448f026b45358d8452335b0f9e84f816c0a302d2c08282b644ea9846a06b89b8861269c9de56add7cd99ff55e43662a750f830b16008053f4ea3453a574ba16f661d18a2a33542ff150aa4328a92680e680e7a905536380ee8a050dae9f9f26352cb9c80557c9afdff534cbc1933bbb6bf3688f098b91c3152268afdb26a254fa331c29f06f9ae3923070c2b472e04c889cd8348b577615646b9544b82aece47319c1300f41c5c77807ed1104402eb4eec2ad2c6b55bd5c8b5968d57a8ac95086471ec551f216b41c2bf950562167ed3e199db956891130528a5272514360c25ab752d582737780caebcf6d0d0d3036b05921772c3261c83ad20fdccd2515df2fb52ab908a78f473d9ad307c03d67998774e9f756da8c4c3be4777825e4611a41670abe1a80507a908ca36642fca977929dab0ccfa3ebad4e58d62045752a9584d2b7efadd9a9eac533bcff360e929583deebeb89745c7697003ac6f02db76bd995c87f18e27b9a505f918cc3dc80c63328f6aecaef03fc218141e287868f3e2e6b64d15a330cff83a5834ec144a01d07bb8143b3baa772bdc66323e0f1fc2db7dd51690ff7304133d78ef7b7514436560d7e14f462e7143a39af450f6fb3aae1ab6f5d9b15cdc2bd46c4fe1573b47590a9a9f7141589c50b9a83676fb1b3615d211eea9888c8869d6a3f9537876ae0c57deb72b0206ca154808f6c8fb7540e297558f146925e42948b0e06905928baf7ea1faa38793e6a69324872c172b14bc7698746eb196ed354e6fe2d8fae6763f6888e6e360a062a95b7e5bd7c2f45a2b91220301c14b6862035e93392ca1a4961c7edf0ad2c329ece25d40efddd77a54bcd28fe4592676080b22050265d046e602e5979404d9a7667a1540b0293358d58e72e3a5b3c859f1f46f16904286abc54b91d0077ffe17e99b8b68ad0b91621933a91d9cbaa67996d83578ca3909d6eff90f86a98a4d8c235cbbaaa03390b6b1e2158028c1774ac2b48668da2d73c8e4df1d3ce31b537602806090a38be2fa20e62853ab73b47720433230243c943802025b62829857e523eda3f4ab550dd5ef522facd70a784faf693c51abc4dfbb05887593fa2f37711919110d2e9d54d80cc1f04abf77c788e145b20d361f6c7f3fc8ed92adf726c8051533680cafc7ce13917b034b775fe4a7ef8564543e44e2923cd5a3ac212e003f5bc57b56904b7e248ea3f9a01c70d84cd7fc28f5ec9f9818e9a3cc0bbdf621a24e0812c706dd5b4aa25de91929f94ebc1c4d1a04a9b49a4fbcdde1b7a21281e951bdf3c7744b0180255ceb2efd1ec34af6ca9c3dead4569fa58ad06e4d9a6f1a2a348fb332c18cae3c45df170f805f68e981317fc3e1ee52cf4fa150bea17e9ef15d95e8e3c69cf5c069d38b0e0dfdabad7a897d3d6e20b7553abef72039bd0a38fa30bf003248f012643cc36805d84f00b83d8967adc28ee04695a811c7d223057ee7756acb9ab597e518e099cbdb5f28656334036ea79485311293bd013efe2c17951b2ada4007a8c81d94cdd7df5c0e5570b7a5a6a1b18856f9dfb94e97411fb609f1f4c1264ab85a4180af3d9d48366c8282142f2ca16f1f88f615a89d98be40ea9ec4a1b86ce86b1221fadb20d55299fa534013595e8350b48d41816012b51339699d728511f88cd12814680a9bf4e825af34f9c3e48a0f7893c5f933e840cb69a329e9d7174f8711d4d42dd905b1688368661cdc7d937d715f60b659872786913fe5def0d7f7577702e6c35caac8227bea70efa1b940a5be5504504387aa3afd304b65b6a81e6a3b08784a56ea2aabb529bb108482f4c8a6708de903f1361c65df4b17b711d8cc2bc3d73f9f77861b03ddfc4c86c0a03fef65ccb214be7f63f4ed34b76b19ff735c51e85e9940e5bc8727997dcce70326522182547bd7992547bdcbcf4460b1f64951c9b1597d5823c7ba377026367b3be69d9313fcbaeca5c2c8fa6c903809ca62d49c9edc6a81d1cf2afa95e4312ae90bbb00637a17161d12a0d0a06ffaeb1c6fd8a816438901105403f0b8d780cd060d7e2382a8145858134adeaed83e8469fc396b5ae1b9feb43ad6139fe41f40107e57d4c6f50b0791c5428a4d00e084e279f067d14d90eaa20ff2926fc0a8f3a2274dc538da51b391c437dd9352a5b40535224903d0fa54e7e8e087bb7780da1986962c79b4bd4a8eb959c5546ae540e8f8aa45424d089888b473e1cd17c7b9c208c5d44f31f5716176f83c9083598e2da3ba0a711b07dbafc14a5265dbe1a08fda0d82710a06033f78bef2f5d9fa168bd906085ba67d5be4ef6a24a7fe6b6934d7b7d4e222869b9a811720078eea98608fd1e6c3e17a96ef0126ecb777c5cbaed4cc24ded9df411feeac49cb76c5f171546cb2f73ded21405c4fa889243db7e9cd243b144381c86d09ce36b8f7f74971757f89d47d7fb3b6e0007b726015ffeb7ea9ac2b5fc77bcfb37a314d4c4707723594a68a1e5800ee0d438fa68554d24656d20642b5b2abf7349f76e116303a15d58b227972568fbc4102dc4057bdbdd3a7d6da706035a369525e7aa606317782baaf23b2b8f70ae524c78b9bab14a676ff152672ba2843c2d392496076b2de9caf3c69c9502f2261fb66493907a61604bc221a8959cac30b9327910382b6b3e42fc5d1120329d7e06578c2e3ad51b3607e7cc708e3a62b63a30cf94a18eaf9a7186a14b88bd25a118a1d5bc0977a3237a24ff2f29164db9e68c8320a6d94f11532fbab86e9495576a9deb164a6360ac6f1cb7a6e00bbe72779a26dcaf054578cdd0e8d3e3bdd6b9980e76c25522fdbeb1c8f01d28230c943d833928b072b5a14201550f4a8228bfe158e32616c25ddb8753eec876fe8bea58dad6ad61088bc8eac534a6d8c1fea1c8fc4480a5d1501b212b71107cbaeb47e6279369cb0e26184aba6ef399cda65618c1cc94072a6b5234eb1304e7078e02ee04ff5fb6c6f5906f6b939353d1272a9600d4b1c106eac41accd8b239a50e8ea826bc0ccd8cea6c7650604003352b614453ed4fb8cc5613a5395448fbb0533aca30110f3c3157b1918c842d4dd01335d46d6608acf77215d18d3df2e0b4186cc85601001686d718bc9080decc3b472c5a7020fce7d9c4e8844e1953a29bbb32ff65c2b89fd98721026464c0c1f10733a1840dda4f5a980f993cbb565e8040656c8bad76194116417ea3b047854550c1ef9c3b695113408bda79e7ff876bcb8c97bb1f2cd4f5a61862b5a67eaa1b2c59abd66a7ae8a716b1701f420c0090e0cecaa6e68b6242ca3f687ab0a91afd66413210da70dbf55d480547680b435e1a56aa8c042f4b82b0b00180cb7ad89a05130c24ffba3abde7851a453b992f8c09e3d39bc8fa2a519caa37bb3d6285b05434a9cc3e28b453e43b47a75860ac0918fbdd1950f23f0da221b1824163c21946264e5b45cda81030058c756b55354eedcd2fa53a46bc3c093bedaafd8672086c23cdcb9a60c4660b6e5c009753ab50d06e6aa1c1eda7bbf2dd548479a1258cdddebe01967f853dba6c7d8a53cec898f296c4fbb0d8637fa0bf094b67f3fc973cea53bcd27000d928481dc39230309d5b73b965175e316a8c9e0b3c04ac31e56f9c597c581f8adaa91c8d8a7966acb02c566a6350c23f8a10ceb8c64fbe5fbf850ad0e0399d865400697a9d8890e3a3db8202900672d218eb92baff9638273dc6b04f62edb60e29e5ce16c118c5865edfdaa802a2386be3a9e18de19a4dcccb74085a12b533d7cb390384881d2b29ad749c0f9a17691b0d51fca61de2c611a140bb2d51bdd225d8f8fa9942c3e2a3ea07ea4a77f2545f80ca24e50ccdbc965f3e6ebfaed95c3d288992879e18156e03676e6c984a69680dcaa1c2367ae403a89ea1aefc123a49cc8297b8aab4712dbabb38452b7c3b26f1dd9686e6ba6750ef3a4d0ff794a39af30965524f72980fe601b9fe7e31b7416e5e5e0c2828343c56ad260dbf8ca11e04e1f0e9108640afb9f2a682b6b89a580761e0a248af147047e92047e1772cb6385185ca192363fe911952bca70cf89832e7d2e309b9b11e05448f8f30da46e3214e11ec81557347e1b9ad4039fcf8bdc35e6f5d809e43fb57ee5e5486cb3329f266f6ac3b4e2d32a474bc7110a2788c03ad1a331470a37e35f4f4a1261e7c4971509e4abef0f634a45dee99f616c0bc640f1506f22852a3dc0aca94611406795c4aa109e27d5e62210de3bda1b9c15ffdd798ab698139fe7bbd4225d5c88fcfe4b615ecefe20f0b62cf8acc59ceecc0e8649b62c3e2d9738b07c614c6a6552659ab0885e76dadf6e82fa833515114908ea846551162f3717b81b186036f0ee8992d4dd6aa5d25bea555bc77a1609815a6f8e7dfd50536ef9b944d2827fb3d4909e2115a29e17dd2ecc143d537dfc9ea1acda2a6959b94e632465d7c713542f8a813614ee140363f84d57b0992749b969290ac83b7aef08b79a63374613099db8f4ab65ead4dbee3266ba4bafb11bbf104b780bb541a7f8471034ee8d113b060244f8e75e3953dc7c663df6bbdfe6566e90084646455b6d844eb124953093faebcdf457d071b342b170f8bc9f5b1d8c98fe146b367f8a48dbeefadfc5ef2d27b0572f96e34f51b0042da7f8fa4e79eb3eb3590831e73f37e3e7ccf2ebb1748dccf2b163b6c4e8fee7028c2d0d261c2e81589f755c7fbd8857b1f8300f6e2516aef8408f4a11c06d1ddb762effd76b6978f95afc6fcfe0241ec7cd1b389517afffb3d45fcbe09d4d8c3c1f723ef45c3be2768bd582858903bb00a45d17fa928a487f0268e8f2cfb6a7ae7a036d111f4bae8864e44e412cd21f82ae5db004ec46c950034a3249d3a06d9c40a0caded8f61964980c0c85aa70e836c624586d6fbe398652740d064b5047ac9983679867fa6e779c88fd6bf05191219da457a6464ad53c3209b582143ebfd31cc3209101959dba9619049acc0d05a7f3c669904088cac77ea18642756d06895647a0080f6780680b8f524038fee2510f428187219f07d33844e745f1a96fb8dc3677bb38161b29407150351a15f258335f1208867e6017d9491e3f8b9301e3cdcb08e48d1023a6b9b1d2f60e4c629ff78cd7628440084cc4321df4fd8f18c16f6689ced975be442082d54fe341841cd585475806564ce2dbf8591fb1752e22d1a8aebfd59365136d614e842cb8ff701f9b9019bf669f560b5509d301c6d6a64886718f2dadf050d5411fa5efd440e83bad9523df30a972c9c21cf5be22b00bf5bcec7cf1dbd4fe70ee3164d0c79de4379279ac89122c49da071284f2699ffdb77dc19a63eff4d988c3b0105e7433befaf72144f885754738c5fb5cd3f7975fd79b2a0d4c47dca4b064ad7cf712f3be44148f18877acc5ab32a8a0c5058cf126141707f470e7a7b179bb78a37d9dbd1e1e7acaf396ec3777423de551d381b05923adc4a81ddfbf9dbe319567dd7cd07ba511210d84609e9d27cb7b6a538128b18e24bfc6b484c074f1a302dcc1f23ed84a59f7fa1d20bd1e7505d172f9a65deff22e55558886b8006f149e53413acb061e2084a1933e0fbace9fd4f2a8dd91f10a46f44bd05a68607f8ddc2cefa9c2191c86e808876a40f58c9586a4adb6599ebdff416ff4fa54888bf7c1d845917e9e5cc3ff1c3fc4d7de9ec5397d8a16905ca3fbd98a0f76796c37b2ce1533c6c197375494356f0831a3fa1dd04f73f18f0b0a4ed00c7ad05cac4f9765ee302f605d841dcc5d570746ae2d8f58c0951c84014a1ce67df02f9f26f115389d77bc63fa6a4f2da1dabf94c38b22a665c35eefac98f7fdef7eb76e524d52c197d9d5ceb4cdd8658fe15a31cf92e08edfd72c64beef567327971a14b2fed7e28277c8a751cceb717fb32646904ad74ba37b2c563fe5279ad1fea5e9cad40ca302d8298a71b1733a68fe3ea2e6e69931d8bf5aa862ded2575bc6f83386f0a3ddd0d3f97a14f33e505f7c3a69b03951c2ed99763ce89380b0b69eea877fa19817942f66679ed555cc331a7c602a5a360bc4c615f39e0d1339963c767c7b2b0a59a87299e03d5e22496d20bf6b1ad75d4545e259d1005885c9e0a577dc65defedde4bae64394e80edab4bc6c33a9fdd57f6aebb2b52e8189e8511570a85ab2a836bb2daaf759a65b8bc7b149dc4c5df30e8ae6d68bd05528929b78e80b91bd8153b37100e25691288ca231cfc7f3baa81eea68cd0dcb2daee3ab59c74aacadca5c18d07951b26cee592fc6eb164a06d4bdc91dcdec705b4e2501ce7f501490574a9bddd40419567606cd966a768556b27355f7074c35184ca477684cfda3152f311d48ff7b1c09e6bb5fc96af6c5e93345fb28faf92c0a1e80645b09c507161a8267d606985f5f679d05e7a10f301368233f3dbf78cf428392c1022bb8816547be27f91cdb3fff42c9449531b7302da7d9afee22bbfe21f5b5d26881fe0de7a93de5fbd139ae556d003d4adead5320c4f62dabee9c6c84ca47828b189820eb8982546fbdfc3158dca81110a87b9a1e54ab3e1790d27b2d609a2e563632054ee54ef4f74f8ff2210832a7813688576e11f564d5c9b8fcb0c4d52f4a01b457ee03b78789091312f792467bcf0109cf2143cbbdeb5bbbc3e3c878036d078db3d338fb955333d49d6ac94e0bffada4f6d077de1e65f51c3a7642ad095385445a7dc2fc1a598e6cf22892be17add76410bba34019f02fbb7a333703b181e248b72fc2bee20aa3f5273062462214629e14a03d60adc73c918f2c19940a3d944242e5c4669c3f001776ecec726b462a7352fd2e66c93e8e871f824d8ffcb47ded67e44b6c50d8764a28381664c7fe1cad9c5695b5df951b342704132cd7f02a86c67295dac704c0064c42240d3da9da50f9f78a0673716b1173a798107aff1929475a65f7496cedb7d50f13fca1e5f8f25da4cbe50ec23bf6fcf899f1c765dc6bbe77c7309c1f198a42c3ba715781835db911ca8ca618b6c866f91bcedde59d218efc8c1c0b97149f6254067563c20c1dc56dee47c553e293004b154f6415e70a2b17a9bea10515e1d25ddbde9aee00ef19188e37d34940f2dd33c719b0ad7c38c3bc3f789856083bd70d42deea475805d52df1782e42691b224296646be968ca690f0542bf8a409b72412b818a3ee9514dd3bfc3ba7cce6c4b4348114d59df5dc534f77a389e29a076204260cf518a4c56a2741b192ea366868d45c5f9b206a0c789318f420ca6593cf2cc6d54b6919c2969c90c92509bb6c16fc2b9b6fa51a2fa9ecdfcbe1b2454963a840166890878dd839a9b98ee1897413fb916024e9048e524c2edf17e7cf2a6a6d145a9ba3c56f76156a9e3b9ea0441f69e40bcb27aa93691438c5eb4b666047e353ec87603c2f64088f54ac349abd382fadc467bb10a295841e4bfe9ef11d01205ca2c3c046582a75d3c64ca868a2e9ceae5dc14b4569df2cc1304b73ef554c00a4e9ceeeb9faf2aea3195fbea179c26ed6202ec655c5c0c96e280a2e56445172c8d92441928d8f8dfb379843e4970edc17abb03360392de7660931ff61907f19699219e6fdd86d21a306f1bebfa858ab5aeae1ad241f3499c0cd366ae7ca2b5c773ffca0cbf182a87d516d4fe22e51ff813657cfeff2010ed4f40a4891d25e02a76c38c8038b32060e32c69b4e13572e631867e5872b2ce60d7f64074eacf4d51e076e3640e721b8633dde19a4dc4090e13fd056ee97117db67b4fc3beacacb5b986feb520c5e2513f4ad80063ef87c7c739eb56bc7a9b49eda50213fe532b77f83a8388f30c25576e8dad744b347da82fc2d504732d233268448f4ea0d99dd351ae56c9e66b59c37c9ea6eaf860a20d05f4ea4c7e7e867721006f550a02f7d16831b5914663c1770d3a2a155e448b30cbbcee7b04b04f35d63b0dccac87c7125736fde87e497657ea5849575c227e08d51ea015be533332c2081cea25c069165020451147e81c65bc4d5e3b35450fa01001d48d934e380e7daa661c37cb987ececcd4d660c867407677e97488497e7480f2511cf39ffd1299c9584532dc49f143279c64b31717b5f6ed419592871ae5aa7ee107b9c0f1b500ee2d9fb1e99eb65b49e073ca40bae222787f58cf971d45d4eeff4d63343151d38c7bccc2540983c4574f78891f186a9fef5a3a04429c4038ce7a09c97ae2ca3d274cb3c8a0080cff7f71ecda8a827b84662f97f100395ba7d228b5a342df390fd9cce646f869b868a0e8f7210873a39801524a73ce6405bc5258c9eb09bdac352424b52330722b1a5a415a6464b1bb17e014a7fb0d54060e7cc89510ed50533b515562af1900bdd56e6937358861e5a7c6384162f05bed75e2d49814894500f807c098421154b102a29737bd9536f09a68de6c3d428844c9496cb1cefd1188e6d5653368bdcbc4caaf83e474f95ae2cd056d27b37f1c406d56c5ee1bb9bf3743718d6809867bb8dbd61ca65d31b2238383a5f3a1ffb3b373b9ff4ae3ebe6110ce55f0490a6b191fc6937d688010f47aa2d1477e4a64bc7ce5ba4d6cbc01f151f65391ff1f3c37c63f85b5a3a82b86daaffe4ee9c0d58303ef0513c93ac2d50324c1db1affedd15a7e89e72d1ae9314084083d8870be2e4fcb13419e5da7db4109e70f22f23164ffeb05061c22875173d663d5c3973c7184ed9c85819d6eaa3c81446ff77e0d303934914cd5f6768aee911584217ab0f9e17c2fc910469f11bbddf738f2906f78ea78f4ea0b428b53d980a08efaa80cf445ffcfbfd626263896084f74c0563df20679ae596b665ba2bf68414a9b382f8abc07e656a2a5505b2155cb94c8fb50814bc19548e1575c6e9c3684f9cbe7582e94eb58c0c4aeb7b74e26dd2578c833e6120577706ea13799e4304979b7a112f70d5a3d194afcb80ad88653783d58cd489b3b2eb42935d28e54ce76e3af4cc58e0406729681a0faeaca012f3e9b8c18d6cf59e1e13591ddcf2ff9f97025d0c0cd3e5380f7c32ae8ce5b8692e0bf5861fde4a40b30c3ec8a682edc9bde4fdcdb842395d0a7769b048da1f680cedfd0809e615215bb89caeebd781590b3ba44adf0db2ed09c7f3dc4df67f937bb571867258309f01542f23c637543e819a05c13ce029d81302b587e38cf1a87d010f9e219a97fa1658fc23662be7eea54bdc3d28d7faf22d8c37844f9e7be8a4877f0ec11694abb83397f549579dc5ef6d4667174597047040cee72ca784960c18590f57855bda325afff2c73b43b8a13c16a950f60b7afd75e515e853af0d758c1226077f39554f3338c37b4a37f40bbcca1946400d2ec3fc181dc8cdce1ddbe725c1f9e9f04369fba69efd5b0c43471900287aba283a0d3373a104deea273ce79cb92e3df987f752f91c773de8f20839bdd31d1d7de41bbcc5697715b7708d06a0ea1a16ee14786e83b1f81aed3bcf883d5156a288480e1e5b84ec5fc8b446b823a7dd822cc3a3c7af137ce84ce565f8c020e9f950965af119ce304e07adef4e63e2d1c133d2cb0510a4dde3df2804b9645a2672a1f61b763bf74b8ffa581272674d255e0c673b3ffce940020ae2d14d11871c06fa2ed199744591ef8033fc4f7f2705ea7f1bd2cdd34fbfb6037317db74323f365ff1d43b81218784b1b3cc551dc7a8e6c2585df13344a603c4444d4dc46b5871cd47d93afdf3f39e41a168504104ae0371df8aef6d042027f40f7a1ad36dc3b180c196f7bd08238a68f3646803124a832079b4559b8603044ccdb639ff2e4e715682f435486b19b4358af3015cae379b530ea714e40cebe966fb1e450603ccc6b6f44836fb81db3516396a3002b73236e38cd843792b1c4bb65aeae8d8d5f05103400485254997e0be9871672617a33c10c19f2e3d2303c4e53c5a684e40b4f27b735259ea6e210285a447700f62f06d8d307f72ee03b387b028598e70b9df2cf2a568a006460e8f23b166c4c64d2bb5da71f96f35c3c7e1ef88173ac81e33a7316b733ab9b7a4f5a68cadde74fdaf8a8ff90f58b81af2586c36df91e82211a807aef1f78d4e8c2d2e252dff129cb743dc2657c0fccb4b4dd7d025fc6bf9b485504387841d0b1ee2e5a1d5a13f8eef6ddebca88bfd969561a913b61853e1be028ace6ae687c31d647fcb97f7b2e663617251174d817e2117e4cdbed66ab8a104513264fa8a327ffd253d6adde0d9c323256f52a9b05fe6c53945c9d2b3b7d53a40f75fe2cfa4c0dad66f6f520158630f61155bef42d81af5f83fa49c572616134f573f5faa741635a8600fe095086663ba96b1d02355ac595d0cace55b8fc6eb9b73bec202cfbc81eed298ff8b928ebe7769da7387f39ce26b6d336c744b16e3d60be0d772c4cac4f6c4865d6835d403cb718b604df00ad2dded8b0cc199d7cf0f50f42ca1a221da4a715755e9c56ba9d62141f6dadb5b218b558880fcafb2a4198ea9bd2258f26d60b5c117728ed07fc889106653edaa9c5b3263dda8bf4aca99f9f3a228eba064c4dbf166a53b4e02189017285f347968ae46a4a55c6427edcaeba4542f7a367f932960f1b54132b4d8156e917b58f296e91580a5bd3c4ba8b9518ff083b45cee14f50406cf969b0cb9f015b9ec8fd5aa85253c1848443ee45694212f20a785efd0ccf8358342fe545f1ed6d39f76003c9967eb63f5eb003e0b762b6025be87f3a0f8ea42ea1b942a3339cc1cbe3de4bfce11579935c7485992abcd4c0225b449c9f35f4a1b5eac735456c417cd6e629f42f9c9a469808eabfd204fbbd6aea65918f610bafbdc296b7de1a9f16c08a14d431419a37c4f5120110ff6ca4bedf73090537510c2b8cb837864693fd9edbebbb5afceb227784ebec2d8f2d892a4dd6194980676e6e7b845c2dbe1f0c1319b0f46cca2a887cfa5004fc8a4115888df6a2e8505b2fed495e53d265f42b041945e0c44f2ba5b6b1ea693e1d93672f681ebff61eef2225bdaf983f49179a558ae6c1a474bd84d27c363e25ea4fdaa64256932ea33190b6265a38a46a2ba6991f99508c11bb568e4c6878de10482213a6d20f18763088a98189270d07d1d6ab279b6acf9e1ba444b59447991e259d31de65afddc8c543b5f09d5233c62a5048d95b21acecb3a28241954427495482a0eba08dc9dc65663b5530aeb920f78a9fd9890b0c02d6e8f0eda9a05b75b12eefedc963ce5091c28be783cd8e42364881fb8f35bb5f191bca232d02654a7d698610eb66b6679017d7698630a4e78a685b00bb7080ef68fcfb62232980b29886a44d57f3076b3534e45e3c265ad8ab143e985e9abd91045e2c8dfde25cd817936c53771fc7f983a17c67947f594760d38450867339980c0ec8277ed5218d3ba32b0170ee5900cf5e238a09088482c0e7a4c2fe8fc5d2904e086792cf785e44a6ceaaf1d146efe925123b44bd143da543c5f64351c4f7373ce36c61caf4fa14d59c9bb69efe04431d47dbfae6f34255bde24fe88076f1821bf7c7eb13e6bc3c90afccf5c1dbd2437eae4ef7d32b58cebb4ff77b17d36ba6634adb6b02660ab22d035f3a57206ee66eedef3d4ac341a0a921a27c38d091feb948a5b35cff18ec15561587c129ecfe39a0dd18f22376d2c5ffcca46a32024ad6d3ddd2bf4f61b018e026abab3709eadc295ec1d398ccf2061bb659479f0d301ee2e17c4318d14574b7969bf54a51bbe287d97fd24596edf23ef6459f8e442c18ae07c50a56e6baaad191a539c440b403f8432261d3d3ec05f3f0bbf6f3f85f2d646f9dc37dc8a6a7c9faa787ba5a8b6d15da2ce016010af62a6e3b7005c26c86235572aa22c41fee10e925da32554f624da5a4c4f17d827aa7b29c9a583eff6da77ccdd7f41b97f46d1e13bcae4680916d7cd3b74cec25bfe3ff6d18e33476edbb9b1107a93f165224a249ae1654f668dae1d5eaca922c6c01e440bdec1f9efeb0510ac120d3b87c0537afe0ac64803a013abca7e7ed4783e0ce94338199d7103d705a94d70dce6f138fc548a3b20e4137d8bc6b2a93913668ba4f8c5fdc7b13fd56586a06417eb932ca760dc6ec6f90a566efe26658be6054cc83807c57b974e8c73905eb9ea8d0564de6cc54e8ff385b4e164bba513ee2f7969ad4c16b41e3bb71e62a02ce732057e38097ffe2b3c5a1a5e65a7eb30b65fc17240dbf3eba5628d916eb4bda2e67de56e39506738b00b19b4230feed1da75950f370dc616eb9626e11690b1c962dd2324ca18b05815bd7e0f0db67d3fcd9bb04c1eb66aaecf5c0ba656e251021a97129134797230a94e0828b49d6555b0c1070d2b9f9af65f5d9d4040d49b3727a5df078f83fb837eba6a860454dd15af8053ece9d86fa132b31bd4333b8797af5095c722162b7e50c3893e706603ce2508a109ba6e8cc10563f09c2119971f09a9866b72364ee1a804b07722eb9a240446eb3ff637e4717e3ab42cab5b413eca4498f010878af082db0d5e80bd024ad27777e560823e7b6fbf028fb80bf6248885a3e188309c4153ee328ef8ff1f0a55303afe505ecc5ee10dab338d99d306430842941bf1fb06a1baf3ef98fd524e183909e1240f6768da60c888e9f597b859f6e1ddf387c37f14ae5b76d246e822761c12b7654cf5eb757ec8fa585e19b13a1feb10589666bda4f249b5bb8ee0856157f90c127db8255690c1851f51f815df39b7a26220c2411d8783e92c99e1e76f98c087b7559eebaa5885eae80799f581bc189a36f8287b04c49959b9e13c165be2163c0659401d0be24e03fd612b5d3d463791f1081a14eff24fa579df1d5f0f00f63d67d8ccd9d5ee3662f888703b9d5d1712df60b386624ec62b3d8abef855dd4f0e90fcbc9ce32eeff6fe13c410fd8d9851fdea21138bb50063332c2ce2efcf0168dc0d985329891117676e167de6129e67f4444ecd2e27942bf15bbf48d7758caf41d1125bbb47a26696fc22e3de33d2c45f78d881cf6252de907c3fbd01670f479996ce2d379ae4897fe5b2a4a31255ddf65610e842d20f5ff60ae0cfef332a0f87fcb03c56f591434678c49c28b4a4f886e072e18d0de896b7e8917038c4ae8b4a4b551c0fca922f0b55d913b87956fbf5e15cdd7e890f5e861cdaa0a1d019fa0906abb34e3aa42dc9e223a40819b0ee2764705222174ea42091614fe146e5dc7b38f8bd57d3431db6c40446f0611fc1efa4eb947f60c639d7009e1553c5be29e8f635e19c0257b3328b4c73d4da30c6686abd28437fb52e58a250533188b7c01e54cd76838c99e1b4a84f9ec03a88f63e061c66ba585ce41274c126708f25c548552a48f9060163e80e5fbd16efe91a180b50fe40e59f12e9e53ba67e927c07efd8f66b63e12a23a314fbe81973d5d6622d0db0fa569ae4bc090538fdd44d3dbacc268969e929e3979f1b6a68cd1001097c18b2e9a7f230d50cdb9c15d2681ab086ec48cebe47540a7f524e9e52da8825ce591d01a71e52787841a4fce7869e6f9b5432370e10d2f8de39bbc8b7582ea325a8416269dbd0039b974542d7b8b0a073825355a68474574421ea8f0903f541fca49368eb28f8ea80119d82436cb7c1dd668c7eb45024a0192ce27ba34d0a2a4d19d97ee261f239e62bdb83b4ec45f6d841950e86a1bb8a814a0ee470ac37b97052f1812974a3dff1bac9b96677d89e47ebf98b4c74f0b3b92dc3d005f6255799b5c07c976609288641bf46d32e4e5b5410d13da6957a2b94bb169d91871e49b6d38342f49ff4a26ace00f7deaa50c280bd3446b5872ae6ec692114e1f83241c6e579588be08e9e8b468e8ce4e07409a0d3db6eaaebde925acf5873dc9c6465bd51a13545d7c19cb661bab788ae106fa8cc8e7438f65653b5cdd2d5923530c371336d68b9225709d6a0b838c16b3bc1751f5b7df5d4d4cb720242f7f76794033afc696a3ab4c6c1d24994b371f24607a2fb588c73df475ba8ccf5da35f42b38060a58aa015c02c1c60f6046c20721679d100c4d3f96929b694230600dc6813de669991ed5575a1164c71bc447715143d705c72ab8bcaae611da8f38f420495b1746dade0ac582d2f5f81a0012eb26fc7cb9ffe4b9ab16bac052a6c4b3fbb2e5284a4d01d91b19fd8948f90eb2d767e1746e5a29ab839e67c1b51d7ef896877cc8dca9f64e6e42bf84494834f2c7f2d210a5f10776f9d20f984696cb86dbc1888b7fbe09880973875859b167b1a15d0e5e70178c14780fcc92a4d6941c638ff464f2ceaffca13f4f7bfb8c2a5e7b702753f54aca8266d02d40584ff045d2062195231000cfa2aea500eff23d7c3e3622b1cb7260274927390ce898d1886efcd0429a001186ec7bed0de0a4022cb7c70ab5bf390ce7b6bcd7c6c0c60ae752ed6bf1373aa402e09e307d456c45d07dda12932831ce159fb592c9ec5f05385242f12877f95bd1fd718128c1f554ec22e31fc5719f9b0f3c49721cb905c62e04228b261e827c6d30b580e7c8107f793f8613b17a8902a88e82df93b09b6cb701d2149be4170f4b02d7e5c2d92bc77dbd435a24b84c00b6078f60fb1ac243f640da5cb5921968c1c49faad86f7911311d2cb050a6ee269a17147ac18e89f642b48e02355bf47b13d35c8df8dc1e14d21a242f3531a5969cb13a9080c9c14d3d0b088b6c1677f5dd202ccf502fa54ea7a59209c5151074d55b3849c9c7414de8a78004526e6f9a6228a26b63c00b91d279ae1f13c263ca17629be2992b8a2693b9b26b13cd433a136a05565235bdaf15eff2490d01c9eaf776246b8be916858b29b6cd964efbda59452caa707b90772074440b27d8b8a54aeb3dc1e74f7b6c587ec8280ce942a2959e1e35449413931df7dc07ca852253e50243e7c745ec3e64d96c6b16402ed7ba9b035435d670e4189360e8ba003116c9c3125b20103a05b22d0a9f069fa721beff21bdf922963726cdcd0d961fd4c0683e1f2d2e2e285bf604c182c2e7f41d3f27226c7c60d9d1dd6ce6c7b1e8656dbb05dc8ea4edafb5966a9b4f73396dfd064f901b8cb0bc05bfe067ff900b88bb7c169fe71f0d913c0659e6e87315faed60d5f12b1e14b1f007ce9842c26e56487b7b81f0b64838252666656aa131306658a18550a45dc397131637c0d0f7b9727a1e7f59757d1f37acb97f4bceee261f4e58ef4bce68e1e7e779e22eaf02d048a5ef99ea64a565258fe5f25b64dd35c39f7c9c9c9a9655f7accb35676389aa1942c94dbdd807028e28e27859886fd0c97fd0d8ec7bc0cefe113e032dff9ccdf1fdc87f7e1deabe8b0830e2fcabbc310ab33e366099bcba865f432ca469f9151aa2785d5f1b0438ab8136a41b6b8cb4b8b8b978be5033a4ff7d5eade177127b5aff0fe44079897e94ab2b84cd4716971e1a1ecf57688b53ca2b5b9a069216259ac133e30eb32a2bdcdccc8c09831351d4cefb93198113923eac0ea8c587335e7254f597bc20ccc2c9d1077629bc52c6d59b03c0f77f919bce565f097dfe12e5e87d3c43c0effefe1337fb95a5ffa944ed8c870d8dcc8feb5bd7fed7b62d6bcd8c0dcd0bc78cbcbc5c5f2a21ad9d3c8647f55e8a706d5201824bdda2b2a3064b4f7a91833dafb121d98753782a16f7a78205ce665d0fc75175ffacbc3f0967fe12e9d1fe07d9074d773027c4ae039709c6d0903bc021c88af3908f87afba90af80a43ac405506adb6d4fa1bee7a1bfefa1c209ee6ac3890df6e8cf56eabdde0c20e84f1a2bc2b2529c8dec6677fe3ffd7631ec7655e86cf7ce934dfb98b7fe12f0f7a0bcb61cc978be5add2d57add94aed6eb4b1b4f0f91175ffa38013362f442df883a2f6698bc17e24ede2f441d1c1a1af6db653f8386c77c0d57ebe56abd70c49dbc7374255d3c47d479f11c1107de2c9e03d3a299717dde5d17714776cf5bf211dce633ef3558ae04293e423837f21ca42c916273233772a3afcb1177f2663163c4d81af6355cf6327cf62cff9fe131307f7de63b18fef235def2a0bbbc8db3b8f972b54a57ebe56abd6c6abeb4c1f8b287c805e2071f09e02186b89377598b422565fc86a803e337441c78cf7868c3fc1f1ddc7378dbb783e7571633b455de9581f9d2c673802f7df8b2872f816eccba01be44c09737c49dbc67ccb216051b30ffc3839bffb383cbbcf3bcd77830bde73563bacde7c65229c791a050a18e11a31ceeef1f6684be589f3d2c88bed8908484848484a4c4099b0e5fd66eccbacb0b119f1dd97e7d1d52796cb68a43ac3dde7fb04f2287684468e3f53e7c281a02a6437c003da279ea620719449d17b3acdddce4f8a9218358830ce28ebb63788c92b5f334bb3b9741dcb9cef210070e1d1af6d7655fe3b3b7f17f96c7fc8d9bdfb9cce3f8ccbf709a2fddc583cee2302f57ab74b55e2e2f9a06ae96493b5f26cd579f69b4ad67822565755426eadc19f40c65ccc372f4c5d2b867849779449f08be9e6f05df8d26233d22d223223d22d223223da213cd9744ca97163a9b79fd4c26ea78f7763ec30eede2513c96c3ebe031bf02e32f2f9716174beb24163b575452ca5a39c49ed65bc49dd77e1336458dbe586f296b658de2505a6de9febf36696b3caf3c3cb9a373cf5f441dcf6411772ecb0eef2ce20a57d670db3a0f7147b64b1b1472f8d98d59e7219ee70dedbda541e7eb81c3fbd1c15f3a98e5101bb35e83a80333cbda11c8eab412002f2e3d5a4e7a982f57ab6499ac7aa852253d50243d7acc4a9ebf72789af33ddda4adb99d9726b6276ba73349f3abe20808daca5a59a3c208e9de7b71e7dda16d6f2ca78a9f3d3fec39d75eaf767354a89170760b2145a181377ba7f7dd982d1101e71e21bf79654fbb1ac216f7c044abb5b6e8de2cee3ab2830277388cefadc3dd5b87bbb77beb70f706d63a1cce18df4c45adb5d65a6bbe5ee7e3e393da9f91157c2efd529becb2aaf3f121ad36b55e878590a2d0340e8a1b74715dad66229bd62a6d8a03abc8e090ceb81302873a2170a81302873a217068db6bea1b38d43d0ae37b45b213027b88d0096dab87ba9e90a2644bd60f903472638c31beb7c3175f5acd7cb1fdecbdedac763e2a11a108adafb36ddaf5e99ec0dd8d6a417a379f9bcfcde7e673f3b9f974e677543272fb3aff7c7cc05bbe79538f8767c16be399acb62aa776d869fc25fb7bf2bb9df7811abf6987248d9fdc61a8c5d20e458d5fdc7a87a3c61fee90d4f8499be6e007f7e77519df1dae74b962b14ad824e98bf54a5a17d6aba84940e2ed1d6b93c2ed99640da93f5b536eeab04d3dc49df879b6dd15252a08410291aabd3877de0792422d9646d274224195a4542b1356f982b9ae15dd6a2f57ab6499f8bb6ecf2d0f15ad54a91214c99b2d2b74bb3d242713699e94b5a73b1a4ba23e4161d51e4fe8487b282926d5cd9e1495d536ad80c4b85db4415c516a8338fa62bd74058853edd44a6a531cc579916a2535a85ddd69a1a351d770b7a887b4b8fb48a5389a484a7ec56abd54fe2485e5647991cdf49dd13017ba666f16c8e2ac91a3cfc810d1c5d5ec50ad56abd52c5191d151eee56a952c1c0e87c399d46ab55a6da552833afa72356ba3015f12b19dbd150811a567222b89be79cf61ec14e468c51d94ceef7282f23f3f64e0e12b95cd3c890c0d334645cf6b92f7fa2d752843cbced72c3dcff5742ce5168b8989892bb6592cd68b74eeb22cc51d6f4bc1c5e71cf113a8b595d95110191aad96ca6929dbed7c6e40b894a7a1e536afc36f9e871ff1403e9ff15ece041c892fc2f3ab0409e2b01c87bd4e5c3a34f0d07173d8ebc4359a703c6b8b1d1d57eb7644b858b996ce9f52d6ec69cadd92dc2dc9dd92dc2dc9dd92dc4eed2b4e4e6468d068af95e3a18af7b9ccb79cc6e7b8cc5db7a859db16ac9c6845eb532aa9fc960123c8cd8f1f3362c4cc6c6a5ccc62666468d078272350f1edfaf1e309e675586923af59d6621e079f7902f8ec07e0322f00a7f101d8c1afd3fc0d282738f8939eebf030a11c1e86ab1478160e04389d4868b5252fff6b9bac4c28ae534a8b243f4be60790a16a7463d651622d7231d9ae1f3f70a9148c0928154ba958744a89c9dae2de804cd96c0d4de3280ea53b94699a6fe138e2957018cf43078dcf7199b7e1b31b1ef39e07f92248bcdb7d6ee453d0b831e47036a0a7959da7fb6a459246bc1057e26b4eadfd4cfca95a0642beda5b8ceb5ff8eb71dc06259ee6c0fce63e37f6754478d7464e0b26ee785b0a349f53f3386e3e87c368b98c4fe66fccbc8ec79c5c4080b8d9b9c34c9ecb01ce680a0e7b9db88cb64959963db5bc59b92878cf8d398fdb7c88d760b9256c38a01c89e439582e7762e65c662e9b9e4bd95839db0d1b392f463218181913cc4ce79f6d996c46a73c0068e8e1375f030f1d39cc7f9d00a0861e34f0d091c37c72bf4e642e97a8e3b94bc4816d7858a351de86c7ccde7399d7711a7f8387c7f81c87f134b874b8cde7f09ac7e12e7ec769dee529ffb90cdfc3738ef7f2dcc32c61309395b3c1cad1f03ec46bf6dca2f5b0dc148c72e07818d0cec36ee3184839920d481c398ee338ea571e62e389898971a153be06a7f91beee27978cde7b8cdd3e037dfc38ff822dc8807e2b5f644b8ec3d87717dc6b768bc8efbcce3f098b7e1415e0947e227e0f94b1be57f82f84910376df8bbbf3ca017f8158c526c294be8c861feebc473db120579580d262bd7a3e4d6697858108f87ddae60a4c373b8e9ef2f3f71cff997b61b447b953f97adc707c8973722be048a89020c26ea780e1371e0197f5dc6771ee33d87f19fd7da037123be083fe227e037df72179fe3415e8823f14a787e910822609e4d8dbb3ce7b45cb9f33e22842831812280d8e41fce93849ffc90993f4998de33c3f45a0cd3634c2b30dd6a5c905c88e5e2b7ebc78f1f3234fec589e999d70c5f3aff977202c3fc19dcdb27cf030e1eca104118fdef70ff2d43b7674f81d0a46c33205fe3e7e6c66e6ab83952c41d777bb7e52c31712745dcf1fcf31007e767fbeb5e2ee373f88c77398d566ecd5caf1b3093957bb9b2a971a28d9395151afedb677ce7b0af51f39f9ba05064d282e98894c9ced37db522491390c969a6dcb63efb9295636d4183877e1d8b95636d51a3e1ba99080f82c411461001a4082045785acb64e7e9be5aad3c2ba7f2ac2d4ea093c58ad16a4bacd75e61e558b9225680fc6a452489701836c6caa5fc76c9d0aefce3c70d96980d1b3654a9121b28121b3632ddafdc32aba8e3ddfb0d55f17d35568e952b92821212015b4df084490a2996205272420dc619dface0bb8efd669c0b4c9ee2b983a1a852af9275b6acc45c2d979754cae4ccab142f954aa58c71a92b753774b874a32b99fd46d4b94336dad4a5f20945a2e2f776559ed21817341777dd685fdf9317f773812ed015bae20dba41f8f59ac960523319167760b86cd853fa4265d4a327f6d78ff4c45e3e092de9897df530fa82437a62153d49ec79f41ca3657bf9a9f7d16021d2d32383f9c01a311e9b0de60524edf30eb9b517971c6dfa13eff28904954bb9b4e413892985d2f6e8559ab0ce969598163674f729355b0f118b7d5e1edf5226a52b6ee8ee4fb018459dd2dc960a7b5e3fe5ebaa21cb3a62ff16e9bcb228c1a1bb7be466718f8c6eec624192a24e892d62cfeba468857474f7be73f713c87c2231a550598cbafb178ca7603c84391d6583eef9a4cb883b4a8e3d46dc11821277b2973c2cc158064322eee4d0ddbb503a74f7ad7bc49e2556cca049de74968a697b7eacedc6accdde7cec69814c76fe393d65326d4d25fed45c6eb59a4177bfaa5ba84747262b1ebafb140dbafb929d4da9125d03cf431b74074514438f896e4ce8c660e0f2d5e8c68aaccb45335372c20dbafbd38eadb4b054afd224556a02162eed618551d8eb25001315468cd0ccb85ea187d5a9c36003208b0809e11999178cf4ee94007adcafc74038c84b8c4b56c0dca4e67f6582a4e12c4abb8555be5429935597718d229b352808c7ccbe5a3314f6bc0e037bde8d4d8c8346997e7af7fcefdd8bbbc494aab8d54c26ea648c3b6b5fdc11f7256a028983ee5edfa36b1a99e20eb8ef1116a4e9e90e5504d05d4ad5fdb7730eba4ba90aa04fddce4f4d4ef240bebd3257441d13f3128d80cca105c9b222eeb81b06237d4694591177b0974a52a992543e91dc227bbecc4b64cf1a60205bc3f2eb1897ff06cbac41a34278464695b242954a951440778fb7971fe3c6442646d4c918a78ab078b9e2f9f4d3ffd8ce9cd3510fe4db26e6cf8a93842cb11c90d56f4c8cb8a3f3ec337147c8c69e9d45dc69a1d59646707c4a5fce8bfd2526eee498f8f3adbcdfd8f598b8b2e7c540f71205b4ba71577b36ad2b914f53c2a9d8437492d7b0eea3d34e4e9ab4cab33b6781fe7928a7fd2891bc7392343b7a841e212991c6ce3750659d4931aa6e206353892a84b4de0ac69cbdcab369365f2149549b773d9c3d9c4193d33ab74e0bfd8b515b5372f2a98dd17edcf1e911ffb27fb7ba05cd1f76d3237b03d92ff592cd3608290aeda63ab2d376a84671b0d7239b4692249931beb7070b357fa1264da653f5eadd9ff5ecf52ec88305cd5a290ec55f77981ffcb6d7ed10ebfc798759e72f57272c2eeb8d48d93271c9d6a0f41301a8810e9590c01aa49b9b9294c638951223a0d3b53c140a87a299cd4ac612a9528911d0a97e513be3f71bfb219d5cce9344d4a5d5eaba49eece7aabb7ff21d19c0a54719e495bd9bbc31a5e5d9fb031ebe48d3485246d82595df759d20761ce5d87bd0ff43eb0cb7545d7e65a416f37868b5de80e5da2dcb5b94632798d7447b7fbba235b73bd7bbb6e0c9d173e307b5e973d7cad15c86a9908294aee5664761cc5e9e13dd76835310e56bb53600ffc40ef0b97a03561480ac330ecb93638664023f410e8dadc5cf226bc5d9bd96c369bcdc230831feef22c0be12984425e1370dbe68a73f1e37cbd9c73c68f7528e8bd062d096807b6c1a12990b6d210e76bc1b0d6fa992b920db6adabdbea08dac377c445a1663cc5a6b5f651f2bca28345389c1647f842904402c34f5f9b8f528ad3518a9329c5b9f614929c4e7eb19329a6c3db5104b8bfb114ee101596c40c05b6d86685c2b5b6b189a9edaeadb764a90835796d86804ef26f756d42d2d39c10ff8a4a0a8a874f92ba936dee77d8cbd5daa1d6f84bd60e4b23199a4a36f8162099e78731c618638c318669fcdf0e5de3d0d418638c3ba739e0d39cec9ddfec39f66ccd79ebb53a94c0423adb5d21a437e03c620f04ddc30e7ea0f781d70a3a034a846ddd32615bb77e2bd125736ef8a339f5666baa903d858440af33a036a05baf3f37d6893f2b0f9b1de96607dff6e57c26bd56fca136fbc538df9b71b6df1594e27c315a62cef87aeedec68f0269b67dd2063f863dbfd3cb6edd034ff03c290eb595665c023d1226e19215a4aef33a28e0d5ecc672dc9881e2e06bedc5d6f620947530359e407ab6e665fbb05e1078f4ec9a44d99a1f9be7909eb3b71cc5d694ce207c2841910f4d22893a3e30ceefc3079244fd43927ec61b668decd5b379d2cc7cf01104cef9dc4278e20e2ab4af190394915c36f53ad9a535623b47166475991e59f668d6b031eb36f6d91a99d74d7131a699cd62dcdce07c51dc5d4e7b5ac7a8d66ae57d61bef7f3aa082f7835c623bea812daec8cf9af4c4c1bc4416db4db4ba1b02d65c2e8346ac5269d4689409adf68922513c83cc36d047dd1a224955269d2446bae53296ad8a0361a536d1a4185b0b7112526e020b4069b313ca5f2bab2d6524b2a65134552426262024f9bfa97a03cd3f3ebe9f0fc7a262c4daf8dfeaef8e78d59d7ffe32c8a436eea24a792529cf10645024f24e4686ab9b4c9e463da3f50ff90a4a9248eaeafbba1e0cc3f23724039a01cd005caad6c5a05ba369bc6ac4f512b820d09db62418d2a0ac28dcd1a63a843f105a3142715829fd791447d4956d5031ca80da645d4881e3d1e612825aad4ab34b1ce98ca8aab45faa5c29eb78a0b90e41d3abb939bb0ed3b31691f492357a6495bf99b341f7178f5388ee3388ee338be78916d37fa54ba788ad59d291ebab8b890e3488ee39872be663298dda566322ceedce87c328da46719fa94bba7355888f4f4c8603e70c7786c369817909473dad0a73ff1fc2b37205c5014f6f4b9b1944b4ba8d23a87888ab4482942055191d1d116581ee7720d07e53f31f76985a3c04238080be5d0f97fbf1e0745a1828ddcd38eceef4f8061a12c5ebb7bf1d48b6924472c832171a164d0f95ba7929ce2724a7149a1e1c443e75fed93c92a7fcaa487ce5fb23b96c6c10d3a675b0f117b3a61cf0b840bcab753e6c93e2d2c2e9a99a06c0bcab6a2a000e8fca7bdf219e8967d2e0f8ea288919e1bb3e1a06c135faffca6dc69182c3f592474a75f9e48ff454a3bf6d9888d1129738f3d6ff62931522453913b30db724f269279b22d87eedf73b6659e4c24fb9c720f0e6a427ebd558f83ec898570113c74c251602378080b1d50e1eef283fba4830134eadd4db2ca490507ddf374bf41947e361bbbfef98aa8936dd9a60233f98cb863f4ec32a4af883be75992cab603948fa3c83c560807659e6ccb3d7846e68ce998014e263231388ad87dfd4f8ac7b24fbee527ec79cb1467752a2b1e9ee7494292242b2ad9766d7050b605651b0eca362c9492dfb61ca0734980c6519cb0100ec2413ffcf0832a55f2038ae4871f48378d9824c77cdbd7451d92b20d13655cb5793fc0e2a8daf290696fa081a5c29eba5e00031948e2870516f0030d0821866040037890c0902022a000083cc0013bb3ddb9043ec523f0330e8197f1073c0d77c0d37803de8533e06b7c88b77121fec6692fc317f030bc66e08ff08a8137c2eb05bed6927824fcc707f13ac402ae201400c40fd96d70b942acb31675fed947eafcb3afd382a4f94ac73c027ce60fe0b3f7c165be07a7f106707fba67bce736efc36b3e0105701915a880c3f82102013ec8f6cd77ee2301157856ae76001f78ecd953803534c7385f931cf1fd3eefd2933af62a04b6d7ac1fc6b42b5dc718d38052eaed6b8e5090d56928f69341185651c7052c18814824a4806253114af1c40eb51892bef1c78ab105630b5840525baba8c2c62e4dc826a2a72621f9be13ae16e74eb3f6ad413f3513e18c8855c89e1f8b5502410ff569cffb4829d289ea138eb6f109518f2b50c1980293a988c924b4494092a07aec598b28ceb8af97844a42a3533a9a845445379baa22d49049dc596dd5ed66d2230a5043b6a68e2720d1a313644a6bbd8fca37e20137d510c54195c252580a4b612944f554d6571b6922d65a49eaa4c71294845420c8030e443e7cb859d89afc05a025d660e27d316e6ae49f41ccc1fa9cb505c54179586677957bd94d3ca532571ebaaee4cac4a4f64cd5b02b94ab7c9a837a5dfc12dd9e97f512cf0ff5a15ea3092a89fa3ecff3462748cf437d2e945faf46950a58e888e298f8fd3e92a4b47393aa5b09486acf94674a5f52a687aa0245843251437a240149f252d451798b75f7f56a746d4abfa8211135245e470d5d9b1898f8751491ad49f975d4115bb3f2eba8a26bc34a7dddaf1ca4d2d3f395a823efd49becf0ead4afb6aacc3af5a95d32d220c072893abed4a376f8e9d493ec10d4a93fed90a4536fda61a8534fee50ebd48f3b2c957658d2a9177738ead4eb1d923af5e10e4d3af5a41d9268d6d39c54ea3f6f87253af5dd0e533af579872a9d7abcc3954efddda1894ebddd618c49c92aa5dc3b627f1dca3b944943c2e42d3d3d371175e05de2218b625b42790dbbfad4b32c7df1dc44d429f1106b556bb3de54c4c6aeb3449d95691a47602a51ae7aba535f6e2a0445573776bd042592aed70b06f3d389e520c81a4790f2aa54c9a348fe51fe094199d423a1fb6422c792a8c323fb6251e7ab557574b2811a5652565b324b17f3ce6f0cc10a09d4f82429a5faf3d5392361a6d3c985a246b4ae1182d36737ab13ec657218f619cd47712157a3cfbdf7c4c1f3130244893240895a28b9e5de7bef4a0464f5ab415fd15c1a1c821b4b9d7cb1b21c3721b891d1811ade7c6acf8dd12bdbb47bef6d02c6be6c1aa594ae562449fbaa49bbb4ea42ddbfd29796ccd2c5bc9e9ef3eb592181a20e75da040854f448244553944da394527db269f7de5b792a8ff54073e540e489f1d716601f3d00337db653d08be4745d9b76efbd2824724f26b9ad4dbbf75e4a6989bef7de9b52e9b1898c44eec92b9649c92a29a5d4a575ee2171e913ec6572980fe9fa3a7df9c068bec63da4cf2e99b6f1033de2891e39e069143d3691a202822b2708c69cd45a6badb5ee5a88102209618024b4a9b3340182b9458f4d6424724fc6d8458f4d90d56f55ebd71eda1ce0400bc8ea383c9356795a2810c40e7a053d6f8873df9bb1bda307b4c61863330a283675ad33ee4aa58e8e001bb7a967a07d615e64303324724f96e97bef4c06f3e2d2c2123b57602fd72cc617425a6e1aa5945e16a5d6e4c377b569f7de4b559b4629a55d4e795d89871a3950af900d34e706dd180f09d875a79064d2a1c6b7db26454d8e2591fc3aa04d8156a56e6442c43e7aec4048e909bc1f0ddfea99863ffd55ead72be6004984acaa23ba0b74a915694feaf866a7dd7b6fbe7956e9b10364f51b524a7b36f58b31c678155e9649b96aa95ca9d7674b602827f993693a2151c694928ab8a2cf304662015b3e17efa583c9323cbb3156668655c25e8990b8a42c5bb3572264ddb4efa3d7a4fdb0b149edc901b23abef96399d89255ef6d692a529396c4d0c5edeb230f59fd0e7171d42b8fbd356cc5a408298af5b0fa1037df8fbb759c9e98e203fb3afe216e7e5417cab7d382ed0382167af41503890be013c8b3a2e8b5a27493bd62216cac37c618637c23c5e73d0a08474c642168d3c82f07459b76ee31c8800a42225082084c7044fb3021851447a8420e2ea0ba422d0c576461892664c184910218e0411559d881179ec8a14e81283285529123e3c9a6402832848ab55626b4b0000f186c30842ae4d0c8bdb235f78a4dbd866b8373708e1028be808422b62d8e88c00515920a25010a3f4dcc8088065eb0841cda6a7777092c4842ee7681dc1886723a7355738f6cdacdbe45380214527c210550a4c09d8002161839c1a8033eb04ebf4d0122bbeeda55ecf3835b786bf57ab920050e58b0efddf7de6bda14083e38b2692847021d7aa27bb7d021c97a9550472237099b3261fbb0eb0e3db2aba863b3e92cea1c197531ac0dcd29ea72cd99da7c4f4ad56bd891e2c848dacc44dd18a14219a0625ba7c15f770cdc0da1b5b405724658da42490b6458ea0213dfe7ee7d5dd775b5d65a6bbeefeb6e288edd9ef310c40b6af3dd98e79e53e17ad72b4237b3a7079a2e5b20691fcd657bfeddef2349f0dbdef755bf89d1612faba062cf6d687e39eab5b57a35bc4b897675eb41b0356025738831b6b8f3eb4a741887d8c352fe4007b57b38545bf51182e48961e89e07bad6a04822b9478e2e66ecd6148a6e124bf488489a3f2cc93d330ceb067aecd17645b036bbb55714b38bd6452b661ab98524a1040ed526569faee27bed15b3288a261690b41f3787a6e8acec344bfb3a935637e9764e769f772553047d7cf3c7dda149134202bfce338540690f88e2b0242489ce4938545be7249fda55b0e2ae23794eab3cdabb5a852451bd44721caaad23919c069d84a894eb1b8a7a52a1991100001000006317000020100a868382599824511805ef011400126592684a449e88a3b14892c22808a23006820c21c6100294318019848aea0495716458d7ecb8bb41ac18496ae668830a5c566ce3ce36face3dc21df0770159bedefb328408df92d8e3e67c2f1c70b8c6f83204b6f402abe67a020d9a8ccaed4c08c61b6cff73d0fb242a503b0e6e42cc711966b5341d92ab8a25c1c9d167aa97bb9dc6f595f9d0550dba777b42235ffaaffb080e567405a6ef4a7be16547aafbb3fa91a1f5480e68f7be2d7d9c179a8d376d29af85bd49a0de3cdad72ef2b7d4a8a8e4bd7c8b86284d2fa6ab4937b5eb11c3efcdb844df8a8136012abe908c492b101045b1dd11009b6d5cdddc561462c9a6db43df759706a7053a2def411c8e7576f40b9a6a13ff9d54f64f3dfb3e51ff06a5da2a8dd6940b66bfed425bc96debc4d322aa2782d9dbb47e1bbc61d4aab3a3d82c71fad788c95d7b4b97f039889270bd95c4a6e13ad5380c281414819d6483a125e3f71d1288e67038fd40cb6ee757800c093d00649b5f2b9963f9e238950b9070d739c01792fd967b2802061eb55f33a2ad84704b0ce81ad5350af45ca9c6d16417ba5419d2f85ab8b73953c3f5140895bf703dbcce5c7e6e02e9d372e1fa8df1ac78de1730715dfa1c82e5a9cb3227c18c2aa38c1f5f81352805bbc702d2d0d9cbd34b2253d62646a5af9328eed7f2af941a5ab8d45679dd21a9cbc5a9afab35648b4f7f5163fb808201b3cd42d67ec5a6899ceadb53736d196567d54301c1586043c9c8de0e377a2758e6ee6f187bcd0679578a19e4a82ad0549a39ee822c0fc9ff5369c035bbd2deb4d0e959461709cf3b3a989a1789cbc6ff2ec1c25d67aed18521cc03db3b5db949c7918ead367000f218ff5a47e9e9add2a8b6cb28bb695140f693c4c2100cdcc5c1e55047438e57ad3eeeef8e2bed754ade34e17a1c19f09b43cb21f5f64a3aee9f9e17c548ce7ecd12510d29c1de638533ab0ff4dc475683004584c0f56cb8ad46f0e825039299be13eb5fed6b3e9d98118092a25ebc3d6e32cc7280fee2d3209a83985edf5ec51c548210fa92558171f3a7e72468e76ea786ef76cc90f964e18db7d99c8c4b5a5ff5b5d72093ef815fa39255ca3ed91cfe72e464b7db066b945d26cebed2a1b005359fbb27fba7be31c454753c78678dca23b39118b4be72c61b1136a65ea0e06f9a0888533fd81cb66b045ef981546475cd1b5fedf94405ed015770f6cab32f193e50c9d526ffef341555450b31d82af7d14034e71ad9ce39ef22125e484140fad04dd694e9acc8bbda6e31ce867e6d1ab219e93bf5de2e41af0dc423f37b3393fa4daca45883eb200548b576e484d96c3aa8ea1936e2eac519129f39b63ac85c1c0366d2c58840fce5dc16520a359a0ad4b75adbb1bc591af5f26d765449bfd27ef707925e2a4ba80bd99ca7635cfaded2385617ddcbd9b864f057cc4c23ccfea197d28b691a646219ca94d0578bbe2e02e546c03b783a04fee2318b9802cc5ad42ded7281b27cc779e4d1d844c54f02f5414cb3c530fe423285ccba7995d8d0182c72bbfa73fefbc4ad143b5ad3b956a616b9768b1e9835852b54c26a132df8c57a4c7b6f223885faccab6f0448a2040c331ab95b5cf83c498a6272c3fa01afdeda350561e407cd5b5f60026f3a7543f4ee78abd7d5f7d72ea85cb13e92670ea78c025c2c4c3a6bc9c04c49485e92d86979c47fac63b9533ace19c66cf71c01d1bf16b8d7c22cd2757c34997e213d1103b37e8e143c36febf06e70ff7fc49f8e629ed9836b1f317c98680e5d16af8ca8900dd4922818e9ee0862017cbd2f3452f3f57807ea69e0dcd288573bb45eff9b54bb28804e678cbd13c7fe0884846646d209bcf407f7e3d70c39439aa20786a37232204435f5f40e80c6b762381057fbe26b897239a1301d0552b447bf45a376e40ea054cba6302e89e7abb51b66465366164ed050d28bfaf9aaa84880d375d1cf359f9c47a8e3f68ee422e290543c9ef40efa1b12c8ea00c152946dc16f6bdc899b8b6e777413c08310f2771b9008b2210f4e47960eba5fa57c576894ade0fea50057eb5716d54fabb93daf9c902bbcbc85b864aa542e3514ddd3c1c22f5c5f0c4360372b7a3f9852094376099765f6c5a8ab652cd8fcfa73af63fdcdc227c287b66dd696dd5dc96a99e8f0b0d9b839d216dbee76f565efa8ed23f79f302eebdda0771b7909c9bd79e30563255ad1d207d1be8bc958626681d7dc34f8a4460b1f337436c1949560ac377f87cce950438064ed149f0fa3f4f53c49d1a42e5358cb789015411df76fd9a4178bae1cccd28f48d7978239f60d2fd29a4dde0844a9fc8fedb6a19a52a1f1eba0a45dcc98819abaf88e089402eec6bc4aa94e38e6b049c37e01bf39b88f23aa96b3cd371f0c3eef24e73306af0f637b349d85822abb394a6c7173e2d6b2a65c14e1fcba83670756ad4698eab9740dff650b2cad0ff75b0d2f1002a3ef79bd5b9e36865a260dcd5fd2b4efa4af77fe858564884fbae83b6211f0186c3d53e9807cd4010b19546a0ca1057c95677254212e6a03185819c4061a66f006686e16b23a4f4028dbe0be4e09621ec18d8097260c22cc8245ac3540d37d10256009d3854ad92dc702c8e2c6ed3738128e16d12807d7164f051aa6076e48cdf1d0cb0056504974858dc984788c05be8f76bf76493d85104a566151e2e49ec42a8f9c22b07aa8515d51738763c6794dfb9eecda4d09eb724c33986fa21576e88fb914fa98cabd05425a85c3cddc7e5860256434def589c0823e4d0d2b2c5f206333cdc3a3166a85397a6976f1821e69f30f262eb7ba417bb68851e07aea7d9edfad5653b7bfae67ddd261382b8907334f642a9c9cb52642a717cb43d57969f25be8098b48ed080317c57e4da1b6861da034eb64de353e28176d3f8ae3182a5c90316654a14f1d0ee6f3e9fe26e942c987424ae647c9ab7cc7b612d3ca02a268754728a970f1715fbd0420fb10da9d644e6a2457a53273adcafd9de2e159af5b6c715c739a1c02719aa1a10a2101661ad01e210701fdc5a75e96236d94fe07588e4a386e1852766a063c63d688a6d60211e93311dae64db1434daff7e0887059f0d810a5608780f8f9e4bf7173123f67e8a2fab7c00c8d748e634e9dc44a37300566e40e8579ca812234232ec0989040224fa4d81fbec3c84fba57a63920832934734510d4685fe0db4653ec44907e03d0cce8bcc2a6fa694a763b455ef3499e3383c8c6953695e94c7842e4a6257b6f93f37c36a130388defafe20609d36dfd14fce2f854e51bd01d494b56167a3137f9671f087b942cf3353c441f9b72bfc03b849c5e884f9c5d2744c5ccc43006baa50709263fef4f687021b456733cfbae4b5652dd39d47d8e9b47a0101bc1bbc0d5ec01da33fc337a86a6c8b54d036bfec94bdbf2e4f1003a70f7d3ad25f15428a0382061387ddd43dbea4eaae77b5f2935a2f65b00d6074a4094080e5c0122fa9e0a8c073ed092e9f314b3be6b7da8565c22023616e171edc13bec4cb20fc47adf14b6983fe506134429013d9c6936e6219bc36cb6bc50254dd6231e2eeaaef5125e2418c1a0c3d1e2d2dba4c3fa042c4f59831a23e65242fcd4be3534ed1df9ee6248e24c848e9c9127b457ced872c5c1a2de140af660e1a5cc11a4b653f0acc40d442fef94a84ff9bde1976dc719277a42a99939ea2412198ca7fd3461135f895caaa5f4ea6a996f273415b15df993549d459b67e6178eee298d9cc5461de8d32b17e042bbe643c341d95766e3793abca21f92c1a37b1e7820b0c23488a176a477f4ab8e27d3f93fadc0a3e1a7f52ac97c822b794789860f9f3fbe50097d4c88c9aacf7373a3eb262656c012e28518b5311037ccbc1b52b62d4cd7fea692ecf320a722455024a47152f187e98e04cfae8ed958ab01d680698a77c5c19b6dd60fb7a7314af952ed9641e0765826b0397ceb0a25c38886a94a5423b71bbcf24411e5c5c0ea7126d0c945dc13da3b3942f424eeaadd2de1e5c2b748a56dc425627c2854cd4cb43748111f5f32c5e60a27e3c4817d9c80f2fe11243d4cb53bc8489fa3c1614dc13882114ae0f497ba694844c1fe50e23ce5b819070bf1445c1cabc4e461146e9274d0806605ee052c1e50e86cc9b4a88abd19b8f6300b137e7d240ba6e3f31754473b0b230c5dc60d009d40c84599b0b0487a16d1fb1771fae76ba87c0da8daae9bd0d4051031407d5e8bfc529b9e6f7a3ca4b119b610411af1bd292b8959e256f4f1de16d051bf6128be7233e9a48f8a687fbddbc50d684d44e49ef218be2bff9b21099a4dd29679c0cb3206dc33ef2db17bab6d538c80f8384d7decb61641734f2e110eaeb0118519fe644003183fc44ce440e25033dce91fa627aeb3449c4501379403b7bb3608c10dac682f96adc2577bb616fa917f8a4e7bb63ba563e9ba95d244b91517ea5d0dcd814235a3a73848dfa05444d0f1ba9e50dce6cb04355c7288aa90d3a0d53467c582376351e0c0094695480dec02361f16231f8050d8e3c0cb60bdf800c80a0e6db734ff40598c342004d72d46aa004714f5b8d51c0f2ed0614c25bc4a56d014bee393a2457698018052d069281ba44e9d811d81a7b1a8d208881ca4dd0a1a1c0490249afea71564eeb513cd860921f7508c8ccb020a871ce97671af001053409388a09568403a2c9e31cdb437a11ffcd6caefd04037b79aa6e344d8e3b86e803f61feb8da21bd2e7d2ef66f80eb6bb9edf6be239af6a00d412282de5ca1e8bb1788b8eae5ba589f65824686ac88cea9e9b206730356e88e6bfc502736e528a44c8aab60976fe375950e0f9bc9cb4158ef8ae41368d09fcc52f9cf566c9128619af5dce5d7ce8eafc8ad36060cb73b3e6b283b9ae27b4cb351bdc702b54c14db51dd8f41c0309dedcf67886857bc32a5cb3d91d71219388c25a31c3a2326c2f47a0cc0b2549d8d94f25946cb8267abad911cf929e1ec6d1208f0ab933c4f37beee774745557e5873022f4aee53ceadce754478027f72120f4cf2a95ad53da8f3aea5db0e911db52a4d0621bb73944d0690a1875d440fe6692ed8f2a5207de4cab755f79a65cc0a8026091e07411e98bae30896db2a903f9e053ae9555a8e9b5841dd740e20f40442a7814b07fa29c46a6487bacdc30aca6c65a0c5c5bd1338186f0b960f112850ce62262789bf49b1b965a6d6e2d712dab185c80a5cefe3cb76d7e3ad15ee70794b35dd828abdc2a853bf332f672730ee58613dddf5ed472609c61f0dd2b396bd907c0a55c1187abfa207fb9615a1193bfc4abfa7f903c57d57580f81b937c08e925780e6b010d8879c5727e96cb23dde3aa9f11d5cd8f297100466f7a3b64c9a05802d32b961068b8699e645dd717a9156f33ab8ca4f592223b30a513fe4e319e522a564a3c16ee6299709d88c0eace33e78738b3b376e0f712c4277655ae091d7d730b3ed78ab11eabc614b72c5c4f7074d03e9e9184bd11e4ea02cbf3a42e1da26ad3f1f69cc466cbe2631d0de70d24749f88d51c4fcc1bdc2f9d9f2ecb11ddf6435fdf3063c370b9db87ee9d4a75059122f7084043d390d7b2936ec1841bf7799dcf66f33400e3930b402a8f23cd777df6aed19d11736ad8bf0cedeb143e6eed34edcb8551271f6db4bd3ec57aef999f8d00048ad6fa9cb034a6b2ff4006282235b57fe89d2e08a37b611e78d994714552c364f6f3f8e5258a675fa4fa52cfae794fa6acd971e8ba8f488a0df4acf87c02764eca4b5a96f003c592083f8971ace06de5e6f0161e004d074d36ac56da7c88f12f3732bae92062effbbb736d7b8a266da30cdef3f07080269c2c7465e55d99a646e0dec9146e9577f572af467085af014af8119c0092edc77828e78075748d44f946967775bfe30a43b2592940b9ec427375e31e44860bd78fdad159805146996b8005d47e9014f199477e92c104cdf0b26601d263467aed865707037a8d881c4430f1a80d7e38943f96690a2fa669748e3fcebfae9d39e972fdedb96473edd827b90d6b9babd03021a1d61fe1553911717829fbc2e43f8e90fa5a2f078782d7355b432d8b95d47719d8dcd6317e7f22a7f50f5d0b90b604b43f63a416dbd3d19d8bd328c70122e69ed800b3ec0524c3dc59a5cdf8bd46a7e4fd468f78561bf6ef9646570099472f4a14650ee64dd2ab92c8c2ca5652c57589c46dde4ac62be1482cd720665e6c5946f336e12b00cc6756811d4df9b914495f6cc69d73e95ab9378b55fbe015f00b2e7ea1cdb879aeb939ad30a34a3ff7b19bb0e98da82dab5ab7088261d637cb0d01d603afb7a5e42efcf220c64fe0372bb0c8248f953c24915932690e303d5f5b04bfcb324f9b0441193b9fcf5d52b9f22272235bba35abb65fb31a16cbc488b21ac0a56cfd1b99c4e6fd4e03f29c58b5be158a4ddbb2b059c41a5731c353c44ff8660fcc91553b6b015d4c67f000d95c48ae12c65c508447c993a948a4afa4d6f365393694f767434d6124a93b9787581bba1a08bcf87441a7d7a1558f7e8b09e2c4a7cbb170dfbab6ff350025267c8d8e41bfc516cf3830af14b4b405dda3b62333e9d6239a62886f2b3ba0fa2dae4f8ba614f1aa4939ea11d11509445178b82e85b2c3e2b8383d6feedcde10262ce4f8bac8198b25cb5e8305cca32a57c07ca646b35b05cc3516af79cc63651242ebae8ceb5d9449e530d5e1abe6b5420d152c714c9f807e7640aacfc3d862cfbd569f21c318c26e08e603d9a581e3ac97726378d2fc2b4f95b7c155e597f80da18d79e597c47ff47772b84a1d8c03a2af3dd0b657a44ac531d02ee9e3805bd71ea0d7284024205880e90fcacf370330b218c8e12a7c23aefa4ea7831171ebab8a6da8437147a6564cae823fa1da0e16840c3181f5eafa8ba1d2c99452717c5f12d2476cb7a890e755bd33dee8092bdf9191df09b998d30d66d0a214ad13df6b82131f349004afaed66949c76ef2ea4098e4e4f113968fcc712e87646dcdbc30e343ee18382f480bb6a065928cb1ca71516ca79cdea1d3977076cfd495d22224214ee4932fa7516dac89303a9da5382f82b9cef6713dcde915048f904bfc0304380da8657ef8e117b6a7cf09e44a286e6922eb57a6f05267a294029d78ad4c040543a721c6443fb21cd2214c64d534910434264afc02f884a593f22ee33f779348586e518de776c915cce9a56c353ff0d40f23b6ee5cdf886336755a317a9c66abe3a27446d82cf7ebdcce0ee871c9705a3fc57e532052d62fc43404a5e7e5c5295cf93151fb84e92c0bab38e5543f7a295090ea53ceef0b944178328b1ee5365917f82126244391701d7641b22d0481f51c42546d3bd7e73d7c46eecea1414d3f0063821ef3c54766706e9eab0d67577703f50c97ac1cca1146845cf22455b295fe74014211f97ba1f08dc51f0fdabdef50b39603ebacc47f1761635600d1dbde0566d93ee8300e284f654a95483463bb5219ecdc3a55967ba8b8504dd8e254c9efdfb07e313963255a586c21c53fd5852d04a2f4ac9008d7ef87988a512a3c0594602c85ffd252946f3067a895424d362650a02b5f7018b63293d01a914eb50217a382818c9af0234403d03781886fc00ba5f73ebf9a8ebb7d8c9754eb7650f60ebbbe65fff426c05ca24b504aa18934d2b408113b1b6856c807443c38505f9c0748eab8e43d8428a6038c01d65077e0987a6b097346b9da1684b4e0aafa28f7b96a2d3ce9a2d6d502ce2c6b32f3a96d3ace008b3eeca23d34fb2a3791a8b2c4d691efe6ece608546848a407e113300b0a8c9daa8170cf06102d0bc90abbad75cb2e45c2ded4cce00fc11e7426e4df7f089166effc855fe50063c9dadf0515c502dbc1c6e41feb1c999e62d1c440f293ac1fc2a0daed842f114e0d1b69e05dbde038d93c0fbe38979cf560a0b2f752471633a0acff2181a0da3cbb8508b88b4d8275a2de6f4be5191a69e76cd51df7b49b00d15d71fb47b28380c9011649a4225e8cbc7a84bc97eeff499e2f30db11e47784e835cc1da3968f1a2889eb9e709c5c8b672b549233c93ccf9ab254e7b95e12a2f42b89a0eaeb838d86d60d2bbf1e2cdd68fb906a35317d10dc71450a24c27cd00c01c36cdaf47537b7be2c64b1787f72c90044bf7e54e5f70806500dc1aa424d06ef26a26100af5a99c9347172dafe468a167ebf971deab491385fb86724f40e255c91d42f115182cc45818ed8e400f0e52433f63be7df496de5c6e633b8bfa7f251813e09b523c03ca13427744bd92ff450833dcd212c4a7e18b0a1a8186d4f3f2522a874b146fd7f0383cc085e258bc9b01a5e792b550e98d586acc68d1c446e11b452ecae2702626873a13769761014890fe13ef799d4544f54f281ca9e70f1697137f08f6f36374462a80943b956b9eeb4d368ca8c50412ed4cbe91f02d5182f4e5834d9e99d26e6f5ae4760219f5f919ec754f52f54aa554dabb80a2d05dc802553eff44bd2b066920c9702f68073e317ebf404491d441f4773c51f086a7c74c71c238628ed22f9b244506d56c5a7cc1900ee48d3ad7422ff6325b8aa356fa3b4bd0dc770bdfe1ad2f043f4d22c314da0631328389079aa7a6bdf1434807cd2ff27e45a84c9103e05a313ed01a782916df129ac0cdc09d6afb1b68f1da0934a60807c2f7e3490e9a280b2f84320fe0f9019a14ceb6e89f70a5b2e7cff6b0a8230ad2000d277f7fb009b4a389092d67571fc7a643154df3eb72e9ed8546acf34ebbf66e2595200a1391c9f4533110713ab1dc636d5fd0fdebadf70580d48d81e0846cae2e815c2ce417caed2a98eb2c7ce579f2dbb12a8657348cce6c03fe0535bda1cdeb5398885c333b53b9328e0b7a15762e3930729b6cc504ad5861145af2407fd3da84005e81d2edbce1bf740471eaafd031f20fd98207330fb11dd2cb39781ae545ad07c856f0ca7f72fab5e01d3e845155318f5b0f5232a0c241f80b37b5a0f2f2a88e83d6aeae3c3b59d9c35029ab42a01e0e06ff6b19c4d231ca1891b8aaf9c26f83cf875d773f33127b68144df20a3485e82575716b9b9c9132c8e6e1cc65040526345c8e462c028af53e60bf7e7e2d94129e0ce0ee5cbd48d6e1eaa0b7627f9fea32004da3244bd8c18bd36db99b3f130c897d951be44a29a7e17e8325ea6b7877eaaca3388d10eb80c922cc414b2e00c46ad9875bbdd6cac315e783e3e733ff3709013758507f72db5d5ebb2207d9f983c4defaa8f97fc9f51e3c9954312068c1b0c97592c2832680ad8b1da2f525e96794b83831f7f2cb513541e8f73d2a29bcf8e9a96cb0c324add24cc5c3d68f46f5a8e95e475623409398ad07c34149dd2930f46107ee04afbebe6021f0eb132ee26b25ea3f007519ceb3bfade4aacf05613a4ee4deb5445601cffa08c343a81c40781333bd625ae83d02a526f7c707df990989d8ea58dcbb1804be485401603135673fc0995cb9ea17952e7fbae8009beeebbbc6ca8a8f883d4cb4fa7b15dd7bb591eaba97ab68101c500f286f18268f0f89d5da41c3d1b740cec48901a53485d0d5ec1cd2e1a22143ed5ff53fe64aec677e04ad6c46ec790cf1e833d5b2aba184eefb91d908e9e26c16e760c829a6fba0f54b903ba26f36824d74201694cedd93777393a14080ded9499126f4c4e68445f516e851d3fdbb5f75a21803d0db840b08e8381f8be0994c4e8c48bbb41d822ea176a943283b81b744495edc6640a7621e4679314b5478cbfb7276a126c02e6a7edcda1e649c3f81cd828c86023a7da2cdd5d1f29a0f66bef9fee8691b490cf607c5d43e62a8d22009651cbe17f7a37b9f22514eefaa204e5b8cbad54a6dad9b0f0ad7fb8cbe67fea0cd7ba89783947f80141d8190b8a29d0f5d125ee998243d13f8a05f4fd0e159248d3b67043305ab060a2487f3c14b1cf83461085225b0391d6e8dea8cd354bef35750574993712e4934668e073eabb41203568e414c6ba84125d3fea368db985647b847ccc7f2bd7b03ce33ecefd74aa14a9ecb040d8f73fb41f8450c6b1fd6a20e6e1075ea54a4ac6a514af768f15bfb8468fcb2a51e6d68500913dfee0e9614036590290c987ef36cdf57246c143d326725b9af2dc5f971e86d40400169a09e71c9fdcbc171de7676898952855eb288ad5087507f24106bcf236bbeeb0b02826dff5421f65f68a65efd0952a49168080b502c199a8ad8b1faf10d54dda229cc221bf4c86bacd072f21368443c7526343a0cb3e60aaf8f95c60d752f093b546107cacaa8953954d3d4e2d238ecc4237aae3be2c39c87176b6399011a9283b11704353ac8fe74c4415be016391d5ca0f57548bbaea9f1b61490d89fc01ef87efeeeef93b4e869a7afb43fee892ab1b182ed9652f6ef777cfff09536e62030796330eb50c10b1242d26624f651d5e1f9202094ef09cffabb5f69f4e518449817c35109ef33e5d82359cdd4fd1325cbaad8f924007601ebcccda32d82b1d7b15ae62428dd20a70433740c2e07407d8293134ee904823bc0b1c8528109b28eb9fb9a2d5099e2abdeaacac73181bce7da09c3c4d78358e9afca648695168a25aacd695225db9d99eebce08649807920b6f6769a0fccbbeb658b1961604d18003acdb746f967d701fe3b660a66d7fba63471477a5a447c64b419182a5fe0292a5c3a5304a2418ddc1cfae8cf2a00790afcbbb2a421d3559006fbf4582ebe5a61213da07313cfac361efa8bd80e3e7b002fb0cec3dc57e4b75cc4b9c889222bfab6eb00a3def1c83ece3c73f0a2c0f6437b59c411a9550eb1e370bc11c92650041b1e48fbdaf180e583accf205edf8c9ae2533cdeae1c97e5a181deef5332764669c1bdfd37214363f49e0e34a29209b4206fe69e628d42a24d66ce3133b4148ff83f10471860e9a88e6a34364dcbc69b6d43477ec5681ab1a373bc369094814b6ef6073da023c18ba63e60595b6f1835c5e0159ee4801e69739c0b497e44337168ae2fdcff46278e04e19eba9ae9134c457a7483f159b404a10bf7881bef02321bb2dd139ee6dfc769172faa45de0c0eb9c5304fa2865c1dfd85e2752d9e93043fdc3f9c2709083fdfb920453e56f3e0e2b5c404caa427f6b62bf252ab2389e71c1f002e962c5d6593dc5850c232e452f082e34729a6112f62d4b3e327bd0cdf3433096119689136677b0ad1df65214f8b5cb411eece6510823c4be5c8ea5feb06faa3f5b7dc9745bc495aea2d989032637ea5902f07cbcd4754a9571330ab4e9763b544506ddb03141f5611599604aaa68758e05116a957c3fd81fbc9d099a32a59c0baf28c2ca6415230156b17bfcb461afec0720ea20bfc40ee46e24cf7545120866052954d307035089138d6db5a3ea0983309aeaa059610b2e48fcf0ba7f75b3c21dc966cfb52e310ea93dfde17d15e30a4c36fe21fe80427d5624b7cdfec10b890f8986400ff5123ca894c695af5e606d16ecf80877ba1301bd5c007cfb55482b2e041eef0105e11aef203c056b5cd9f2af6456bc7983c805d5e25aecd7ff37127c66228131eed1926d19f3fb567ba9f101f51de0de6eeced46ef1e3a1b667dcfc51f0e2fca48fffa592fae0705fa38c37a3dd12fc4d494124bb61d17745162d04355a6165e1ccaf98876504d91503f52d69837aa01141b07ef1f5b8f3ef64385e880f8314e2707db03d7b5bfeeafc25e1444cd80b272082172ec1d538766a776563aeb353fa0c304ba868e50c89a7fc0430c5a434750c87e2e1d28eb0b7861b562860e3589fca5e28276c256e5c031c4b63c869b1467c2a583500b01b5b1f224d6152ffb93cb136b17a18842fd22794fcdbc3d4f9ac74e87f25c0a3553071f0f3941183a2be429e596eca01cbbdbd4017baac12e5d574ec1d18cb43e0a3f481c14dcd4c148a07336782dac1771bd7558cf503581366904eeaa35db40fea0e2b2ce4fd0b14318f399289318d40ea2d497c5c155408002395c034ad51a1ca8dc3e6036b583ff250b3f04ea88f8e582e1c5913e76cadb784453857a30f95500b903f6d69384e5b3badbaa31abc81df0f100078d2d97535d72870086125c881a1c56f58090acbb2cbd83047adc7f228cb906f50e38c675772e7ec05564bd03afec600a8760f59b4df1f2e202466f5f9d6e94f3c84a747002812c2af180a3e121f71c95dcb4b4e316c1bde2a1f6e39e810ea9ba17c840003e281c9eb33433c325c70db23bb5feafa72c9d7aaee261cfbb24696dae8224083f301e36d83ab3e2254b09b7e4c19934cbb5932f2c9c41ea6746684e2b6f9dbc1d8451929bb4b5b231a27d88637f030a9fa6a58ace2b8ffd5e45691e60d12f5b7add56ec42c2dcb077ee54951e6f08749948cdc304c865a8bead045eb83d7d41686fa3a1b728ec781e6c9e1b4323093a3e00d5d11f2fa7c32ae5440f369fb551016ffd13d03f9e7cb19f01e3f403cb0410b68921eb91a829982dfb644197b6d7f490189432beb0654a323d3cd5e00d062cadba4ba8a04ee50bae965a5daed582917f61c945f7eecfc5391fcd0e85ebe651dd63db72332604db17e1cc794dce1200cfff72d559f5f05000d38a572a48e64ed04e1731f3c4f5c06ed523792d88a979025303c1a9afae0f5bd08f071c23b804df846e637b48b75ed768920486ce22645ce92dc204cd0d0bb939954acc21375d1bfcba07a91af317991576d09c6c740f8f42f78720a351323fd8bcf1a25d1a6c0a444752431d3b70e2b450703a7e7782c7c223eb7f71bdcfac4e94a9d16aa837bae2b5e51083e161dea16a2cb2de22fec84248b79e0c0860a1179734d992ec9a475d1bb368796e6a09849ac3681a4c14fe523196959af8d7f1c787b9dbdc73cd6161b1ea4a7906cca2735bf5e02b8529b60ec7fc4dd776300dcf9886c7c05fbbbc395b0e9f7feec5836570189082c359a738a751c6ae4820e85b85786be2eee19050ef3984f9b943d45c3d2353696307c74e768156d110f84b001bfb3d07efee2ecd496168cb7e0cf101d69ad9acaab25a8c961d74a018d226ad860172327deeef45ff13624da953c5c89e63cff1429a344ba2cf0d387236303c6e0e613d45dfe2dcad4d23d437a431e8f0b4006d93d6a5af9c0098f4114935035bd9dec8508f38c19eb5042a0cec666d5c07f8968f8548b67cd273b28da08a6e62db260dbdbcdd00bbd9f3ed82abfbef828f252b26c3d6badad0831f0461e59a6bb7b8c92506c697650ee2a5e03584547221afb1653c2b1a1f2924706c8267d72b2735f63b2a317ed9dde1ad04504cf43caca40aee9fc449db7484eef3b186fb71df238f7e180720ac096ec3ff3540ac4778bb29ef15826d5c599c048683ab2618a26f144562c4fc86438a6415566067859d81fdbd3fdca0a47db487c68ab60da0c074d41e08c89137c84e2aa9645077ba37dff0d233a8296dfd7516958a583b9d5b78206b334372af74f7f9e00973e89b97e2eac055eb8ed1e025b4faaafecad7833daea6b851502e5e40de1d420698c38d923e82b2f804728fc36604a18cf0d0dcd6b0d139724511fbfae5b2474c34a99ca5b73ac26974728cc869f61ca1249633bdc474cb696dce6a45a986719427dbc77c47a77431d0f943e858b254c4f454a8d2a00b19414a47c488b5881f177382f4d07277769ecd7a168d51ae7c5137b257f9881dc6c907fe14bee0fa581a3ac99744a049ae907a8eb8e0e1e2245e1cf6418e01a75dc871de2d01c3bfaffd3ccf7cca60b7806e9e1e7a11299c942179d208e78ce38313f27346d2f82c38993f096e3e9c860763938d4608e50c8b7e0cb316dc881f6e2790591a71839ebf56a3e16d93a06b4e87c2bbdb741642b1d3230d051ce23b28098a4c992ba945329753b5cded9dabb01834389df448c45732d59d24b68358375bf536029af414cf5b68590e8a43c52a38ff27b7a8a4f0000c772f753fc2e73ed6cd5ed2c44891a1aa152d385d6d4c741c0033444777f8cd73dab8fefcee4c737e16a59ed703af789f0e98f101dc7b48fd6190c0d94afc1b3218e8aa551e5afa3ec479fd0ef3127290cfdc924e0495601590d7120c4d4086938107d535109dc5b52cae3f1583fe2cfb74acde6698b86edeb25e31b95d6c386063081249a271617399808c78e3db4f9a6d0c107e6cb20e6645d74d07af95c5dd02d9fbd2f71b75dbd4c9d70d53a260fbde87c99f74679b11d3fc07d63c1430b51555cfe7ab1c805161f852dbb92ddec54bb4b4382dc550dc7818d9757148b540707e8a64eb07d3ecaabafeb458c4ea6e8f27a84a1272f69b37edd8f33b8d631ea57acf15504932415a734262003705435016770952b73f1129beb1d69d55bc63e0959aaf9b8718711f2e0c541a10222b35f485908dff2c75fae8a02a5ac1511a8479e2bcaaa2ac54d77b77b055f3d9e67932ad4edbb01d9ee672132b44565f025cd65ec30512b790abe7f0414d2f10cbcfe8b55bd115d4f1a04c8c930d2a4028a17df601e225d728f3f81bda15b605b97cadb4bf6aeb8629b850eded85c0820977a3a2e3a1f72e2a0749de74cfd42dab711a2a049adfc9cca3d3d1bd5e7db0fdb070e21cc45c2f9c974c94dd74f7865d736b9490932ee34a62ffd7b8b9444248a92e7a4bd9795bcfa7992a47219cc74971c2fba82e1e4cb96c07e2aa6b09ed4b2d8daff695d8686850ad4281ba5e6c36280090262d3553e9c3ad51db066aa818d67276c97fd8b75826e46cd9c83cb54fc81cb23dd2ce744d72a92ff982b80ef90ab58ceaa3d0e954a2ebc8cc61d320b5870b9d33771668388b5920e14465815c4066861133b076210bb07052ff836278455104220749b2f92ea4c50a370b557ff74f51ce4e3b0387b67305e628acacd9d8d8cdc19071d72b3e012d715c735e976bc49dee39dce08da5c37311a2b758c8bf318c58bd37b0bbe896e5fba8ddec696046a676dfa7bef69bbaff738e05db620599299c9c21f88ba75405db8f376f0d035b934d31184eff2502862872d5ad285122ad1096e387efb134ec6aa3fdadc41e0cfaadcad96c623d220a2f076bb9ea9029663949a7b7e39e16e35e383098bcb92c300993242b2b2b2764842d6bef4e4720ada31eb1e991c6b9ade9b479074d29b69b7101ab7c72f68988c528b974a4d7358da3fed4d22de1e1df9dcc5c9cac097c533c618c0faefb2beeee61824455cf44ef41b1f2177f0b03e89cd5bc2c7a0091dc8ce88ee68e49b0c50c7475d72833bb5d8094a7a53eec078517a921a29161a4960b9502f1026004c09e4b7ccecaba7eb89b0e8d2003dba8ef4764a42bc4e1e88368c516b0b71e57d0b11ffb98f3ed287c00f7f6b4eaa791f75d8717255cde4d67ea2cd798e4389e39323506af4b71370141f78d0f0aad78a7d3d728bea44e3e0e9b179abb298c7c75de56c2046f7e0bcffba590e346e2dbde592215bf9118b0e8164440ecd7988ba40479085b5cc528dc35c2a65e9d11f34101b8c1855e2d08bed510d225da6971ce754680d307af32620c05af398ace2ac5bfdd823883c17c33bf337afea7593b8cf76292b976155d42441948114b5ab4b007736f186330745cc0ee667755ccfde6dcb970475c78e329ce4bc0c16d9016572015becc0daaf0241f6df4860745db500d0b09d51171ea0009dc6369ca93c5d157d8dd447a01e77603511d3fc51613ad37f2d891db778dc9ddec17a8c73f1134619c37f71d18cbb4ca400cefe66d67e54e1a19ababeef09872329cfa893fe7ac0187d1688325f04773d560b121482e98d515b799e93879e998a1b8051ec081a543c8622d82326607076e77ca2990b0ca1cfa6c090059c4058087dd24e24c6abf0f83d453ad77d315020980b3785d825d5e54a5899572dcb85d62759faa5142659072ebe28d1212d0d646dc6ac91eaca8313cd2bd1aa6454f34e3a2eaf021dbd8bd7f8a0618c23ceae335cc6b222251828c411fd320619ac27e37e37af456d6f131660b66641fd923190c0874c8dc60d5081f4917d33d81be350b0edc3af9bb191bb77cf8d6f082436dfa7eba3213551e6067c6f2e5d29f2f212d8e32a59cb4cbb9ed785089b57eb708b893bfc835f535a56f947612f8fdd45f130bd3cb2433bd6f85445d20a48368c571202a56cd3d2c5eaf5008e2502c12567ace1ad28fad3156decf5ecea12e428e1032b282471acc1ea45fe5e6660a9872d2575902d82cb9ee810fec0895c2a1ee9af35c6a9b94ec262f809264c78c4d1fac6d1bea960cf20963f136d4c1a0085c26a3e1c39f6a90104f639908b27b8392501238201e4ba7db50e7c21861e0f7f56a750155a69b33718fe079221c4e5b8944b61890b91943a26ba66f0898c03050946448b649ef51d02e07408eee971fb6c0abbf968ff6f1a8be7287c9bccc7f1c972ea8fddb94a1ee74097875263a0bb5bd9f30c01d714161cf850101fc736c34c069a0dd33055308c68a1b1b80befec350bc3b586774a55b01a9f1ad48158bcfce4c6097d1c2f49355ebe8c4faf50f395d0772c5148bdd910a999c72586262e678f29a89c085f16ee6d98d6cbfbf500f7ab318eb5958c33cec318e5bf308b178d64e434dd450822a9209da4f7dbc4a13f6b561c768f70b7280416be8d04a19f70b3a44406be851a50cdb0f53f0ff2db854c17ad0a6db38721107650c38d8d4d0f21dc706319c0f634337380ba526063604129d5b8819d66b0c824dc40917bc01a4ea761c5951a7aa2e0e124ac65d4e216632d39bce6d59318b5a38c4158e91975913564a9cc6990beda0c3c0f4a6ab6c2ac26de1c343db92784284e600389860ff3944c500e3205a264d0a36c3df74d10e0288770ddc88b2a42224177990fbea0c9666337048e2eaf4d6c34ee969d200fd81393c4e4fee76bd3ab2b14208db0e0ec0b1d5e9509694203454961c835680534059af08f6ed9b9379da5bddb9b734e67a9f9b6397b59a062660f3a399ff673a02a4c76bca47b4c6dd8c787d2988bde85988a41e562db79ebb8b5895720c59b13140cecbd38bc4d3a175f8d1c17fe74edff9f633d68d4c94d0de4a5552c5876330e83423432de085a2035001e25f8123a721af0bb84624971cd6878243b32e7811696ec35bba5911da016d7e995c3083b364bdb293a431a9578d18191058a1a16afc708e77cf2e9c6ba43e4caaa9e77400e4e1803d3fee1abde5e875902a2e485ae6ae261a97925b0b3aa51c8bb27e6d8a467aaf24da52ad38c712ebbd84d383d862ab45f772a494a39b2e63f29c69ca04cc12bd08887dafc06d6c34e62fff858ef2e93c04baa8eaa5c553804b20c7013060e2379cba53dce956d5c70f075a0aa1812094808ee67ac42148dc6c04baff2cc406422801dc81b8a95e9c3a4f3e66337038c79bb7815002b74b3d4e61016d4073f3ab22d2ca298f9c721bc228bf41f8799c95c4efe3d007b9f1dd58b01c37808a092abb11f0f67c4ef87a5937184a5c1bd5799b294cc50eece8a12c5c54fc67d5d7e99c751822eb138fb38403064e896e8c43394339d2540827c7d79110c61345096b49750105fe9162425e60990b119c3394632996ee74b9802377e607acdf2be9da5b48dce185f8d64bf046bb5e6834eee2e0b814fe44525c881029b020431234f6599280f73025c0f5a51806d07d9ddabec71a654adc3df3213c70f2d4319ed8a64e473b665ce98ac99b8328ed7c1d5ffa62929d3402d15b4dfa58e392043df5950d9caad1ad1d948e2a1d89162330cbefe198bc827fba714c965694d000884afefef8c66b471965e4557889ffe69b1605ad607c57c7cd9458663946d71bd69dcd90a17a2172ebe6fa0eeada3c3d44d22bd909f77e4e8370a95a7184f85d485de99d8ee433e35d68e6f1c6e462e5ae4345f14ea81d16ac8b6aec723f4a30c5f133f3d305a71e0a96771dd1d0c40e9f43b2588ed135f5d9162a8ba0d811aa3587f1461ca4d2138319c5926b8dc99ee2ed9fb81003f016ca23e07e7dd81fa15b42359cc2e1c8d4267d6ba0b3e05324d195965885f2b301c1450c6a1939bee983fdf9dd5deff0f284833a2452c9b55d29326cb76ecd8edbf71ecfbccb1b9275ec4117b491074364065f8cb444310189ea790d5dd0ee13565e10d8d1b312d8f35dc072dcbdd6b6682c31005e2a656455ae82e98630be9e2804d832f7100549ca10947946406148c93e573b733abdab517bdc18a23d191a524a865e0daa67a2eb60c676267752b9114c2c35ded09386548b2e09fe767dca91b20e5858b8f36806836f68b4eb5a4ecc91bd30ac14df097ca3fc112a77d10b82724af65794bc19e67448d1961909d6fe62eaaf27b250055555de02a7483296d6a69cf60c8aaab0ca03e51f86b4c19b0deeed071652fe050a13f2c88053a1e29d72138507ab32a9acd88d164445a37033f2a6bbb4a67cc26a8ad2898ee3ee1508d2df8879138212ec6a191653ed6452ad82360bd83df9a97245fee1374fe625ab77c015d2f26b080a9ec3f4cc52c4f47c2f75b67275b832ad7a9ee3051270023cae901644339fc4c9fdaf19df0436aa86f20b90553189fe4dddd7da69821f2455cce0cbb13e760141cf4290048608d497e9999309bff73e08c7bca6f958562a527b7810fa787ce0d034b3e2a9c52923e28da6bb8bb11fe8ce716aba729b29874bc84d2693e464bb411657296f26a08a09a054050505a2e0a25cd18f82deef6231af5318c48abdd633850526e5d87eaa4587b0f0c000c3838d8d6ea9ec1ebe42751c20fdad78a9f202b3987303724c523e12efc5a4f1af75b1101acacd07dc158294e4967194764a073f2402fcd23b0344d7fe0e084accb17fbdf5dcf572979b2906d78324b4dc2ffa1a31b49caa3dddf5a1e5027a838556ca0fc201b4fcd7abf1d7dc15d6b9e0a6f6753c5b65b0c63084bdf76014f9397cc002219175e73086e896ddc07f9d1f545fe60aa0449543de152e32b515150cd8bc805679a7005e4ef0d90db345631571a7b44b9c02cd751b50294cef367463de6a6c7f31eb1503f6a543e4a3ffaeb058b1f2b8e84d36a41619b8676d0806d9fb91d8526d60212ec7e1823a180aac703f5b31a9dc14d63ea3dbdfea70210ab47b0490f943c68722ea3a96ab3bbf29aff05610a776ca2b84f7fe10de2ab465147ff1ed94e1b109df49b6e425ab429ae22db7294efb327c3a059e18974376d7a12601d2df4cb2b10251fe0ac5dfc1327b5a7078ab162bd4d5d9656d46183d37178f2f2eeb8f8186c92008f6f40b70be9d67bcf914d4362fd7f6e8155653dca1776b69f8e505fb3d31798a61dded9cdcc9670056951b7689e97488cddf4100d13dc98b7433050b8950319d2eea2e804fb317e6741f7b85f7e449b90f6ef3ddfee00461cfe514bb20657264f78761f334a6bf901e05ff31286b019cc61907257207af3122319f02dc8a490a1d2e8c76afd3447abf06f90951ee0ea69d8c9bbd421a78d2f081678f2b81a21457d85cb2add816e7e2776bc586ad6b02c35364aa6fbc9eacc768f4ad3a3c0b7deaa7cedffa4239e6a3b93ebab488ec0ddb3ba89332384fa15ab0aeaf84a4f60a297d3942c829a02895af43b5487d9048141ae03754b4e016e130598dce4ec9cf76fdf72bc46b2ece8d038ac94fb08a826c682d5cbdfd0cb6fb33cbf1d915b20d734fe780130454761a23fa2cc8c808d7b08b63d1887a7469525c86be429726b59f8116bb68252521218db8227ee5ace596833efe1bfb64e06a14850c7d2b50b8515acebfc1e969192e9466e984d0558f9df617efb784bb9c5c3815aaddb79e423575ba25d8dfce4efd6e44a45b23a27acb882072bdcc2dc73a5dd1487eadb228b84be564c0642936e884140886e07a335f05ce2e2cca3ece60cd69c4782018a5122e7c2967a7966b90b1a3ac16d11b0f13e5bb53518307add32c60eb1e94b6f29039997ed14afe3731073109fd52a7435e2a4327ceb8bc22e1007739796a9b811293f548d3e3277f851bb4b2c70ead7309c9fe465cfa797883022c7411883175217fbc5555b4c1e26190719f1ea1cbad6ef9be7928fa372cca18cf6416f90e6678ca3f677bcc8dc549c74ba4e2d180436a5d73e567fca92beba4505b8381072c9c1dd0678b5b1f9d4ffac3b1da07c69dfd8316053d6c5141ca604f6c29d5a2cbb76d328efcb85640835e6ec94cab9d19d23c442a91f9a9a156a37cc2bc6bbc281710ce041efb9bfe9daf9fcff88032bd317f57e6997c054fbe90195a3ad98810294254c019417c78958050fc23819a7cca88a1a244ae1c16c4e435a875cc3a7ae3c45ecc4ea1f65a258fb83e48c6bbee7354e58e6159d1e4e1a30755b0c8f851174e7eb3cddf961a6b43536350f83b8f147513c765ea4dfecaa206dc77bab0dda50b38f75a7e5857977edbd1d9e9175493f0a00512a2d363d0f82d5226c3417f3c1dc28826e1fb526d318ff6b12660269e9d5cd00db251c744b792f915b5a5426c7f5935350d28f5a6b1e816415838860bd01fc0b3bc8c76e8906767a670bafb421776bf39f21df012db0c94df7371edae82dd9281599dba1837ef97f0c506aa5d48a242a406abdca169d61af8715511e5e81e4dde43d422bc852dbf574f74f3e54de727cfc0e742311ea5d5ce6bbcadfd3622c60f06e0d6e6180e874b27d62770a5731b2fb7a41f5ede4154009a44924c58180f7551cf4aa33e00ceec9ca38bec782d4261e1c5c5c7e8640b147b185c7261a0aa82c1420d460a1fa3b94a7f850b0f3c3ed64a4ee4d33851653376093b17fe983d710d8771e001b08a60510407313d566121b587cfba256c4e6f2c837b5e683f6ee9282104c3d3581701192ca537e03a5debd470911d9a956d82383f626736f6a4c0129eae513dc538e5691b4834a7381d1bc5aeca0dfe27bd2d0bd5c3aa7e1d4225d8e7f679c7aab359d5b9821803b7d3ad8c1be0964626f56ff0325bad5325ba1ed06675b40eae6ec48b6a8cf4d37993f7fcbd2daf47edba7f82985ce7455888578b6f1d82d36bbd43cc8872e16451e13a0956d3ad4ce8ba370c40a096acbfaa280e6581bb5fa885b35c6a4ecc54ecc3f6fc45fabcf331a973871865b67d2983fd419f0644085014a0297cff83f8a904d2e9d00ab931bce92efbd1946d00e96535effdebe9841a146d05082735af0e08db8a5122e8f6d7d34265c25454d7a694487d5ed63892d0c6f243340bd0abd868dd2e7032dba243240b7eb0d63cea814339e6bd41d47f93912c4d755f3fd4c083fc5a58f94977e3ab01e064e376fe96e4d827bb0706ad968555aabd10ef7402b9b3365a44f2a832be7e9518143e5e1d0a04797e0b561eb7050e3e2e75b56ff594972f5b5e86e2fc4da20e3d2ec989c185f3c8d924865efddea4130250920d346a1562973087684eea441367e287c21a25241abf0ed3160cb4fa0d7dca7a1b468fa97bf865a902277a438cb4d7ab11afb65e310c730d6b02a6ef50a69a714a3779f9d11a853b6e9bbd566ae19e1c4efdb2df4101e085d1ab4ae08c28a0ef9aa62f1ad2ad8c09bd890a3483a29d156f1e7fa009c15f6d62bcf3503279ddaf9f8d92c731d833e34f9e2fbe65d3a01355b02d27ca9a4a962a1a9254140063f2ec3887cfefb78ee9c267b2098fc8e9cffa7cea5c23d17dde64449108bb0d0364c1f84e0e39384969567a6d828c4775c773106a0e00e79e8c020d4ec1f88d190e54f1405f9a62c10e542daad58363265d7da7bce4f8ab1b1e4ea0c2dbbfbae68c1219d82bd793458b9f8ca89c8245c0d8bc9b5ce5513129b56a156b83b9f37ec5494b4216d1ef9b50f1013ea1824d63e13915361ca92f1a2ebef8b59428b13d5ef248973f65a16d0f43779367a1b2b705f46f9485023e2853dac693a5c0351d450429c81712e56037e0e7881ad66ec4c3ee6847cd86129f229625d375938f04152f05a7c2a17451d85377931e0d1dc6436a704fa5200f912b3824910fdc0dccba2f5537e97e998c21fdfff7fad8a7d4e86e13a11ee95d32323b2a302b4449e8859799f370a10deae7a0825971e17df283898d14c1edc988ea1628a84ccaf040946aa736a238052343a68d5f23e6b46523d717ae3116370daeb33ba406678356316e6b0c93623856ffb6127e8350444b5c8f4b0613a3e7a65cdd92d4921e92e9737f2117a8f96ab5d1de6040989856e6f84cee3122b299e9a3af465f6609fee78050f22a3e1cbe7a45ff3bd3f8c906e341dded5c879bbc275ba2fe2aac70070e4fa3ed797b8c827fceccd71caf3bfd155c487e6e45d09e3b6dd9698e3b25d95edc0dc0dda86b44eff2eae89cf68880d1d1bd8d94787f97237c95566d528778198a436e954527f4a90194ee827cf51e30446923483fe97ca48330b413e4f91542c9c19eaf490c3ac8c1f3cbb496c1968ffd7fae61427f995c0f6bdf40c3605207edd7e5c400ab75aab687ea61f1e3f65cb7ec37a92ee95ad7b84b6c5d1e0b058d547e96bb6ac9b9d4ebb086b2bfdafb810ee802544ea0392f678ace10a721c4a7e7c4dec8e13c68a237a9aed7aec176e946eb34aa109f6fb0ace901d4db68b00c1775e05d9a13a84980f67f8d6e88d7dce3fbe11c86664829ca471b273b7393a7fdfd80d9c34856ed10c114437de23779cdb50375897ff1690e35aff441d243b53bbe55e08f0983e95fcc29a8103d60dc37e9b5e48c9a67480abf759b4417ccce7657c71aa679e0537238824201d6437db49fdcd7e1439d3df81294553d40da5094fd056e129e54f6284a6d03843b66a1d471fe51e8a8af11db848ab1acada1fc7561f635eaf8a9b20d0f26605115e67a8a00ed7c5be37e6026d50c7250c31f8e5793b41ce27bdae4a0c01cdedcd1fef5b9c179a044d51b1cee9ca8d33eb5536081e4632a5127423a958120d3b041a912fe283499d7cc4918d2db21234ed63b3991be307e8c43040ada146ba38e323c8293dc1c7ff44feae2fbea02ca11ab8883ec39d33bef0fe0daf320204bb67bc7e30ad29beffb47189f7752e79c9fe8dec69f3a4dce3871e200921769b81aecedf401a19bb674a0d6fa9f699e0590d2f8c4f73a223b6c21ef5aec1037794b229b552d9d7ad9f1894d3d8e84c007c6f3c83c9207d6b39b266a355474032aa43e8b592014ba9a0e1513ee3467f573f2658018692543cf827d8b5b8b544986a71f036a6f1467be164722eab3c71c4f800b67b067e9623cde393adfc2ac694d565bdb8fcdf5a5b27ec4b6e29832d02163516c6b7befbde59652262965bd08cf083808b77cbbc1a6569de3198aac42a10f1bc970aa241414141414d4766d97ed08e2ac24a763e85091e76584341cff51b1e76748ebf19f0d78758c219a088eae54989896a8d2c3a9c74ab5d9683c4e4e5dead3934c16a3a16b44603e23ccc965d5460476240b6939554a25ebd7a52562efda52c3655b0223c7c6637479e1e1d103781c5a00dfa381bc093a00df4303e079e81f3eba859fa15df81d3ac8041e670203f8e182861d05d137535113188076390940bbb60440bb9e80685717006817d40fedf2b2a3a3054de70efe9d9086f3df8dab03672c896ecdceeb06a76fb609ba56e4c75ae4329eb046a75c56918e946a52d248a5a270e008690f84c304d854f529f54ddf6404fd68a107d22c3c0fddc19e011a02bf001d81e7340bd6b10095002d817f80a6b30668fae424014d6f5050502b0cd1443eebf1af8ef131adf330b48cc7d1fa1fa0e76c8508685814ece6b22d9574b21dcd1d98cb8bcbd6830e9dc2efd03e82fe47aff0401af63c34fe1e277c8fde8f43a3f03c0e789cdc7dec3a00460ce7669bd313d46d748086413d69d8169853256d3ea458add6f7b1582c168b55a443e1840d55492fa38f212d0629132314ba3b4648d3197a1d9a8515827c0c09d1585821c807cedd381e28a499f0403c36c0219ac8737ab573e8da101e403c24f9ff7a8922d42c16bb13f6a3615660362d4e5262e6196714f919e1902d01cc59e17768ff199a85f7d1b497413fe013a01df00dd03300e96ebf091a85efd127f068159e013a02bf000d011a445480a202e985f051da496b09f2012386034544e8a884190166049a8655993b4573274a085141a38f5105edb2a1b0656bd793dfeee2ec04810738608619a1d0dd3fdf23a4e5f81e40ffedd028f2384378c0a69ea428721febc0f1c1a9c1dc6162f2d4ffd12e2b39b4cb29137141b96eae2897724d018d2e1b0fe24e0e5d9be169e85a917f5d23b2c536c29e5c0634c29c8ef2acc8088372d90e7d337502ec08ef706386861db15aad8fc562b1582c1a2f4e44b4cbe6b22d4f5da050d051021526a625aa54b19242486d362ac54748979676a8934a9f24254509a992128f9e1e4582429a0912a8648dc2408d06970dd1f428a445950c0a81f89ee1595048e36a437280391abf0e8dc2efd029fc0cedefa37d3c0dddfd8f0e7a20adc2f3d0b0efa14f781ebd7f480e5d2b5264abe0a4e54602a48ffa1fe4a37c948ff2d1de412c35d4ae5fea235d45c3a8f8d0e29482beb9a1a06fa0f44d934023e99bbee99bbee9db0d36b55d369715cf5d1e229bcd7c34ac0acfc7f21258910e7d13958fb0d864e62465787848f25f1433948b47bb6c2e2b2ea71eeddae27a9a3b5c18c8e5e4b2b202b85a81587e540f2d7b1e9a7c207de37ff4ce0fd144de47dbf81dba84d7a16be4d03505d466f8ac001cba47c328f2b17b0336c500fd512f55547df4515e327d740ff9c87f3452c6327ff413d9e63fda293f551f0d95a5983e9a0a1e92fccf4747faa6614c542a596549f7a08f4ad037b71afa064a23e927b493a6424369248da491349246d24832edb2b9ac541267cf186fa4b0106725391a7986c6d996287333e8ec325c2b72a13eeac3549ffbf55feac5541f2cc3d7d745fe9380bfb165d02e2b754bdde11b8f2edb929d2d83d65ff4d3ff7454f5e1b8d8679ccf453e8f9fbbcf337cfe57f581f1f963d527c6e797f1792c7554252bf7a5be6dfd45a705d087f42d863376af43eae89961861147d78a14d12e2b55e6b24d115d79642108460b7709b1065516f44d7fa93edcd7d7517a278f47c8cdfd7d0a90db6eda1d6158c2c68ee17c69e924632f14feb81be75d369715d716d793cbea2740bba05c567f2814926d6e743975409c95acb165d02d8434fc03c6cb76ecfd27ce730f2336442bc065f5570869382b843140dd60818786830891d16545c865bb615cb6a11d1b3c78f0a871d1f068b178f018a2e7cc9f9bdb4697ae28d7544d118c09d7eda60bd80e2ea89b2c601c80bdc0e57493839b2a6e86004b411802c94d6cd7b99c5c3697ed8b29a9182a3541121fa6b456daaeefe3ed862631dc70642fe62ec6b72f5e30c085a91295f397a89b9820a98e863dbf0421123129b97952df6d4f308cd49e4f449592a83d7ff5c59ebf0a87627b4a9451e265862523b2582c164b09d49e3ff5672a5646f82a88cbe595127624db5b2832965a57aa96e36ac553dcdddddd29bdbe7a42a95d31896eab8afeae250e5bd3b973bf5efcc2941b2f15a732e79c7306f9a44f5c5412c5ac9eac94564f56472b21325e0161bdf8bea9f5d453d7a7aa2465a348f326459ccfe5ac82fdd8b4f6a088c96f48b695946a71f660e14a8645a35f37319c193a868c1a648d1d9e1e1c2b2939fc1625351583d96c369bed0609090909c9e6c5c4c4c4c454e35a49d1e19292929292a269b1fc36e34c325276784d92116d369bcdb6b2aeb22ec5e716155a07ad7fd6a5fc38ad2225d559f701575280ac67eb2b293cdc5ae75647f0e8b13aa2c709f7a7db2edfe7d65a6b292dc1ca8817e7cee5b8b9e31c37ba5beaa2bd4e31bed7dd2fb0ef576bed1d27c6e25b39112bfd1cb5e973f85aafb3d6fa73ce59e9d7cfcf1df1d5d7eb3fe752f7afd633e7ee5e47ead3dd8eeeee5e7bb82c9fd7cd39e7e42abe76ce39e79cf373fccb5a6bcd2eabb5d65a6badb5524a3fae8aaf3b821ae1eeee73ce5ab59e3b135fdb6ab18068751f449ae7cefc0ab4a7bbbbcf9508e8fc3612777777dac4f39238055be0b449b5d587babb5fbff7e8d2795f0317e94eeb81e05b39a9b5d6cab4e7cfe7f0fc6be7bb1327e5b64c7327091a744695b1eb7fee838e8d7147acb9cf391d8e07e38b81b0f04665b37a893532ae993c411b5015825e97397cadd79c69e44caaee7398bb63ee8cf0fde75c716533e7d6ebac6fadc5bb8eb65a6bc7d2e659496badb52e04b5ab26729ab9703f9a3bf3272e7dbaf6c563b5d6d29036df0ed5ec3b3af1ad9498b5d65aebd34a89f9dc7c3cffceb75e574ad45a6b9d13f663d7b1b4c0ae4f959ccfd5a68fb55e4fc04fb7115cc358e75afe6fae92102b98560d61a845b3fcdd789467f92baee50f73b6fb20c74079ff5e2336f8ae65203f6bd710065b5414c240f388ab7761adb5f8f5aa0198a333ab3e1a36f7d54b69ad97524adffabd77a4948e25fd8bbfbcf7de7befbdf7de7befbdf7de7befbdf7de7befbdf726b19bc6be3be6cce55c5a1feb95d6136afe9c73def43f07f3d7fc35e79c3f8f99523abeaed6b1815a35c45821032c5055d82aad191d30124e4fa0b6740105156022c0e5c9c90f983031b584510c7ab003265cc08227a45c31c760518413276410e6ca1066f3a7042e940ffc892bb65d6dcb8165069f4082fbaeb558f2acb5e9161cf846d79e579ed8428568492a0b971d8610c4960e7c993e501a62ca0b9200831f766005910e441881c40e5f78c0e2685692dbadd0c0c909cc121045182208220e88008826c24851020637f0410576e0059208b4f430c517b3f9330222f6fbda178b0b60c0c9b8760447235146ff8a16476cd59e57b480daa5ad35afe20347589cac28ca61d6b4fd6d15db7b80030f1081081dbc6822c4ccf19e585860c3130b0b6c3e78d3db84a5f86a31c10e74eb64b972d3c1b7ffabfe4c9d2c36dcf38a9625244bbddada84ce393b9a2be7b889e8446c759973776b5b2d56cbba0f49d4174dc2dde9ae619839e7cc95a496decf5e3477e6cf3a832a9b3a7d0166090530499b5eb14193fd57ae7042a1077fe9eeee187fe9eeeed8dd1db3402c5fafd8ebc05cc83f370cb568f6fd37433cea1af8d97fbcd12807a0597e703ccab3efeb8b9cf63eebaee6759a868d1d638caf1dbb57326db30ce4cf40f7397685f9e84237e26aa350a998544ce08d3dcff37c709f52afcbf7c71513ae5c145e6bdf47c519d2dc2b696957c41663af146715ec47a764d37136550dd22abe8feaea5e026dfaf407d1715581959c18537c55b01f782c0fb07ff06cd4d6770f2fc65c48cb39779d149ab7f48160f81255aaf13e4972424bb25b9c627d99d638675877a9d5a2a1a9a1a9a9a969b1666a6a64c49a9a9a558d2aaca9a9a1a19a7387f3e2b3d52d10c6d3f662eb9b14ac2a5bc950a8db201886e26a258ab6355b2c16fde163b15a2d1a9a90e6726550a725be622df107f1e63aabab603fb0a5201eedebbf9b1b182ca4bd62a50803c64a056249e2e4e4fc036dfcf40711fb0fa29e3f8e630e0e8c186c1c6f6c5e35a38ba6358e236b9c9119c5711c478e67e6326d5f2d89f9af6d629bd417471dddfa19daf53134cd6bcd59272fa3e6256393338323ab5102b9736342edfcb609e52266477292676e3e49deae97692323fc3990b3291c8ce6bfaf03afb64d9c58a4a54abaf48cff416ce5d0f86cc3c67f34b4d114ff42e3bd50c8db35efdd6e34bcef62abe9966997aa79549117fa944f7d36365d48bb37dccb070585bf90765773dbd82f43d7c933f335da4e72e65f3a4f72e66db438c999cfd1ad49ce3c8e8e4d72e661fae7ce0c38c999d724675ecf00863ff496f94f2c61abee8c8c6ac5aad1e5e96925b6645b9c9c44191ad28acd2633e3025b5ac746dba830628a8e90929e4cb96c09af926766cc30514e85e54c4a3832a62aaca4b9e38f8dae9651c5e6b2a72ed542697b6bd9a4ab632cd18c116dde45451cd8b86d9036bcc90cfde8c89d38920d241c9ce94f3c296709f1be6c6c6236ae284a4a5b4ae84b4b353521edf51fcc4647a924d368975ca634ef18516653f3ac905603a3a6c68d6a422fb279d5e4d8d824f17ce6f98f471b4da95fc0ead4940c16bb37210dc380e1988dc7b14163ac4fb5ea546f55ca6bb2b1da6ab54a959c9c57a5529998f0cdb9daf5a31ebbff66444989f9e21e91fa26b9ec16b92c4c25a76ee89a54ab482e43aa4b2ef3a7a1120cb2a7c7c60152dfa3304fa22c5552ca655142e1ae19936c54928d4a8aa1a3fa8fce983364c890c934393aca3a32684c1a3366d410ab512d9231839c240d1ad346dba83095fc11762f77395c73813083866cca48320aa7da35f45daa323139ae1b3b5593bfc0239d9aca3492c81ab346944c16d2ac9498303170b86bb48daa6418315352951443a5a46051fe63936c52146993926cbcb44dcad1368a942a2e6372d912d3981d1aa692fe356854d4d55d97a7272f50505fe8ed46b750a7254aa0549c2ee135fe3bce698d6b36fea56b32188d8dcf2dd767c3ded08cf8b9d1ee2b23c4cdcb42da8d0e1b7ace6e34dd33b43fec489bd0231afe3764eefbff4648bb9687272a4726938d364c95d9241e448bc351a3228e47acf99e90f6cab986a795a395d88c18c0f65afbc42a85b41a1ce04a056269a376bc74cdc6dbe81a8d282be532ff9c83834b78ae84778db51a4f33d64a7818ba26fb980d6d3405a4d986a613c7e5ba6d6f09fa6545f216f98fecfd6d94d494ff90efff5d7d234adde16f422894b4642787cdd3ffa4b868643233e4eba606f6f9bbfa4aa9a45b21c4fbe58db27d4947257d406b2dfe1d21ed3e76d1c8ccf454d2fd6b260b4135929409404d26b34953c4fc16061764a8a409374af5c1ef52dc265f9b831b1da0804aba5fd75b1aeb7a1d3436c93ec14c2ef35b6393da3ea9327f9f90867f5eb26d7fd2fcfd170d2ef3c711d268c659493b4e0940e53041470e1ff0a5ed13aba423a4d58c36e90221694709322020a01a170d508b0504c4b566de8e25d196793b33ce4aca8cfeaa10fcac7ff73604922bd9c4664c2f934e3d800aa4fc572910b11b79133faa64d55f66473fd5cd58d27df35ae3bc0c0de37574ec63e8fba3ce4f440f796f12450554031220c3021840a4c88f0a3e302d4327c6789b31c14cd2cc0a669666ecd0c1347b61061c26f4f4d86ee44ddcc88fbcc90c45b4d1941c44680ce1d93c5400fa24795f478ada351755928ae993974c321fb909e64fc63293fc27db5cb6547df2d3cfac60fa642926596163c943eab1245fc658bece2873cbb7f106c5a4fa2ae8200c2d037320a73f90471fe0716821dfa361e8a10bf03c340166c4f03fe5e7a0517e3ec0c708c0b31110437900d716d793ab8b0bcae5e54687cf0d4c07878be87aab5528974155a91a55a360401c78e3c6e726367b210787093d3a3649fc3df4cf1d9ca70c8b93c4afcb1960e10fbdbbff543066305635542a4e94edd52acb1491c2627b9242143b1db0974143e013a01ff00de81e48e3678096000d5c448a888cd372a75d50b728a9292f14e27ac8d12cbc0eede377e86e8597413be07f7c06912244548079111a0b2bac56453e60dc62379cdb0d350ff4ba5769ef41f0af4642bb48848cd4543ff7111b76cd1b57cf3df89e37537d371679ae6bf07f61f5dd7fae81581b76adfb6f8642c6b0c89b81631843381679b3d57b639137f380e0d8650dfc23444f76ad0341212bd57b63d1fc320bc3c0eefb86cdb7dbb76bd81d5df07e3639f1c586cd71363931b567931344d81f065dd78e54980939793177e616729a9a3c73cfb1b45f56a71ff867d7755a49f74c8866e20d5382e09f1fc24065e6792e7c1f5483cc30861c406c9975230e0100c30220b6806101105c66dd13ed190e19a9753ff7910dec5ad19d75415c1b7fa815307bc207dfa624a86777733e893f67e097a24a1ca7f87f0abbb481b58fcc2c453cb1f11b998f7ff5d3654a6818e7ede70c9cda5e39af7021b5af1120bee7db30b38fd828268a2e1217bef70ff50ddf874f73610913a2590e53ee13cdbabf21101ffb869a4a698a446d2ef33e7c52429fbc9bad7bba5125aa84f4255552c2846836c5ff4b3a84384b14b6111b58fb488e12394042c91418c0577d91925a344afd9c8550bbac45e0685467ddcf999139cebfa39121a23ddf86d63e52002298ecf9b3a9044f758eb0f917d8b2cb0b68d973099d79dfe91ceacc1b8d72515191eb1a7ed43ddf2701e6ccd3485663f6fccf69f6d83100d1acdb53d78e74ccba9fe10b4be698a925dc9859376697cdffb89cb92031b944f1c0c945041f971dc0d9c485896ee2d20155f662a50a23eed9b4e526034edda48508bb3543a580a23fb6ca5854d86c255b5ad06411256b1eb1ac4e2da5ea539576d4ae4d5b8ebaecfad5367b5071e26ba7573aa3f29ff4aaca1bb68ff5c6559c293e18444bf3e57cb52485340580b611ea4ebffb7dadca874c09b6aaa83f9be8321d40fe23f360f6acd2362a69295949b192e2f78d49eec64f4320378c1933c609bfa7eda600d0bea3115b57d50641dd6badb54e9ba537287f63b003ed67edcf951d4bbcd22a6bc5508364be49ae4d6255b46ef1cd39e7c518e4387c9fda3ca748ab61803890bbab9f4f670f99eff6ec19f3bc2f75c4e79e73ecf7f1bd3d9b23bf4fa539bc55fa6e194deff7df0693d41d3e1802a163c68c1933b387baee4f5b10a4db75a9b3bde5d32ac5cd71a5dd9cffd08ca20c1451f5acd7f95548e35e6694c9dccf9dfb2cddaae4ade49dd173f5412eeaf0fd884e48fbc62972daeeab2d17fe2afc4295a85bf5f5459c1cbe368b343ed2e85c65dca793d8edd9d8f51ed33c9ab51d7108046fabed762d56b2b26ac7844a0b983965f66cd272032d4d4b9c16b93672dfde3188854a62ab59a824fe317bc4aacff7f47b1810fa1fcd7f561bb94195c4e2fd4aa23de35feb59cfb9a7554fbdfca5d77a9046ab7e863faca755df0a83c4aa0f4df5b40b838c9468b7c6f2fed52a1796d019f823b3546fedeb7cb97afb6fb9f7c63048fe3b9644fb7e4bf59ff7f72dcd7bbab4cfd18c3020ad577deb552d3d7756d97186f5ae30c8374befb977b5b4f82c5dce8c25d14e427736120a116dd1b5d24654e30e35a881bc30c8d7655ba95757d91d88f84bbbedf7ccf0c7dca1b3b6aae7836af6a09b3e5d59badd6eb7efbaeeb929123a46d780644a1515ed2433bb7b4f02ee8e861a90a8b0ebdcb99f046fae06ee93e0ddfd44928344858d848ed9d68e73dab8af8dd4b7abd85be7feb37aee925aee6718001c0ad55af57dbab22e5d5fc7e9c9b60f0352df9b6c107ecf794fab89d5673dadf9ab575fb5ccc7aacf4ac8430f42e43a41f567fefb4a3a34e74ef7370c62bfacf7ef08ab01e2fa9977fdcccffc123a8b551f979e35045fa7fa4c2474d78e5eafd2aef7c2a1fb577b36af0a7217fff5b1eae31160ce6c5e45675f38743f976ebd9119ee455dded25f156a50d7300601aae4631d141067930da46cfbf5cb2100886850ff864321901cd2ead86301ba7d04e7dc2955aeea41f98876ddf4691d4b1cdc29109e299818b3e9fd7a470acc2ffb08111252db470a4c274a25638dfb70d8146b6053eb4a36bd230d3ed694ccc761f5b43483a21937166160ff107ffaa87e41345272605ee1e2894d37b545d3ce9f53ec9ed1bfce317bea1108e1082d2144b166ec7945084d0881c9cab0727b81d8fad7c81d453bbacf1ed3ce9daa839ddcf832c03881819a4f1b638cf111627d6a8498abb5d6dad7eb3f0757bd2d5e4971f3ced5e72bddd6e25a71abc502e2eee59ca35188f5afc53f2b0984311e4bfc25fe8a6b4f7dfb9cc518e36aadb5d8ce777d643e6d104c1453e020678ec3f85e6bdd6bbd81489fe6b973a1f8565da4e812459728ba4811858ecbe36244093ed0c40d3e300515b3f9930242741cd277a54b148cc5bdf85ad1c70b172f9a4841530fba60b13d0749d4b8cce0c90e888032c5511ed37d098730bfcc7081859625a0488182848b031ca8a80c81556061044e5954a0658b294bac28b67020c45eed790507587629621dc66b65b56793173b4011d50128ae58224517dbee79050a24d4ea61ae75be62d567ba7deb5506ef799dd7755ed7799de761fc1ec6393667cd18638c31d560929b8dbe241b036eab1095b4716dd77d9fce95f4ba2e731ca76fb576eed88f55d2be7dfa515781c8e1ec63bdd27a02c6d87b8cb18731fe4f4f1c54bdffc659c99ac7ccc5c48c31c678b4af03621ef2fb787dacd7cece3929b5737a99c4c6f09c18f76cfcdfe3bb3f07abbda0ada19015b2e3ce632d7536fe397e25f15b1d7307cf39313e62b17677773beff7820f68f79095fa1d33c7658ecb1c97b94f52b375950d2f883fcecb5d973deec3e00dadca57b5d23a55e1ea5a1083b489c8d15a873e30df88429c75f0c569ba5bd5677e8ce3f2a60fa4a36312bae953fa1cc7658ecb1c97bfa494d29c33bef9b9a71c57392e7fce39ffdcf1defb5c49efe69c339733f765ce397339e79cb99c73ce39e79c73b6de07f947df7b1cd2e8535aeb15b182d5ed0df3b6eb73f8e62f7bee7c607605a36a028acc3077ea5b7d1335028610993bf5432dc3dca1794fd78e806634df659ae7ec636d8368c36bdbb14633ce1ce504c204e68efadfa5dca6d10ad09bfe91ff7c5f182431bb1e7d5f28192ded26253edad5c9ae5fe22a48df4d9c2296e42e6787b4ebc7307bdc23764969ae3e20c83453554d7cf5bf557d4aa9382be9b33e6d1ff2aa4516885e34772c2044e3637dd25c16d5ad5f6bb1cd76efbd18638cc523c45c562529299b4d3c420c05c06dfb5f37b30af663db4be5b33f27a535e7ea74ccaed6c7396b940fffb7129318fab182b53089360d693ec230f696288246e6d349b46938e4cd991193fcdc3381bd909f7b18f2088337e66ecc351cea86c21f749c23cead7bdd5a6bc3218e00f9b9bf210c797cb9cc651f0e316e4dfb1ee4864378dfff5644fbe3427fc7e1d0fd3d447f8c56d3319bfb4a77de5dee26ed54f6e99ea1107e3b003cde71d65b39a86fd21c0e09a94aa2275ffd4fc8c30a823e845f78bd2c087aab35945bbb95b31587ac15fa562e183191315971e1d0b81299c42e1c0aab2d89760d87c451ec663774a95d8266f00556e7aeded7623c8a2b2a03855629edecec61e70e8d953aadca89d9da1775cfadea948a6fbf5a3bff6f65ab8f7d254498e6125ca9f9b58699757eede2f3eb53f5a1566836bda311ffa7d9f7bf74d3eaf6622e77de0786aa952833c36ad1b86a5e3637b05849bb238cb9431f67eed09ce93f77cbacd5ca2eeb17bb7e69a34a55524c9db255a65b3477a895aae19ff41fd57f5e433d67a0cee16753e87f184ff1ffdc0b4b1c36fe36be3d402aedb43d3d6d1adca036f23e6a34054ff19fc2fd67bf061b5ebb9b93a7a4d9f493bc6a6688767f4ea7bb8a23cb1b36378a73477fa09eb3d00b690efbf1f4bb2cb3b59e3bf4bb1dfae77d5de7a94a1c361d813efd75b9e3b03777e803b9cc22c1a168fb68b9197cadd74c3b15123a666f3c7ef8089f6dbec618c46a3488028b1f72b0b2450f3af8620b264820210a240c0116c5a88a0bb6d8a00825ba70394116b6272168e07b6261ca8133e5c0a1f8e60cf153e0d1032b56d084920eb4144d49225377024b0ab6bc9def5e7a1e47836ad6449b3372c723e0f6f7e2ab3fffad3a8c6dc7716f3dbf17cc1c25da58db23e0b6ee392882083a1491858e2d620aa4e7f095218aa0b23dc6767707c2e2eed6bdd57a7d7b623981975db678d063bdeebad72e0b67dddddddd6de8bcc684e0957f28f6f21f1d2c27c0a289bf8e8e8ea7492840d8a5ce1019ca971d3cbf178a1074f8628cf19526f9e27b2f0db6c5dcb4ad97b5526df0c2a3286628467c608432c407a088e0080a1213283ce40065890e58881863a493c5e6993db110c10544e2728e97a0e860ad4e96a511f890977240e28ed00326420eb79645136b75b2d476d06442d144a776a509969a124828b082082abb14bd282420624c952e6e70051731906ae21602a51584c0083d08813bce61b02f10b39bb74e0f908e2c3d3a7afce7fd1a2971fd7bf008d43377d9b3a98884bdf7ee3bb65e9cfb5dc27fefb5fbde2c9cfb9760df3cd22ca48e4e4f359242a6878e76467b745419fd2e05a2d192255decb267da544b6875b73744fa9322f1cdb79574c188c90d3c60f284c4040b0fbecc986c289208c196a82e8cc0c46c4e994a92f473ee6169db6c49db839193286c705a193c8295bca3ad8727dbcee91df86410e9c418b56834c5de1f6dad767cd157c838833c883922f74653ee0bc1e17a106188303e21ba6330ce5e2ebf068d449808c3e36b7c97714fba8ce3b8175b53870be2bbb111a7fd5ed5477dfaadea5823d20faa3850cae373d1f0c7e5386eac81d6e857a56f6291079146bcaf8303f0713d882dd604b78395b4ff7dd37f747c7c2bc4128cc1acff0bbf4f7db015ab7864895eebed13a27b46e69311a77d59cf7fef8b7e65b2d3d2e9632db51356ef63d1481445981d5fe3bbec3ee9b2fb4653681597884f91be95a8fa3a205541ad128da6e4baa3bed19479e36b0e9bfea49f97d00012104734d5a2b28081107c7490022e989ce860cb1520b2f0410f628a1044105004610a285b8a80022d9808411519bbe600c40f6c25145a8670c54a1460aeb0220301015f387182289290028a0e44296cb067054430451544cc008b0bac80a0884a4e1822229cd8a2052fb89283168c510db1bb15a4c04e77ff194eeadf121b0b0eaaec96d2bdf75e714f2c453fd8784f2c452458c2f41ec1038e2f26c2b647336badb563792467b14d5d6cb1ed0e336bad8e28b6c23d9bbab862aff6c442c40c76291ec1bfd2724eeb3e270c4fafb57a60c4b9a98fd5074be7fdd2ee4a29c55797dec33afab04c1fc6517b9128b14e6ba641d53ad1b6beb750daf72b3da1ec3e89dd25f74932edbe6ab5739ef7d36aefe7e78ddceebaef46233ba87e4e4fa01e98fbdd637cf1bd5f7a5f725fdaefde352c7b9cc55d18c4ee8bc42fb5991bd324c6b63920b76230df11f155494ace1e71363d3dedd9f4c4d32e5fb5a7e9074e76fdc1aedfe3d446cf2a8ca88000c02001198e04d51f3aabdf42f5994d7c5a5089edd9a44592164cb23082ce9e4d5948b1675316351d7b364571d1dab329aa073ef66c8a3a41940e2c31605450e09619a8988660edd984050f60126caeb8d102dbb3090c531398a4dd24f5f4aa71d1b45833329887a6278aaad252952a36a5304ea2d8d71fadd3a94f5ad63d3397c75943dd36e4ecfbf36dc8e9f604c067c49f6eee3f0e745dda9f250e1b06807dbf679775736ec4bfee394f985e9836379636fb97b75c7911cb3996f3bb793362977e130ec0df8bc88d65697f7676aca1ee5af7576cee2f5756a75d7fdc3b96442dc86c8709e966ddd35dadf03d43211c16763af1c3dd3314827d30c1acfb292405231a70d60752f29ea1109e2998e8f60c85b8971f84c0db33142243e9082c9f981a50f104b8672804860f28706282b04231e2220b0d547b86425c3c406249d46acf5008b5e2082d8a0062cc9859f7538b7b864264aae041114958a2648a7f27b32f10bbeffbc384ee4642612e2ca1b30ec90bde775f83058836f70498b34fc848ee1ed42a4f836117d6c00ff2f003a005a884ecd8c97ad429542300000000000316000018140e884442a12809b34892740714800f74964e58489f0983b1248c6114454108196388218600421031686868a80362c38cf62dfeec04d62ee8ae287b1cdbc2f81cd923d940061804abb7f1c1b1cf24906d237bf60ba5c55c3e83ce4a3f02bb6bc86ee24c7eae5d968b16c837faedcdd339865271366525defc5e92aa367290b9bfefd05127db89c9920ad5a61d4529dec40b8b770628a0c560b0f0d27d3c310221ff1f8d7edcbd7a9532c5d39a7e633ba53424a751852c7387c611827dde102f1d085d422d9e10a5118ee51c719f915e5a41f07148c853268f486f7e1750b5bed7967af9d1b65d874c6727249fdd8be65e7092e32382921307d6a58e957e0211583638ddf8f0f2e80ae111c7f734f0a2c6dcbbb5851144ebb1297722809a22887ce6da9c9407a03c8d8964acb6e89c5021cc27dac8aed7ec51a7d78da4ae0fdd0916d8fb15e0f44013606a65facfda0ca02741c81461456a7e2df002723a5a459e9dcd5e3ca05676587493837abfcce19d1daa7b1173fdd4bdc468bb4cdf891022d70f2d8b8a380e862a071a8157db8b687a4f3b7332bfc352d27d801ef45be0dca2a2aa7711977c5a749991fd38a6af65115be52770cd80048c04be011180f6ebf3d8cdfc3588828cfbc7e44165a0bf4614c5d3567e60f4a9603daa72c03c230fe1093ab4fac6f0ee9393f039e7db881989a85cace016e353787bbe06a3b6e9cf3f7d8d36c2953e9571e4d6da536ebc4531b9723eac97577636e2707d5e0457476b1d2b87736c8773533b979be19b07cb78e501de2a0166e7fde671d2109fb0e6820501bab84e212a5f82cdec0f0c8bdc86157efaa3fa9b8840dc8762b0331a06f1bca4e4f274c3fe1a98329af2b5766e43efaa03f01133fb7a981ad67cca52f89ba0690c41f92473f477e8839c046b0c3f81d709135abb6835f5a54ac54ab749d0044d4262085da65e435336732b857cc2ecac069caabeb11064e910a896b82ee71db72f4fa71007371690be6ffa4bc1d8d2b866fea997a66e4dc0ee2944462c6806fe1d8f726165bd874e3121ed58563c36d4bff601d1df98481ec79c70a5acca35aabab37d3a81fdafb3e6ceb68b5d70e7541cf626a1128e43da2631a335913b8799abc08842da4b7d3bb2e5efa595a92877cf7dc96cc993ba2948c886f2292199038e93ca68b3a09c4561b022d9555185b991a18de2f960a9602d2aee08f9620e5f227a257112dfd8e625eddd855d5f3bd199f47cd953d56017449241d734f70c267261f2ad581374de94f673af7a3dfa20e1bd2e74ed5c58df216083fad72114fd5a4b4719dd1032ed2550dc1b62207d596aa60a0dbb72a8d9f8b39c79fa5d900916c603e9b195e459e329affb05b4bc0d5294d30ff61b3164b35f3d3201d604d1d48c0024211002be333c086f27f658b77400261f7aea9f9917d422b31ef0dc7c3bf36a61d1a4b33e66383b8ac1a80dd96002fdd9256afe2c632b09a10cb0bcf44cb019215c5a73d7e408232e94e08c87987d18fbabc476e9a0914c708cf7a00f9580de2cd88423540d6f0d99f30e4a7617b03a2752c84ea4d80c15c3a9dbdc780fd385d5ac2533a8e482ac81aade70eaa31b6c1de33e9558211866872862ea1a7876b0ef243047b16d9f99843fc26d215e0c4976169e5b50737dbe5f26e05ecac4a031fc9fe73d029a7d831e863517cfc848e22644b050450d9c1eecbaa475ddabf1399668966a2ec8859dbaba78b33ac0c40ec08547dfdd3ad367d48afbc2fbb5f5a58a40afc1000d56354f52f651aa200f4a1c7a0bdd1d1eb7199289244dacf981e07c43411b513c2c52bd586a961d6e8f261ea8382a6312639993febfd80595720b8bf1664987250f771a68d713143d728ce9253438193a76f6d34f8af22adf3f531b943c9d0cddc889e71dcc3f74f1455e7d608c0d794f1d7a7bb2bf429a5ffb730470a8b3502cf211620606b5037d1b6a0bda16f21dd42ec8ed101ba8f69077a0b620ee43d8f4908a20d63c98145687db512a5ea06822084c5387f6e379d407e3f04b8ebf5e7c043ef367ae7d92aba9fc5dd2ca792641376d65e0d33a9dfef451cfbe572c56c2d47269c0ab2a745cb682c653ee450936c354bcfda1cd38371c81beebd8d6dc439800c2287b4dbf86ad0ce58a9ff0532699610ab5f4af65674893a4e515215a1468f26170738a049f98cc367697a15e7b6fde11a46de8c7212a3e4de12ec8192b445cf9bf6802eda55cce25a870ae9cc14b4afc23ca6d84535a29fb41cfa99ac87eb0482f054457ffd28f6a55014a5d2980205b8854df006ec9050ae91dd1d7aa697d1ae513d4e2c4bffbb55ae526c4d50560b67139c69f409988c637e2ff7f83234e3d1c6103a615e97d25d014f8d4de0d663442206ae893a6be9af551643719633095d81822b32b009f49c759880112f151dec780922bb59d2ce1ee246639e35fcff225defbe0e6e9fb82752759e38f7dd84da748607ff0d55b7af66ae8929fc66bd00282904f77855c681d87bde2f6b6d7922e6af1f3513b483c7eb1f61e34d9b8496edf3b00d8bb49b21cc32cb183a46335a41dc26ab7009ef4c8c7d52aa91a08ab8c387b921ab19ac4dd6bdb149b2c8bc6475ce6933863deb316ae5cd42471794690d3ebab46189e933c1d11c9ab8e622197bff48e8a911885095829b183a63547742ca7975653a745bd6c2cc67b36c59c406d74a725a2c5eea33c2dbcf9a1b7a4b665ea868797c46c0c0eb1bdaf96bc1022f6eeeba8d36bc8bfae085ee9c7d1f6a022560e9336298c97ccc5f0b5301690d57d03a3b7343bbd32d083858ecb6342022ab2c4906486a632e679529f34655640301b79963124300adc688b9df7b87f1024513df16dfa42e37c7a51549b512e7ccfcfeb0fec8dc6fbc11dcd7249640ed060852987c74be062d09e52a565fb8476740bf2a32623cdf83849df3f6ca4abbc532eb056f71a06711d8125e00b8ee1ac8318e1c8d9e81629af08a039551d0856d5b026bd449f9c0af48f89853192b691211ed0b0e86fbfecacf92b296626fa57ebfbe2f74c8f17b08b07c4d4b6ae8f6fc5d06b863b5d479cf54026c6623bd208c2d7b92c076514d44a651c272dde0ddd3b05fea70bef4647edbbc96c3600b7dd755f73ce8f406b44b81ed7a1b0ad41e9a0800292858dc00efb53fd8e9a9ef138deafaaba659f6aac9c50d34c142f64fde3455bf96d7e9b5aae01f68f10739451bac338453c2f214150c9ac7affbd5cf215f37f4b6fabfd7b5ce9caf62112f47aff56d7204a903b8ec3e275bf59a54191b5fd049ea21a92787b1ae40289f04448b600211fa930122aa91367ec8f9c1cb93d0ecf54dad9f89593112c8b68d371d59e8c1181166f144a052b174b107a81baabf024e25357d4aef5822b7af6067b7a04ab4facd49878b649993bf6ad6d1ee1971d1a4ac6408bf84a84276ce3b45f16265b6298bf4e8358e9266d593e868c5e5ae314b9c01b0a91f181665c3c1dcde73dd258e0a6606a38620006a874312ea06f58a3f5a664e698442773f1d6ca8769beff242dc706692cd77a2b60f10a22c025c2fd474dd617e70210b1c50b9c4742ce24590d68264ea059e4c30ff0229c0390628c1bf02ecaf5135f36da007992ab68633baa8b965fb8287d6aff254827bcd23785c6e0d017fa5b8db81bf62e3170e9e10abd6e799ea3b76979ebfeebff738582bbfc0b6e73c3392aca85fc7f195158579f4e786645c9fd51e8ac5fb7a4142d77701ab5a80d6da026846efe14e78c19bb4a8abfe8615ca9ae88713d1a13afe3a787d18530db8048b897e51e883525ad3c2b757f963f0c08c7a8c5ab07f1d9d93a10e061432b3f6e209beae18328d2ab9b6202d4861225939792626ae670673a827371a19a3ca9f566d695b2bac512cc49335e3255a5c3ee6d40c9ef93fb0d007a5cbb53f3bf3305a22b8a5249b18b6989ae30bda5310886d8e054c3c5c6807f41fbbea75af30190877fe5f91a8a8e3be2c91f47a4cf06af2441cf0a2edc70ce19ae2cf1ecdd57631d04b48781a4ec5e2a3692f60d593e57e5b168a6dbd673bd289604dba9045b7260e8fb2038caa9e072877059940b26f238ad9a4b5cb6441617bca8dab1518d63c3bff6092c5764c6c9ca648db91d7198734a57573c09461c93ccfeae01afa525b8aa18da4e445a0e53ede97da179d5a6acfd09add130b7d4901d4b1edb2b0e4972eedf85657de743ecf974409efa5f6d67ac657437270f87d403ed81352aae8135bc1e022c6740644c3b4d0f386a5278925ebf80feeef5d42345de430ee847f8f9cb94ff27172ff32cb6479e8df784047b4401238b5fe102324561cfd874884a405df77e5ad847d36cdfb4f73342859ab9dbf4fdf10db988d7ab5f20c06f347c05e6bd98689b6ee98a6bb435d20848dea14dbc7db2c76f5a95ccdca1e48fa3c62120c1334a9d932ee881056e42a97a04f649722940cb9de3b6d993d11498934ca4da12aef8fbb4d2f871a2e8e8e59ce0ad81c0af160e81fbe3ec0134299f076d7b29dcced8869c548054f09cd10084c3f2de9ba34ffbc3ffa33c091a74be55a3a8f81f8dad07afbebe1bf3c83fcb61efbb13987facc88387dc1167941f42b181fdc03e0b923a48b3874ebfd4c7321b6c78a7e7dcf4c70beaaf87e8202206af4b92efb858416f9830a6d8da5f5a8d9e6463866391de5124f8abafed98f32c9f9230d9a13ac82d4af5a7104235a1064ed30d65d100324b1b47ad0954e5431d697f8d2586720e4bcbd816a4ede8844e7aaac43368fdd96c2083e0f1672fa201a606936d866346ccaf9246f900d95b0a3cc74f3918d0e04fe629b3ee75d07872f9d28753ee3d0c71fdb20924c6f5c3d61990c5c85ce18a8824bf76cfd00ebdf8bb616510282289a326ae54de8b4e470478b0c3481eaa16e94c458d99ebde8bfbff7914752891544abd9095065828a23e7bb8f984f571a32e52717ea69596521e3a35445a7fa56e04152eed3ea2386675b21f81194f4563cc7c42868daabe74f0c647ed7f344c32d4840a3ad1b45cc36282183a647745a37fc0a23943ac77c85115397acf5aa33d20688286c3a8fd540c845a17dd7091da272ae6d743f46a519e6d5e48678d5dc93ead0fdfd3fadb911c64e0f9994456a4d1d8728218d3d4db29b727caf7d27bea67178a0143eb6266d19e77891fe411e3ff8aeb566513317c6a30ca1922fad81985e5a7d6e4b9cc6dc824715b8a9217aaa83520af156efbbf0f9491b8fe81aa35d041a0c7e09247c3997be31716b8b3f1d0d8ef593492660a59306ee7f02c1cc560edb0dd437c25cf1529f4c8faef0165e076beb84a017331380bd01313f228b0f7f88b696ee06666cbdbc29ffab4ede910bdc2dc8c86c77b4aa45357362de101eaa86feb72cbb5ae19a4563e647bcd75f4023f93990799b6c9fce225d18887cf5485e550ffb94c1573828690736832e488ed0a5ba7323f4c5453f40d10995f355b430a4901e59a53696331765e45c89e7f6bfaef6e4686bf2ff3d6aeba710b0a5568716c158ef6609f9c07a18565d83306956cb368bcccf3c3c248766e91194cf9f13e2fc8fc79556bef1e388ec78bfa43774efd91b58108597a59f282ce2584728176df95f3e406f124d3cae3abe9ab62f66374c4bed08f3d74b33fca6b45468853ac51b1447726f26ae7028866a9877b9be0897904045bc6a67db952fd0aaa600c9809678468c70080e2cb80d72091bd9fe6fda969f257d41139e0160ba0de178a68f270b68c5ced59d6182d65848e4107c1c854da7d450c5ed416027ae1d7f99edd9e4bd0aa62d552259cdd51528f3a3d2ed75fa9510eeaa8a694782f0dbd1592cae7ba127812070dbc1e2ba2cd48fe2a453598b4f272f3c5fdc887f86ae821c8f7ea7ab8743cbcca28194741fb55062be199ec676678745ceb5409f6df647f493af38f53996227ceb25a9588472fc4ba815220d0bfc8ae68fb39b500848547e14bde8d2bea772bc2a39a8f8e2cd1315f0a7689c530fe944455f9d0be539da22ca44641732b05149cd2804851bd7ee9deeb51274cb72e49f41d6a3e739f4c6686ce672a63547433e59c4c3318ddaaa51cf5df2723bdc33d56186f76dc784304c6b5621dc81da56c21664495b47088bc4bcb59c5dca8c2ef9ec64c9dd3474d023166272f194e76ea9940aa2a165aaa584c147ce7a71e36d37e3bce3f90365b648c6b213d7d49aa8c7ebe91ab3a7d528d2c4c38f4b38a54228dd5a7137dd484038d9e917721de8c425c7d9e1675fa5e58d5679babe66f6a8e54dc8a86c89a3df135439016d39a8c4f6e2a1bbd7ec83d43f43bfafeb221f8a400ee8540ad9176d9211ffffdbf4884a45870be897e6442081493f50d01d286502ca432c21045c554863821234235cd109f025f1e076deaf9ff873cb6522390c8b0c87b9b90e6ec29a5e1f5b8c5352f859907923e457528bc899d2e22a4140b765517ad393aea4983f88b948642792652cb14f4d0d6b8e4ca4902d04405861b4ccd012de4cb95054c6b905125e8459c947a1d6679cb2a5ef8eeae13a4de2164a1cd003c46d28d16b83cc3490144cc676f5de2df75f0e133439a6f2720b88aca82a2fd0ab1d55446b43eaf080d97619aac2ff124595b447e37c487b148170a84cf71db6b04a192dcab81027a8a1d0199e77442042186cf2ddb361e27e8966bef577bae34144184fe610fca8403f38930168035abc0db052f5780c38fb5e8025c65c7679e8b86c173232c6910cc8f4714782c100040baf1ad57d9602b34f87d9166af450112e5430f4a5f6a462cf7205238576083ba70a42cd3c9de8966b7fd3e4c1fc5d505cd1f3935f08849ade84b2ce056620761c35411f1c255039a40a2b702dbfcb2a177240f51507cb9346f9b3a8257f7ade0891118406efb705e6ad07d2d05b154b8f1e1dbb0b36c1f129629d5ac91ee2e11570aec509d3f091d5d68aba187cec3592e6b2fd02b2d40538505bd441bc664df822bc629f85f1d5f0b964850429a0fc90a34d40c5c7a1e17b8d3c2dc7a32029ea162087dcae00d3a077f0bfab547fa6f69f3e0b691e2322bedb61dad989da00c6ded4b620039b338beaf31cecaa1ad44773e6589b94d8e8a6f62c1997857028af74a63d46935f0b86779b3e421448ab8ae3262ecbf53d74a34f781e897e355e929fc532c1154f4133839ab6a8c8cd3601612e6495e60923022b9172d3efd1c4d7b44ff35ee63a46c6702004075c99ba5964fdd74993dd71a94604246c0c3a98e2131ed41240bf1c11d12fe8047593bcd12180a581195dd20b8c4c5b02f2d8161f72fbcf395b38e94da9c46f7fe9f69913992809aa3a745d881f67035a2c9098ee33a888d0f473b19f3f0ed970385fd2e1c83726dda2654fff7ef5252700c9254533666fa626d74732193f51e1449f27caade82b0520766808f290f1e67b4f4e222229f07fecd4cfccdbdaa04a8980c9b4f5751077c6269869ed077264e0cff72bbdcdca6dc7fbffcc4e2c18a25bb29fc74920be0d4be317a6e13c66c344eea2c97ebe11ee5a0ff0056e7d19b9631c3373f82c9911d38761effaee3839e70e4b55962a4d55ed8be5b444c06983aa4be71a5900ebb2bc826cb222f345d29f7b1763759f15b8fb29a7e6f78f3480469e154a7b28cef1c2f95cf84b7dc864b6016a514320b941953f7005654a48b3e13126f0ad07516d744691875363379b3b82fc8103ff2d0cce3e73070b345fa2937411f0c3aebd4941e635f27049d5a88b9e3f6329f7400eb26a99bd8135bafad6345b15fae1359f3af6048468cc151a6e89a1ab3a42429b3720960feebc85ffec0996362acbca3b60eacfca262379b808c26a94a7885785a3e436500a3136c7df8d37c8cae719c53ea5eddb8737b49a6deba1c2d9e0a12763d6247e798ee72475c031b33edbe34c849c15e3aca8b038710d71a429de362a3bedef0318c5e26e3ae9ac898d441e35c01be4fa20c120d748d91f15406ad3f9affe90b38455d384b70a01329d80daac29ee7e38dbd798b07b4667c7e916e1a10225d087100a599177f04dd220fe979a0457fce738d251f84e8f46e3f49b26a0258959029b14136c8a23bc57c36a5851081632aa184ca51e6088f07e5fad92ac9062daec7b5259f7cfcd9b1c25f40fad3545b3c22dd0c877ce914a8b5c3fd38cb1842edb149ea89df6da64112df2038d1d6ccd01d759a357ae0a80bd2c48787d07d85f030fd581f8f69aa8ff9e1cfef03a71e6e2f3b3ac947e96bfa925bc3b5874891f05be9d5d255f1d9e889aa440d9c6ff2ea484b39c83f44d34b996cde512db6e1d8cedfd32d12a086d7419fbd755cee5ae046f8968cc21fe2b87f542ae1859d8f8d22bae5407497e7c224f90b727fbef344f1ea76b53025dbb3701aa2a4dd5c2edd12fc55b4ec3dc16ea30818407c9d3179f7ea7b1603f5918e02fa99b8663be73736d91ef56621140c81f4e3c79611d87a054410eafd30cb8ad2eec45d46c371fee3cf2712860db891646d30ee57504cc70dd3a139ca57b1980813fab68d275a6df41c3064a31ec82bf26f1d6920724f8dc53cb1dcf6642d00d89208009aa89b6461b314417771cb65be52a0cd79646b85eb8904bfc85610f05dcedead7b836a443b856da36d9a0c3a4290936da301d72ad28fb0700b31c766d8d674fd5d2bd03f963021f55e170373e8081778169d8b43b150601028aab6853048f3d71f888aa7f0b632490e1fbe5168d6214c8900ea252b00ae92802608d949d81691fd0b6020c296b4c3057ccecce2fc7666b6d7c4a2850d4f0155f98e47c17557232951338ca8f5252d11b1afded11259c24ea8feb847e94d269222854830447d33a3a9a8e13f34b5bd4e9e608a81d2579650b2f8f5ed42a0f78d4f02fb0bc05334aeffe695c6d1e56af617ec22ec2ec30bc07cac2d25b8943a7521ac3370ab044a735b124a9314ded92f08721fe98120e714eab17fcc832a5b080ed54d68de776df2224298de6800aa62332fc0e4eacb220f04a9fc010418dce02a38bb32fda9e54c137d0fdfd8c5caee9dbea687649dad2a59f7c2f6a7aef82029d183320e6ebadd1fd3b071a391cd75451991bda52fdb5ba8beafb7df7239cc11d95b9e687c425f079944286e4ac377b7e6e9525656c4274b8349421ea3dd9b41b84f2651b866b1b985195000b2f8906a67a3a2790d8727f51316cecfd55ce3531ba89980c9f07270bb2d42c8274584c7f186d1b072d04d586769e0af5533d101aba263593d9ce85287dbfe34e5ec67614d01ae092ebed5f46ff88ebafa131d12aeab7faf20e2838590398fe3c7cd4f5545ccd928d7458ea429d5e0329de387a3c1167b217a16cf49010029c5a313b8d95bd9635621e6f8bf7d78be89606413ed4b01f3967b35cd514cc585e81586f232afc328ebca1487f71ca2698672992bca766e29c4e5d586433381ad9987083b69b1d5948c90c1e6be07b64249ff1b90f55b62dfbb1cff0d7239e98b36843ba8b906b2479762e54d20ad2050363c5b62237a825b1669689496d77a6ea14c196f9d3cdb530a73adb430cb122c9c5dd8931d7a55b16d308b3a6288e715cb1900827ad4658512ef7d07d73a360c68161f98b3d79049f96473c06be5b9096bcea358e636663462bb0d6f427ccec28557c2b5e67f91f11f3f41466f8c42b30d2299ef03fb6b77fbe88dc22c379c4f29e360d43cfa70be8f87bf6e46662fc281efe4cdfaba3f7864c387c479c583a5e3b3211662e88d8a6fab0b3b20017f7558a3a3629095c437cf63a1c455d7e5d0fae5ad6a0ad388f8b6b054044f43269625c330bfb6896f7e35f797c5927b38638527dc4e3b3c7739714bbfac572f4601df68ae3449bbe9a42172a4f436c2690d5db508b7bf67285ff2d178f8ae073ba3574c685fc0a09654f287854003eba4a518b905f374e7c322b4f14ca81e6384f120f0d569ca68d2ca1752e3753d30ca9885b716c01b7a0768b12555441ac78fad7f989fbd8f192de24a8e6058d4447080dea1ca878fbe7922beb78f0bab4daf5afe57dd0142487ca85b93ead51e9cb46f7586c3d623fbf9f63713ad19c006458c0fdababc56a191b42a7f49941048d49bee24d5b78af8ed701f775947b19112bb1bc412afb341e20ecd4790ecb714201d7f1086564a2f608aa3426572457f53b4eb7e4d6120a86e8fdf574749ac5c02d9dce6bcce3a8e4c57ced6bc1fd05458b0b8de479063d330d2d5d149c71fd420168b8227d501715aeda669427ed8e09ba2b2792ccdc14faaa220b8a48b1cb0310109a4126829b56de65a9d3e3654d8206e2f6089c7ba8a2dda76a1e1d0b2f749ba889c584775d5306e98a9083840f3d410806d80c09de758b1790a96548395b79e0b02ebd15d5e383ee83e1070d1cc72390c1550ac4913428bf31e63623391a75a1396eb628e60ce59ae2dcd6e8eb1feee9bd7ea10ca2f1f1e6ccd9617a40bec31710d7196a4ddd8df209dc1328d1280c6bd7f1050cb55303d5f8b318124f3f33981d642b90082bb77b3cda3abbf91916b0413e1e4823d02f7268fa264790a8053140cc259e681c98836bcff75e903501852b822c09db56dff84aa58f579efdf335d58f62d269fda21501c63b74eafcf0b1212086bbc738b9f2dfb05d8240b4935471ce1bc45c50c628133e0afb63afa013bd65b433ec0c8ec594f5b6c5955b83f00c655dc28bf0e9dbc05976a7f2266deac1eb81dd9b5cf7f2e28ae6083122b22715710fa67f1e43d92de2e12895c11f0841910e9b99e19670473e663fdaad5f37899dae5a1332ba15227cc1f277b9a9ab70fc0515cb0fcea742b88384aaa7db371347d8aa814e48a8d97515dd219e45c5205b64eda0a65824366481a983d2645932e16f0a23f3bbd5a89cfbff89396e6cce086a28d816a3cc90ae7b0fc3d9ced11fbe1e51f0bfc5d5622a6f8a68200b72a691bcbd216ec919d79caca09518e00153819ae2900e2a034b74b63106c6ab583598bdafe95209082835f3f753f139a18595f40c10d141c711193127669535d2092478ec8769d54c2e3135e95f46be0fbe8e4a30c1c3923041e9528d491f32ce28f130a8f8641ac1ef91d7ffc5d3693b0f0e58704dd435a9e48947b429eaa4aa4515fd8d96860b224ed6233a8213830a7ef9bf9354ad366b132e4c50f3a1a92c207b0e4407b880b57a0af5fca2189b24193f764a73614cfc8587ad52c08b455fa8a0d3a1dccf35b7ff03dd5cff3448c44e96097d4da6ac4620d6315ace47f844aff0191dde447ca03fc56b8f172de48bfadc42287bfa1b7157d0d4331bb60ca6b03df8fea3f54ef43f577d4f71a3510f13fcd69e41cb493770b78e16c937110e8e51819f57e38c7e8f3e863a749bd350571fb01eb9c4371decc4ed2f379d0664cde91d78c0aca37d916b265f74a420fb073014d1878bd42d13ff5da5eff68afd7d1be50cfa25eeebacd216447a8854d709393f55740d231612df2746ee1afc93661eda0233c636e20257b12a07baf09aa784535e283999907c83a63c211b589e941cd3d302cd0bdb7d8ccab63b7de30d68caf1a129e9421ce892019a4fb863791a433261ce011c99a953771b461d4886eefe2dd7d87ad0cd77d468960f71dadd3e9d31dcc20d83bcc0b02e0c8b9d38db7ed8d9a1aeead5c8811025d91bd3ca418f803ec9c553c06dedea192f1bc8f0ab1af21b12ac32d1ab93cdcd1ebe341b97871be3256190773429134812e0eea4f688e24ce1edb7d22135f3e7ac9e8fdd4e989e553a23fd292f4769397d09eac5907428fea74533ca6d964364ed6ab75198cd05302b2cbd010b60df2b0ac0a941b55a81a05d2458350093369a0d6b0ed5ec9d109751aeb48cf05cc56de57cbcc1fd42fbada819771e1c98864e8f54754e35d33f59372eba328717307b845e61fbd472fe5dc96629c5e44c5a3a36c8bffcef13de450c0fb330a65d9c063223282aa65d331fbf1067c01e020bb861e6552b5086395e214251176cf0d55e6b84ce1979902c0110a9fb2089015abd733b1f8b587071b29176a0fcb87f466bbbae32fb868f6025c8e9c2fd82454ee61885708104b51597546634530074066583d7f337f37b59ff2ec05783b3b9484ab1d626704361dcedcb982160f6a3b978789b48d9a9d7151b1609847d21fc9ef898d53e75eef3f6a3cd6192d101596abb5a4a1b7f2e1a9ded4544f10a73fc034d233e19e039ccbc62f294caeeb7efab74b474f8d55181c36fcfe73aa53502971a0ab4c9599626e088ac63d6abb0eb33f5de106b8becab07927642c5d648057c20884aa054078e9161048c3d99e0167de907677da295a678ea2e7fbcb8f9a75a9587b4b8aadbecc4177ef31f9bb88e9c173bc11214b3ce30bd445bafb91a2e5a0d94eec46e88e8ef6049de6802af043cf975b751db92f9e3945092d60b4386c1b2109ad18b271674f1ef70da95dda50ac597423a3e652d83d69340dc378f148e9220c71c7218c66e941c92f01641227d6bd9ad9b3bcc3b8eb2ab07d4f2bf2e682a71d14b5c9beed475081977d8e88ec9d472e5604c0883e289fe96cab097301bfa00c9e8074264a965dfb1e17e5043700dbf2662e0df8b902aff0b1d029257d9924e0777210a35cd79496482f84f03002094e0e1c28ebe0fe0dab6fcc9943cc9d760c8b5232f09d416a01a11b14d0e43f88aeb84d20471eeeee0f55ed3d5ec3690669cdf95bb21d3143a0ef55892d0e4bf50ada37beffd68c78567c2fd2d03d9904221870502dd5d2ee21a18a2b2d1de3b16704d26aae5b2968602c6747c0a579a2b4e3a35b29f7e6adb90ec4fd88d2a5613c9eb14da1aaf3136e4c9bd3d9cf97a08f9f017f29c35425da4f7db30be9a5bd3e9efcd2f6686ae224190553d7c2b785eefa1e539317c4cbc79e4509cca6be09eff7e9b46c91be6f2acbe70571a944d6b539baae871e53c080024fe186a4c611fcbbd2d0a12e3660ddaaf1ccb2a8c0e029529fac5bd25c0905aa2b0ac12482022d12188615016247800377c403550bde4ea870077258979e0a6a12c950f391555ce2e2bc10241ffbb7bb1668e0d65d270d4d70cc970d4be202d3e9dfd461a64b2fc3577c7866e4d2213b35d252909616f929c84a8774cac8a5405a2ad2a7219516f2a91d59996dc5a26b646307f8ec5a20fb7b55ad955780bb4bfe70331e8cda0adc57d49fb803cc0f08226ed042c90780700f20efb916c4e990fa4ebac10b528b38c0373bc5f81f9cb3548b290f6cb75b7d3235de8e1506033759ef032843e7aca700536268bc31464aed4303c5ffa148f16c61fc77f89612687f5183b92efb422f76023eff7e41daa26b69d61387aff2918bc9aadce26acb1a59da4dfdb3ba353c97d4e5dd3632d68f25b27f5920554e2adcee6dd5c273f2577df9857750d9b714cfc5a26c4ed1e19bb963ee385a9b09552a09983b54e452a8216ee8ff2ea83e07f7516b28703bf3f19400ad4b85f98ee01b83c111469ff42f4e18a42e40801bcef1c9255ccfea23300c0b37fd1e892ca2186b526188f98a53e2cc39cc3ec4892adfbcf31f619adadff1da4e839e4b9c378ed88cfe0d69f19bf969685429676f2e3dbef30612e5b9745822a8533214b1231712a40270710d99b08b83fbf645b29b53592c08edddffb278c89fe80391151116d91fdbff08fa5ce2a768ae7b3bc1b5920a543d65b6f8d02c2695ffb978ba9256a78c92377c8ed9ec70dd1fd6e92b0125a1955729f7462ef303e8bd79f829699c9f25eb0d4fcae83a1a0ed4de4d7ef6dede2a82f6b931c5da9d09c34b5592f03e4a662d107ce27911e4430baeef1d909845d659d4281f3ba26eabc043951f97c478bcea7131998f51be4bd54c4e743e0b1294bf363bdced9d389cdd7bede86bd8e515601a70ab8c72ff3aa5725c7b7dde4906168c4851cc0e27511e6f70278edc1b9197210b944a38c4aca5bda9c60a39def30b6a167148662e04ba5b73cb7381fbcb3b259a85df96f835364f15c91a85b0fa3784c72c27e59496408974f76d6b0df109f3a27fc77fa09ec776244df3aa1b98d33f4aaacaf8a8620869b6b797e43af65ca523bdc649c008d8ff4abf83883b60388a41cf0dacf70ce9e74201e03352a94c1b9d510b213e56c24cc1acd987242ef153a3abaa849165abbb2c469b97bcc9603fe630f0652636566ae4763576ecc053eaa25601975fbce0aeec538647839d5a3bf6cd78ea5ec37cbdd55957440f69bc2edf6ff523b3b9858f9905617d15de61e0a3232a060bc6027c8cd504498da7424ef5d393771f3c75043474ecea4bf5b56ceb8d73ec3242aa130fb54a973e905b555c6a88aeda7faa2619c7425fa39a64f06fbd72d7999abc58b1d1906545740dba912c6fcab9b40d7cf764303ff4309f13d2c7f938d41760cdaa08c0c473f4dd1b5d1abcb047f1100b658d9efc5a8d635af96ab329a03d5a7c0fd185c926f2a1a19461c432dfaebb010a47c753a3d67a374361288d8fe97e061c8066368bdb562f1af686344fa39b9071d9844d624de9ff93e293c0fb3b2ef64a1cb1c8423064a69b6c38a589625a2161a72c4bbd1cbe87d2a8a9ae02913cba600160db18ec286e4bdb15d0a8e19a50150719469f0c8da5276f3ab7e1e83156bc79add8347a99b5d2dc9c7dc1092b35bb8c912351086e28f4cf040373e2228cd6a85580479225ca12f7efbf225dd1a068afb8684b37bb84906a3fb0799666311b01213c3e8bbd17ad4ff719adec5026463ea3d63ef32e78d3378401ea5f210291e5d8e73f2b5e1a411e1a6da6afc9ed994c2d96f6c12b14cb5b4c973249c5529f1049f2040b23a6073fa55820325c6015d77f2751ddaa259d18cb7477c72d8e5b4925ba1832130d503585233c638b3fd5c4c89a770914ed21dccea5273199798adc8163c7eddb02596028d7f68dc19bbce0c1f7d94d61e7959373f853f0b8f84fec5173d9e32ec7ac54054165a445e1341e1f86947cb7f003245743bc77310f85c4218b6bc6ba2a24365b33c6c6c9a9a6f31cf4c15841c8e15a4e1f8415382d78626d9466b804dd787a5d1dafd33cf4d00338fa1fd278f3cd396ceeda161883001cd739ccfa07308453fc2816a1ae14474b42dd8ee9bdd7abf9ae445076d605cae8474335adcc1089d3b5bde5e9d546b456cece76edcb11e202e47d07a63cad38427e7f37c7573f8c1009f61c4b32528b7b7f2b9bde72477fd31f0daaf22da5481270f877aaea41859a09fc8f4bcf59043f39ae6ace91e9178ae03ab25c0dc58970c7f7711fc525c58c08109f0743cd696e04fe9074a7f48393e05c423f219ca3864c536fa2c1819ca0b5a12b970e2b2a30abef9f139ef18fa6338d50a7f25c54fa425b1a7b1be65ff3eb7f5b2d4ec3cce1926a3cb5871a53911323a2dfb00aeb17a46bed06f3bc90d32011c8b6e946824aea87ece2ae471cdc2940941494e5d939dc9fee80789f193f331e4cda9a8a7c0fcd9df4c7615f56746cb7dabc39d7bf609e9285ba0843ef14f170432e9fa87932680639cf98869046d213fd345fda5cc425773a17c02bf8a866fb85361c3ac5a0b32fe70e541faaa97de9431865bf4a8323ff70a2d5ea554dc50c96ae58e4009662718c206eff223046f4b3a586909110288f17f968b0fe6df5aff22d937a06e49694a4adcc041da614f8a65a0f3f60c34a914a6ceb9b55cae040dc09afebf80eb95760e579aff0c646c37b07723ef3eadcfbe64a240850d34e5ef037b84c40aaf51051d4f1650753212fbec42b96692a76c1233194e0bed1fd5447b01121aef92cfa4e20511ceacbee4321ee7df2095323b4b2a43684a25b94aa2441c90247705c749fe9dc849a5c76d35a42839a75a8dadf169cc0ede7230acf54422d28b429b2496d1923cf3d4bbc0fd54da3ac70c3520471ef92dbda7d3c2ef7725c244a3707af58419ce5e3e5e899b49944c5d0f92988607b2c1450c40b2814a0a8c327f875a6275100c30523e4f71f4df06c6132ee32f139e150ce3881409a60bcdc57a9604efda03c84084e007cbdc31262a916d6ce9bfe19d0e2203285d6871614f28e905265c1ca1d4eae62472c9f0f3e97168091143f6dd41d217aca4dbf3753b9110a831137ed2ad00d3706cc0090bd785e43fa6c2ac5bb7723f5befd3d00e9796c4e3665f06e088d8887ece6ab7be3c3cd9cbccf6e3193910c6c6f808dd2ffcbc5aacff7b67b305e2f30bcbc67bb7d8e3cbf43229248b52245b4f0366a01d285a0d92a96a5e599ca29d2cf0c6677a46d9baf950ff29068b9f3aee0614261929ee367ada836a7b89303b8c2f4710d0ade5e0ebdf91626ddb070ffdab17c5cacc528e8702653d52c4d1be96180475e55bd2571ab52fd9501e89eadbb35ff12068e0c60de145b863eca4d231ec1c05065634b6d7bb234c591be57996d414cf3a2dc6e5c2f0b8dc234ce2f197ade6e9d6f9e2d5c9125a9be5fcb59447358a0b005f36168e2557f064f8ae63f1b2f0ec6872e9f5f26ecbf9c81b092b080083eab678250dc734b64d0ae5d0b8d57c0221dbbb5b6bdef9f3c898a841cba8a09148fe833332f7807ff928dde30bc9ae178d69b4a09cf0cd4c187724fd8d733a80d0db613d3e27abe6fccb5ad06e2b037a90f894956169176051409d6965f2316816ed057f69fe2d51e5028aa445b2357c4fa05982dd538bdf8a3061c0383df88c8bb06b50c1f955272df4ce785cde8bf266d7aabfe06d7bdb4a2d26e4cae874035f820126ad91196c4a8ed413edc1907b8b1f7b0dc7ac65e7a679ac60ce8d2033781b34cb98025dbc7985f648265dc432a4baf9025e5a300f64e9c6ef10d6be2a73bf617cc00176299ad461c1e43be22673ef750fb8bcaa2a539539bb107e0307edb98002df8fc87aef1df1c1ded41b849d6b9852f47ff4b4d545bd9d808237200804ea4662c37dd5bff5c5c37ae83d60b401377719c92b32629b3f9a65044d9599b94b1492f439e93caaa4102093f8ca5a92cad3e200309a709e3c4d6020c52e2dc8a32b333fee1ad10b11aa9e5d8b726901b2fe2051a8f0ee1436f65b48111b74ffcf50b55198d139278ba9523be3b4c228c94894c5a22fe994a31148e7a85a43bfca06dabe3073e28db2620702660750d554de5581c8b70fd381896731ae16267ddfc09b628da179ea1d670a7659f0927f75c6fad0a67e21af8aa072958b10c8f9e9e4362dff7f547fcd1699594c5a94254336aed05b6afe24e5058a0e2bd1b252f171fef37236e0aae53deb2ac0bb4b4012f0785e8d8ee9e93a655a539bd7b82ce6719b35977d3f01c02be9080158fe59964f93e5dace4a54becbf22d5ae8de272189f43f85e0817b217023ed20c741a612f09a6b30fccb5a1dac16ec6ca8ad809cfa554cccc75948e54d077e6010585cbbd698ecf1607079a1b8825e8747486a8558632382e019e6f101a8ea8c0006adac6b81d2e609b621bc4b07cb50a71eb4923bf36d830fdc9713481a917af5d8d7f25365b32a8d6c4a1c14d1f6e5f88c3ca94d12b3c44dee3e34f0e0473c468a0475588f692541e2159ec25daad2df3246fe334dbdcb01f47d6476178b18c98bbd9814cc9ea21274b847bf6c175db0ed29176d0671f1821102aa2d58ac01b61e3323c39b7a3d95f081a228ca22ddb0c7602a1380182438cf1997f2050b52c15102c90673ebc4f9281d809e4119914d36930517867f707f38b9d968d980092dd153bdaff9c3b4bd8746a37563b0c340b6872ad40b232128937249284a097a49877cc542f3d2030f6c538986009197da440019d3567b222ee94c72d2942d023f07a45dc497ab8cc22fb3c1f42826cda7b241bd35648a895859b7a9090e792e04ea890ae6214117de01644eceb91087c836c896bf4973c2d8178c4a30018af586f50a03a9e5a1613de64e4b36fde2471c847f95f09d0778253a44dc9545f6125b2ad80c5546fc9263fdefcb482ada2d2cf22f0500b4b53238f2a5b24aeb3d30986897cb554bbecfcaf50207dd3860b5e99cc6265d6803e364961892c040271d38b5949608c35452450256a8a2eedd636c3ef84e982e05155a0782e135c31eba651ab3aa6d6b7ee94a2e2360181e3d8beaa94315c7c65183c48c89209662134730c684323b94727a728b1f575a5da40be1d4681af0d3330f10f45dde1a2acd0f9fb120fb636007fdb2b3b2034c7044e59e82a25bd664004164981d738816b0eef530308c7bcd4ef85cd5c57b4828143581b8939613318816f3a151126362cb99c29fd61e924211b8a80256d19806c2989da632c795a813c08ac7199b0e3e1ae96f23233bf2e335cc704862fb6c2fcfa02449a1e630efc87c12eeaef349a0244b98db62510b4dfb169fa8a3a5fd5952f7de6870bec39e07239eaa4bb82958870fb1198818a730fa9560708b5b05c555f5c9f59657e7843a556dd0328fcd5358af513a3034e66f969edfd5c33717417e195265be52983517d38f9ed022c6bdf3dc4ca93d510fcd8af1db4dbabbe0e0da255224baf887b09b123d8dc8e8afd95f52b9390b531f3b361fba16881205b4c775cf8d20c092fa084ecdca0091fd622eaa659234dfa680aefe6122d8ee448386c31fa22efaf16c1c9854596277965fc4f1612ac0ab950271854cc7f0335ddeacf3e10f7ebbdb52a1f0256896c7508127ed687c72e1e5c8e54d5fb9da63a96039623191aaadda9404d3481bfafafd11700ef91de30f9c65227b2db2b3d96bc71403d859346da0beeda9e8a231021b5e887e1ff6788949546712cbf9918682659166ace627c30ec9edf7adc8e5fb9df42d80960a9fb8b8461d2daa134782a94b4bc7b01afda1b949b655e449ae66052eb3b0237f1ec585f4d65f0ddfcdc35af695e061ff78cb40d4af326107338c190b7fcaebc255795a90a3f3c02476a94a66106209edcd06f543162ae40aab72b89dbf78a8a1d322e3c4f28cdd7f523eccb412d5177065f790cfcd1154a738bca1a2733fbae6bc5a1c52c9881a7931f7657cdd56ca978a24308595891b46a51ba2eb1ab7a2de09bd129cb9900f6cd9c5e1765ce9b12e9d3419fd779589a8a15829599b1eeb159c0880693e6f5a1659b0ddf2c3eac49834e7f0fbbac08789e836422e9249a34e73b4e192d0c2ffb55bb57b2ead2a4a99ea7865f2ec85cdbdc90a7c742322285c70f7e3e515a90696b17b5d53169c85e30a42b6043360c1620a8647ada1f914871c2631a2a4818a071368ce07bbd9bd79708dc72d861f2638da1ce5c578b7564bfbc02844f2699bb798dce4dfc2227932496967923dc8e591473cd10fadf67eca862cfc818f2df8689905da649a17fab023ea4b367f15b46caa24c62bbd3f0c20a28aeddbe2fcaeef2bdec528065b4136a2f45f5995744e03f7e8bf2ba1e86e4d32622834fe1be5977aba105793d2781e832bbf819dc26cf2c2b880cace60f77aa06a49c8c7255bc3b10e19d7d551c4d0f37830869588220e976879b2ea4470794eb3d23ac4f1a6aee94aaffa9e839519d36c5b615d179804cca7692e815cbfc6043463fb3d823091121ab62195cd303d3495523816408eaeb74c6f9bed99404e1ee6555b048169542530aa18e56e5778764cf637621ecd6dab41eac6414dc28a0ba950911695d630ac033403b0282c18f1265284444984d8844fe9ed881fda4d6e0882113b0d678f095b79c7d95c90fda637b3142cded6e306331a52713ee5e240dfbcfed4f90d43af6fbd1ab881c02234d05fbb0ba4fc8a435f1b89a489421b1bccd8c7cc5bc2404b53edaa59a948e6e113401114f1ee3b4e6b8203e1ddcae163e997465b8291fb933bda52eade31556f3a92a19a75efbcff66bcc4477e0ea0ac531120aca5311741ae27c7b308b7ec0fca03e3d9546003d9dda5bd0083128629d4373259dd32422df8142c6508ef50f8c95312746a8292510e79cc9224a3c28c1fe1b464d8f2a7d4fea8b3e0e518a5ca178fb8dcc443372a1def353df5a8e9e92c122c41de821f373cbed9048add243b78f1d9131e40f6fded28ff0c96a8f7cd9133ac3d1330ad52adf2bc710aceadfa4345682dd0c217fe191cb11e59391b7c339909eec2535a30b1894fd788c8ab6498a63f9e60f2ea9f96eb89fc55ca081dbbf97c51a3bae91a6762378c75f30b709ffe53caf2694b26ac225f32ae805681de17dc64cfe32e5e336ba7ef03538e798f48ce5be2a3d6e642f0f7377668d8fc13a57177722df92bde806a96075d9c8202420d29f1266658c5dbd0bbd0b742236dc75a812837084292792559988501ae79033f2e176398fd4214ee4761a033e268db64217f8e51e80974688d967f2c599278334cb9a48eb80eb744d178dcbefce69222261913061859439975ff3b4dca61d7998c5f8ebd49e9f6c72769b0a5b8f936e0041a9024fc6a9d7912927eaedd91ca0947cb8a349caa8084363482341d224f7ac32446cdba8c8761025948998721697f2580c52d73b9ac6d4453b756adb319153b78f89f9d0dae5418624fcfa9d9848a3fa10646da88e9aabdf86d3f78fcfa9467de7d5946fc89dbe0d3f77453bb9537539bd21dc614559571e7fdd9a1719a7aa81e2c04420ba31c7583446ba75dddcd4c177ff6a77d85f61125e226ddb606742d45d0a8a94416ddaace01d65afdabe38c5db2d49853d9b3bbf7d241a7355b20877e819c035d66b8526de9c59226565559d432c3ca459872347e4b386ac7747bbb11af0da648b06cef1a2d84f7fe6856f3420c89f03b674c64744b88c8c53ef9e0ed9a1eea1ac3b3bf3e9d93ad5e506664466fa7a2c9c8170d95eab0309d9ad8d8e316cc97224875aab604e95cbcd00f91e19a71ad7a830da44c31381e229107a75103aeb33ec0435049520361e095df30d562642e3c09c10d4db89da5df78b4d6eb1ad975c0b0e7195acd3c110123b587583a245a75980e37521a071e923e354e6f2401a8364c191dbf351f14f7cccce93716ab75728d4c7621853c9e099e6ec76f7aaea16cb6706ac754aab577855c28143159d7df7236f5447a824dd2265495b094509abe423493025354fd0bccaa500d2d9ac21d1447d277a743fd9d427ea492aa9ac62a5ddaab730f1c21971fb040cd9b51731e97811cde6f668f03c8146f9c40f0ed7dd1133370d7164fd5435ff9ee255f9aeeb2af4051bed2baa541d78566ec1909270b3fdc0092a30957dcc6aa54a8392e9ff56370a24527d99dd54f3737722f7de20c256d258ba138a21e44624d3570617d1c287aecdc4446ddb50bb4704cef8b19de2ec6c0c278b4dbb52dd88e45c2fcfa85acd32c1c0859fb57d9e6574c1611b516990f000575fb9f10bb11e32687c25e6a404f9b97cc2839c9d52c057768d515635bba34de96dd1b276d63b22d23a0365ad112edb7a16f65b13448ceb847e9da6719e013f1ded7c7bc771de235fc1ee2f604db305aa74146a500dbcd10d1b8d56cfc9a6d74182bc8e889d8c50cae717186601d2ea1f33998a024fa4d9489aada9398a043f44f14c36e16c992f52c1120a044fc90193cd5b7edc2fad087d3010542bac273ea0e73dd5092c270c12a0b85b270a6d87a0a2d427ee0e241fea0f514e2f0c36c50917577cf7970e6b2d0e3d0454721a4f55d82b9a48382e699cac80c9827b45be9141b4ca831e89df1415b10af77afe6494a24178a31459c9bae807387af0a27152348b1199a69d91a139ac377b20b83e88bce6f51b5a17cf643827855b0c82c57c7a8599496244d0a728b42a690eb29f889c3a7f562bcd0583bedabe50a8941c5d82e547c8cf59d5cdd3431a5bb94364d2aca72a2fef89888d535410ef69bcb41dd9805cfe817aa4cbd9115e9d84f05c5a9de85c4a7824632a01f625a0110a1e347072750d9654181b2622b0a3ea4f983b8f4e146f283e898c2839dfcbe4235a629c7b66d4c519e10da8ab2e9d74641b9984687289d24b2444bd052d79329ac393889446d8f45203ca80909d8693c1bf96241788c87de883d429618708b200d8912bb2fa3a083b0486a61591c91d527dbe49406aa2232fb838559142c800c20a036b4705d0e2496830f2c4af5c1cb1cbd3a31c28d0cb3244c96040ea3230c87696a6d0bed842482ca42f4fbf99374676d26eb06fb341c46984395e63289e81f3871cd29146213ea65d0c82477a86c3cb178a2a33d26e172b826aa26f69818b65b0d3567eaee0ed907055ff522e29241f015b8fda57c8a8b24c9c1ef281c01097b27196f13a51a03fdc28198139ddbf0be0c732b2f1dfb041c496565e43508ee919a2d826e22cc82b21a9b27b91296a746b157a1c81c82b172eec04ff681d16061d19942a06c708442051ca825001e2e3f8ee40002f254d4500df0c44e9eb65dc1fd9163a8e46a622865eb95c2cad81ed623a1cd833da7bb7ec12db3b8e1dc901e884e997cf495cdec21a156baadd4f1ac7f9dac5ca984461aa5ebe333e56224d4802d597e360e8471e4e1bd39272b3a963a2733aef0444fd4d053ae9bd731c9f8e53857e0dc3189e67afccda9e6316ed98a9fa26f260e2a0d46861a0273cd37b42f11a0b6c22d4eb5663988819ceb1f0af5eb2cca374cc9eeb3f1feaf11e9f45fa983ecec0ac1c070df30e0924fbebe558abc6911131873d385803d7c42d8dd5a5c4a9babbb40581177238fb220a8963d6aa9e006eca23f23a7847523598122d60099c5737be8574ac48c21aa2bb964fe0ed7dbfe9664435398ddfb64f662819258c8956c89a0b6ec2d2f7d2e0fbd3aaacf7f488e233e736e0863cddcc036178f1e801e96935bc9e02c76eeefb3d3851b256eff648869dcf1959071c40e43be7db4649740ca43c977d6f248d756a2dfdb8746c12448b1753597f9ce0ff2250459996a0124ac3429f7f6b87a64c11e6e7b580ab7be78431725888b4cea81ead80c2f96005f7debde973ecb033ec2bb683928e95aaba3d06a8db8a0da2c98a88d1036d198fda248a84a70d50e7fd0703b338d9e26c595540c7a0e70eaac92b830f13ea428478f0916c83577588f9cf5ee8e5f3b1b0bdf951710038be2dfa9a7b0242f20a831566200b79bac1511d2aaea200124a43ea0118fe9b84d7782c1bd505617c6d26743f9a71819ed224028e071dbe103281626fa19272a48cf42e079639044c0749060cd2f1e5b32892916c633fa0825074d4a403e773817d01a7d6f0be6324930c8883fad705160b10bfaa054468b10fe9898090889cf9394a9d1e7a9a331a1c1bf27e7491444b6657447fc5561b116d160ddd388e71f146d8acc235dea8f47264abecb461110814e8719ba349909546cc1e35bfd2a1989d080ab77bd67c0048f03678f348585eab157dbaa1e2ae7214bc157a839e931ae9119864bf0c63405497047c511b215fbefaa74273c7dac395e8b627e8d1efdb9fef0d39202854f66bf7e58d473289cf4b27e040bc2a830b5597254afe07f072859756e15430eaadc1c55ff2cdc826163907925532b9f1db00b4b205c115524dcc20e127c8d640bd5f355b53431003351063df1aac7ff49f1932109deceae0989295c28fdc0decae5c301288ebcc52ac9584d01b508875f7eb04b7d423760c8b640d03ece154de6b8c64a687caa63707d8befcf7c6d5defe968c49d249594078204a0c855cdf8bd0685d701c17ab96e44d078391805df8e63dba3de784c7b859394f9ec34c2471094dfa5309e2314d540e520d95488ca6445356b9f1e1d1d39be0a712c105f3568125116e539022595dd9d12b2329e9ba877808a90c945a7ce416ab2c7b76a995477816668b2d7902311e8226b776343ab2e687107c3777f3cbf1f1c82b650ce3e41f50e5f1182fb23ace1dc4fecf61252ed0f6fe9a00b1fc9a3126bddb1c14ec46cc449441a46c208f491052c21bfa5d6b794cbdfd11bf5f816a604a8998df19d9802b5045202a8f62f27b25e3d800dd0a88e0ba98e7c3ccc5f2e09983fbbcf0c831411dc88a20d222283e39b29af692a107052f40441a0a557a2814eacbc391f08bed2850941efc3e97a61ff07d13342bff85c787b6eb52f6335f2404e434aa53e3220b6648b7ec38bad5c14866a6cb9149e35f5ccd5bf3387760f45a2c795311769ded696e8a5bb02801d32255be65050cfa1739bad5277033ad77031bddfe100826badaefeea906da54a3c734df1548219ae0b4a1610c534099bd4aa47f751a990ffa0f519a24296137c27b718a0b344f01af0a2dddbfe2774476855b3c9cc46b39494fff999fd68a9aff30b457df39637f94c6de9b6ce32127b903839b116dd3f7507703760ca4dc3341d679255eaa9abc4a98a4689e0bb35e61567b711202fa9e2d8fa9ac67567b89dc2eb3cbdcf411307e8c8a052da249df1394b608c3ece6abf507a2b05d09f95df0854f7c7fa0b949deb642de419b86cd6ed8fd1516d1248812d26c2f64ab1168b6d7444361fff5d82434f59a8a68f2b5432ecdbe7c288f809a114d96bf5cb6257877577cc207df3f196cd47612d104331646558b7374aba217a48968b2147a08cda08e48928826b9150f032f72f1c37444939f041ec16c91b0a3c72cf0fdd2ac22fc0f428868c2dfcf61e4e6c1f2832857ae8474d7f8c0a7f1e1e2c74baf41b77db1f28a683277a7e1e64ae5d39e2ffcd75b652847878868a27fe3d958de5a96a7db992c5f83d4642c8e1607784b7df895f3d46b90099c7a344b8b4fbe3ae7974e13b753dd7f388968a2cbdb3e5d95310e949cd6f739114d5a2366627aab649b7bbaaff6403c27248d15e696ed417010606a584493d29b0f8dc51dea4a07024e78344a153ea2c9f131fe9c3025aa4cd11e1dd51f9cd48897971d9e5d4416d04890229a1cda9b64c71d04c42f839ecd8d1c0002269a1a859026f6f3c80c413f38afeb20b6799930d5034a59c8e371655723d60092b4ace37b355f30d9f9d6436cd6a6079a64b5d421283682583686a1443082f2a2253ddf0bd501cb915e62acc4322bc6697361492c3a9f88bb61ada2a19720e6d14b56f29b4204da9f0e5ae41591bd9e7e81a2527918c2bda5b0d6ec98bc3eb359a9e5e844acd221f1241e5b8e59791420d6001f9ad465ddaa8da8e2d72dfd8af31199f6793cbdbcec38780e53b296fa2545db920168617cf60868b2f9b9cfa9a5a15733d128c6a6dd3d99eb090f5e68a0091f81846a7ca101e0a63be810a1fa9f7dc6b645c69e1ad0056efc1b7000ab1e10454a5c8bdf1dfbed9c617efccb09b4d28b322d0449eb21501f788c961e9727c2f6ab2fb6f16d7351f3ec86bb1cace0f047ecba8a1616f5d2657d49f4abff41033ef530e615ebbf1cb258abd3d3205b564969d73e84736792e0a5a6f44e15cba5fa8e2d5c8a70dd436c7e10c61119666035cacc1582732d3383fe388f0bbec682519d0038580f5ca7cf2f78fb96b7a4ca525707a631a02b2a20f408116e8f53f603b499e7e021a18f71bd2569a40cdf80a47370836b1b0dc8e02791145c6dab58caf763a3236d0b04537f410905052525113d5e52118a8a3914e6dc505b08a47256b5751b6da974f28b3b7f4b7525be0fa19ba69aca909147d335bd27dca396f1e24506e767644b6259b3143075805ea779e6bd4444a3a045bc23065d581e41b85e2f0e11e8fcb3d697a8cc70557f313f882c177d521c0ce4f283d723af1a5c53345cdcbe47658f6d619fe8722ee1095138ead5df9bad1b3cd00196a65ed03e663118ee7b64c1100805836301517608602c0263a471bf0612e612f7242c1332a8eab38882068e2ca69c0ccc6c0d58104c5a85b87e069b8cf6cd9520df8716672b322082745eadaca75be8483eb61bda765580e277a584c61b15a795f75aba210aaee217ffe7138428edb189028841540c778e07d3e9fbaee1617db04dc009f1d2fe2d7a04d9f4309bff3fe7d37479f3f17eea1ce754742dc378bb4d881a6ca93b2e7b8f5db2ea427e1693937c3a92e434f299f548ecd758188698c3ac2f43c501ee0db0843864973214bb036b8ac5afeb046010138c9d18e820eb3d6c23a2a271dd08c7bb9c4db4eaf20cc14a1856d6712b11a2fd342728de1eb4b2efbed2526c7bc2e62288ccd328cee7b71c559a1e2574ad02fc309fa377bfa5905e8cd32992757deb0dbc62fe46297eb04e54f3de95c9efa10c7fbd80852982b5b050990661e80b1abb6a2819f9d6bbcdc011fe6a41b1d08df1908d6e3f9056fee0419a792f1dd0a4fb83d1332a3752a9b0a5fecb061387df7d038898d04397783534ada24e34c9bcaef81269f8f1beeae702689b88703711e0dc55d5a8db42e590c84fc5481f8334bc068558e6975474467ccc8cfcfd6a146f66e2481b09375fb0783bce1ebe7caada3e2315919a23b2d4b2437a9f8f57e271f56e0f4aa144f696192f657fee8d47ef321a81ef06873772fef8f6212791823bdf32b04ed987dcb46cd252c36cd256bfcf9e7349438236cd319c36f68151dbd309559bd391585be83cae2d7dfad7d67eced8c63bb9d9a6b1481f446e64508166d7b8d97852080b1bdcec4d2f6dc339ffe528c9ef627acca716ba2d1dd8dbcf374f9c9fc69068635279e476055680872785fcaab94392d9c450f0750692dd6599b747ff8f11eff510f9b673769091cb86d5875ab21d72786f520e26cd2315c85cdf66a9e26f5ded05b2606929a414ec2f368f10e6cc95716619732c662ca52a0bc27155c98fe031dd991578a3df3f589e2c9a875ac4aa145ea4a24b05087fcb5626fdc24517864fbd64e9e2b80a74eb575a89e69d1f5143262ed14897e946d460b124810a55f878fdb46a97e3d8d116477a49030d117bf40704b903b474988c3475a64233b66d3f5e4adfae62072047cdd26fab2608c548fdf86892253e500cf29b760c2acc9c98eded37cf24c66908376845401ed451842c350f2dff9cb6aefdaef992701939516e805696683ed7a8eeef4b7f9b91beb339d60e428361830c2643f8525b9902213b538682ab0ce83a297f926ccc9580f7e08a155dc0131d96d3252160a253aa67c62a2afb23f3eebcf95b523257b8ad4b7c4f1b9388a0ffba7b5c0ff1ac07403eee617e89a95386e48505628428e96026ef19cdc78ce089ba8ce8cbb5a1dea8f86dcc32d96e585b52b455467280c3756f33b85306ec39a79366e951af5c256afc992707d458c0e4cc24a6701b04eecb0d6b662627464ab81343ffcc49b5a3ece95bd4546eb92b20e558cc36ae88bf2109fc7bf0dbcd9bff510545b338265638afa2a0f31086af9716cb8c38a71a94c7107972f53928a30c46f9a9e079cbef87da3073604e6f4e4c47c7a064f018ab43af7b992fe09f9582e7565790ea0a75219009df86eaae283a154daf79cac64c89585b17ce84e075a631924061611c9a672be4b2af85cf7677a2c95bbbe773d7e377e831576e54830f10fca9043e8644410f561048cbb83902203361621233899982558d0078a3bc5dbc01fff27d3968842b3da19d4052bcdb236aa265266b8bc88e2ddc21bac91288879047a0b7e46b7ca2e865098ba4d76ea015a5ef577e9e186d64bdb4b48994294c10d40ff50d6f7a2476c712f94e29254d502a232cdf7b0a55dffbaa6965c378ab1f37393f2c110ecc7123c23a1aed709e0d63c328e2478e25f280b08e463b637dd3e9b5376289a05ee3401ba60241ad4e279e0eec0c095381540bc604d62b401bc6f4ad6654364c15136a5ea0423703b4a62040ffe14646174384e643d524e1d5a4421d4a8446be868f54844734cfd53c4d2accf135b526c7ca084baac60b6bcadb469ad53646abde6a884a95212a552c11eb9c9744c879db980ac45b79354884ddd7d1c8d7204195b0b64a4b24f534affd19db4a96c8cc36a60209373234349a03a1e5299ad5e64605c2a5386f1b83856734e25e6319bb37e2b141ad8c768c6e4c36dfca28f4beb09ae0004110959a41c3076e0a13b081d9401b13d0bad82eb68c38dcddcbc0a07ef100a8698e05e85e6b7d859b11a311aa3201d66ab5cd3dd4e77d4588a0d6fa99883043d334d389cb07388e3b814374c0f33c0f4409b10193c96442a582280304c1d40c1063a452a9d40c8dffa04618751333e382042860240a758c46dfe8262882662685024fa6cfebb84db3aa6dd3b41a80fe55e3362ee4a2d6ca753e7814d034adf3348d0a2a388ee3bccf468d072cf1bc2f65d25060c950c3091316b6da2de0e864a061835aad16021a3170d7d15ad0c3c6c3383a1967903112851b0246a39b33c4d800acd5dd5df5fdf8a6858c14607103b00e119eea1061d0902df26938d6ddf037bed7b63636326ea3b88eadaaa02e5a91212d3b26378c424dc7dbafdf79a01682e6a56ec69d51b3afb9d1a9bcad0d7b03c4aa6e59552e5db422415f68935a19fd832ba39b9b9d711b5357b8b2f2b6311548ad5a0d97d0c84110c57b1c4918467c1056234b3c873d89015694456956d3ea157505d7d1aacd68147aa10583b4223445665e33bd6ba94fc3f94e0fae8caa17e3e9dd823fa3728b03ae8c2a16e3c97b5baf005381d8556b15a4e168a69591a7316a1d8f2d7225b6b4b4b4e4c3c3fbd8307505fbda0fb9b2fac25420f6ad689dfd1a2242a315c410f1ecafe03d3e6aaf1511ae9c8cc97669189da8cd8ab160ea15368c182be68bd0863972d8d7aa166edb97834b35f13147cd6fa81c3c3e844740ca870c3c3e841fe2b1aaf9107e68c7aae675fcf7bdfd1eac391efcbeea79b6eb348edbb68dd3b4ceda91cb91e3ebc8755fd3bdb53735df3dcdca5d47fb1aaa524ff348349f519d3c636ab58da9402a1315136dfcfea46252c7ef4daad075b4f75421a83eed73d8b0d058ae07454538200b2322f0041a60a6e87630e1036cb060872c44906185ca053c80400f2e40060562b0e980258a2e3cb0e4050db87859d2c2071e3840a412e4e08c2f46b00232b4cc5a004607c618e38305a61023031a9625e26001103de420881a2c6d59d050820728c8e2800c1ce1830c14f1a5861f8a98401933b8308202f60d2c50f4000a3374d0800290f862dfc0b24515330023c413646c9146189fd7719b666d0e46e7388ee3b80d023c285102279608a2054de8605bb26308c106983252588102387a76b0012eb088a3054790a0023888030e295cf00302c8b8020540b82560a30a2338e0c41309d0e0a85a9a5040067858c0103df868ef2ea6ab4008c6e73cd7ba0b18c1438610dd057c20030eb0eb3a2c4970918006f460812c50a002313ed82e3081af3c088a03cc0f4c3082207440089fade3b80b7411c3fb620dd4a7f9b7bdf7de7f71c669d3e1fde03c8d2c2cc0c01716f8400b996ddbb66de3b42a38ce3f4d4c17361ce0c50721de084110ea124558c1003576e0a287d04647a863dbb6d7c8f81db66dfbfff10fe8a28d2f6264c0c40d903881a7755dd775a90a70d1be0dac9ff6d950c6160fa081820e84890110524058b2c1113288a20c0bc008c2dbb6cfe3b8ee8b2e5027208288534ac3518527088db66ee4346e749daa1ab9ed67dcd78cdbb66d1ba7a3d6d5576be5b1aa0a8eb51bb7d754db58b7144650b3d656d7c019fb2bfb7d268f89aa699aa62551022fb40975fc20f3832b4664e08c2e6ae4a00c0f3e20059cc08b133071c40d2c1046f341b6428d2ab8b031051c4b3ef82101111c18e30499312820c6d4450e8c10a1ebdce8c1468d1cdae7f5f0b82eb4e9820c23787491816d87b60037c608820f4300b1c5082e3431392858a2880544c005327040175b00a1a38b298408814b8e2e7e10a2260e20421d2480c60d1f66c29c91442acc05904085b1a208308c97214e617e40c2c4051c417c5cd86008afe3b880810f1d171d5882e3a20b22362e18a0008d8b0474b15d1082d8d28387911b9d0c2c1ae0838be9035305b76ddb6642853fd8a2013518a0003014500232c004a1f560dcb6cde3c081112ef08103501c61019f8d041b6ddbb66dfb6143c60f3010d8e1c70f304d80e0872d3f36b0810902880907b491011f7ca000161f1a360093d8020a06b411831f5e500608a9323e27c8c2075facb1021d24008d18745dd7755db7850ab4d3b76da181cfe4adbe1065d2baaeeb3a8ddbe2029f876509073fc040105370608c32baaeebba8edb6cbcd1c93863031508b528b375db0d1726005cc785c7691a05bcedb3093f940ab270400b40f0441438f882029fc60311bc48408c0a6c80012e9e50838a4ef37850e3019dfd6cc20fb545145ec7d96824dc8c316a5ace8f1c359cf0c1c7e8646ce1c39802c268f42306689420c7a669ff7961d4689f4df8a1c2211a37040d2cbe6ed3ac0dc76960701cc7713c373b395ace102fb421da0d1a5f3c8ebbb1d9b137393c9e8786151cc7719c9121466eb42243d068c0c87143b89b214378bed168c8cc0b76b68f4383094dd3b4bff9f1680421c487060f3d78706ce972f00317ce607b1668377f060a38ceebfcdb344dd3344d0b354e5b693ab41f5da7699aa6699ad6dd9c11022daffdff8f6e34fa1d1b685968a66efb000f75ab261863cba66ddbb679f146c771dcc6719b0ecfe3388ee3388ef33832bcb8c1c8ede0c3711cc7e9308d4661a7c31893d675ddb66d5f10b494b9001b3ad8020409d2e0c14646db010076f0828d194c400d0a40e101c1c1152ed0800e48c0a1c40c3a1dccf0c6195f2891041a548ce0b58ffb6de7e67f0cf9c1174b64e982030ac081c406fe8d1ca408021633f800125f80b16962a0c6ee3f54e72131d37576ecbaedd4c69836b438c109102046d771a19d60b3200e25c0f0a0840312d0fdcecae84b6387b1ebfeebbaaed361b39d2186ddb44ddba2d801056a5440076584e884183b2dbe9872e08037c2a8c005596230050ab8ed8788303a195a00317ea393a185169b0a8046751c8dc06a6db50fbadbcd47df34edab5ab5a356ab8f208dd151c7fdacfb9a6d69697b1fb5940f5f0575e18eba321261d442ad568efbcaad6c7c30518d3e808cb8d18d0230ba511ddd1bbdd5a6aae3575575ccc162d9ac0706e83d08facf09e8b4faac67b4c3d5caa13ce7f93ecf034f2088f2543f1e9007a6521b6a66c6fbfef43429a0ef04943a791e8da79d52decac7e951284f3593f27e3c8fc6c686e6a77e6f643a3d48636968686868aa7f33a79fd4f79980527f7a4ff5935a9dc0d3e9bdd3077a1e2af5f38d566a1c5e78fac21450ea7b552af5d3d1fccc23a0e6c3f7940f19687ee687866ac299d40f575337cfa4e374dab1034455140a854285a023857a5398fad1c0d492d383a91d6138737a7086878d0d8f991518d6300cc3d0ed3773fa1fd39f4e3b52a84fa552a9936965a5c6815a3101c7d3ca5de7c7d6a068524b503c524339523fde88fa1f1f4fdf23d5c4c7935158e3187ba4a4d0fccc833435d07c3f75443da8a3ead0a143870eb7df0c6a47eae7f4a8f75475e4914a7d4dea8432a1de3bad988023ea533f750477a03cd5cfe94fde2aa5e3f374a456a895bb0eb832addc75be9551f7d6c7f63f1ab7adfe647338a1756fdad19a745aa7753c39befbaf43753ff38563c8ad8c7e657433723be38e96433546c861e1c2b305e1c612318dfe5a911d3dfe8dc251cc68390e7060b832ec0d0f15b7821e2a0e0d8e034e841b016706b7024e055c0abc07c59d8053833381f7a4e13d68780ff79623c39dc19580230137024e045c083833c8706c18713018ed736bd8233cde3e58a3329d40546a8686fb3832dcaad6e40861070fd30944a566686a54a61388ead1a3c77f9e0a895b49d16315f22841041e5b13a10db2c6f87d3200b90739d5879f366eefbe69bf79dc36c39ddef40848f9183a99863eef97e89f9f6edcbaeefbaae7d9aed3386edb364ed33a3b1a7d461f8a537151847534fa4c4639f5e6c6def86bdf8d566a1c9daa1b3b26b4325fc46ce37682cfeb6a1bdc56b7d7bc8c5b2d53c7d15575acf594c609c5bd11ea9ba96f3731333ef8b8256e8bb781e9d668a30d4eebb25931b60c4b66ac61190f6b991189f501e4cffd8fbbbbbba66926ee41ce56ffacfd3ea0ed755826dbcfb7712b95eb58a971fc705846cffd339d4e27d0643a7da91f1e1e0dc774e2401b1b70c8eb3894c9c4712720fb1cc86ddbc6d98d33a57eac3b784ad9b72a295e4585212a25c5fb0e951af2569f86a3e1a4524d7ce4fc9bd980b8df524c4026a0fe01c70d1cb995f6a99f3afe8029ff52dc6a8fdb2afc01f41f4660e5f13b4c303ad8450c04636fac8706150dc75a222fb00b27729486a6f2c63ac568df2e51d18a8060341c0b9671e444400e8060d2d8a1eac0e0a1eab6701cfb20079c485701bf29c312e9aeb037160ceff9a2b340e745d785f784e9b8f01e30dd16de03462be25a745974587415e8283001ef09df7e7785f7d43c08260ca36e8cd17e27c61ed9f1964ccd32daf7bae5eb810f7e30da379d5070c4a1e950c9425021e5502595a95159711dfba12ad51bc5e3411e7f32f1f8cfeb78ac942a026a0f4a1ab78a75231aa3d18905535c319ed6b00f088d6a97d116c9b1b1214334cd6a9a75323ca0192158d00d6e7b7053b9fd2d0cbbe77eebb65aed6ff6df6afa071cb5ff01479b83c5a259db0468ddc8464a35996cf56fe6731dd7713bdab7355fc26d34aab1a1ebb88eebb040db4a657368353f29a0baaaaee33a5bea27b49667fca1e97878349ccee8fb99b116e5a39762b2c3da9d1d53ca4ad84558b555fd4ef664b7d55ba9718cddaafe2a8ef105a05686ca7b3cf04fe1674a81cfc3e7a3a58a34dd21f7db66f43e7dd4d7d0db7c4c3ade732aeb3ade579545fa3cb5e5183fd5ab00e0287811c78161b4de73deffe8af1a3d4d158e9f6aeb3c93cfe7037a2850e5f9801f0a54753e9c0f784281aacd070451a04af301511eea34a3634ca95cc3a9a119add5617148186b2ad47cac0f0856b7e0363333a654a00f4ae53e27958d8663356d04adb6cd6c1fdaa0c68e03bdad0b61fcac0704d047132cb55a8b426ddcca7e95c9c6fd70d56219391ff58f3a1f3278dffd90e9bff756a6d5f7ad3e2df5c369dba869da1686dfb7a57e341f43de772f45c3e1b4df34ed37cd81b41fed392df563474dd3ba94a6d2543f3e722b1fdb1f6940f6b7d7543ff699f8f8f12fa531f9fc34725fc76dc3b2d91312d65a6badbd41b52bc623bb5aa1ec4dfda25d81baa28c25c2637420d8229d18d780187dc6dd48a3a2cce723a48162c26fecdb104175b137df89d18a7c3956465f082b31dfd789d9198d3a3144822c134e44482bd26dd170ec7f5f18dad8fc4e972f424e041501bfb12ad3138e637f87caa484e3d84745c089988cf09b2f9688898bbd79c2b400ef3939d184f730e13d4b9814e03d5d1725505db4225f122624bc27c7db371de13d21bc7d9311de937afba622bc67e6ed9b88f01e9ab76fe2e23d21aa4b7d61cb476164cb8e8f8e37323d60b46ff2628fe878fb200b462e83d1fea71529530395ab33457c58200f34d94af4a13c5b65a85fad9aad5b6d524bb02d58122c683dcb55adda6a6b4f2dc182d6dbaac669b516a95abda9a68aaab5ba504db027cdabdf566dad3db5763cac8ebad9ca6db5050b56cd9a5035cddacd6eb5056beb08f6544df5db6cadb5a796604f9e56b76fabb516f96a93c267445381ab5a35d5cda69a4c3d60017c985001b0556b3bebe11aeed8019bd46aabadb5eab8e731af014b25438031fe0480a20d3308a062c30d1a6e0b243085056bf8904a0d1782220458e882c0a540e185135254398a0c50189109ba43903881c2841c34b924ecb400850d9016ee4c048ab020f5a388ea5489b0a00681482b8e051079385c6cfdc0049dd6179bb3c60372ceefa4a082971c1b9cd07ad409df23877b09c1066f7144f86f3bb86beeee007077a29a32ee079055d1a9886397d4d8bd8a07b93b0e1ed650b9fb96ac148de643fb62690b626973d2a5f0d5d34196f0014b1c87f204a046960d8a205b0f541411e812b0b43931f1389160b3c39289005b0d9a09e0ee501f938fa73b692ed89c380e2c7d60967454c9622aa2398103d40a96b8389638d408672ca1f6ea8b2593cd8cf55ce08070476cd9018aa0840e1b104b342a1a95a65303e4b3a98943074e858fc733a2d16846be2896b427418074a78e8a250dec46d872c0205add505bce8909a78247806e84eed419a174a074986c4c3c3c026841d0a11b41bb4207ae8ca500186db06705a084ad0745d3d56c55d3d1926c41a81e9df568f07c7850b81d33b503356e43699a66354ffb34d389844df3a6783968824e355ee755cddb866c40b6fa89a0f9c8623a818bc0d20c15596abacdc7a744876d053aac58ef71c0110313a4110233345086ac4888082e4b7c6078a148466d3006080a21cde715a0862850e2f800094470c2103b5d9440b2c40ad0000119606c6185144044012421db43e85407372083821290408c2cb0e460802a35508902e587c90926f4e0e1451758ac90400e38b04a2021a327ccac400556604b71c0c1831d5429400f1e35689031c605c0d8428b090c21840f2c0310808628508040f081313c60812e4d4ea00608c810038c2f1e10c50f08d8e10664d02801185f7841012d4bb8045a529322f3023656a00131ba0883c5144404814b9601aa148006a0252ef4e0d4a440f0010d38c104115a70698001003159e282bf800d107c6003637411068b094c5184105a6c1800d00b2ef4141912042747cde671bc800d156c40036388d14598094c5104114204a1a5052c1baac0004404c20f9cc44033930212b800f103151a761810c40f33a52a4c716870d820703fb03ef822b041c04e61a5a8426c106da78aa08ea682f63c4eb024541fde089a08d566eb51799842c891430b371ad44c981a01250248c2a9c6e47d9d67bb8ee3b4ea9d96530038b0e4993cd336f311f14c5a09a8a12c5056df4d77fa7836144ddd501d6b4bd2525acd96c60e4b2c7533d6336d39a9127824b0749a01556e393359ec101fdc94ad764630b0f4821325353bd8edb439c1e1c1120c7448c18c2c95eba939014916bb8da0e9c4aaea08a7420996baee84202d3b687c10a0fd64e9614904130d281d281d3730d911fbf469074b46b6e9a75544e899b41477b4f90044966f9be94aa8342b648901034c299ca1e52ba3c48c053924355e0b5b0cb80057e8100277736272124057654bc16b41072ea0f8d1010243f00877b4a448270908630994b998d8212584a6ce4082e6822702912c27af85eef4cd6845807eb4124e4c76b074f28052425f131f4b989c4c4d5042a5112e967a6c39444e5d4f08a9ee042e5919e0014ba7af8909443f2c715ac8d54e86eec4b9d0a570c407949950f89a74274f849412d38f0d8aa9870e120430028f143e15629022802ca74ff45648ad500428c8436dde085c8f46c484da5078249ec93b6d40b818361e2495f3a1a9381e3ba68fd45a58e282cd77e2612a9225091470c877b3fdd87e7410584a616653c2a9c09960fab1914013442b4187251148d55c9acea671075819c0882f326a8504cc1073851510882201587050d2472e4cb60c50a5062a334c110a723280263d3c2bdc08200000f86d0c31e2b0811b3180e14800562388e079f14007a478800c4b60e82961070aecc2f0224c155fa488a20150787162ca0d0a4044269618128a03086f10d560833160b0724d114398ae232e9cbc2f4470296232411a537ce96981480f1de0e9f348f0b1851655701905ca0080982ce91912042747cd4c6a5b80103ef490630d162c60850420808586198a10b1d1b185c08c1ccc70e4052226af9b000f6128c080248cf8e1004f2c600143448172c4051450f5079a0f6c998dcc8fb16d6c31b02ce0d6a86a5834ec19a612a0486043604160bdb013d0acb0479b51fd514ff84ae0484889607bd81d55474d085c0e5b53c36dc682dcc99abecf7a1e67b7aad5dab9fbc989f80d1e82484ea2bb51338d01c165264d5496e35e4d2731e9d6272edafccec3d375f7cfc31301dc5d001e9e56084f37de7a577e9cbff9c7a5f9db7c1766e94def8bfc6bfe9e1169119a7850b355ee3ee3a14906defa22d4c4afa4c7b979c1c8a3661126b24114c502bc8abc6be1c63926eebebde64bcb37cd7a55c1c34f86cf086a6e8dcb7f91fbc27e67f435cee5e3dc60329565fd99f07d5ea278dfd75e1b258a434f0b2f8a7fed22149fefca8f49f3d49f66577ab77e5c84ded424ba89858d0a77c7b274637d5e579d410b41fec8a7a98c4ce17bdc4d778f79d8690026436d38e59c6e6e70781c4e39a703fc1fe0ffffdd6d0aee16c7dddea0d06df99e2a4efc7bc20ea7cbe1eea1879d75ff9ed3f76c173eff4fadfd2a32d3ffedc2674bdf175e4041c879e1fedadc32a27f6de2d7fe1e5da2b24cf4aefc5b96dfdd0ae0d4f3fb7e898f4813bd316ec90bd0e3ee2378c855f193e86e198c1bfd7b4a4cf4b3f2e2f4bc5bf624cd69ba2429a769f6e1487017459d8a658601d930174e33e979b8015133a60c7f23463ec8cdbbbbc9ddb5bb53f1705339917906d1d178cf769a896ee8aeb46dee3b55cab87b95269650d225d448e0ee2b77b71e6a65b8af88dc6d00dced0f770b00770772df6a36ad66f3d8957d777b82bb35c1dd96e06e4970b73edced0835e6a07bd5e2ee357868ddc0652671b923b220eee8f0b0a08980b882ececb010e412110911521609e222a2934d51e37d53529ca55b9b453805928bd24b5a2f7c9b674c7f6bdf160f0fed1077cfe1a1e5e27e5ea40cc3694d165cdcbd8787d600eeaec3433b00777f410997a899628d9aafcd9b47f1f9461e137d79caf24b3f8ebb0b71afd9dd51af19c386bb15c1fddd6de9ee300feb111be6aa55b87bb5369ee634c58fde2f319aca364e378a61f88cc1ccdfe64df717a1e6de179666d75faf0c70f7eca137e1ee290febbbfb0e0f2be8ee253ecdeb7a8df78ce8df951fcde6be3f4b330cc3742a3ae76e55ee6ec543b771779d8a244662255d329fe705324b6f4a649e40c8540321324f22f30422438b749464a879eaa049193d42653a4388b088f028e9ec882c14118300d1a8795fe499f30612936d2d4b81a4b83c4d1911100ccb2f20eeb687bbe5e16e77b8fbe6ee2877abc3830308d0c52c2d8dae7d597800c11a29b407b5d512abd51840b7a271e7a745872cd5beddaab66d5a16604d14b5d6a3fadeb66ddedbcd37edbfefab66a4d5fa9ba6d92b46f5bbdfae20d9adfdf79ff65df1bed54e35a9dea63aea4caba36efb1ecb6864bf3bea5656ecfb5f01d630c01a7def0eb4a51b695359b1198fbaf7b1aaacca8acdd8adb6369abea69ad4f1dbbe7e2b2b57466f75f4409cb6b2e2fe9e8a1262c0267cff8fab7922dcfe399bd1532af701512afb3e3ad8ea63bf3ea82d6928944559ef563e9878df1d792b2966f6bb951433ed61187550b9cfa7d2b2fd92f6f5ad35bd4d05997e5369c101fc6a4261595a02553cc0e0a3fd49a5654bf5d19e07187cb6d750281db4af9f526949fda7d2b2a47d5d69d141fbd3f3f03ee06a49fbd34acb96f741a996b4b78f52e99092417bed83ec3beaa4da52b7541fd3832a2d3cc0e073fa2dd507fc0d855ae1006af984dc07b5c2a18a21f0ebe3707aebc399baaf3e718cddea488a997d2966db8741f66bca870cdbdb1fd2befe970adade5341da6bb6db01fcb42257aee4605ffb1cea6f7fa58a21ef4f7f45cb96f7e186bae73e07d37fab2b3cbc0fb7ba928369c57db7caa1fb6fb5e57db4f7563974f5b995f6fe397415f5a92ad5964dcb966dc5c3a715b1ef3c546105061e362d5baab002c378f43c6cab2aacc050534b5c0c0d60cd03c858830b0db49060f4af618cfedc11a3bf87c5c891418328460e74ef41f2c12df1c1ad54ee1f431dab7ba927f509b732c2e2a3d37c6fa3f7c47b57e56c5dea497dd2b98fedb5af39a37fce68f445a96fdf7e57b920c0930a54d1d0a07e6685c3cca3c2771f1cc04ffd0ca70f5738d0fce9532b1caa18a2f9d3e3e0e33ea0ca475dcdacae545157338f5af9a89f7a2c3e57504f033ecd0f814ff3f5694e9f5a5da1f9d35fa9797087eb7cefa3fe6b38da63f141a97cd4553a84faf0b3497db8ba7225c4e243b3ba52859114343f431d93c50668689e6695030e483efc9a9586fa6f15ae42cbc2f7334ff3463b0b9859056938355edc0c15161f940a8b4f0c9aaa2ea13eb5ba7225a6e168dfd270b447ad94341ced5329ee63458afbccbc14f749d525544ab363f552b978e9e2c5ce3c4a4563fa4d5557485654554c2a1da2f999d5952b333fb3aa342b29eea3a582a1d168de7d66dea86a342ab0a252d5c75375a5c3753ecfc7f6f57d4edbb8fdb66a5533be29726c6ee4e0b81cdce7e872e4d8dac8f19b1b3972e4d8dc40e5c881ca81fa5027ad269c497d39500fda1a1b5a1a3b638d6e50df36661bb38da9a9de981e3d5ed3b4f74eebf1a0a6696e60b9e246e79ebf8f3d7cdbdc7befa1b9e1f5f8ad0d37bcf71e8f44eba132da80d0c3ebd1a3478f37dcbd95d1466623d3c3f33c1e1e1edff578adc78ed0f3bc9d517bef5d2b22c2eb78d78a8cf0393efc19548f3f7d092ad7704850f5781faa1e3f82aac78b60a3720da7c7ca88c7eae419777c5e686d46cfc67a6f4dab6dcc36661bb38de9b0f0b0a6283eceb423954a713b4ea914e77d9ff236321b996dcca7bc1d3b76fce6c68e0d08a351caf33c2ff534bfb9515df0b63746a314cd8e1d34de8effd5ca682333a64e9e93e7fbb1763b56461acb7f3a56465f08ab1c466f745369562914e86d63b631ab4f8cfd2c9819ffbe9999cfeb4ca73f7d2aa310cb956f66e6b31d3802bfd4f79d1ef53d6ae69b419d3c8de651e1a366be0f77c5e24b7dda0cf87d2af5bd4559950d53819c4cd5f3402bc6ebc00eecc00e046d073cd0f340d003410f043dd076c0f36c1820085a3156cc12f07d6f0e00bbd740cff352a919edc3d487a0722d95fa1d2ad770663c1bbe178635af43e516a726a49949a156276a34751f428ed36a6fa3c986a92e70afd9303ab4d5f7458df72068c180b6033520c8d5d830402bc686f1b05cc901ac31c201b41d188dbcdf7604dfc1b05e013e8d0da36666e6c11a1af0695623989ea3799a1a3004af6201862b23101582bfd930368c0d63c3ac5033d6f301e83f8cdc8c8ec6e45b8d1115f5d5d5873a2234daf91e101e999e1b8d764654455b67186b5f569acd146f14482b5dd8c647a4b9952e6c8a9259a238161b37164af159a2b70916d2b23396ca844a54e6c25266329f22d42ccfdc046fa52552504c6aac24bdf84c52849a3a9f494abc639824c7182c6d82e25894240c25064b9ba4d8854d9d635849d24dcbd7366938224bb746818c9078062143908e188191547a7a564082915458e5127c12c9b2123336d210453463f7537c94e62496cb95c53fd277bf8ecb951f4a13d7d8145b2c34b71e357f63ed2d089f50a12af10da6e96c5820eebeb9454163738f4af7494fcfd0a31a9f8f89b0fed906baa9ecb2aa9727a6d6cea75092d6ef7cea9ce21bb23691ccf2efa7b8dcf79491e7253fefffe15e35095cdc7d9317c5657a936232568962cdcaa54cb336d63a31168ba51383914a3118a9c462b9e600774fbda6b5e46e849aaf6737e9bc8fd3fb1a76d31b2bb2c20a414c3dd33d3d7a2b617163fd79632dfb9c568a8b2e7a9fb47e46746628ee3ec4bdb240a567f8489bb00f3243b5801575e833ce20200847f040087482bbeab5a951f37736d637955d1e7147672b611d2d3b653019995da8c9bae98db18a50b3e86ebdf3a95978df32262bcbbb51bc519385912e3ef56595682662cdc87d4bb3442fc93a896e8ad15386849aac8d750f4beb198e41346357e8451c9bed9fe1a357e1936e6a9e2cbcaf489a27912cb6c4c99844e84bbc2f8af725d14c4a79b10835d3adbfc5e3dab2d6df1263749b4af8af89f425d639cdfbb5cda4adb1de79868f1eef9f2f31d62f7d5fac8de2f4c6b62cf6d2b7c9ce39656d8d8bccf2a56f1328af2346483c835e92e2f2e22647643e897a7a48d3479b1aa3f80793292e512c94535c039aa1a01836bb41b828bdaf24b36d9e77a7f989d2d01189491c13a2614788901592ae14255ca225d0ede961c5b4d6382dcbd1dca7ecc9ae925641abb8aa1055a9526555c5dd91b87faa15dc3fb103dd9de5a192146b1ddfb8f8b684bb1bc0c324b12041c41d31880e9ab5110b9729d649a8b863d7d53092ca79659bbc45a83963b1942e4c63ec8ad2d3d3d3032395302c935b965ffabe5efa368191544a93a533c93acf4bfab47cc6b18c8b5ac7f2163d1cc5b88ba36b0cf53661e6286ef34b9c6634bf92f47d210183d38291544a140b6919deae7c93e2a4d71833417203921f2e26613427e5d737e97e795f230c5ac0d0f27d61d871fd78e40d7777f496189685dc9dc7c323508447a8b8cb4e12074d33d1cd6f5367111d8ff0b8b851acc717beb8fb0bfa85138c94e12ea23926fb126ff27e895ea2bc3fe773d21b000f8d24c0c81017d670b185f33925500ba7b27dd12253fffd22d444baaf4765ae97952eb4cef32669fdfdbc51f351990b0b7077281eba10e42ec2fe7e9a9f34f785e52dbbe8fd57912ca7affd2a324bfc1a72c1c61dbdefcaefee513cec11e3a2d6b2a7a127881e9ed736936e0b4070bf52dcbd050f5bf8d28294164e992ef1c645a50cbdaffd69d16b9307043c4a2e9ee72533aacdc7698b858fee6e15a1e6d1ddb3f296e825c1439e24ee3ec5c32263bab8b865f9cb347f4ef9d7dce6e7a41809a3b317b92fec62a29f5dd88bb7089522d60a222c17f29008cadd873c64018c8b252e314689721a7b8d62a4146ff4a22946ca457f5e197a9fbc58e2582ca7e76926cd4e2253eb1c7bfcda5a96535c84de1227ef2f2f4e8b501335ffdebc365f43226c766a593691701afb19d193f78cfd2f61e100ee3e83872c04c0ddc5d979ca5c5a97fabebec4481986d312c9c4244e7f865fda444d9879cf24e60dd2183341a748b95b4886d3bc4c9e0c09251942f1d11dc25a4a894ff33251126556ceca4be2981246a76c140b8dee7e82872bbc5c341fcda6bb17f170851b174b6cb65a8f828742cab8e86ae2a1902f6289374e638f894e22a46fb59c7828246886de4fb34b9b8f0ab1293189531d0f83ace1eee26b147c7818040ca983663448cbddb38e0c1e06f15c3ef170e78bbb8b6976e1f49e242e75709ac4dd8d78b8d3728c9ab0146f5c3e26ca7177251eee84b2d72f123535101eb83b0d1e02f1627edeaefcb39bf419fdfbda4c318a8b3e47dfa421204d4434ef9736937e865f1be73cefcda34939c568d20b1e022951597615a1267eed51f47244e6f3cfd3dcbbc4982465fa88cc272a7bfc1a125f627e7d44e673ff4b4422ce760c86378af5003cd471c35ddc18c3d2bcafb9cdd2bc318db14b6625c5b1fcf83514ea7cd1a1e29e62974b4684c91bd3efca7f44def3efebd87da5384844cdc72942cd2dcb692e3f6f118be6cd63997eedfc1896f5eb9bf438c5af219d9d30670d11e749122aefcaa9a971697e89b5c6694c096ff3b1965d1213bd5824e29b271fc54866d1e3d790bb4bf13067c9e532cb7f6d33c9040f73a8b88b3ac766865ed8e73ca4821b30198abf95e6345dd27afc1a32a2947d8e1c39729e37494fcf9124afef0f19310223a994b89ca5d7244d174631116b6f8d4b1849e5c8119c1b2330920a0c6f9385b1eb8852f649c10cd186968d87295c21dad0daf13005a5201ea6c093c227dad0527988938687385f441b5a384a403cc441e2a20dad123cc4b1b92123dad04ac1c31b3036b46e9670d186568962ddd313d42ac0632cc42af13661e659b260a49266ed12c5dadd937888021451dfd793a646cd742be17d63da2c3fc5b1dfe8bdaf51f36e342749319a94d38dca32ec1ef91c1c1e2141649f736384c43394b84465d947935ae93e4171099462984ca339499966124b7122e5c80c292bc5e5111c1ed9e7f0c86e8cc4a2cc589868766118c9dce46569136b34c7344eb72c6398b9f79d95174b49b1e932778652849a258a83b46cdf2d344bb14c0631cdafbdefd6288e6999fef312e5f3e7f1ce309cfe7d347f898fc87c3e4eafc627915984ca98bc3843efbbcccfc14577ebd728a445262c95913798db4cb399c6febebe5f62fd22cd57d2e79478c76078ef5ba258fffd7d53fc2d212bc85a8fdecf29f1bea479c6644a5eccfbf19179263d4e7ad1951f865ffb4b0c4bb30b351f27bd463189d3df3ac3ee9f274e7a7d3f47e322f4bec854963fefd78fd3bb71517a372ca72eb3c48f91eeeb3cc7175fbf966533bd489f94d1a3c749bfef6bbf76529a1acde4e3f4beceafa4d7287eedcf6961344369bd0be8c5d7a62bff9324543eefdfa7ecbab0921771cef36ef35de607f9ad65463f3bcf2bd3b29b2f710cc598e8f57dbd365ffbdf953fc54430198a65e79de1c5d4bcb1c769e9d69718e973f2cdbbf2bff47d3d111684bc107c744f226dfe0cc7f0a28edd74ffc65a5f6d2a618dcd22d4cc4568166729965939cd8b747f6bbceff9f835f49b0c1c6f7cc660994481d06c2e392f999de812ef34c762328d4e913265e3944473929da1603d05052a515966b2339423323b418b4c9c62a42cb43394511f91d9894f5276b2d31cc3271edab22847247e252931119acd1d33535213c984321427e5f541b3a9533c43797d50b3c84ca394e679915020bdb1d6e30cbd4f721e4af38b442f969264b663b025f82432778a9150a09da12879824fa28b4e394d2638959de66552a258684a89adbc0bf80653c3643053e9c2f2fef3caace0c7449ff797f80653e3f4b5f9b506ee6e83873ec8388c546215993e390f9d1845ef2b4986729e322658866532bc8a4c9c9462a4ccc25b4662259cee04d1c127d63a69def73c33c9c2247a655a9bacf3eebc595bcb8ccacbda586bf2b2cef36224f3bcac18c6472c1626d3ec7aed8b4b56523ecfcbdae6696e99eee9616d146ba251892be734e8c4247a491646ca692c7683b0ca33bf344e5f9bc5a271f720b83be9610934b81799dadca70c2664051d2cc3322b3ab8e86a8d6137955d2bdc6b1524b87b91bb5fafb94107dcd16c6ef26af4a643288e45c95086883b228f0e8c5442e1e6059be3eed5aa508fb87be9a14d15f7129726524e635a062b71994914ffecdc244ed34cfecee8df7dcbdf284ef10b357f682776b786991b17a5b2989ee123d6c61acda6d65807d19844ef79a5a040e3cc65ee8c6e549649164e33c9da1acbace0f4bcb3346f6dbeb68cc84c379a49349b453865c5725a6eb3c429c9c2321423e1940533ef499e39c7d02253eb8bc97ba2d9dce64e6f2cc52e8dde74276114a758df1799ca621a9f57b3b0bef8646dac5119464ab1c6294e6545a60bcd6411714727c547392582e99bc482101d4c5e970e86991b95a53a31cd23442706bb5b6398b9470f6d4277c769468b80ca4d62239c6e14c33089ca328a5e9cca62a92cc6c2fbe294d4d8c4acb2bc33a59cc674363ecf1b2b59b33316bbb8bc69514cc6c23798697e6dd9dd2846c22c25d385d3d8799a47b8e8a679eb2312bf48d696e5d7369358b8cc246b63ad71d18db16217bf581beba3f4c270ba23b620440786b79e691d0cbba9ebc7c31d68b88b25d6b2c744bf338a5ef2617803c1f246ef2b88c5fa1e5c66f2f149745fe4c5292afb12a778a3f87bce8ba678a3a693596ab907f37cf3ed85ea9e975a7235d5739acaf1a833f513b21571ed88cd04cf7e1fb769b57a0f2bbaf52ac3064375cf05ce69baeab5568e1b6241ebb556cd36a9d5abb656adbbc1565b3dcb434aad5df5dcd694a8d9aebb397dddacddb8d4ad567baa3ab0d5e45cddac866b35b2b5da6f8af561abed365b69606bed6c95a1f6a855b35f0638cd9ba93c6aadd5b660777c5a75a2dadad95aadc6aa763b998658543df255ee87f642f5acdd8268276b2b0e0d917a802d08c8440bb2beb97540ddb49b8db355730e89da82ead6c330f4ea75abb68ea99f4da156cb59abd5ba420552bf8ab2d6da2e4945c1dacdd61d4d0445f80450533946b04a54ce8a50b7aa55b741f64f75736b76fead1a84e6aa0c54473286d56a5737afa6aad6c5daaf47ab3c5ab5767b8b32dd54ae566f670b72c24eb5a7eeb35ead3dd5da13685d35d94d43aa2b2bab55d3a926d0d6cfab168935c19a604bd05cf34a533b6b6b6a0bb5cd8a60adad5ddd5cd5f4a3829c0d62947131cd2fe431911857b867540c2531907c12767dce3b0c322ece6e528a4b5496f3194a184bb8e7d7ec44a31cd9ac30dc3d03698836b432f025033728dd27a2de262a13714aa09c9c1b5756e187b45e3ccf4b5e9d949de43c4483d27d3225434181525ca6515c51b62c0a36d32c948499e43c04254329f1d0130b1cb9478c6cd4cc310c3387d2accf3b2add274f6039759567c63875b192309a371860dc4530b6c0c0e049f1be271836e21769883825c6a90bcc175b88be7889fb8b10352dd08605bc8838a936611658122dc093f7cd976f7811012fa8b8fb46314c56945e266226b1f602852ed2707751eb7cfe96e59c4fca2726fa2d23eac24b117a9e3257ab8b201771c29421c2654eab15c68c9cd3305dc2e040a699498993ee6ba8c4252e5193d4580a5089a5f89478a3e69312bff43d85d27d6358ca948d85b6ce4eb696292971522ed1255c7c29325f9ff3e642c93c02c2451377b1c5858d0f9835dcc516982ea2894d975966181830e74db72083f4e31665b88b5b2cb9e7fd49f9dc82c891f2cc4d868cb8a2ccd0faf2cc2f8c53971112cf70f789cbd42c7b7a86b428c3451b5a5a74d1e2a5058f1661166d64914516a02c5077ad749f88e87965a5896496a8899a5be377e594bf3394175518cddb4c6519e9ba3e2bf91e8c9ae7c3f2ded9e7c59ce21b4cf353593691ee0b136d5c34bb302dcb33a01785b292fffb31d9a338967b8eb499a6b23cd39fcb1423e1a4dca455629cca48ac51b3851fbd644e4ef10de6a790a6f0b23c7b17d0aba2485952c343199b0cbd942543e312293fbfc4e78784a63c7911c5b18c9ab0c7af210cbb505e3cc2a9ebcb1c22a1f367e8f8a2acd5fafb1a6b99cefb67e92d42f379bfd57a8d73b4cb957179d30df369b5649900df6ab51e87ff23775f259f93067dce11d789858cc0cc9750ec3ec145f785ffff03fc3f3ecd182c93196db55a4b1e009ff719835d25fc3ee5dfadb7a8b789ca728a6bb8fbc44aca4d5eac0448e31b304e9994676e72b11221a25ba238a6b464090aa4d16c6229b36d96a6cc8a5934c30e58ca58021d91d9894e8fc8ec04c537e4d4a58beee9c23875f9acaa7877bf9fe611a870e3092aa870255250111389ccd40154ece45448890878e118c98cc092bb58ea08d4704429fbe84be2192040060265787187c0121508e8bcb69974cff3b23092894b96be2c519fe725f7253acf9bc49b3081ca2592e9b0dc628a26dacc50a6b811f39734dc4598f91a856d7ed69f8391ccf3378ee1cb175702f4f733942f4bf848ca972157ce694fcf97976207eee20c1fa9f0ad1208c7d09ae1a3bfb7855fe9c527394b2f6a1269f3efbf9292f4ef183e2231d24974b55992668902bda851c05ad3a0bfd4d87ca5f93536491396d14ce22f42cdd999e272bfa833143dc3316428331c43590295785f93cc5a8f198a550515a1e649640a95a7f94ac29295784a14404471a40165dc459c8ccd33bd3aae13ebf33493b4d9800634d18020b101360c4081bb8b0c8800036a60c027120d3d86c13209c515eeee2414555e647ab18662c68b181cf1cc681411effbd8cb16773127f182c4319197f08932dcc527987011a739c9119c9d1d2245587045d13bbd419fb3510c7b22e809175b287e25b51650c602b62ce0051737895d2eac4d27ca38f1e5719a87ca333bf172776dbe133c621334706fa2012e3611e44dccce248cbe3699388389ed2eca5073a3792b1d51c228133c4c84e21265f478b8c4520ba7996cb55a4b4c29cfbcc42ba00d773129a30af8a280ac15d0854c9732bae0808feedeaedc0596bba0940881124b1945cdc7422fcececf394facd19bf43849092a527694f85c2c93304344ef79511396d124bc24114b82c745f3937024d270175324ae70246248f0b83b7ac9f3ca36127e84981417a1f9fca123ba1c1173df473471b13c42047717a59467fef2cc4618b154e2d969841417316c9b4918e746b392306a84bb58c417772f22e65e04127711951515a126798958639be93d65efca9924e20b114b317848c40d1732af910b98248c728979116a7209811ce9bbd3fc18cde3106cb8fb10460c81e4c27e1ebff6102f9628feac4d21da108ff415e28bef5b0a114baff9d242ecb88ba5796338a87913441b41741183888d41dc9c2946ca39697fde23106b00f14524ef1802114bef110f81b871d484c1ce5be6f407119c9734719a93e852099acda224a57983607803a1b222ec53e225f84c82cbfba43c730e2a710954e2a012a7254ec2685002dc45ccc4431fae7017cf9c834a1f5ee6198bddeb4388232bf18bd4a8ac3433d29634b4beb1596ac694f0162eee5b5a2ecef6161e34971ff6404644cd22dc0317f78d3769a63bdffc6b580f41e8d8c3096568d96ba3381bcf6e7e67f4653c58c103157c5ebd95306ac23279c3c343410002ba9428def7cd1cfb9d914c04f0783649bc11f015a16646432d34d0d2c545d22ccae72d373e5f4b4c7cfc1ad2d244cbcee8d00e6bb8bba7bf03185209bf363fdc41c977b871378bb4197b7c5ebdf1ec77b838d5a104ee1965256114355d9aa57461a509c3dbdc19c98ce9f065b29891c58b52162a3b59bea5365cb4a1b52466a9cb6b896729742c6d602903cb9733e71896252c54441b5a58765ce93e11759252e93e11f58b650e9add13a7254e333954a63709a78fcfc767ce411bd537f63a69e3a2f2e6f328cd49b9fc1779f1a3f78c3d4efaa33427e1941895dda45fe217cd22d4ccc1e7d55b13c9307acf1393da84bd2bbf9e91b7089f381a35ef2bc9851de9bb6f5eef5cdea33307a5664c694986529ae79de13ccd2db4510c1b755692874a74cace5030cc1c2a42734ac3964529cf2c54a618298ac6e715ca50d07bc68ed24cc38ec9d2344969e6199496cccef42ec1fb3ac9796867243328c56852949da1a0d92c7a221401e7084e7312568ee534c63a3a654431988c88755e1293e8452a2f2e65276b764f2cc5dd59f050290840a094590902eea55902c1e7fd9385cfab959ce0f3ead7e699f5e3d77efc1a52d2dc45d7c5694ef247a7cce75d7988b565f93cb1669d1797667966cdd238cd6489625692152f424d9d74f36536531cf44e346abe8658a8595e7c66170a84cf2b549a3756a2580ade17c94c6347b62ccf6e8ca59b9c3907ddad51208c67379604cd2626cd3426652c315a640aed9ca5245d293d2c16942840425296ccc05af2334a893224c462f5a8421910742aa63876e2178b2544c70577df6c8f8b25b6f2e2519a933eef37fabcffbc661a8287322ffe3d44f9247a28518406e0b21a3289bb6dc1ddf2b8db22ee9688bb65c1dd0e71b72b7cee3895c5d2ccc2f995b4dfc0a96ccb5c7783b1b7b858a2f7ca8a4c22d8d566f9dae68c2895c57edc2ff7bde362cea619a594e5589649702a0b2ab1eee239ef1c97f9399a8ab9c443fdb9bba871113e4d24338dbddee625353ecf9b245d63a674df7562fd65799f8b46e18e2992347f8987521b2b377077d7e34bdf26e779936c257c24c568d28de99e9ea12123ae2831d951ce4eacec58f9d68881f1181733f68a21896532b90cd186965724302c0bbd66159946387d1776fec8bb50e29796c57e6bd9007888b45efa36697d4eabf5e81571880421cdd86cdf7cebefbf2e1aa4749f8867116aeabbef0d8a4f11e7467c155ec80aad3fbafb5b69dee46592a365afa11775701afbdb6abd2b6f8dcaced80b59a12ccbfb298e617d7dc4193e6ae1dcb832bec1d4ad1b4c7ddeb2bc8f6a33cdae19e9ca337c74f3e585c14efcfa1c9cded7b1fb4429a731d789853294129d824fa28b4ed9198afdd1a388572277473d34bd1022eee8e812b3582c20b3d85966188ecd36deb7089fb89cdd139738361b42b30b2b9929e534e8bc387dbdf47d8d5866c54465d9859a654fcf509ad314b3c8b45a2f336237697c79f19792bb3b9a1f8df2a2e23beeae6f123abe4efefa268d252eb1147c9e660c49184a89f72db5c62429132ada22165129f1de268c48e62a834d17132e78e86ab9bb98e66fe1342739cf4b9a4b5c4670193109a3248e69d8c569b88b250c1e622e2e92afefabc4a5499a3221cc5394ca6039cd29be41070dcb32eef85582c08596685c744424d34766f8e8c80cc700c3dbc465266738067717c1c332e66593f223d3b8825c126d6891545cb4a145f2b868438b0c713c244a83488a201e168484c47d74619f376a125d7db19417491cd33fdb298ee534f62b263c2c68bdc2e9f3b02024f425c6a546013537fe791a889488f82823a1e6a397bcfb962f7d9b88385ba7a62c8dfdd6b83cf3cdc7303e82fd9317f525fa1e2d807fb1856159a8f5620ba7afbd33fa2ef3716e1eebf33279519bdf6a65fda52c45712c765fbff575e56f61d8455b2d9ce62df4e2d6f9d4b2d72e2a32d39d95309a4997d942f327bdcb6ce1e41c193292662637adc7b1d97e69ecca2f7263972b6b13bd2f12c3c89b6e6ca6fb75d14d31123ecd93d4d9af22f37c4d9a5b9be7391ad1789318e92f8a354e6338bdf9bf8f629cb431d117a1662c769fbcb8b5797eebc8909116acbc384533d6977cd474659d2dcb9f8b7e675429fbbc886f30b50e6a3e2e4aeff977861ca4cd24a0172f4eb30b86b7d9b364280a9417f5677ddecf51f26293175b1b0bbd48e634f645a889891e47a380c26e5ebfa863f7494e8a5f1b17e5fd5b163b2f0e6aea3fefce432f2a014aef2923ff3c65aed8c5af1e744a898b50f3b53394f3bc49302c27413779d3adb4240fe98b531205ca43bac4180a865d28248e096925782703776f79c8e3e605bb5acbca0c059799ec99c572ba51ccbae946cd9e97be4d7a7a865efabec629b8cc493469c6f2c6fabe621bc5484b74aa378a4dd274b9641a936812179672f755925d294ef10d2c34a3248e69a50dc3249aa1f4f40c6112cda84e459d62334d2f51906aad90aacdb0824ea28132ec717afd0727d8104e11e34b4cd9a2f119fb0a8453aab8fb79b1762ba6a43025fc9effa212c1dd1ba0faf3628d9aae99bb1b79d86402eeeee3e1500cee0e434b95c9149769fe2234a749ff397fa5c8c61a776b12f2c2ddc512c55b9bfae2f3f77d4c347b6ddb630423212deea2bb0de2ee9fdd396f8a61249534a3260b35616936ba30d691a49b96db34dae84d2a51f3a8346f0c9da2af798ea419cba419cb431b0be1323fd11833d958089f44174f3922b3939de6f3ea142399e894f43c2f8963b3cdca1a239901a420a8f40ed0754d4d3ac69499111901000000d31300203020140cc72322a12a6a29937c14000876c05a6c549ac9c328865118a40c3284100408800130003042439800f30e5225329cd904683a294b9c9fb94783644d4126292cccc23d4672b66d193a768d57145c6b17e5d00a96e24d3c197a67896b198d7eca3802bf878b013a076aa0bc671b098c165da6095ed807b6c8619420e926c3308bda7be82c2c10ddfb4f3a2692c66b759e4b569ac2d50b05f88aa542f64f01182046284726499b255031995c6780d3d6d265b9ab115fe2cd27eab15ab5bdf4597249bcdeef16516b7ab454a45a2222527478b8f0c89df34abe3259d57825c722748559981768454abaf6f13affaebfe039c90b09dca420111541e4b5a769b8d87b63470bf054edca96d59f1295d159217866ecfeef482a1c96cf52090e35fcef42c813380d1ffd9c61d36a66a49285515900a18ec80761f8a75bc0841d4c6f05a26e73e012076efdb9f61a6d8cbfa1ea003a46bd1f1ad3b9ae56a4686bc9874ba57c6a6240ea400b2dca45951f664ceb5c84fe8200542ba6f022b6cc1f2576f787e3704518859ea94ab450aef9c24f136b903c64e17b06b78574303463820865db1804ac5ecb66eb39bb4f65a9cf91c1030d88273f5ca8b864d7116301070fc8640d046f6bbc6a6c4e354f08373322ca0f5387fef28a0199474ef385be61ac6f54622765a2566fba649c71502506f95baa01c6b47ec280d306bcac33c4ec0847e6941cda281b13133b335695cf7a2117dab93ef6f94a9c9c73813e5b988c634efb00716a25e15d31c7411bef00c5d8076fcad667c88663760e0e32e5176779e72b148cd347870e645e15e1ac86acb769f4058939ead2c62eadb3dd917fe63a2aeed8e810a7a39dd640940bc16080d61ab400c51ac3f04ea024e06bb8e1e102e94b8ca8111d60af60eb3693e5cca8b43bf061614a6811f1e88260aef56639e8bf92de7d0cccd56e895270d77cd0427a88e739c8f051e09c62cf5021ed385b4adb5ad02455d11ea056e883cfefe20af8be06fbad7a88327e1120e3b7d19801fbd9fc35d2d28eadf1a43b75170a70923a4e742373342f1784f9d3cc37a1a519944a476eee005a0d20735d721df6593f172779601d6b9224d5895a09c0b8c7d514e3fbb11831b929617ecc1848ac0a8f09729ffeb9267b4f1952aca316fdf2e83b119234d3fa1b5f769b149b95c08bfdd4820a804249e509eeac4bef54ecda4af9e467bc6a64300f6a63e85b88f900f56c0f020395ad4db70ab1e50f670eb09e388988994b1b96c9fab75cc6cfb6213615a94fda6473c3bf8d7bb95652234d4e7192c08402f915926b69cdb52657c7f5a946c1f8b778bdc54d090d94085e1a96645fe38425ea66b2f1b5635e38124e32b3d00b34e5c12b2d2173621ebd7c11a1aa1aa35de45b59a0f80fe7f39b6ee46e80c0225b9481747d831cfb315200b16746ffbf449edc145cc0044049d3d2208262e0fd1265a6e65bc6bb35e5ce4b32836879ba72b2fbc0978bb764d77a1ba6e7088eba7cb5f0bbbf04cf0f52f061f29b90c8654b0bf27175216553ab8168e1104a79776015a208d9e16793c74c187194a0c17f5894b8089b8a5cc9ab2a597093d7229ede55a6f98f4794e3ba0f7b6633c00ea2a48febdb6151484846421d0d32ccdcc01d221de452d8f6e5e6e84e888377352a050a047a7c08c63dec4c509338687c5b925624b84b22b0beae2786c343ff1fe61c13b90de0cb106fab62149ed719288415ac9257612da566600d6218a69fb50d089251b460ec022f5fc62df07834d9aa9d3614916064ceeddd9f58f4fbad85077656456bdd46e089511a5642f1a5e3da6964b8b2ff6f5407dc56c84794e18a5f8b53c72f2938c98a23a049778e818f47475f49d876084b5b13192f401a79fa055c31a86a8d208e9f0129c93c1374374e8cafe3a0907496e6a522f8c12583863d4067b5490ce29605da8ce6d3406b5526fa0249f191ab30cc03b35262311f2b02c2189360687231588cd784ada2cde7c514e15c1c3a3cd8e56277dc91fe472fb5f6fb92c4a591a6bae042a1a0075422348f356f31ceca990623a9397912f0851a97bf83bc583b65c275c86f0a7e46e78867594dd088880c5ab9a03ec6c7408bf9b72b226995e8cae6d5e809e3866f2dacc96ecd98029daeb860a9c08f5224189cca7bdbd26ef120b259b76ebbc903a9a5289926a3494910a0b6471398bb072240b6b4ea115d60f3c854dc19c53a699c66c05c5db503c6b6ff50823015c8c777c06f248996bec50c3c57c3816268fa6d0f568ccf4ff1bf99b707bbc5085756a1ac73bb556412a1e7ccb6458e786749d8ca3c3e830ed03c917716d87a9652db29136f895bcbce002262dc3fdd52ba8b977be2d1322329fe7d303359d2e1620ed810fdf02d0141ffd9bbe672956a62cce509b23f1a38d381dc7dcf722ac2a07ca5fc00d8ee41867fc03628b45fa9e5db1daee7fd018166fedae6b387e3ee5914f41a41c4976ce9b13359eda98295bd9c80cee56edffa29068b0fa0ef9781f95fddd811fe76434bd713e1c4077eaa36be0e48a8cdca3147694b4392cee385d855ca15231d10bdcc709548a7c60eea7b4281481b20c8443a46a2f5bd1ad8ac37b043a5bfcf12b95d420f1a651f73176170211dc61502fd5253107eff5f5f01bc7d75f18aa4ef1fdfe424f02e1807664169c8c8ad39d2e00d61af855850b79b9961f58f13dd7f4875df85f302cf332ac1aabc8edc2a50edfd406f0362415e457bbc8666fd70a964d70e3c5aa1394b9bc7be650799ef8d2d5502e5f1f11007a39d6090bf15c59255a0218a264fab908832cfa119cc8014c3490d62369e0d9dfcad6b01cbe2851d0432a8c2b7d8ef59e53612c3eeb0f6db2bfd939accd7427e635360074932038abf28d3cd9219655bd18304f4a93a48feb29e952663aa92029c0754d6d1b6760ac1f70d38ba7737a3a6845a86e5d410cf21f4a9719221ca05b916f68fe58e7323004f9019c8f8f65dedd505c60155b63cfdf646de8d9c5648844238c4b5d3660ca4b6ad7cc6ddd883fb001e092d2689e9fa5a8392dceec70b9c7c5ce2ca07aa1e96d7c6ede76bf6e029c856c31922bda6447edaa07f0e936284d9797aab09ed20d2ef23d38e7c128bcfd2a4945d5d0a1d40b08b38728ab36a7c030074ca1c06f04721fcad4eea5e3b6cf062f5336732fd5c81c2bab0a87454d077c52ec7424bd84413f71171a887190c4eb7e10608f8334e9d3f77cd136ec242985d2c5e088acf8c008ff7330833b1857942934bc76e3db938ec17ad573333cabb792e9bc4fdd6583d132399931046fc698a6cc39bb735adcafe3b7c194905a7183c737b7dfb7df674bc825e24ccf252e4587a8601509ea100059d3ec3c68f20a33941134ba1075a1c51318a25f9c1bb6b5bea5076db5ff6e08a81c742535e9ca9ab7209c1df582690efbce808bffe04abbf92be8e488ef32ebab249f20dc4df8fa4ee397b241c501b424dee90de4f8cb403c83caa8421c15f0e92cc3fe01fc39b4a0ec67c0c3bbea847be7f9bdba667f533c29ef3552a28c3a3373a218130cb0b1054bcfe70bacf5e2bc40acd8bdd3d5ed956fc7962d670a8f6cfee35b948112c2a90bcc526928a27a84eba45e87bd3c7a05a9318b11930b0688b8984c976b611b9ad44d4c90988716005a2884dece078f15d21a85665d91efdb178099129dd96d03789cce2f40d6f17896a623af6e943c159ef089d9aba2206e758d2333a908a87c171e5cb4ee543886c9c4513940f8129261275b8f8ddbcbd5d88e2cd05e641fc2614653ea990f844ef5f275950007aaa96167a38af44673f4931eb6a0a6bb532309e5c631a97557134dc8f9ed5106e135a322ad5472f644a40539f9fadabb5d2447636172f469b24e3feb4bc71dd46ac134364fb4c884fe8f179a8cabab3015da0beae2509aa1a3988612a00523e058575ad04d8472206cf2072fe7faf74cfce789ae293754e14fad0026bd638794b09db8a45c7a1d528f4a1020bbb5e5c4f0cc182da3c59384c804861f41a8acbfde500876c8f5cc3daa9a7043c4c0a83d9d8bdf1c43966f62d21bc309a6dd82b18d56345d63585007bc953462bc491d778b0d17b85d5578856cb42ac59871ad866c86267fb39f55c39bb5906de2bb0020e73fe748455a9960a2856de5c0475111ae32079ac9af7b006cdd3e7148d9a99ecd865e75f2c337301ef5de2590d5aba5205a79104c3821258868ff11dc8fe7f2ebcfd6c6698811d4edea9b601778486eefe93eb30da27a05d2eb5ec7e43de9ac3bd9dd5e99d7ac8e639bea35498bdcb6e4d88c30fb15e029c5e8e954cb775ec216c46e7c7835ac9c6a7e9f382c01fc3c4d3d8e5b7617189aea1761b14304e90a2d83e44861ce1b4f5f63971812c1191cd30e89b9d4d66cdc9f523640527c903843e4a2195c615d0df332859694b91ec59c5d18881899d68a8b35bd35a0bb5bd5a8f9af7c29c581635e924466689b9ae86271b53f292bb8d4fc45e1cb67278ed09511fb4e3f2052bdbc15a916505ae08f7e22c97caeadc19252340851b3900c67dccb53cec701cfef58d3eb4668f12a1e56149601e7ecf4b9f3a18f65636056b951617ac2a212971bc108fc2670d6101eae39e9ea72bda360b70b4151bb7437618b0d9487247347702c698fc01b0fc974c723d183e59a4d9f86bc5aea66fa5a05aa2037b0557f86854b622d63b8bac640715ba6f92749d6b6518414a6f414d91e0e0e0e62df23c10c4b09bca1dd20a59db118c79ff9067fb5e093c1c70ed50ed5372597b5e41a2e1da4349ab10daee52eb976202f5aa546f6eb32b915d7a7940ffd5696e0f2b62a20016f652a0812695fd6c554152d6f3a4cf7d31b63434b89eacc120ebbefced7af35a24a0ad29db75d8d4e181bff56d6a98824843d5a5960a712795ba89a5a4dddb19f8ec5ddd64f4b6156420d9db182e173f50af4bae674e912dbc1c6ea48c3a9dba4f7261a250819ffe2eed2e9feea36277f5bcbfcb73b6c440ce141315a10a450c62e5bc050e38d5e4014a9dbf1979f0a6717f95e5aa629b9d921caff30f951bd9011346b1c411c341574d162153f910d059e73b3649686ba619f2f461d8d1d9043a532d2c4b9dcf738eeef7aebcdfe842104c7bdf934e974ce2f3c0e5b475bbd04984f09990289e8332fc85ad8dca93c268f2a176d2401fd779831cd6bf9db1c05b3dad5b58f0f39867219f220696e2232c1c32177430801e0af8431fcc241983704e998121622cb38dadeedb1dce1bc17a01e5c8c4cdae05501b016241789f69687a3402780f4cee0c520d274c81e305b83fe97734798dfac7aa99c291eb063304a22fd40f1619683100e460931068f654a190decdc52809ff91db55b25538cce6f91ff5d595252e7ff01c831d13a6fe9f44729febdea63d576390ae4923cf02945bce07c205225635c404d6347666e65cb8b3b5ec3205e1cf115ae9eb0677751e967eec6f456d4fbf2f4cc2bcb0c306d6b6fa9bee1db85b61ff8f2eb203400a84f5c2b1bf9b3c2cee025aa47394ff255770a0c946f469f5c138f11c5499d3af6b9a3a12f04e7fd8e9ac6d5ed2552ffd4dff1307b0e96d43d2f9d1fe1ba70fc23f22767d96494a9f1a6218b8813a06e83c83a5ab21cd31049d1b89b0b52aa7adb43f8041b0b23241c778f141525716761d24e7a698f93cab0314331c22b0b145eff62d8f3cafad98bc391e1cbca27df63afe3068789beeb45da554d7ee4a26b1bfa42d41a8db1ffb5f2b1cea691e70cc101ce199e27168cbb0909285b4da1948b07f7c98cc218d8c27e083828c890fadcd9a4b1294716b9210169a18b980c5aed5f74a6247fa1da42339ef5e9407744aaec9074a525d101fcfac2776ec7933a1e9aef7df1d10485eca276db2c5e9aa17d34ae909bf9cf46e7ab3a153a345e6a865ffbf605bf280540ea79916f121ed4a0a8af4f9da664e349f10719c6d3bd46f220c024dbcc1dec3652889feb193f5175c93459e2820e19912d7cdf68c2c486fde0881bf985c31fdf53af333b5d7ec4c9c52da0408a23670da9c85755e214084a9288c384314f00244c1cd61799fc7996101b1392607dc1d002c1c22fd0c5ec25587d809ff27506e362112a5b0c20713d8740dc9e63712192432d12196c176e88834fc2e678918ea132428eea2fc7ec74452460619d0202682eb69c529c6592b2e68908f8b86eae7cf9e1e31e1cd50782f1a1eb2098d87e4550e53f6bc6f02f64c3a09adb235781862c216c6419997a7c104570e270663567e919159d7eaa20ba08ad8bbabf076f2106ec83d4285bde40a29e8588f385880d9d4b895837fd7a75bb0d95042854082cbaa016ada2f03eb2c4f1bf47fa3ec9f2fdba914f44e4e15cfd2d8c71870d54a2a21ce074b0a9008a845cdad8bcef9aed9069641eb3a74d5b1666a8e9c335a0bd5c1b9ef719c880b635eab634c9b8ae68e89f0368e95f2854fc68cc167c27bba9843d9f611135bafe268e2220f861f1bfae735855c89352b33d7274faa2b49b36c847bfe92f2e9a6d29c29079bd836d7118f7f186610c981f9ff31c4ca278a59def774ae81b3b24c4435e9b9b63f164b6265f79dd928a0de9219d23773d3d86a1277489749c2c480279fab0c689ee849b971084b998c94a209cdc8acfe8aa23d3a3256834eeab420c75cdb0b7139be9fcb997f029b4f6a0564a7f3bde998dcd6e17b928b1634618521e077fb085f29c0e538730abfb182d1cd475ee5091962363d338e187f8d638726cf4a6617bf181949b26178cd20136080f84c1d68d3155973c97b62555caf0c3d56329bfe58baf226659e44e62cbb1e5d31a0ef48c09ca9f3573cf2688e0e9912340a23de2ade1d4095cd5a6dfe38bfc33563db8dc8cde29a3c6ca5f2529df3f0a218390ce04923ab16c1fdde53c98f0e8acfeac86a07fb16b873684d682b38ea533ad7462dfe010dd01942e6fe314b020032a6b14125e74e22fca92d539d33d2b731fa03a18c9a36aac3ad16cfc1ff80f92d28cd35c621d2c5a3d16b08338e13c585090e673d4d611ab21d378b44ab5e017993b4333331d017a0a68bfff4f7917891ea4980cbf65893420bb3285683dfaca34e9d8d4424ba8e8438bc686812310ea603436669c798cd8ba3da7dca6df265186f75baccff0a0c76460f57ee4470d5efe5b9d470b2d92addece0c9ba444b073ad95809df5615188b3bcc1d24d6f72aaed8e3c3d267c8b816257253f968e9c3a86eee2081dde068609a307cab6bad3a8215fa5251f15a9846b03309f954413833f2f2d23c9cb66502c74cad3edd5c52b3727be06db59b1503d97360c502915f274473470b9f11e62ed2c361a11075e60404b92c231bdc07d8c7be73c10ff866e5c23daebf677ff2a9614ca11928e5bbfcc7e5ef814bb4c4cfa20349c82087e687837d04c297e4beea5783f80483ab7d10763a84313fa9e7c8ae0707f008734151542ae738573826262aa164277c42530e833aaec494549f5ccfc97d48932de35114dc5007fa86993241f3519a171b3b36845b78f9c7b4db38060fd6c3909472ee5e56d0c7ab3ab8ae4839ae3fe12d3dc2e0666d635aa324388607346a5015df19b047515aff366a862449a1dd876bcf273b3db445c4ccd4e0b46720cc5928ee37f366b2828b48e32d6ed6633f4425d7b0aef8ea1b8634fa1a50c257e818d93dff1b413c3520f38230dc46551266fe563d983d4a4fbe0c538dd7fc646efed7a36895d6f6daf514a92dead81d19d143e0ddb047db67fb8228b06acf3efd941bd3bd3fd2253d950d11f533187d029cfa9e72ab59645d17aa5c32f5819d2c92d58c097d007cbb4815cc627331518d183133792afbd9b73af326ba568647d8fd64852799a8278896e83569f85e90eaedf43f3a0d760ce2fc8bd88d45bd2bc704568515d3447f6ea2859a8b1156cb49e632f20570e20bdd60dbb86bec2ba46c8e1bfed2dabf66aa71f981033125a3196d8a4571a8911855934c604e4c1ca65abbd073617e85e30354f496da6a53b6d4176b8ca311326190a4d819c39e29a4236685d8de30258575a729a5268aa4a4d28a1433f257cb1d424975a499da7b0702b1eadfbf47f46f216239444d9267f03c84572af54026fd4a9e0391d578028f6acfa9ec3097113f1276dc0548341bcaf9c6b180c715e2bbd521197f7146ac22502bb01671c9a10f00ed7ccce87bf0163bcdf414f0d000c26818b630705f754b05828d5c445b129640b30de7a068426dc51deca87dff33314c0ee7fcd5c594f93425fa9831e9912a4111ccefafd62647a9fd5940aee8a5a047c7488b1fe06d34712f9e236bcd18b6412aec61c2ca6ec47b28ec99584e6035de9e20bbeb22af35518e2fc85d8371b3eaa1c4fe6ef4117ad8584257348ec8f18251b6c8c7c538511dd957e7c515108863f2a43de2f6c974d1a43e94f08c6891aab6dc55c377449811e96026661a0adae678cc234d7708a6d46d29d6c71400126b99fcb73bf0e9f8481a1d5f861eddd0a1e02bdd46f19aa506051681f248c173c28263b2ab3877f2e5d8ac8e9d8a200f60620199f74da8585a7c3ef3d9fdeeeb808bcc1767432e0bb49ad728914950e26d851a3d629de444fec288eb6102b4bae071ee5d1a2aa18341266bc86f191a833c892da29722a30c371f5eed21b68d9ad1bf4f9db66bb727bcf8fea87158cd8d0cbf1ee53aed7ce346df3d05d3cf2e1e786111827ae5a3f72d7c04d90765ec8fd5a56f4cc6890fd0c32f28faba36397c0da147c4f6b4694b244ea6b1b33121280b2bd5f3f0f8cc41cab50d5470b2e2f818dbfb151c18e06005ac6f31de4e2020490dc802c336e71784d6168b2db1c9a1adf498636995eccf0d92f1912be2ce778b3469a08b888c4685887f1125dc466e49dbbabc34f9eb953aabe14233d3045663748cfefe953fe211725da207c8bf307ee2b0937331f748b01b3c6e631e649b61fdaab0910521069fd40a60f480425395083284c4e3c478e72572dd8d556c667fb8af271b63633af7a9bb4ea2884a063319823cc300df4a86c6bc4a47c41a34d8197b39d776a6893048b05ec23ca8749b09f7210503c5341b9320cae261758b934f1e5bcc8c04c87649a8bca84e3399fa186e935cf454843e69bcb8cd8b119d06fc3fe7803b2ddd110466a5b78efd0a75bc820e95a1dee998a88451c772f055af9a855e798a842745ca8205e1f9d61c0022037bdb4d7cd789f557c0602a48f38ccb84fcda371fc5612658e06bafb791a414ce15103ae2d7e8a2792d0e52e3908c6b2deab20ad9b2dc4fc2e16bde57be5b5238b74b00074c659122d8a8b438209e44d15395d1ed0b959abfba0edfb60d4c0382faf8fbc3aa09603c85d895eb929b81da1f34a6bc1c433bb12aaab7d95ad837eb9ba66652667f1788ac98fdf8f5cf591fd338136555d3e458614beac60205ae49c53600eb479f23ee57a815e760d36b0da4f66dd9c0ab39a89c57645d4d9edbd0fda7a119b6475cc18d8e36490f5c9d5e28868dd06ddb13caaf6d2e3cccfb9f7988be9f86a29a0c6886d927164e403af2e775c4e5af23e80128b4beebb9addff5a7a9abfaf57c7aecf754d1be912ac6e2807dceef5fa271cc0ef3624fe791a74702baf9471475d4119c9b3ed32bcd25718e639878ce30b1f3dbdfd437d9818c93718a04fb8d360e6ebd32a76a91ce167c9be76898f283ae3bfc6459713b83274729badd6dcf5308677e6c88330db460327a581f4c6d2abee26a2a2406e6601ce2cd21e9629adeafd669768862ec55d493fd3aba0bf5c7dc82b599c0544adda288f677a52269205a9a83ee6fdea3a63ac8558a5714ee7818af879c0b134ca32c89ce422f01bc887c45c7e511216d53db1b88d30417951e0806f5074c0f62b1ff892e8fd14de3f0849fd0a5691c35e5252a54b39f28035ca45c6f4c53322728a24ada65bf6d9b2ae96a32340129753aa0d4d698d9ed5d83f33f4853da0b040e23ea1259420638429e00ee0149375c68a4fa061d23aac7409c070a1efa4434f431e394d83814a49be4b3678dfc48e89ba44a695599169321bec3ed7ec7164d57fb77a6ff2e02df3e600163c3f3e4e9ab96802c7bf74820390535a3be47447477a9280a24da30482efe5df0cc79f134ad7d69ccbd2f7e348d069534291be22022fbde7c9be5d3d7cd31d46ca2cd2bac5980981de4c695349e78608d706d35e26aa79587894ec59fbc1264d7b079a073502f0cbbc7d6506c1bfd1e8ff1173fde0eb820a8483da662c95d803ba284f529c4e6862988242aba357f80e91f3c3717b3fc5a0be6dc062784ea625ce0a51657497c82b503e3b6f5adf9d9f1a3a878e556e7081f6c8d323b4900ae4671a9f09197f7e995ac798b9769f999140688accac352a4b68b6eea0d86ec5115910acc83bba08a45aca6cdf916dde3c83ae72e866920c296aa58cbc1cdd641b0afe44f61351587b1a2765d73f3952c5fcefb2c15af1ecda1b56737833a3ea679484630d752a1c16ceab7d40f6325d14b042fd2723f005d8b7b4523c588387cbf07a951579720ec58b504ce13338e9876a712f4f47e6a6599b2cb593da4341e6f16918e6d74587b9b8b35cf9eca499a643f5582c196607b4fcb0b204582f4a8aa43c7c3c9d471e2faecb4c0801b8dffcbd9c6c0452153814029eef5dda4e669d07f30182e3808b6f642a3b5c2222d9291c6827944529f99d05d81ddd4b8f0cf437eeefba6f4fe3fbc2a70f85e033eddb01c6d31e84e6b6fc31325a28a85866b2afff6c2956246391f399758dd9b82de78d978b4b7647d9e80de626758edf7a6aa8281ce00407053a23e0d465d612a41d54ee696ff36e7e84b3527c1b6e48db4f19707f268cee3f262febd03fc6bdaeb69e0d8307ee96b6dc50cea221285818faac57739fbdd6a38b7215963083fe934c3c58e9a147473c7a73bf348de87da595bceef2d1b7772b2acd4986e080fc0d83b91633af808a2796778fb1fe08b7bf4e1d882279b3167fb936f8c73d45c0c98590e94e8c42da24873ec793b0c9cc0f364bc3804c5098d71eee992a9eea8de7096f101c5d4de889a416d160f1c8423077efd835138c27b5a5fa5a913062cabbf7ecf4ede3a5e19ce93d3d92d5cf6a7d4195895caa7cdbf18c18cd91cc2c8c5085b29bd3c97f63e0a62c1f6fc0084109fe7b99c7d771fa1d9417b918a3c9f59d25228792590f80c5c79e266c0355332cb74f954e2740b5a7c2279c2c9ba5528e20629d95194b0ce74b1169333611721bf61e6640223e533d97e1a40de1200d7402b145c3767c4e3521d48e93e72e20f8f5e0750970f64d5774be2bef95c3af3987d3680a247302c6c349b517d21d60355326761c16782a227aa62cb2c5b7267ced9cbfc069182c1d47eacccbbae59ba245c1b54323a928407d7292eb8f8884ac7f8bebfeda994b60296885a4b9f4341b3cebae4ee71d389d769f35c072732cd9b8a67c490c7e2fcf26136e4e8569fd9dc8c8ddde8b617bfd45f764cac2c6138f068329127662f56c07b45015fb155241b1df178a2bb4be22715564808af2fe54f8736536f479a15246fce52c9a98323051388c4fbc9ecb076efb64d20b8e3e5e6927c335a22a6d1221a7f4dcc88e940952110e49a32c90a53c4c76c329ce65a760617b7b8adb5a51ea97bf718db251b598246f3af42384c56b786c5637921ad82660a49b96ee4bf5ad50d1eb80618b94799fb348888477977137a97b9639fd68734475eac7bb99819a0f7f7f722401e2d3c25f71be5f1271a6af13c47f75e0cbc5d541c2378d4ebedbee9b775bae817cd0666fd63b4a1508485984639fe8f573898e2a18ab99abbf20aea58c38f0ebc62dbb8509a4b7a0d7d765318727753ff742540b40e4e92e330de79f1cc04968783671fda5c6816ace29a0df4954246fa5f0028910455f7dbe6396aab4a3296ee4d17f9c34df15863fc6b53d3f62624d79a6167db787b3b0bec90ada2f5e4329e8371d9f05b5970d4f3ff44447de6cad468f1d42041710fe6671f7d4f6f76c0bf9450b038fc0c8832078a8880553494ff3c76a1735779186993bad5248da22132de3576ab5a0eb84817d15eceebd296ada906cdcdf5259b775eb65292024658e0bb9fb3b24fa26ff959331948cf7485018e8801a45c74b29713f876492212d5481504820b7d2e70acad983937aa72a69ea41fd5b17136e6df7a79b6af6bea47c1d5a5439f269cc544c4c5f6e2e3195ff4351ab732bda33598c5402d115674b4ca2ed069e2aa3e8bafa966fa1014df7a29ba7c3733c7d8489d970dad0d16cc143208fec60aff0a8d2a5ee62eb9f44bbe8a0f0fb52e48e6d92623d3562d7d6964609733f883e7799ee4a778329067699b4d5241b0fa04e1e652306fc773204a754f94d3da40803c5255b9bba38cb11901700b7423385f621c87c59ce92b342034f476ad9c347a7a7d07764fa4b76622a381e360be44862684c2383dc3eb5d978f004ce441f4f0d4c06a653c16b8e36e5f0f83f24c9b030fe517eb102ac310afdf8a2c47bd871516abdd141e998728ea92743a1ddd7a677c0d0d704f7be8ac18aecdc6a7ae14548e1d57db2cff81f073a091315ed8f44d4e3777b3130e6e48a8b9cf95764802775fae0046ed7a61f6006c82b14decb703e35e4660fca9dbf6f84c77cee12c1e0f2bb52ae4f1ee908332252c7949c505e75ab7f0d1cbf6d0821d849b1752988b8ebc3faa45af6a59a891ad478a28462b7c4502454e5e342b418d18d4fd1be07d081ed3f8bf1cb2636e40a38338d369505f86e360577b2cedf39d3c23401cf859a6efc5a15f7499e87f7b4e2d7111620f0f342a0cc585751e5963d291eb3f0d18bfc8dc3de7c98100eaea6cf676882ee202a0cc093f221e04159dcdef10e2e993759be1792398cc507d85abc68f8937e200de67580b482dc5c960fe29721c66fb2f99b0ddc54b94c4950d86a7e62eb89e5a4404f24aa669e9cf88c7a9a670f909e791405d4bee9195da40dce32876653ff133d46faad8961944a0624a8ecbb077a15917134a30bc785851c2749dbfbb4c7d9339df461b4da4971b6e87a2056001dc018e7b47936a56e9a2cce4c7243b0515cf9c8b844861b95c38b131e8edd2f8986bd336ec6e18b2c239bb97d8efcdc48cff6fdb720f6345951da1da361d2fa0b1a84b04335bfb74af0a1c17d351f36e423cf09cecada32d573bae9609bb80856a1458e1509d627ef206bc7b3f0848d5e29ce33e8e56f65d00ccaaac594339fcc7a81855a01ff6d1bd8b4a452ea090c5864f12a613fe3b545fafd11875221268e7f4e8a260abc5f1a84870c196600bb3ccc5a29bf483bad6804a305ec660063d30a0730e4445b16e65f1f87e01ced3a43b607c39c9c0be59e0e1040ee87d3d42c7b13a12611e5f11265a3bb14013a62ea3a033a2a8b2126486a5f9beac2aff771021afe1546cabf1096cbe6614a490813903460a27cbda55a3923c057055f06adc3f15c8b9ee9737e00e52fc75f004e19e8ad3b52c32147617555cec66ad5c17b2aa1a54fadb482905f4edebd9c038600e751741db6f6b5e340a59641eda8fd674bfba45df41d6aa06010103b9236c49216a4671e594ab5a8d6ef1052c8409e18bdb04dcf1e165d81ed99fafc12ed022e4b48a1e3a22657a4a10f55c57ca75c4f214eb21e99ee31e4642aea7e81280889741e09a373f62a8c916e259e54519ff37c69d24e427fb9f2ce7d78b8785aa8e80c19f789fe1fa7180150352f632eebdb81ee0daba2fadd83c61c228fbf238fb826599302d1783e9c16c167e7ec8fc6d0c3cbd841f0d5d763f7ebe7f708b0c36d2c5a522a736cb311b4a2cfc31324824f41f6f1700550ff48cf0a171be0149e90bef9e58d555c7d593c1c3a66c3661bfff45758823824cc31d92bf3e014d2ed5fd2037f087d385a9caa33415fe4a81eb01ea383b0b90b7fe19ea74b804dfa61bb1381e859610d38b54acd39a7e121bf3b3c60ac0421b5e0aea8e2a615540f1688441b7b8964474593501644af264ef8c6ce9398220e3a2dac7a5ff54d9b14465cc34525eef606db3373354ffe09f0189598eec67b6db93906b7bd7f97668c4c5d8e2cfcb5ee34302d2971b837046e57dcd0d928778cb6e0fa320856c581cb63c14573959c11c71049a6df510692591aa97562033ec9ff51463cb8a65bf03b01db10206e0f66dc8cf8c496d960b898aac42eb5ed4c78653b259a885bda316dc797ed790617ce9b98bb337ac17966a24c6a822e7fb89dc6fe0ffab7fd750dcfede224b3ef52a98d99829826c0bafe60d9bff0134fd1c5c5cecf819d8629f0615d56b30f9e0e53d3e6f6207540430022784206d14e1019754c1dd34da0ed1971ee5e783643b3e206874ff5f904d8590d7acd8c0fe5dfe8868c58477e26d78bf1593ab10638f12fb62a4f8b4acd4536d5b122306ace40c213d82b51123a5b34a7907ef04cc6867fad2351e3a8239d801d877075357e8605594671af50a145f6b04201353d6d1a371445febd323d6e41ed50880ed719b0e549dae515106095178b942636f1669d56a91f1cbe9f339e049af6ad004a63b9a884ced1c8e2e9064d84f2e9e7fc830f7c1d5d0feeb411ee4607bc797b2dc1fb33c3311ed1ac143ad901d9ebe9c10c383701f3074381b61767f8a7be2d2c95545f39939ad3a23b1728e08f5b0d61ce505a974573d1301c631e97d80e97b1d5cfda964ef35c3a7c490b01e530cd4593161ddfa0a9306700aced82bcc1d6da0d48b09bac18d7c241e67ae5612d623a693f405e66ae9415fdb5331ca814c3add79c78a237165a134db4c86244127896d9a7aea5a113ba80ea77f104c139b51e52f2146919fc9cf6c60060b3f6534e01f5624fe5ac7fc09f35ed60dc5fb309cfc9d1fff3de3d21f277dedbd847c3146f63c7ad139aa3738f04fc1f6a8db508d28f08f4df5f6efcabbeb54cbe44ccb0d58077798bc5496fe3e155f3e1ff5422436f45b3db17148fb1020ccaab9ede04adb719dff373ec5fdaee802a4351f60c5f7ab088536df68849cf741d47bd27638e0b4314ae523fe59d751154e5716810156b8834db032e7facc75b525b87a0efed5693f13fdd8ff5acf60860c3a2cd2d2ee0f9b075fa330c70d80d04c3df6a91c6ab7a7f04794ec98fc5cd500c90555510fc5b7c63e9fa18c5b9bb080631462d86129ca0161b74f6fb993040bb7f3ae4c3eb65ff3ff15ec8c3b5cc9195b1c5bdd4c7b126bb70d4faff57c1e633aa72df3dab4cb3abd6684a51db5b7bd90e7e896a63ebf01b3546f5221711d02131f36bac35610f992ee7638e5f99a3a2896b80d30cb31cd0538c33ea70fec95e8e815c4d1faae363f05fc5c650f6cae03b7872fe9bcb3af06fd6cd4184903b4a73d8f0d11a915b752f717c0534043249b139f5cfaa0de1b18d6cef05ba5dc5ddd75e0eb9f2cd3bd34e3cc9eef00f786f9ffc1bcf8d300e545378290d23507fefeda71ec34566de689256ad96ad3e23688ea83567d99c7c1b7fec31663463eaa0e9b6d5b6eae52b659ac47765e2f769cd1d09d190c96233e0f00e0635ffe1e2e5ad0a9dcba27c3013a23711c4403b9bb6dca9878c30b0f53c1d8c16abbe1a00017d4f122727e19a7cdf4dd1277ae1c7068d6053849f6a9074a5477cc6f436511d331d150460ad6562b6d3355187f84221b6793694e9cf8584fd5c76a54e8463847c8c847e87ad246ed0f0ea4f3c21cc8f870afc9789f43c29556c745ae005672206d903eea64f901b0cc37c59bde3ba8cc5bb1a095458e112988a82e258f8363c171704b242f7216219c7cee80e3f99223f9cc3fc75f84947764f719e99cb6a2f6de4db37158ae624c5c0dab494e51b0180aa1fb8568d48d6ad875761e89c6f7046efbcac6b3611b61e47b131e156ed775489f04fe54ef9624fbfc41a655195a51edb2136fe151b4d41d2582da2a286521c52edb0053fc54439441ab18d858845a3d152bea2247cead5a3dbcf81c996b5bfe56b07ae0f8dd9848d8135ba99c4e985364c49f28fe8b8ed3729df39f933b71e3e65e4f8097b40dcafc0a0138ef1eaefd26d108895abb7e9692b0668f00cd56257d98328ef8f205da530a3b7c00f718a8a74950ee16048ff0da2c3ab92c5852de07608cd760082cef04194977fd4c5fb6cc99e055f5241af87f4a6460745fb110429d3c2eac368950ad380146f9963c38068a4317ced9be65ca63b66c88d64d2219839e08c2752ff9c95d8f301708ffe93b70fe90e0a7fae412343dd2d434812941e35926150698505512c57736b72225204770bf569215db25031dc244217ad27c68b0209fe4f077a4698532d0138494b10344d876b21ed87d06d23b3143860f2aee6edb4db9aac731ce76836d662dde52986eda249be1062821e508d8f6aef5819e6e054872ca7d3df92d18b51949195953961b177e5a479a6bdf73ffbc4db55b7000512a15d471970223257886cd31781338d5fdd71068f4396175250a7392bc73d62648c6aa493a10cb7d2f004d3d485fd370079dfa435baafd073c1474c262b432a307107a9bfa8461d877c4cc1b95b5e6b94dac0284c88b4113ddbba7960429371e96fbf337871663a370d37a497ec0ece0356b2b11909afc50d0a601d5225a7a0ecf0bfc49ebb975982157837e65e89e53e3aafb5b38c979e69aad0da13e4f7b1a1d75c91681da6d7586f9f42588a92f31fecd9850d792910858b0410791089175f69f85ba6aca1b1461a7a00306eac03884d9c5f2e92e14bd4630024b9a5a5c20bc0adefb4bba95032ba27d02d317d9e0c2fa053c768300f927ff81532d22a9e60f21f6c623c0ba1ad03588ca7588c4f0e143cee0a40694eeed1147b8bcda10c6ba269c261d836677e1dcf49f52ed5e16e6befc40c949d8be8aa05a28a86a3e4ec0087705422f16dc112367775df422ef8246065bfaf8f4bb0266f06c477bda2429ae0502d54cbe072454961ce7f03bbb35274b20678e50d2ff42177900ec27107a8197bde3a1390c46c76f4d4cc116f254f455ca64d9513a483f69a368b3493b209d92cc47031230619f30196b514dc4f9b9b7170f6453ae83c6b518803b038b58a5b4e9e2afcb1eb632e4a831e0b0e6ace621e5f7a14c97780ecd24824b5034207535cd0d490d5b0c038c215f85587a7134a6f7c7759786b6cc2304041a5c9606472566a3cbab51b2a28c7de13ed07a76f4e06fc04b7816275b17a85160d4fac03fb30d66b6728eb6b962fe591c9b07c7fe2949d6ff967a04276789a38c361b8f12a644fb7c25ecc509d942a56009482a6c63c1a879e81fdff87612c2b0ace4a20a104a0a9e4f5b613708b7c79695c16234f4b579da5001a0bc188cafa198c998abd684fd46100c7654040216c641c370e2a1ac9506f19098acc1c84c7a47bf717204a25d321a50d8e853edc144c9acbefbd2b68e60573238f391d595dfaca501225cc0d65431be17fac03c86c85bef467b4fe2dd48dd3b597caa931cef3f5e79a9b77192ebeed808e068c618434ae20266b24c3e2949244f7dd4f2d88a00c7848219078fef9fd410f558e02d1d2172b33e6bdb2383c211285c2999e783c8291b5d1f01351b69133a3a84738f267777ae3012adefdffcbf2f25a1439f95e7446a3d258378cb1926d20eb6295c0a3f4fcc3a59e8366f3d30f6e32f424897266bd8d559ee491e15deaa3155934713919dc1504a5369c827920a57ca2217e66ab24c7b9c2263669a83489a4868a1b8b1a6422b0166a54007c34b366f4007ee11db828a2797291ec717850786ad9f1e67dd733ed9f834c3136317174ab9fad6c5b1390b29ea356028d154a8b2fc84b2164f5e38c7fd2bd05b0f95ce3a458313c46532d53287421d62017bc3d4ca18224493aa74229506c1491a4391bb1b512a879896e4a4d0b247a3c115ce3aade1d228446fc49a06c72b6fea9aef3d5cd8bff735e602762170d2fb0682806ca4519f1297f531021503e18f8c24103317222a0e4c3413de796a67d1d6d51bccf5826237ce53c84f090cd7369be2204a15edf5f22f1c191f872728648f59108bc33374b340a4123a71bc2ba40284bf8b10057241eaf8f03088d8f7464247d31a31ad29d40f88613dd5a8d95c1f026517158e96af2b6d6b2c6c9c34d38a1718d62f9b74b65591d41d2f4b148c72e90dadfaa1efe135199d9f052db89f7baca5e10621e17fd998670121fc75089bd55906d09bc92bc55a583a4d1537c8fc67c373924b0a0d10b12905017cc50d22366b571df4a06fd20aecbb1d0dedf3d39820d4f8bead73d7278b51d7c3415051813f0076df9afc2de8cf97b697699918b57bde13665305e21c397183acb835057c9be59474355c53811c1b450e63ab44e480a181c2a4c883242a9079bc0cf48dc74b7e7c75097eee617c30ec738f42052e3cd8f0e80c04abc0ea12df2079a945164dc2c14989d6ee902cf4f6c03d4a2e43842bdee8dd822810bca2359f5e760b4ae3b1157a432c75a3492d9b0da5950400612880cd82bf9de3f3ca0bc34421dbd7deb7430cffd902aa14df209c7c114718d5d616a564e4922d854d668a55fd3b6312ba87a599c8ee73d7a5d01bc6bf73f33d87ee01bf2c406dfa6b07b91ee61ed13a6adfd466ebb2c17f19dffeea66b5e5ea8007cc1a0e425b255db8c7f15c91be41f0bee3e2e784de46e61ee135fb06296c2e4fae003fbd1f229c495a3691a6793fac8a2773fd01888a8fcfffe90e745b4ad155d1b31e038d6951a59fb939750ae38fb8c2779716e38027c528baf3ba7b88c06c90679b0884e2c03b30de6b770ff069da96bd3fe83df2d95c190d15afbf5d653d18a6d52279c5a0f770b4975cac7790b248592a38ebad4749351c12990ebcd37a12ba11b71e1d96f37c0fa8b830e94e9825e9ee114c347c1ac0f0354f10dddb546e2c73f718631f5b163ed882de51f869b1839d1618ad0c0c73a0689de792e766e45753e1e89c6a78404fa62c6434ee1be67d009ea7d4969c910a8937f946578bd3380e1d7ef74eef2099892b1cb4b8d0fea0ac9501bc65eaa16855110381a108ee0648f1d52b07975eb3c6c191576da32660fa1e12db22f2c375d6daf2398263a3edee514e8cb82439d5227ed40195e1414055d3dd83c86d091f001725670b74507fb97b080c586421c8570a6694f3e4da3f02c41e565a3f7ce80e7a12e131e3440252527799840e4e0aa6b9f02762d876b0116821165f8121e65a2d775518cf6e128c74e42ba92832609325c3d696048d376e62006202fea1087c3bcc2c01e840075d1fe899792d3790f921f5e6df7c366e350fcf0ca151cc878ccb361d84ce0d6680fb724cdf38330e1f27db87c1b1e6cc1310f2d109d3871595b2fcccfa78579b07228088a656bab6469255770f3848343be7cc6e58cae18a75a916f974f1a2a39a29353ed105b99a7904fb3610624dfff3d3cd9f126fa2281a951416cbb91c6e0f1f1a774d349529aa03ddd362fa6c70c601a34a9b9b4848492c6f5c660a03abdf8c1a52de622db95118458a6d56a0860a85780c0f0ae2c025b89f395e29ce4911e268126a9518bb256ddaf74f67bb52bc0a6d36dcc55121e6861e620df8964dcc8a25f82a7c0604f45a03c79dfd19641a9c61c5fb26c6f5473c2e4c49a177372372f00b070de2a0f0622d1b308f86bb8ffe77f92374d53476bf6caa1dd336c89c2874a61a0bf8d1bddb68a1a5f1c2433f87ef5cfc47fb75e708bf432bbc53c5286dc5a9fb56d92b889674c7022dc7fcbcf83ac39815ab4ab2109c5a690ecea8e6973f3bf1bb7c7769dfda0ac12748a95d0a94b0f5904271d061006303116720eb9ab1494b7de670547ce1b7e8f013214a398f72218a96249a7a734d20786bc01ae478dd3901b587481b70b2e38af9b4546c0fa1161629e1b9559a8bfb91d3707a041b20d5029d8f84ed21ae99fb9879ebfdadb35cce060a1f106db28f46a4a8e856078a3ea01a6a7fcb05a3e7c0837915efc051700ed71cbf663d0256c3b0c2949cbe2abb61ffca16f5d09f9c4332ff6a6cebfd31decd7785ffab439b2f58e24edf1d1a4fdd8097337cf0e67da834b39d6f7db229a455f0420afb26fa641fe96fd7c0fffd42564f08254fcfb2b0e94e607b483c3bba53467a220e82efe0ba9761b3b2459562ed742df7926a4a31c8cee3b1c85196923c3dd853ed61205346d80320de7280644604094eb51ef8d96c26729e5462509e557594d4559dc608883ad25cf301f23ffe2fff83f0fee23305b59c03ca852b982177c03b38f6784769aa98107ce8b988df9665900a10f482a0411f4af72612ac0bf08b17fbb2a1879fb56b89038c6a500a11f222428b3ee47dc221efda4e09f8d7aca045df3294e0906f6587c4fc6b5ed0a3cf6ac46db0a94129a4b017012dea33e44ff3ae7c6a9eda801301af1458493f62590ad1ede19239fdc4736148842959d7984e6714206378bcf240d3f786e355119fcf7bd35740cc765c1facf1b552374d1e9fad46ec5cdb46322bb36a4863d3b336ed4dcbbab4330d6bd2c63459875481c606959f8f1197fff4bd0da9756645389e30a9dd8c518439d81a6836a9c3c0a92fd4037cecbc1c0dfd6d2eded5c1514d1c5cb88ebbd28429e8bee887e16234dbf12ac785bf56c0306b4c37f2b677968eebe48ed1389540107fcb262f188e5d4938316331c45fe6fd6611d25a38faf8c1ee5f4a8de24cf888e20cb0784ae95c5ef8cdf40d7eee269b3332b1529efe7e91cc09a76f7cdf2c9585c88c82751b24cc9ef5d6967299f836f1cd3bf5f5dcccd89f6e6867d0c73f14d21368f95410262cfa804c9f66d68a4d250b19ab47d6b5c8e9479647e3b43b4d728ddeef9541b6dbfcf637654c6d5670376a7be2fce9f51937fcfae255b3a88eeaa9f76c1fd2239f8f0371b1ebde98d8058280c4ed161269ebd2d3c3a62271d1e7992d8b219756bbf399e0c186b99e8cb245c7b78c763e22f4ba32772db5e3a2af20a74e2b2f4cacb871b9a9b365787e36e6bf870d5b8655764e1c8bac9990fa6be2e0ae9cef4e5537126af2de8df9d45be11b5614b6a080326d4f9d21ad95890d7da51f2ead52d091fcfbe2dda40fa15720a302cf58c878170b22ef4b1642183189314a10bd2b7400b27adaf96815fb5c4c7ab7e093ab28a1b8018dc64129ea444e1046d19d7e35d8482dc15113dca6dd9b9712e7287a2c6c52e8d8cc11d3d24d611b17991fd92324695fc836170a5c81fc697e232b297c08d49e4491b74c7a571ce97ce3f09759d36e2d7156134ea35ee5d6ec8a8a32dbd88f75273a75013b203108594f56738f43404c3b6cba97456be2d0982b8647796126dd9969b4d21f0d242a16f7516e551335d3c041c08b45c0d8c486dce28dc0956793ebc4699e288f402b01ee2e0096bc97a079701f7abd3f65c88b426c98b27f292cf1d3cc5af202962db7e5dcc31a6a99ffb5b2e25240747be45c82bdb5c3e0a621bf3b63e0a6505e735b638dcb049a5a86cad92f640ce268b67211f11fabae30134f6d6f3e2c5ac19c724f4d97b05a6f63e7db00f5cac04aef8fe1d47144630be1b0a6300fba0650ac988b1e0f2125b7fc2b7a001978627d51fc57d33ff81f5393827c94c0cad9fdb26a814fec8ce440e5982677c90f75b13ae1c2e30270c35ad8ec23ee44b24b9461c819c3db9e6e645d9745aa50826cbd2dffd371c5c308f7eb8c38e50468c8cc8bbe7b41a74348b4f986f2234297bb94c7904e53f005a2f6cae1c1d9c3dfd3ec542990ba717ef2658e5a5f8ad2751830ac1a291cbcfc61f4b3b2029352ba788c5b61d2934d4167fb0a2dca383458aeb578bc75d95eaf9707128325de4f9a47ab460e613134de44e744cfee83ee002bf377558f05e0bf42972280a3a6f98594d535be3e51bad64b59eda31f719bf80b7b01b056ca4ca601ca5792d7168f0d7ee4ec58d79ad99db65b526e888e36fc865e4ed1b0cd1351044d4b0acb997d0b6042ac53855eacce524fc17139a2b193adfc4e204fc41cb396a8a8e274f3cca9c43af7596fab104e33a1dbf944f0fb03b0c4b994c615862a2c12e47d3a95a4bf2ead7f8067df9acc19c42e5944a41d567311a42f351468a5bb6525b0ec99b436467f3a2da24f10d310026986302895880a630e374a8f573120a6c38cb3528fd3d5ec5713478ed242eae62620761195170b486face382721504c23dfc6a1c7010829927d53bd9dae466fb1a2a71c6e57b95dd758362f0244c93f5a4973d45601dba15803bf5769f27757405044c398e9c8e2ba7f3e8ed38723bef1d2fbe71a9cc395011fa0fd48ab78f3058cf8f029309acb719d84285a0154228e4aeb8d9f6e24509faa1195809524931599cce511cf02d7001c4810aaeaa65dd8efea21a0fa33e40453ff80360a4b1f691cd3d8ea7bde28124b45a12de95ced59b9599878b5c92f68cede40d9578f8f71b3126c3e18954570a7e539748d07bedc10f3f1900efdf72786f3ff2411d61e6f1537071bb453900fab0e79ec91a6952776bcaf8e93c21b6d61d686c58bc0eb712d1f5426820388bf6407d10cff61932efdfb81f627c43f0c36ba711080c592d7ed6e31059b9579af9e8e0f425432055d3007478ebe97e50b60a9c9f71f00e6fdcc307a644927471ec6c6e8787e2b99cb162275f9acb0e7f16c1fa2b52d77b8d2c062f9c80e75de8764a3ff366d6cdac9b1937336e66f4a679263e4481bec86c0e785b1eda29d1c98f7f329babcb43f7a7ff23febe7a612f4eacf9e6fe4d0bc52045113ef7687a85891438002e2d3d73da0f2aef7356cbc3a07ba93d2eaffbc0674e2f325fdcf0705d0ddb0f26fc1909a12fc0995f1fa53850d09591851927d7d894c5db1de2ef0db5ab5c26d919fdd16b8728dbc8a00dc2cdbb076f052d8e5b663e46b1b7f43cbdf541a0125663710da7aa685770a605bff7dffe36cb3ace3fd9c2b0e146fc0f0cf06e19bb610fd9807e0309e83c1769c1898c8251a9fbe0a45b42c2090254d0a5c6c97d78d13564c537b79e14075fec41195e339643e6807c9698edab307504df2171b9d5bef0bb4dc79a7d06cc5ab91faae4ee2e6427a5d4908e2d621591f474e73eb3eeb18a4bc23b061fa8b0763ed9b05448e19c398ea5241e9c89e7e4b171cbe2ea9ea114bd6a7ac3394e75acee8df602199c818614a2b596aeff180d92bc22fd19960e938cceaa749f33270bc7831e99858a363972e7d529f01ac14edb3abb4ef4fb08ca9b75fa35b2ef8f69fd6a01f44229c477bb843738bcedc1e358e9d7c1df809fc0dbfa5117f885b465eba31c9ab658c5bc04db2277d5335c2f86e90b0c3f7f66ad94cca51e02953a13e62eb9b51458f453aa99dc4d90dca8daedd17cbebb09c6223324b9cb4356fd6c05c7b96e0067484ab3d603354424586b95badb57c4f59702d91286a89c629fdce31c5b4af1ee26481602c8be4228dabdd77f969de835b3ee2e739539ce94fa74ba55a276f7670774afb08b4b178b9e6c461a3ca5d4b41bcb9c51ba08d9ad009ca5750671b8389cfa54ee2f3430253877e35314f004bd46ec03b3f9fba51c6871e8581450629163fd433681477df3be5de2f4eda6844c5dc080f021f57698de3b2e6f72ebd305dae103f5da7c656d3a55fb8715b9dc3dee2559915e003d9addc1082a301a586189d9794b7faf22081bbfd2350e6ce53ea3a74a1ec16a5d6fafe436ebc73156e629c0ce696350c7624538cec6ad799ce221eb26eb549aaeeee78ea2affe251508808e1c5878d53b9a96e2a08459988c802027761a951c0c42b2f5e14f0e67a1f18c2add4a7f1ec0453917d1927622c291508cdf8ad2c652945a26676b6d29111f3c812d999cfae06fb3e815759cb278482a58ee64ba96bb9412e64b4668c96554304205a6bdcc42ef805e0729d7c7278673e28dfbd21d8222e9b924db0b2c30cf6c2893c0f42eaacc05a5195996f697b53b286d06c68c378ac96c59c187d376da4389eb18a823e12ebea94988ee9f69bd6c16d269bd87fd83ce03fc3d9caf4456f0449a3d2ef2f254c5e4f2ea11fd73c979183b3c0309be4af82d0f40cbdf454a732c51464df5c433972380fb3b370fdfa871c51a9881e5b550a2771a874412db47d662233c3bbdb7f3381e0894d30e310a65299112d087876abcaecb50b6070253aa770fcb87f971c4ba44164e6f2ec051cf87b5e9417c44ba1e3f78aaea84a5f87f4fd62eb51d9daaaf1f1015427df054552787473e8891baba02a5672f86b83bb68dfac4a9462c50ccc9488891aeee2bd9800f0f3a234760ef925b5375e4c49cf16cc8370795c804eee86e04c4bd62d9940f17ad4815f0ac8e3c5afa81266de5820aa24aa3d4191171af6836e6cb452f428173391b5dc449887a0564f929138222e28da2a07aaf297f6af455f0d90ca4618fdb88b75190712397cab616256864918142f0e29065d63e2b484e264f77a62b48f0b4796f43300bdc923866e09d6444da6a534ad3ac3cc5d63e241caaead402a9f2f4214b745d303b33ef21ebeea3edde8c9eb485a5267c0aaf09b0e8b968c99cf4bc549ca90e2f63c569aac4527ab023db8512c4de58b3cb4abbc5be08b318d9ecce522c8e19c6367f392f0cd692660aef98ca8cbb2929381197f8ffd86ec5c34c115381557ee376cc8149f0ed1687fa1643033f5141a5d2aa405cbdef35da4ecb5865710ed4fd203d7f8bfb560548399c975aa23974f7a99f600a2ed82556448169ba0f9323aca45c9f2f2de6b46bcc6a9491129de294c6ab547a474575b6793e1bc4e4b88a278d39cb65790603d28ea0c38f3a4dfc414ed49d5979f7de0873b0c69ea7a9e0690263ff338470d337e1d2dbf33edf934143e4d649ae0948a555d6f0433444beacdf5a3f54e795c9412daa0c4e84416418a682e37f348dc2ef39582030ae6622ae716f793bc4f1510642681ca7cf2b77d66fde5b290d826b0858500b9fe762e5516ef0cd8b2cf2903f9a166d3e889fc329e466e406f27abdca23748047914883e1bf3452a41936fb4ec6eea749f687c8bbc5f158531d37328dc15f106fd4358326bfc8eae62fd28d1847e6c2c651d76c6542011999a48d0e8b4df4a70e7cc08883309cdced62567b0a4f255544c5751064b8272e60eebcae3ce5c434516fe84a38ced3ee3c92b01a618c20b600d27e988eec8f79173e006f89bd54805675286f9845a958bcd84155a8b9b240ed7ddd908414dc60d6b043e5c5fb5fe67a08cf2326955044af6d686425386ec4afb997d79090e5607eb7eec10570a41ac419d8c599196061ec360e277fc5d146d1568682e009f440f50a44dfd90387c4dbd2a4d6efb3f19647725dc3a2f1491c653148bdc2b53668f43d3f8c54c5992d75a1bb043e6cfe47e26c18ab33e9f357a82ebb921d55699d72bac81d223b3919f2a07cb8b18272c186652e021f8842ab78697c4065c92873c6a85f63244457c6b2119f1bb58805ba391b59c43ace977aab99099d0a246223c96a5aa104e9785f337090fadc790faaebb86332133546da973eff4bc741d78e9a4a0ac4857a5db6d3b13f26a1401ebe4ebc91235b680c230eed27d9a61967eee999d85d1a4c7290076e3c46e46836c5b06f484d7a1032d70f94039d8943262ad10b0278eb5a46ce060e71c800cd3d86efe3950ee6c7fc28afa48af8fa65239c602822d11e58245efc3d8ac1705605a778187123d9518c902de68b004175801123ac9a2bc12b53f7643c43c7a948f9d61c4e6d250cd47d701eece7cf6da870971010689a109a39b1c070b2d0408c2e3e7608ecab871fb090cf1c58e8294efac5f897131772188bea9205ce07a40bf8b63a0e5d452f26927ac57b84dd1cfb37f52173dbf127db8254a9592c0400ce9be77d7cb95faf4bb88b1b31abe7a7073fbe9348d217cb8661fc60278e246bc5d369c0ef44ff4cf1a662868f1d46814d0175216a3b6139520fecafb8f6e54eba23b50db7a70d0a86468bf739a91b5f1e902a1a5d1da7c695f600e2c4b2aadb79d74263ddb0dcd099365c0df6caf28b3bf5a252d5d72202d56dca986012174093fbe264906917f239d9b87a664faadf8f2c027d5201b308eb7ffdd9c28cbc53d6f9b392d60c1b169435c8cd7f7455539c7854bfb4f69b02977866cf372d521c60a4b3fb07b28c43c24f08c33b8a865c3a21ca82e19efdf9db5423ed0610108d30bf35a191b5131fca233b45e996ee7deb58459500bb7f828bdb4711132aad8e404728520eccb18be7231978fc178fb63ef7c9578c6a330acb2ce9549760e575c319bc8de910a002984862ec1afc7f4431b0a727184d14eb8dbf1bb0a85ca023b4f84aa66c94c30332dff9ff1b3600424338e04d41810a3d1a00b277005428edad919eb0349d2c0d7597dffec7922156abe9a9a2e9523ff22eaa582a48e697a1c811d5c03e92eec621ba7a6ac46b74dba4eb0c466c8f95624b75fee651fac38cf705f1f55d9ffff9d6ad39d194a5b0e853d4e045215c303a0fbabd35b0e3c8026287c7e66b5034f8c224303960d55f43741c6a0184a435289d9b67f4f99db946792d50f432371d57c6d32a2f3e2bd25439061f0d89f5cec1f36a3ad69908e03f1f860f7b5ee63e11d8eeca6db500db4853a922dcf9a11af0785c58bd9893c68c630a040d23c48f89c428939ac7b40b0d2716ba1cfa4db881c22c5669aefef09c149076ccd49b6f9eef060aa8c48743984459e336a9447d3249c2a488041950736f5ea3959068d6d8d7696d4d6d6b109476daa295eb62d937161623e1b9db2289b5f5214e051dc72a04c10436a0fdb90b406784a620546dc1a06337fdf3bf7c317abe25574a6a3fe26c15d520635d5e506abecf32b16d529a418c698f54064411d066c5f3ae95d1938c928b204fb096889f18918003266192afa7fef00a008134815c75be2f095c1a608e804b49f2e1b84b14008895c02646839f24a84eac55530bc494b40dd7f17c354d36036fe10955788b9b318cc20022242fdd9f5da5ca869398e3d7813ae928ae900d943c7c72efe6e0a2f998497065997fb17406c1004f6fdde26112e45bd5492256dd7e1aabebc2a7b1732b82abd8c02d041451dcb7470d96639c2ee2ec9ff9193395a00a6bf91bc1de8c616f26e6f9d547c31991b960dc57971ec0e4bc7d2816c42ca023dbbb440223d9a8c3470fc07dd5af1e1a0cb6a0ca91509c5c78f43a872801922fd267f09240d51290dce782217de6f84f5583c8a63f08c7b22904d6b180c187527c7ab8f4f36abd67f9071a1d89c366074f49b56c79ebf756088b9a92a12878b01616c229f2b287a592847106a94511e4ce003c9b287974e91328275c1950ebe6ce047c4668f77e4fe0d46e9af98189b5b8c5d8739a8f1ff3d5f2208d76184a0fc1c061dc1f8b7fb32f30d1bd7d29b798412fa8bf6102f955c04c8b6c63f6dd6ad11694943486b0f708860bd6c2f083825c294a12e15d1890e70d92ee8006e994517398288a424e5ed4fbb9af96f1793291ee329d2de042607c46ecdcdcc955062127adad5317306324f602ab66bc0aa4aaf228264e3bf56082be977ff311ef41bdc90cc743b4f4cbc3b708d618c34a991a06094e7b634bc6d287f4744c0913535fa749dcb41fca2e61ab21bd2505972f4cc0647a04ae5b9a303273171512bb28f13684d6479f445f398b57d9ab58f5263ad28950021590cea4529a818c27072291b6ee251390e456bb86f1602b804da2820d9e1d158a2713d7774a55b1370a2e4871667fbad731889b5c0e57a94541430f8f44dfc85c4b7eef0882a691b9845726999333bad52a019fd40ad9c4b660b40332cdd8cfc5cec5d0513166040fe64e4b8845c8e32d844cb9e8548bcd853d2bbcd68a9d20b18e66934f0c64e71c79f99981407399d0acc664bf50dc726b34079326e9d23457ee856b7bd20df6a32d71bd8ec93a7b35650f8eddefd2190dd67c4be41d3631b4196d081471b22da94ddfc2a9294738a9d067bc616c11976d425cd58e708bf6bfb2a81a190ed3bf551489b68b98d468c2454e18d415085bb042a8049904b01a219e6b27ea9c6f47503eba49f3f163397a838e24ce3f89fb84726ac95c8e1787b31e488f42c89a7e6583bed5661299b7879abd52b3a10599062c83fa912298841fdfaf404cd02732b9822dbae0d7ed8e78d9757e5ea5517fd09e692f7274455fe578a7417bddc19ea72f6d4b95bc2bceb29412fc742ec3e268f2b1817cf56eddd810452439bbd83033cd060b54829096160d373d3f2935e89ed7e2d154a9ca6e0aff7eb068000fcf9cc2b10e04f18a187b4b6fbad1c0f3c2e5c9c5ad740b8bebb730d4a444f4b8d4b44539410cdd306c5491c416c2bad99b18f584bbcbf2f48bf947d36c1cc3f128f28eaf286fd01e85ade7ae3783d4211efd420841bd61ebb80568f609784f9c3c1a81577981e0bbcdb6436f656376d67fd55ce225353cea5875a00deb2b9e4f5eb5562cb2cdc1fcb168e44f4e2d1729515fa9fa0a59473e03ec49637eb7b0d79a2d3f37e088fb1f65404aafae2f0298c2406314674251e795bc9086d343b706576ec9bb49d0e373931ed6bcae51e79b600a4db24d533918a8a6b43f455b5fc24ff7601864779d37488a0586b0a1511e806d02ba84bbaa69328858ba0b161d7b73097b8ac71d505d2d581d6660724c8550ee08f038ba02912b0adf2bee42a6aff9ee7b79d7dfc17c43393c3e2d52899523644df394fc63ee8eaf8c6fd0d509e4d1a0a10ec240b638b74d5af5100d7ca4088243368e5b0bc8fe59580a4cebe7cb864f9dc353d52e6c38d59d85e92ffba188187b481b888743a8c0002c66aa7ba2346db9ec61acd804bebf9fcd46253b75dbf0798e6195ca5a42b6c1f7cb5664729edcfcd90ebecbaf0526bac9b064c7d2b5fe8ea0c6679214d3787800f7ab48b129a01035128185b7b2c3e52d06cc6248b6c915e54804b5ca35f6cb1204573e7d5e3835a16777560b24c4a667f6cbe7ce12cf9f11d0a0419d8c097906c1b529cb30cea1b8326c9e0a3ad597be700a494029d1ed597b1637013099c95de2046c2f73a7473d1e1c19888992c08786c43ec8ddb536467231f589cf82cdfd0b77a24e9f07a6b5e0703525cd80c85079188b03bc296e701037e81c767d0c00e7769ef41036b80a8f4466b8344c64e6381a951e02167e63fa9ae032ece67c1f90ae5a69d13f958e148df60afec06617f61285c10f06140468444461e1c5c9eaf0b3390698780c7c30ca13a591ab53638897ebf564917c6b7b7236a3896b7fa248910d1721bae300bf9f1fa0b36303d1c3a07084386a967bfc7a863b481594fe8048330e417d72fb684bc13f3bd1a4d9a0c8875ecf53d4079b55c148f44a8af3d6544bedfd7b91699de0f2b351022809a31375c758a6fd46f67927c0c6ef6176aa08abc85cd3028ae1636865bf0827435b7357c8f5e5e3db69da81408d3e4fdc9fc93bc7b97a9d8f131b62b35609798083d64886b018f7caab6e73c0bf2b8a4d45b5d72286af2df642cc97bf1af2032d256d8f1ab4701000eb5881c3ca6e0a303a99977fc79d4247cbaf7feafbb6cb032ee5ee3669b5da897cd6db93e67d9bfc4a87d559352286bec7c7c7bd153e75b510fa0029867c27ec6d4e1c59ca5eaea24dd0172e28728f81be6db3b83b52e4e34d730af0e59b6c8d93c201ea657ec0b23cbea2d1c4f17ee83ebf2e3ebe87dc3472a72b054d2a0f4880b689d8e655fd0ad838b7687b762f4c05e9db279485cbdaeb4ad900d7610d2461c2b754c2562f3843c36fcfd1f7524b64a75f3334555b0fcd690ea5e992eec9436976ac7852ac8ff84c5feec5dc675abda0259b2a7a0696fb6384db12c995f0de06f3bf754b1cacd041f99b9b5b799dde1ae052aef6725582397e6105ca82ea7c59b72815b4fd518267d7cdd33c0786a169f8d482f99358e8cf15b93507643d9a2158ca38df0c7328a8f8780f5beebdbea7df3df6020808125b93baf8f9839359aaa132171938c0cd2499f9a1c3ecfb63d4d8484737a546ab98650bb32ac369f9a4d544c2dd5a1043704b502b2fb546a82d574b0509551a2020aab0a73a5e36265f8b49a5948585bd6272164962cbde85fb8ea8ecdde8b43bf850fea080e67bbab64baebc954fedefcb3c0db124053caff01a7db99a7a84361dbee3e87cdd16be7fe8b09e6acd15a6626110ed5695f56e3a339d33c0fe2166ce39e4b5ee9bd2dbd56bf26acc9ed36593b16d67a4d9d7b706492579563c1ee9747ebdff9ba2283ebcf1f4848f259cb341fcc1b11542b1cf05d61d99af29217f09200ffc42d0efa6decee76c4d5250598fdd8d40f4a259efc49c8c5d72f47cab066c666ea72d5da793a203b16206d4280d580cd38b9806cdcf68c5983b5a29cb003d51e49577217f2ed5c0b63c568ced3d500c173cfd48851ed197435c569afe5c59d8f4ea367f6a2d37c3c23c79c3ddd912de050c32208f4f11b9ce4e4c1bac06340289c7356252c85acaee09afc6b6a8cff6411f34490c3ce5ae03159b9fb29414b19a39f15f1456af023b3f3d087ceb975e08a0f00112b62c0164bac4305986b40e93a8ee8fd8c7fc0ce8dc44d63f1a95cdafd1bd860ca420dd9e1a75ebda7a845ea35c6dff655d39ca02b46ed01023ee8234cb57d6ac6e05cd7fbd5f72faab96d872b8b7dfdc2f11f3d4cb4a9b606033ac615aa700ac2f0be695a5bfeafa3ef15eba57c1833fbd8a7a697bb6b02bca0f92f79bf0031417a939d974c392ac0160665ea3171a1912c30acc2132faf0f5e872be48181730c01e4f3693acb0ce5c26da65436da31193872e0bc394fa9ef17289d592871d7737a38b7f37eaa24891c470e523982640a6c0a9a70bbdaced20cd7e31272b716b91b37fac40a0dc912816d414620e281ff37967340051cd6be7537155326f51443429429fdad9593145129a0fc3c5361e62b7bb141557a232aa89c4b83b2066929f8373e22364646d10ffeb7718f6927f48a2174761c6ffa2e4025491c3530a08b80f57b0b554d7a05b4a48c1b5c0487a8649c085cdef2dcd28af01cea5d8dc00e781bced838a7603e1d42520f28adbc92908b7003285db944d53fbd8f1415d4222da184cb1cfa91a24c8bfae8c383c56304147a550b878f15782ce5a175108d01abde47020e4010bb6285d9e3a4d1bc70256675ebe0fced0e83439c2ff1194a224c20f16c34fa2587288b2121788605cd9f8551842565850c8b27a0c5ce2aad4d718e44b9eebd825f7188ea9900dfed56e03183d6f93982db1482643840bd1795e19d16131c79df07ea022e3424719854502d7d5a97c7f683838ba3d336f6f6cf0d31b4852c082c6009417efb319afc5b9e8712687360e5a0c1d9097b60cc9956ec9b2c102a0e81151e9eef00655a23501f6c870f71e049b12da20217c2dbe6104868cc661dd6ad3f1f6217d7390f8554803f75a662adb0c51822f238f920a1f404161ff0ead898e18fce23bb44a554ab72c3603d8ba6bf6cc9b23263ca8f0cbbeeb48eef6921816d625ba4f4dc8ca2d66bc7b64988313c6741e377b231a5876498d421bc7713a253832335d683a3240905ae556b535606a12f985c5800baaef05250023a77fc2e0d5298496cbaf77b365e63f3ed57e6064e699c0bc1b53fc384f399a82b03b36cac6544dc464f57c04249cd73628934f410200008ca8ed5d137de4957669c7034b4d29dcc90682897e5b774083e700b77656af8206930f1b6d2daa519da20d7d1569c2c4c9afbb3ef44939b26ee1f71ce98fa58a6ece66d89ce665b69014e0515a9665dedc011665cbcc2ebaa31bf8aa52452facceee361b468a9bda0c927d50b36c34be36e9f9edc93dbd7eaeb170dda31c3d1ea201e8e8967255f252140992134ed3aa6ac466c30e941806feba473c1c3d1020b6b601f1039089480308a21c18c219393abe544166e07d7cafbd166a683b4aae5caef6405cb36d16dc829aeceeeede9b3ab0b4cfeeb76772909602f01be420f61b743a829411ca91a2a50bdb922c1c5c878483568575f23f9265afededc2281d2efc545097f4ee2148c21e270836a8397da7f06081b3d3644c8d0c0bcc98dfa7573108a8c1c246a3542514a19199cd17fe1e0e2d7c4459d3c494bd408715068a687805d42485410a486a525858a0ae7b62e94744c85aa43f2c38116a359c24f7648e212e4b3bc4484145214e481e05dac68a32110d7068a1f38daf4e1714a9e64582f478f95d28d2e3559b3436ac221957c6810e09d78e926e4f01357c6284e0eab86972f4e505a7c415bac8a737b4201198113a0001cc77c0aa1d0bb8b172b311b5d584f764813c5b9354c151b581ceaf81a19634bc08ea507865a502832a93a6473314e05b47848e52f9643490444b059a41294945262c32a2c46bab47a24d7bda220432d2287d0c1ee01497810e89a514230248a26d126e39c8119cc083a3af471490322171e9e12703045395045a9ab234d8f1a8c3923e78dc196512288082ae4a7902a19260a6447dc2c19829c0b13a1eb850ac2a55610a0252e2388952af623442aba822c86a4086445a4c065405a214e246d7d9131d666e716544844840da690406ec90638d292e61fb16dcb1e65602862a376b823518d47c88148f1637a75681519004c31c481c4a3b44dea7221c4c5576ae080e64a26812760ad4fbe59710d5060c63d6924815fa50a1e489a417108dd5085506430929593f5269252df1361859a4460ed106536fb254a86fdcb0d12716f3e2c2589f2c0c6d5c0d1dd4b16bebc03b7708820c17ba149000165a0d065881b81e01ea130737bcbc62120d695e98d5999466f7230ffb53536aaaabc498fb74ca89854230b8c45ce08280c314b54b834d6ee6dc12e89a2441c396583e85b5e0eccb862525d87cf91dfa8d75f080e1014c6ce21f8d1a2022992bb9aa7c339524e9b89167ed2c512032af27af547b7c58d84c0141f94958760280837d0d64f1c1a32d0b0f370e2530b94d60c30b97855666a8ceb048cf68b2bd3c49407cbddc2a18a02f9a606451a5290f8c491dd8f0dd422a59027166518813c9081af024036c55e952c306281a0bcca5ea12c22852064f86390bd2ac3133620564aac7111c71894ef87e7e3ea9e90409d30a3820bf3a4a46806c5d40cbd878e090a442451c0c30d0284c031934f091b2a680311a43cedcc89071f6648607d80d02707c1695a92489528f0e5e6b3269756943d34542e2200d9a417718295a53a14b899784372963066169abc0049324907e1dccc4493181401a1e0acee0412198273cd22251c10d4916e85441d030c07f5812d400432956b44f0019a626358ae0420adc1d071c44ddc57054a7c3282b810c297a13011a27597226181538a555034f9e4b3d3a756203033ce3095d8a48284eace9c292c053a3868358a6a2161e446a2ab80e5887fc5cc0926586e80bac46dc03766cd47ee2b4ac75b8f088c786f561c78bc41a0bf5047bc294d900e5489792572eee4d16ad1973463da9f083d467b8c988e3627445fc31aa3107ed425aab31253ab47f9e24e0e0c20b50212669b8c4428229118050158b4d26452a138ad18f3882441d1c971b0ac84827727271b0b802a57853230c893195102ba0fa8c8559a0a165d5258d9da61808505265e68d1508ef0fab0bd9132852da1c40c84b1090d55b88cb2c890061c03a878e3c61eec4ee6068e185a50c9d09ee2a9032a56650a441c22e147c5d985861958666238b9a1e24843c0097d8520082ba3b1e74ac613180fa86078e3b08649020040368ce9c59d258fde110c78d89a0cf7df49d088978a1c20187292aa2324cda3a93e10a949f2f4bd22f37b46a024c5b861c3d5c99810343ae4f182528bdfb819c07371224c0169761ec4dd28dcd9f5f84225a880a584dadb030a8022847695a3e99a1d2e5c785026d0a69e169333328c8e7b3a51d4c294a254948a43424d880d0713384cc98169c1f2d68a49cf171c38a5a1ba219230ce80a83e3220b011a66a2e65c3a63041329b70e6ee9c3d063d30027640216c13ad608b332c5895061cb0c219286583a522929a30f062e612658210bc18346872cf115485ede70403268c61c466bd232338b15771496f0c8aa792c6254a6064ca720a7d7d0994d01860aa95ebc703480930fac254800e4a0b26a032304b244729207c55009a44316baca66611de0a5930dae2d1f4e99b96462489fb20b49b62c0983620befd3910a01a8033f04d820c28f108dce889f3f214e022e1e5198e097458b91b04fbf0c44489092c093124178b85a1179202963093a502a8254cc19b14f1a82586a00929e3b741eb5111a29440302991f5082a7118fae20c0298c47c3439619075c492998cc28aea52f75c6cacc906634f18264aa803c079cc13131d356814f00217cf800a90223278200d638814ea1b53756105b13c8699249482a895f454ac31263991aaf1513a80d656065eeec882084101c0de083d51895328055272294322c461a7c39b075f7008c365c19b46829a05cd5f3ec974c14b433ef9a86c7d85a086d6f178d75b44ca4e93868e78bf53f068b4863d0ce17bf4c1b3f3198acefa0f03e7e3968e78b72c6616c4cda5e4c6ca5b38bbef66c64b131698ff96060c1a79314211d28e463ef051e20a61a71b1882bf4a8d2dd16169d52b9e073c5cba61552d6d4113cede9b2409a070a8c22a23641d2a8044eb568b3a9506251131045555cf2013b0e42f2aa659ece44c51b45a9331c660e16b0f930f801f6c64daa0c2c07163c44052c60860b1c00c627475ea5c5cd09029ba2c22046d3e6d1d2526607180a3ec45a78081680645dd5c79107485e13dc220a04100156e1b8e533976ca294088b4899ea0f9d99039b58cc7825259289422944acd07025ccddd8084395dab0d400f598127e1c92e0c691f01ff2f86ffb1b83f5bf87c1225dcfc1f81fed14f1a7231545461313fb325dc6e67793e989b839e7bc64b1a22cc5e2e2cadbf6c732261ac76cbbfec37fbb3de9f1ab7bd48ae8fadf118d44fb1ec2e53c14dab10b5c8168585858f21ed6fe58b7b6ffe1e90701f727967eec878d847f94f2d1d5d100db976068a5fded31f917ff8d56fc379a7d0fe1e47f1f91b530be3dd99104e7f53b37e3bd89487b181bc7ba8ddf4627f9d12b07def6979343da606b757fed260e6f23b2f86fb43f2423d2f417d6c9686c65c57fa3cdd9bef86b3ab6877474cd96bc65b439dbbfcdd9fe8d48d36c9f28a3057f7178f3307ba9a245ea98b37d31f86b3a16139bb3bddaafe9b257afcccc6ee32fde36d2873c66cb79e28bd81eaafdff22073109aff335da816698b18eae61a1ed85c4b83a9a3897a5d0f6679c73ee262646cf4634db0bd95a04eb7f9c8b6922d1df740b3b5fb46d4f6c71a2c81576be68c7f1b1820f55c4056b3aae06daf7b08800cf5824fafab3c96832f10f71c89eecfffa456c0f8b6262b6f1cfd1b798982d26f6ff1cb493fe48cf46b4644ddf5e367a35dbf6c4323be9d9c4889fee13c5e835fbe310dafeac458b600b31b13facefe0d1f6b797e5eca29858fce9c4c4e4db0e1eeddb076fe3b783413afa18b4f3c5b5b360b0c597e93219ada61bdec3e2b0be8d7f781cc6bf5e3b32687f3338198294eeb6fb713cfe7d08c1bb66fe8b35716ed7441fd366b81a29563ab087fddfc2849c3cace1b1122be26f2318ff28067f1465b77f37b483bfacad450926a31dbdda8da483c7622d0c1e8b4839bb183c169164f2b76b04c5c482dccc2fced407db48dfb4912eb6f166f06200e7620fd335bdd62028a8178cc2fb056f70ce85f1ed8bdcb46b600ae0fd6dba1ed219df08ca685162000031106c1a84a681153ab81a10792027c24f4ea22a259ebb9ef1d49c0d4a32d5116141499a960f54289c58bac4891366aa6b802e440c18603684d1db13160e34181527c7d92492f56dfc5a8261c7622decc2eff88f1744379cf70ee09c2fe0bd360e0ae09c13e1bf08de38ef1961b3a602af72c7ae819f361a3fdd6dfc7474493bba3eca43da8698583018414cacfe44a22f73a367235a0bb015354df465626211c4c48276d0f86579280c0e8f3e78b46db64cdc36dbd87cc43e340d3fb61d6c32d85c3630360e9cf306fc679c80737ebcedb054cd00f39b61a2e2a5d85a1d5e8aad2529c5d24ab1b5ad524c8d12e7a598da1a5e8aa9d9715e8aa9b928c5d416705e2a2ac57e6957d2e24ab1b412a5988c3c9c73194d4a3199ff646c88a1a914d3c17f318afc629c71ce4bb1185b9c9762686ed082f0520c6d8b73cee32bf8ef4cc79916ce39d0aefffd8bde2856d2b7ecc962b11476580adbee077d8df4c8d938e6e66be4d86df7fa1a39762cc6378af18d627ca3ac464f8d016a38efa5e1bc67001ace7b67cc70de2b43660ce73d31616ad9e88bdfcc38a3fef59fa36b3223bdf67b9b701ec3c739e7bd768f46c18064a76e01569cf31e3c644197ca24c027ce39168e639b1a06b65e9de29c2f4023c600362d3c82780058d131838a932e79a080f260a266b0420de7bc97f602b0090a0928aa38e7585c531489ca42401e469cf30605609980e748cc950bce794f53aa2a412ac89289e59c2fd812e7408bb0900f4b9c73dea740a81613490f24ce39cf117c2eb023801f95789898580bb6e3718c7e1313fb2a6dbfc217bd8d9c0bc66f039efc3292b55ddf2992471e868781e37849152638e73cf8cfac03ef4033eca6e95af6ffccd79eed3d16eb33bb2f1bd1cad08ec5fa8ce8db92f56d7c65ffdbd46e9a6ef302c6cb172f5d7a5cb89b9e3ce4bd1ac06fd3c4b8b4bb91726579a46938081180f22f5f408800b48dff782c16e9782e891e078f37e2062fce4ff1c0ca388f15af4125ce09358ac4796fcbcb5b2081014a8fee0020e49caff50a78f58a73de33f67c832a3d6e343087f3b0241a1b9400ca19e9baae04da30d22e85b1d1d764bcc1992cac0e0b50992811b487c0e49f0b7ee869e1bc47c003076c32cd792f0be7bd01b070debbf2854509e390681cdae0dd59a108b8638c6719fafa5641f4c3fa2ebf902ee122b28e8536f218a46fe33078e48e5ddac5da979f8e86d1be4caf9199fd61fd56ca462f26061791751919e2d0cf7137b218bc6d4f8cbbfffce948fc3a3152760dace9dbd7ff1ec631d453f413b3e3fc0fffb96b78d2e8fd47ca9e26027d122e7dcc794f00ce7b56b692f7ed65a14c1bc5c4e46fac9bf1657aad5785f31e15de981d6e98fc4a959cf7793740fcfa988479627a157ead4fa6e3e014ce7b527a0170de8bc2790f0ae7bd279cf79c70de6bc2798f09e7307e905670de5bc2794f09e77c412f09e7b148808ba953fc12e70f70ce7bf0dffa4afec3fa3e8166182c87fd617daba9c5c519bd7d7bfa2e79c4d9713a4ab0611cd0df1f58df368c748bfb355d062c819cf7901ce1724dd7d9b66713de1ed9aab69becc95af5db9e4cf6643f5401ceb904fe93e3870c2f7f6893122cee8706d938e7366dac5193c73d383288e001ef47b7807336ae26e1bf4c7638973fd1dffe857ddbc30a467a45b4f8af47840405640fc459ac28e561b13784c74608e7bd209cf780dc71ce87c73122d197a5016fe4918efbff451cf27823e9f20befff67e09fc16cdb13e3b21c1ec7fe9f83f41d0cfe3f276be26d874cf6ecd09828314707ed21d0845d0631112cc1ec122382946025927f2e988483c1a071b8a0130b16658d8c1744e9e06b7f6470c216fa3a062a7e619a38e7b491c12f4c0be7fca68d45a431d84268fbb31f45f917d605fc812902ca1fae7f603fb01bf4fd032b3907a200c481be347e37b3b117bf139e7e27e8b5df09bb21bdf63bd175fc9958f53381066844d6257d0febec61697be1cf041bb246fe4c70cec77e2516e0bc4889b3121b803c7a107e241471b39e89b1de9febd1c6618f6d04155e82cdf41a5a49cb01e3fcede5e05dfeef1657ceb41d976366e517de741dd00b91756c6a358e357e0dac6b1f97f6a7f376291bbdec69a26cfb3a9b16faba2c127f2db48fdee84bda8efb4039e02fc1c0de88be04dedf16de43613cac7ff10b8f1f28671c0e8ba5e71117a7a3948dde1edac631004ab812f887f56d93b879c4d943bbfe461fdba0e3ba6f241289431eafd98c3231313bf9e7824122f1d7898989891d6d1d3c74945f085686d172a5fde98672469ab64b7bac04cab27d1b873efe47fbd775df58a304d6d9c7ffe778c4cdd1f459f21ec6fee8633b0ca6e9e48c724dd79546b412e8bd6cfcf24daf8dddf49abfbd59924cfef7101e0ae99acd9eb1c8e69c1be13f1e49386f3117fbfaad85ecbf708c86212616f4415a2e280b6f7958271b3d1c94bf8d6c71e6bf30e86b7f8c8d63aae2e27a759cf7e838ef2139efdd9cf76cce7b35e7bd1f9cf78e9cf768ce7b46ce7b45ce7b44ce7b739cf77c70de1b72de1372de93e3bc3773defbbd98f31ecc79cf73de8be3bc17e4bcd783f31e0fce7b3b38efe9e0bc9783f31e0ece7b3738efc171deb3c179af06e7bd37ce7b6e08701ea88d06e7857a6c33384f1b7b5b9b9103ad6dc6d96da4ef86352d8c53abb1167c618cb9b9bd6a41b3b63138b61ac11b636a71655ccc391dd71a0e9c1970ce859cf328fcd723cf8f6b08e75c68fbdbf8c338e7d9f0e241fe103e24eb4ff74be3b01c1ec77e6c047ee11b70a6cb193f2d54bc93961b1e57e1507e5a746e5a64bfac50b4b02eae4cc260ffcfa5301e82c595ffcf63f2d0b3fdff0268d3b77d1cdec7e290782cfab838f95844c265128c762b8171c7e14ddb441ba9c2048a524579a2445196285994c7e11dbc3f518589e3f02e11137d1c645126ef4f4c91a204bb6d641d171757028fc31b2ec14c1c8777491b4b94614962ed89c3a2115987dd46ba8e5b8b2bbd6da48746fa38bc4bef6f38eeff3918171757d6439a06711cdef5900e44f96fe4b148c771443f236eacfc7f0e123d3d1bd13ef1ff39f86d0fff3f07ff7f81f6e7e07178dbff98bccdfe7fc17bafd238e7b29186ebbeb1c2d9af4217e7143c71208fb81f853afc4781ca8f82f047a1a5f0e03781525036d2b03c0c0639e718f86f42130e94bf7148fbf84d88ebe2bf092ec6244ce0cb24ac8826fb4940c339e763128e9cdf3f09619cf31afc1721922fce28ede49f1bcab61bfe8b1000f0fef6f1389c7333d264757fadeeafc9f297e531bbeeaf4100c37f108e10ce7e104a52bf0775d27e0f1e98c6df03ae88037f0eec8e9f3814d6953f07673f075df74f9aa195bf068a68b84cc6757fedd7000d07fa18fcd780cd2661f66b600f39968435cef903de333907cec51e1ecabf581c96c9b8d236d6b4fced862f4a208f381d49dba795c0ba243cf4a571680fe9ec3eb21867c7d97125d02e4dc81f2c790f8dc862918e4b7cd848d7ff58820d631b4d36d26445ba7e71dbc334fa0deda6d76cdcf49a5dd343e2cb3bf1e39102f288e3f3e335e1fcc7bbf1e399e0401e7141a1ed853f5ec78176e9d9d4dace4ae3d86dfc6e3fdec5edf9fe6eaf3cd5aff400893eb679c4c5e9288dc32fcf331df66515493f479ba6d94bd0c2b212787f399b38f4735923e72491882c0eed245cfe3f97327dcfb65ad98d52ce388c87456f4ccab47d0f7ddd0d973f4c283714965ec537d2f5aca2aabad2c6b28eaee54abb88842b81717165dcdc8c3823d1237fd075374dc71f2e67fa1389be6883fdb0fad3d1b52f0a63e3874b1b71257d979e2626fdd1ff635ddcd1abfd38db267e239b5ad98d7228ff22d2fe6db227b3a049858f39e76f9c63e1e09c13b94f060dcee9d98856460783c09a9ecbb8b8d29795c3e398af9163f0ed6be4ed6d399a38177bb8f425d85dd3427b1682810051d6c35fcadff670988dc63666444b1289f4b134d24764d0e863e04cfcf63d2c3fd1f6bfae9c8be93aeef6250b16659c5d22ed8fb4eda127da377188848f65d213c36c5f7e239d240e8b48dbf625982cf789c01a25d097437f8cb341b3c944ba8e1ed6d9e5af33fefb1ed6bff6c66159dabeb43f5dfddd4adbfe729ecd8e6f987a60a3be52a8382f9622a4a7941b2ecb469a8c734e81f321f775f12915c739fff0eb522b38e79c9420526e38b77d2d17f68dc3b9fc35ad56023ff2873fd265f2be7f7d9463fa0bdf48c5a47ca3fe8cfa316a06e71c68fb5f7ed848c7bfbe69a89d48123f91b64f2489bfe86d7b5489510f445de29c8b1ac391c5b28e3e93bf8d0c8a1272cee356f50cc6895239077e397f2c8a7ac023401357d37172ed637b2847d024021c6d5fceb3bd6c1144085587730e94897439ac4325e172a810a03c857d5ff4f13d948d25283040e3d0cb814ab387f6afe5e8fa58d2c63150e527429fc024ebfbd7b7fde988df2ed2116930f9ffdbe86b8facbd3046bad9c34f427b58be7d6ae57ff46c3e083671fee9dbf8ef7f37741313fb72fef8e5fc1182221c821c70c02431ce1613b3e390743249fc43b94f948dbf3451a2943fb24c7e30e35078c7c61925d0e863646cc22e67dafe72feb679c4cd338cdfceabc5e92893f0fce5b28e269649a25dda43a22f0effddd03e7eb9fc489a962bc7ca21f1581c7e394fdffe68d7952692f7b1f8c38cb4b104ddd0ae91f16f93bf8df46c9f081387b5afe963f1bfc9f4da97f36cf4da27c2fee87fdb4dafa125e1f22379c139af08e7e5d8308aeed74739cfd6a2c58a35bb46d2b0506ef88dc1a4ec7f7ddb9ed8a2c5bf1bba95602b4eb4067d1bd14ab01679f45ff8ef866e47ffcffeddd0edcb79364d0d38e7329afced32e0477ee48ffadfb39c9c7f03268d7ef88b473b2eeeb68d432fe74bfb1beff8d7c979587fba1a691b6bff89347d2c655a78ffd2ee6ef1b6e2fe76f0fffa86c5c482f2ff6effd76f6435fd628ea6c96c9b46b38ffef666c92fe3b6fb6bc92f43feb7edd3e088f61d7bda5882d932f10f3d4c13619936b29540a45ccadfaee9bafe3411cc260efd5cd674897623bf7c278d1ef8e35ab4c815f1b71177a3d9bf948d7e58c695943c01d5ca6e504a44090ce7b1a3a41484920cce398f1d25983c2c75ec00f6d4263d40fc65b787b6dd81738e88733ec77d36c8f0e171ccd7c831a0af91bea66dfbc7df58a2b18d95c0e04d136de0ede9122c49ace9b9e4bc9786de367d66fbb4ff5f24eb4f37247e33dbac8e5efbc4e3b07ea3dfe49f66138963b61d0d1bd1feed6f3739e3f0367aba4ffc6d35e4a1997d1b3fdd5bffbabf76dbc334b3a427fefab31d8bf5d937a2f9db9bc9fe9f15e9db4696f9db9bd9665f1ed6f5a79b712cc6378c686ec5f8c66dfc45b9ef56cbc98db9d1b311eda6896eb64ffbf277938766dff642b663b13e3b16e31b377246b2fe74746c0fcdfed98f8774f577b34fb406fde6ff59fc43ed47d1ecb67d9a6ca4c9cabe4c97cdd5be58ffdbc31d8bf599b18e366393d1d8ea3f241eff7f71dbfdb5e49721db3538db93018301549cf39b26daf27f1910248c6f5fb487452ec6808be02fe9d93894fdaf672f646eb6e39c0bb9cfd10abb06de763f06e73db433ce7b3038efbde0bcf79a71de2be3bc47e6eb8d71de730186f31e009c730d9cf3c2f8184dc063e3b7ed1f948d7f2ef630e77d22d1c7601020408010c1e8c94ae0fd93773d94cb3fa334fa7b58d795635a8b0c016de13dac1bfadaec0d9e391f82f01f03377a623ee2162814a952afc527fe6b993814c6bc519c733aee4b4489f3a0fc932b0a34c3be71288c7d312cecc842fe3f4a15c77fdb7347fa8df76278f4651cd95c4c13c982a59dac3d1db004deb4b1ace9d2fe48629c241e8f63e56dfc455a4d4cecad8e361e8afbb683435df48779100c1dc039b75bac48c240bb34d2be468e81bd2889f0d0b691b6f11bbf4d0be3b246d2384aa06d236f5ffbe3d197325d1fcb1327ea7cf9c94aa03d47d3c232eedf058db4f1cb49f88efbc8fa8e2be9bbb487c263d1df375c0944fef876e939efad38cb7f3744dea5e75c8ef31d9c73139c37e1be4141ec1af885b18f837f58df29e6629ad8c30c60f3d38187cb198772c6e1a0071c284810e7bf48db8208181344acfb6b82380796267e4d174b9449a3bf4918ed4fcb81f870602021e781cc401ce8062e6f12c6d20614a702504913eb02c42441586c480345a8bb4b7b82225105225b0ec28017a87c516145100b1536006861c8c7404f025914d252a001635660f6ea1f272c9209d880498bc88d1a11200c0162d21e98e12007060d64867648c023ebc4666d4ca79a789615443dc6e82127b403576fb053c206180e02348193c62c73ebd8b381823e92be500c068899783b45870ada772368cb16047fb22210f4c1e767950b313a7cc004f1e1e97540739176f2a2438baa287272609daa74e912d3f227d49003da04c728091522d43d440bdee2a2e71c2122c30c2f369084a0227bc07a0b6385e4a842070203905ac4a84898ae4474505270c131e842093b3e672615e0a5d5000a3151846c8171604920be04ed8ccb431f4b3eeefc9d025a91f951c011e9024406b94da204ad0131c948a4708d50005ddb72eb70034c0b289ed8862deadad6293f7c6443d8a4b97ae46633f960630b0020c50bab15a62d42a49428296364b33ef86eb612b95aab7bc0c7c7221a22e07a143b8cf099f912ac14673c92ced0c87a434a1328af318e2cb11d1001d089326b49667472b4866b462522f61e158bf0d0a9b16c0f956cfc26bc39fdbc8a2ba4580055a229696fb234c030f26911015e846458716713025b6b48b81821aa71df75c95b26962452e8caac3fe48f4a1208d2425296e3b746eaf1a98a86511b068033a3c40b231372be0290d31cb97023939a64db0222159828c081c52710bddfa5392002dd8a7e1977e8c6d59b27de8602f42ca8df8a8809930ad9a9d59b99e1054ca6221d7487d63aa9aab2442eabf396b516801d2418a1cc92e0192f73b80840c72106105014f434628e5a26f4afb03a7a30180739b982aa8991536cc6e4400207c855d61e0761ca2468b4c5049c1c4cbd355f3a0757f5962fa5daaa4cdae364d8e592ab39185cf9b9902180496730bd0af34186d7efa175a60edc41c2144a8e16b5382bb8386cea30e74eab2a38e6b66af8e18a004cd4002abaaca4e8635b350c702075000e4e8459055a6844f4e1957e6f6ffe6cca5ac341d1200f36bd25bde289c991460f385c4a11872e8389115c7fd2b87dd942a9c19034531228b0558232e3d2848cd305342f858e7e82583eaf1a8a84b8893ad8896da20310a66165f893a788a01d43b28c50404c1a97bd66d11697010e152f145ae3014b0e84347e489df109797f7c65ad7082c09047981a423e4bbce007721a20b96201c9a4413d106369042e0d6227e6b8d0d5893239483da526c2f8305d119547088a2913e47ce1b184ca87350d0b3e08a1c05b9201a389ab0a221451d1b8b874cac2ca08119a58246090187e22cc2f469ba50ae4b4882005c7c6a801ada1a6214d0734ac9632c64b0426b4053a88ca74e1c31b3f4ffc4890d326891c078a3641f1f48b234555818856004a171e5f24d1587167c3db053c56327172f00ac262888a110afe5c3040cd20b219a0dc0560ea1e49e26119667db021b6c50671050b8e0059673cb3370ebd105426a8c3bab91e68cc69600b98251852085c005ab500a53004ce2c70878913a32c2a770a68032d0a524a871d1f82e428417288c3e38f940947fc11301d0e5018a54214863f4356092c542f444e3275491031088a56af500f5a3e01249271c60b9a861142071f0eb422d2204d908f9b2190ba8ea0a1e9aa41a49f7378881cc2f12aeb8ee76889561d01a84ad848a1e5c796a10a8278748c3c88e8b3c40ca9b412714469c568604b29b62e50bc56490010ee9cb86181de0ad28782d6a8348c25e340d0874b136e54320b387ad8549ee168503790c8d02529c03827d63224c9d0e86e6eca961916457e24204193165bc33664826c4cf02571c573bc4201e6f4bd411182317b647721809f1902c1498a576989c2213152752a18314bbac4428ab1d5a90b12243847d8004a3c7015015ba3c257e7d29a356b6d9e38a068531a43a49c0cf2ea2377c726861b07fada0a33205e7415b8e494b0d2c3400e1939c8b4c2c2d24681483f0f5e605766672bce90b4e252b707eb92864f886d254621cc45a314717b08688072817a0046e80a2438390b38bcce4b0b24f8356904f7a02e6b4d5bcda6cd940c5daa6ca8d0a1d499af4f6cd8e8048931640a7ce4c20f047284e2d0e4899955a60a026a39ea0f95940342c46824c643189f146c4a5051b5e18e904d0ccc9428ea980e65e0a21067cf0556593ef9e8c236d0e7080b36697ef0f859b0255178dcac02c24b5d7d35c9f1a603071faf34058d4c41a17e18008ca413715a616862680e02882680a0d2490d9c07f0fc6995d5e8d1045324acf0648772b223ce00abdcc143023986d8793b141b3457de423c11ebcaf0b9faaa4e53483d89a08cee8823565a3092f850050a658f60e009971e897c833a446ab4f6666b81fa51238d0084347542d3c50619a96c4a19883ebf1a650fe878b8a3a547d5a575822a476eecd72b06d3ae781800c79ce7528d5112b6acf93823e08e498677abcd8453678a3ee087283049565fb6d8b2fb941f403aa244d121420d0873f281a9aa4c08bd1c30664c100e906ecce890e1928d1b642e5a6d62f405ac02287c8664d98263f7628b5c4f8286089c491f3ab37c5304983b40499f358273cd883d9074907911697b37894194c0190dad1fa729145db84e34ec274f657e8333647c52497112c397ca2d38aa4cc2c6c883b0801e12c23cd000a2c3ab4dbc511c24ff3e61666d71c11567939624dc001eeaa73f6fa7c8b80efd7824b953c4990851004fa23a133c351134086aa40a4e2aa182e22a19a526a90ed45d102b039bb2e3510c25ec910e2e05deacfa0952f50020c46e8618283f4c758aa4c46db09d000bb13a854017353314ed89838177c18f231174057e52c5186553984dace165a974497064e9f16020ca8e08753ed890e300024eac44a92ef0a817abd2f051e12460585b036442e28d06535f8020501e96566495b101e54b1baa0b3a1080b23665489ac98101b8b7109d50a4acd079631031939d3054b2340721488a0f32e823cc2b1cac3c6861d8344a0c0e09ce6393a84eaf80a448eb10654c170f503f0a48f148c6844213c860d3753c92d49427c7037b1c10731c1306014e2b0015c836c0015eaf36adf139f2a468c9c3598d0b9de08654d162d424c796617a95a1411a3b3b5985ceb031c5d666858b1c02b618d4088b9bf4c843023a6c24d905556c7c0bccbed482a8492300cdc4892daf955219c0141b60f2595b2326217d13d0348c6c15816be578dd9440615280820051c652dfbc268c479b3f994679e202c900165c95178b4b67583411bf7072418129347ecbd7962bb5060eb0d9e044e310162911786142e22b746424c3b6ab33f6c3ac863b93b37a59f2fa94d596838f508e181b94334d6c701139c3333609c8a1920a2b5b4ca862d6ef048305115a0a486a2e06999811e209524392144426346950da20aa8066c897325117b076789a53b258012592043bae36252af5e312c34d014e59e2315a2bae140235a1cf86b0323b2a224061e44549d81d4b0edc25baf084cb95142ac654d8c4c20982d3050390f54048d98d0a8ed46cabb41aa462a3e16f900433d011d605499c3e75248068636505062e0d6c90af213d55bcb8079ea0a031b3eace56991cfa96090e712a2e79548ee000e54caa0c82660451051983e9870d2d90308809a5c016180088484068831c127640b4b23ce919a6c960680e3eb8a0aa0d90204a1dc65258a09bc2e648c0845250e890b905e84a459499a02e35e252841c8fc09050416aedf8042aac041f509c8c07fcf4ac14507460f5b33b1b4bd78cd1246306961067665d82240102939e0831876d0500698e8061b51a616a8b98c03363810915bcc2b3054ed0839d212a4eb6409a1108f04fb0aa83ab0cfe0315aefa1803054b02742888db44c0965a1c1be5210a8215758500f94e1db47c2d4ca4f2f3064a048356d18b3a85eab290a19585515d3c59c244c94f1a92096b4ea56d11b2476088808827375b8ec247a4fc8cf185495547eb6b76e313044704767cb6ccf1e29207471d31166d8704f8c32585af0ac115c38401e84aab49900c103a2001a5e0c8efc1882f8c7c852ebcf850be113385d5160d2e581842b2f6d3c3827708820519ac58e132e48a851aa982d96a8b8452d11692ec772c24a3d06a114096035678b9f0f140a4a1939a46761d080511b1094c02439c2a1072a16d14a5b8ae301580e2a0c70a0b250310fa4d3a7501ce8b4ead9a68ca82a6b36a18d820408727757ed829c68a7b6c23a6d634b940a9cbb80ad50e11874a7d0978524815b3d0d888b8f2270828092492288048c2a9271cc8da8861f20568e640993062995eb4d561104291e3a689c0da44434d909c4593ac64dd81c023d09103173a770b311415d0c83848808423c181afdcb0d3ca840342c8b0304cc0c3139b1d6b95b402b5c2d325a789b4c2304400274482260b8d3a9c84e04f031dda446963caaf01938186a72e532811a7744119b3a7c45a083830ee3b18cca091aab5c440f0ed44da3085c8c3af51e2e094140f73162098c01148c6252cc3ad0713ea68ca00a22ede69e3422852c7a4cc1d1388c396062909004b05123b04465403cd6935f92e482874a30f31450427a4503440113727431e4b6afaa8494d950c2862f648cd21525b5932d8484f04fa14431467b3424820e1b37be0f7a706110ffd65688249335678f0d2c19bc3a0c6dd0243c2c04065a52beee4e22a60820566304b8091063cc6d864e8e373804b80b58b86209b940106393d6d52af0a46d120c5aac72b204b8c501a4821a4e4ca226212891444ce41ed0dfa922942457e2f1d4c4af61090aa0888cd08b5290f660d62f62862e0950e10682c1e788469880de9820643677e5ab8e43890e3a8f1f44d247f073c0a5561ebc7e30b923f79ec7c627265431a142d343b72600218310a34a552993b17c688413aba5245031b24926863a023286b83115595cacea0c15539a1a7842540ee060a8651b0b812d044d15087a5c2f9c80f06e09d479502ad58f2284830cd0f3faf300b8a20359abec45f7ead32d42081a84b041cd6dc2fc408f822437025558d09420601c1a0c7c422417719383049c3a3d2982c8ee0ac56782ab8ac60c46024eacd900d493a391d6005324d99a0fed110e26950a0127a4675cdc082008055a8249dc91281b18d40dea3550f99cc9e4a9b50c9270908508ac3f7c00159e6c8c5ebcddd8e9f192a0eab475d9a7a7038e5862b8720b433396ca84ae18016049a34f939657606462cd4d96b250a021e2885312ea8531ce33d5e487af0e96e4e06216aa5bac4c1c9a143be6c351225c8ca96dc228726b5ac3aa95c6d4a5326a238e663eb98d858a01140d5ab0e1f12d1f84abd3240e02343052e42ed71350097219edc08b61e60d2646bd0a127e89975a15028565fbe38446225638b0725504d7a6952823e79dd81b185458849a1c29b950770bc26f9b83c23ba4aadf844f851690ccc94b3035cfc3454586088ac250caa373c35008a38b8861e431e10129b326462644b9b42984a70ae4d1d4c1841f51d46882e88a03d95fc9784049c386074084243c68124389614e11b1a9409f58602a220298cdc201519ce2fccd12155b6c3cb0f2071d8185461e3fc370a108e44426404500115170b6e179c6f40e091045d82ec3285c1d102e64e2a3b052e818993938009187004f1a080f5cac04955a137770798d844a93f3bc8ec516327953fc2041597181c6610ac4ec441d4e8c485306f3a1c819b50e980a14e19dc50838ca5485291aeac55899225a639431b1399af03a91d41c1648a27455b3e450a82651789930bde652613881783b8c4b151c2b9561d397218182fc0496001e71e0218d5e4819bafb6416038cfd002870b260a04931c15e15bfd12059c207d089286731f894e293c6419319b709ea1811f9a5c25e17572c1b7d8a0a27362a57638f741390156a247e50ae75e7665c906bac42939e70aeb057a20860445b88f54a2066a0c58e15c8397a6479846b171ce7500073b39515cf0df0d4d71555870aea14f516e4d10e71752382591c070fefb93642f15e11be6528d4839bf9047810e5438cf32b96c72c139785d11c33986333a4f9c678109969cc3a1cf3906484938d7ca52c47987244578970fceb59a70eec105cfb0c539e79c73ce39e73c4bcd85287f886bf640b8b14a469a848030186a504a810a062451850e60bdf0ca244088030a3715a5701cfa34640b0325472c008364a9d8624017a944604a99c9fe8126a4c285410d347024a584a513820d6c6a5b28d1d81064c6999337702ebc1a13cbbed7e8ff0ebd09c086050ba282803a74c81346010f17c638905263a51104aae8943133474825a161d1273eaa6ba20959668aaf411e3f3f7eb025b941043952063149fa58a0ae62c285270b0b0701c0a6804000a78092b23a4f1a4e08998076c4738057263672cc5ca981c9478114126c3821d58e88d2aa34d920a70d97dbdf6889cb0273886749cea7109932783119c2e1551d0c689c0c6e8cbc669225df95368cf634aa1000181374803a848230b7654712133a10a3fe00755467e68c0440193cd13021c30e203d315c0cc242850d511d5f3fed247adbb0ae0985b4ba3b8da05b2c8808cb4c8428c3d4eb1224d29e0f4532a45922733b45dc9284c48c5205511058f200064396275230bc7e5f17b4b2d29081d352a0c2dca201c08e31e6045008541a3374bae464355880159d283ce4de82131636b903261b4deaeecad0b71e1652c0889111a2a546c71563cd998f468217c9af2f3388baca460574815b0480161a0943314cd1910e261e183163b38094481c1187b3a49998ac06cab0110ab52509831761a4268310270c542a906975c60f1c017cc234b8e445cf170e77d61a8b1f02110c2135e88c0040c506594228474e282c38a26d0839140cb2e00b43af8d9a07398d064101e3e0828e0e06611bfee0b82437e60c4f04aabea86cea80ec7e147481b900440179dfa1933405800d122ed87961d9545161b40882ad2a68854c15365c586001112ad2c19218871c228cb62cfa4951b1851d1b7ec171d5f5a3338589b94a113ac2e0f7a778a99517ae42949ce4d160640162898d140d070b065b5a345a83e2f7c5491520d5253690008530e2c04cc6162ea3073f139cbad1801a9d351e8dab8711af4167e0d03153580823224b724b8e39207c093c50d43684c350013a43d6f0bade30b015019405721cc828a06eea01c7ebe1400caf12112c5064138554653de484ea33074b251f8e2b5b8e534ad889a1a1c35995c521cd16bdca4f1a02a63a7109e3aa5465a30c570628139c962c1d100609212106a8606b393c889200802c90b638d1a48783d6913a4f4a2b158e4e0970eab3022538c1fa932e6b972937be0d981f48eec049800e8b08cc907848b1e3ceeb2c004d06c4b5f9148458c86809d16288ad78a30d049488af4a781e4cba787000e4266d2491716bd2c254328ea70eb78b192cd248aaa226f4b176401708105a0fd0f4254f0415a0c893fd08a3b96c6020c48885a7b0bb3e49920250b02324490d073d4b0ec16d033f366551a5e851ab2a36b206b85df08899744a3184024c4b7adc3dc2b0e2c776e7195e62d5c3ce1612126480c2410217992aa092e0105b85bc52a7be88ca1a11c19249e849470198c763dbb25417dca0f154e5d5ab2fe7cec89892066fa636ec6804620e9157008068e043154e303e017f77b0522160e1151364a038ac528432c5e3428924a73a08f06ae8e68a71597902a2d2808099149cda5765681e4410748749eccd6fc6994aa3327d7982c6a0819eb443f2015c63aa303047890971d28b332218ae479286097431003532e02c0b832426827804347c9d0689ca63867648c29aa72b95f81537ae0f797cccd5d8e1620d84983b5b2eecc879f940a1a4c109386c5e8d0ca116b64e7d7c4774a02124b9c96221c1c28720232a0d6c8929f52ad4a21d170ca93182804e20d54286426d887862006703110f838c083bbd369f07350ba5b0a6944ac4c510a02c0284b9b748946e1198d9a2ca90bc9a80859d9345194c4f424f58a840e0487e2541daa335af0721209080b893ea0b6d0800a72e4d80b3a1d546ad922a4e032b1b519d26203a98334097163f12d8202c24c1e1238c044c209051d1810f1ac7c227013ebd408cbb84210a31b4da92cd89292e1efea4b5265a883459eb6a50425e43979100a00dc4893d967cc01d1c2020041214ad521646a491434332a3204b814452cccc09456780dd89379f13940d18e8b06a36f9cc15b7472a8f3d71619938b82559d32464515258c88f9c14adbb23ebed7cb386480ca80788e078c3024908491720008087982332cc3460c9e410255328451bc64c51258070800a151b157c91dae069c18f936b6444aa425e39561e592e64fdb02e04033d7084c3e212a93fa82a98340096320daaec3460e812051c60a84cadc80a2276e577e7a84439e1015c9e0c183e9400c874e16ac0c959c24284a21a0f3c5a88fa4141010d33400d4120eb1004ae4ea994341468a4bfdfa9142964f011c1c64d91064e9cb5f5e1b24153c0aa839b14193684b1704b92fbe1b546c22a3b9c7688598a07b9b5fd786a3e354c826ca55845a690171e8eb4628051b4f568a823838a0928b852920aad8b03da02af09586f2c3d91e0378444bda5c7d796d707e3c80c14731a20242ad299305e8f1e98b08503c62401192a2cd24859e4c447d1b29681c6b3258e5a1c35ae5309283ba3f688f15028cd9130fe435c0e2224663473073cd1b214a30a194a7128b553ecc09828539bd30589c35a410b93d60b383604a1573e7c7998a0094915022411d0150776e72269a2a825acc048ec55932f1656683024946147531759d692417b7c006a2401c49e233dd0f0e8d096a5449014af1d9343a0685882b63beb9497a45a1728736f97e088e8d2c0292718dc2cc1106681a81727ba2c8d62c0769ce3c0e54c17272f4c408af305c3274064a22cc932e2c90fb290a4118a32194de51901c9110610f029ad168adc28d910e380393300411b3eb13a2052852494ccc43c74bc15bc11cbcaaaa4d6098216844eaebc7048d0236a810b59ae84892b0467c8b702336a8d8d0fba0d2c9283eab80adb732704020a103716d0fa992176d0f24229cb1a2922eea4aa030276c1e74004014b04d093e5cd0126106000872a0d571e887285a65dd3ca8b172a0f4fdc207f2b9460099a0841ec7044512401e6b441e38262868239a7883046845052a10e191c93bc4451b123bb817163d49ab96d3e746cf331e0653b200a2c0b96427b4e157131a35c11bcef910174f400697100a93836227cbcd256d598f026628da40a3a42d9c95fdcf88e1a182011274b940767abec422d3221da8a0282d08f307ae8083a58450954e0e227c301288454880046c89029060a4460a5cc948f02106009403a5cf1c150b6650b888fba2d5f03ab105065cad591c39691060a78b93270f9ec3cc81995c0842f1c62d8f8a31c1e72bc0d4062cc1c9b2961c7089a78124a691170578a0428445a32c8dc00519133755d43ac70ada95ae321cb24224d8e948bde3a78590b1023270b09218c823ec418c0c0002d1098ca326f86d8b51903444c1903c63cc100aa00348938387041525a0e2833b62610397032e2d6db54830b154b3f80201ab0c024cb8dafd103896a189104c54c1e0602192007c30eae0792ca4e60a201a44294e05e01c101f592e16b94aa804d7729930a0e569dc8028094f15392649144c43847420558ddb99028d4933222b23c80052309e1880462066c40d289cd9ab155036619e064648233c8edc7e8688806831e67084d7934c5c8c6c3d10518135efd177368e8410da1689a90681a222902a005013127b0227b5c6ce06165cb4fee0809261e5ad09314d535f9dd011286ab0ffc46d8a98204460a60f171c18497130d1d0f8f3fe5222981907714d802c7a3f0bde2f2d282eac8aa15065cb9f300db063c5c2d2479173fc6d081d26815045ac884f8e42585ca2a2a522694310a9a40e614c034f9b4786da1e046a04e9fc59616451eacb0b0b5c7934d206ad5032d02e8552823c8d0ca30ca1580ce893a38a4986455d04ca804c9a722a9a0ed0e0e3b810326b6407810e1cc169926567219e218a8e28ac32b1483025b06372f622e2cd571704ffad06bb1810a190f6894085a84c10c84b61f046487c6c439a435c8adcb913681166824a30fe2b38406efc2832649a61c493a671c5cad30cf6c72d1e19315331b7a97082f11420aad58e40015adb62d6716793900830967fcd2000b85571709b22a801ae4a0544131c68b4048523dd0a16bad2c9352575434e11229299fc291e5c01a1ea63812545046851dc8b0d4d5856100b89e0e38c583e8c81d271d1e39c0810390507e4c89f5f9e427c410c51c054b99aca2bd0a926ce7b463e3039e12432526181e289a408d452722726ad298f0c4c111041b0a3158e302f0c1b101aec48145c408f1739569ac821b3b263571b581941eb8351b178670c90262bcb3e65890010bc5e603a80d1dca3078c5f861684081424b22928ff96705025147638c36b1a012655d9dc88a70a922e36382934a382ab873ba59faa0556a40069064ca9a3737403c25e0e91104709e7e26ecea060ac511a5f6a38ec6121a8f4a71d98fa6506921c6c4a5430c88e8c4298d8d972243e8bd16230e0e5e0cda5bb214c9e7870898126e44b9a1030691922e284075da3ae5a1c959e9c48e4d4e7a2416d0717ac02b45271f005cb951750045e666812b60b4f87890122397675097006e10da0009a2296e0b492cc453c3aa471d1286bcbc7670b0cb6025502b3f172858e7bea70473eaeb910755c95627973a7f5e2500f434288528095a14ac690140985377441e55a221440faa405dabe0d4123d39e2f060e84a994a613f567960d97c282b4ea0e5f6d849f46687a84eeb88a194d0178905c04072f4e14a212311ba62226315b0e9742050186462952bafd62148300b48a4215f8568a8b8ed84ac02a34501cf5c00726b8f5e652d50a2d05a9e0518169d7871ec03224a0290e86a5720e6187058e08e34a1d45c0a5101bc59d0a38601a0ac2d43070f2e606a95aaebcdc9a32799b860202b3b23b4618b9ebac7704d5a1817241cb21c795530c6cf1a44122cc01074b1c664a150804a254e38d6f070f891b20589981717e6c891c315248581e7063dc9e4279136c831881c74426df0b30100578c5ab191f24b404f2a3b044e555945e3ccab3207a2242f008bf5234b6ee8eaccfc5e6d3d4a9145c39d0789a264e172856bca00432449c013e4f7f61aa1e3401f4a012413b07006a30690cb001b98443caadddc440a13c00bc789a406ad35051c9056c153970aadaa4ba390187ca1645c6233c5090db844a602426131200517891e91229d9a2b7307ce062367f068dd79fd58a758305f4c3111cc24e66740241cbe257e320c878065484e12f5ca8840a2dd42537ff953898e87486d103cea62e84d830c8ca6c088c3c05727447264d25e002ac1f085d012651103d6f7000774801a189fd2b6c0889062f0220903195c4ca063800c9a2c6560bf846a40c08808c12a6b0d044c0f0c1e9430e9f4a0458a28aa90492c78354176d1827393fa232ad5f132a07672c48276a40b4c1bd8902396111fdc12a13074674ba60e82663a5e26dca10d40e347823d10904dd262e1e2f41308951242109292d8528306754da002809d2c75660594486c0b885aa1a283853833d86e187f12da2092550d0bc5c81aa4e88d15d68cd0193517afbcc478a880218859250916e06a45a3acd2e28118661871d06183eb0ee83cb3ff77d63c5dec784d7976bfccfef974d7df53d5dca1033d816feaa6e73fcd75fd3f76d1b8f539deeffd67d7b845d33ebb729cfebba15d0308a4eb7f67a48d40601169c4f1b6e7efec1977b93de13eabad3de6deb8f1a2ada9a6a98ac61d3dd56e9a690af7fe347555df76158dddd634e5176d5f306cbc671bc7bfc3bdedf05f53d9bb2a6abce90a77ef9ee9e9e7d8fcee2964bbec8f28f0ed753bdac2e6caa2ec197ff3c7b2f1a7646e6fff5f9ed1d88d4f996555f514b2fd7cd1f69a2babb6ebc9b2acabf6748d856c27fa5aeefbe3d9eb7fbb7771465b1aaf57d3584ed9139dd593755d54c8f6744506efe2ccb2bd3d9653d65459d6f778f6ae2a64bb3de34dd9d83dd9156e5d349edbb315b2ddf889c1f55455b3b5d74cd7159dbf477d8755765e856c9787c17f4cde49e318109834fab7155dcb117cd582c1db46d6bfb49785fd29c7aa899eee8c9aeb2c64fb8f8db4fb63e30ce38bb5b58f342ae3f5308aa2a70caf7037d5b385bb19e33563b7c36ceffefff66453183dd15e36463bdbf6783653f5abfe8c87b7bfedb3f7b3d79fa99cb2ea9f5b989dd738755b18efac9a72db7dcbfaf3c3b1290bd92ed3622f5e9645ddde9aaebb76758ed756a6df37ed5e6ee10ecfa8e9ce1f3ebb69f67a369de3565dd5d43c63d57721dbd1b3ecfd5e46bfc9c6ae7b9adeb7eed93bd9dbbaa6da5b3395d1f844515315b25d051b7bbbeb7ad4bbbf95d773f56917b2fd48d7b2e9ba78bb89fed4cbe839c7ecfc5357c876e2b1380ccabff642bbed2c00ef3ac37e86cd58555d164e6198becf53458bd785cf74f5ab4f7d2ab729dc0ad97ed734ec43b0787d6f5bf7c7a76f61f8fcf32aaca389442fb4d9beae783f7b9a73ca9a669fd1f89f5dc8f66fa48971d0f8e9fc4d17e9fad84f752d47504cc5bbc2f2f9bd8b9af329abdfa742b6b7de064c96f6752d4790157b65d6c7ae39afae7cb6ffa37e9ee9a09be6bea69767954d61d9654d143e55b4f6455776f63feea7db9ea96cce685fd71e7f3a148d7de1b665d1755dd71676cd160602dd752d47105e5f333e67d89f728b9e1d565b58bd8b33aabeed0aab3e3dd359f632cac6a690ed421b790cd6f4bcf6b4f4ed262cfb368dd3d8354fd5cb42b6d75e189b3d88be671aa7706baa3d757bef1e15b2bdbeeda0fbef610d07040281adba9623c8e37c5dd6c72e6aba2a1ac332ac7a3924fc6d8faa6b39826dfd9dbbf9ff7ca21e364fb89fb090ed41b4afa7f9fa595d579975e3d545d539f642b6ab2352bc736b9eed575b739de1f8eca990edc1b3af77714657e0fb65d9554f55864d5796dbb60bd95e47d772c17e86bd701aab6e5fdbb8b76c57ff2a64bb6cf4b4dc4ff6eb0dc6d7d857d9d7dbd75bda57fc6dd4f9361707d8aba27d956113763f6ac271cccac6619d11491b836d1743f17a345d65965d59d5f4303c77f4eb0dc6d789226b7a0602efe20cfc324fe417f1581c7ebda57d054ff5581ca245a411bd8b330a9f78e5d9b7ab3f5b37354d74954d21dbefe21c94330ee7dc5fd371ba9623689a78d1f4cf716a7eb63ddd7fa6b290ed41b6c79f2e58e76b565dcb116c4b14693a4894eb601002893a18b4917530e835a20769a21c4dcc20a2fc0211020d9a20487c285196f000d6810487131b4c0d26bc4864b033747961988b3d4c24d2f5890bb2ffb517d79f0bde76dfd861ab07bf5c06ad6e6795f89d4710beda7f62acc142051114ce093d190c21a148c7c15f07837d6e55cf63fced201be1947f3078dbfd1310badd176e7830dfc8a083d81e16413448570e0c56f55c5062b5670fdad1757750ce3814da5ed8a1b781d783c5604ddf3ebeed7e07fe33e0172602de2f7ae3829f98313924704145a88cf19e21ce7b8538ef11e2bc3788f39e20ce7b8138ef01e2bcb700e73d0538effde1bce787f35e1fce7b7c38efede1bc9700e73d3d9cf7f270dec3c379ef0ee73d3b9cf7ea70dea3c3796f4eef4d2f89041ec8559431dec003e763fc770814ff1d4ac37f87862f3c8ce018dcdfa136fe3b3481ff0c2de23f4308f09fa126fc6708e63f4365fc67088cff0c31e0bf4286f8afd01acef98d076c9c73b69fa310fce7e802ff396ac07f8d58f15fa354fcd70802fe6b5489ff1a2de2bf460bf05f2339141a4cf8e561c57f9490fc97c7d4035f872ceeeb3081fb3a3860b0d5558affba20715f6981ffbafef05f979b1f561bff6191f11f1690ffb03af01f1603feeb4dc07fbd49fcd7e3c37fbd34dc57e68cff7a5bf8afd784ff7a37fff584fcd7bbc17fbd31feeb993e1f050d1826fccad4dc5786c87d65823edf2a42dcb7ea0ef7ad5ac3e3f136bde1be4d66b86f9314eedb1484fb36d171dfa699fb36f1e0be4d70dcb729cdd7a00f1cf7f531e3be3e2bf7f541c17dc9567dbab8af0f16f7f129c57d7c2e711f9f44dcc7870ff7f171c339b7906541c204090f7c3e8e709f8f3afebb04e43e1f46eef311739f0f1ddce7c38dfb7ca4711f90ce7d4042701f102eee0382c57d771470df1d29eebba3c47d7783b8ef0e0ff7ddb5e1bebb2ddc774785fbee9a70df1d10eebbfbc17d7742eebbf3fcd7880bf7ddc171df1d1bf7dd8d71df5dca7d7728b8efae03f7ddfdb8ef8e01f7255b715f925405085b122238b0006102859f96970f4718eec34185fb7024e13e1c48eec301731f8e97fb70a0e03e1c1b9a30f07d60f4a10cf77d80c27d1f6eeefb4073df8798ff2e69e0be0f6cdcf7c18cfb3e8871df872feefba0c57d1f18705f4901f795a4b8afccc47de523ee2b05715ff987fb4a35dc576ae1beb20af7954bb8af0462c18b418409172a44a0c0204b42a256fc978813ff2542c431246ae3bf4424f80f5129fe434488ff10b9e13f4454f80f511dff2172c17f883cf01fa2082848942c1703179c6399dcd72609f7b5f9c17d6d62ee6b03c77d1ffe705f9b34ee6ba3725f9b12dcd7e602f7b5c1e23e36a238e7102a700b18b2b85a9e1b24bc4c9cf304e09c57c6393fe586b5e001560fcb41af8103099c7ff87de89c771abc9b31813184086f82668aed8b17ceb93039e34aceee7aa846e68dc352c5598a288d9f68fc44f514253a1612a062c30fe89c6ba1c2a7d8e06c009842c0ae8144181e3e307b60862c8ae24520490f2f8f5d6b69511e7d1cacfb46440d44d97dd938c6396f2355a21dd8c3e24f4724fa22b1aedf982612c78c7243a2ff77433b6d8d831e75fdc695c608954e1893f64f94a0fac7f518959f281a11e7fcc1212e671c0689bec32abb061e7db1bdc1de586fa837d21be88df346bff1eb7f76a26b6fd3a4afeb31f91b87f3978d358cc3fb138948b25fd365c6211ddf433279182c225f383aa663ba4d36fedbfe70bee86da40ca1ed85f587e76afa453249661fefda1f6b24912d4934cef0b797935f46f2cf9967f2a7abdd978dc6135d337ae1dbaf6935b67bac481bbf5ca48df50bbbfe70f1abfd7848db48d648dbfffacd382cca63df36fef99b11fd301ecac818447b28f7d384f17f7beb3f3734d26af7d058434643cef2f01769b76fa4d7c4f41e061cbcbfc6608b900860602c5ab0284dd8c9c312f7fcd3c4daea19f7fcd3cab22c230029ede461f0cbc93f586ce04268f080c12a422c5acc9f3888c50a14a5f113834199486355a2c4c5c186db964b162ccab8b661b36cc1a0ab5312ce39182ebd0c63510a815f4efebc08ff712283e30dad6c8c6dacac5c51dac943ce3bfe3685e2298ebe4882731e68cb8811a559b2f850dedf9e67da04e70c5a30081b31a264d1a2948d9f2ff0c317c4592065418c05680bce16a8f86922d6b49de2c743a22636dee6f672433a6f4c9122ce4489a3afeb8c4831b1381bb5c5c452942e45c5c44ebad3462a2686d2c968a90dd4c697bf8d14134b79b4ecaaa6e8d982472f55e85811d7636262293d1bd15ad0b311cd6e61fc695fa6e1a4579391f59b5b0be34ffb45bf66e7d5e8d988f68bde3817fbdbed13614fafc9df58838d5e9b8be9b4fbabddf49afdff0ba2ff66f49add2b139134dc2ffab56f13fd8b974844be903f913866b740d186f297bfb1869858fd8f48bb8509b013b58944e45ad238568c6fd4df46d6ff887473fb74c3dbaf198732ec7be8ebfb58acc964a1b1c6d1d76f9f6e68d3f49bfdff0b39e370edcb74fccd8a434f44d2b5b1c65dd347b37f3774b35f99489f7d22ece937d993118936b2be8d35e46fac3143260ee1bed98b7906913846248ec9c4215c8b3b1ee3b1f696470ad344b2bbf66c49992693d192324dd6a2c589ae38d11ab76da4cbdab3235b240ff34c57248f1395d1e66abaeefe6b278af4212676d28989c5e09c63f19fa4519234715e8ced8c4822baadcd407b2b5bab112378634c6d187fbae09cff752ddce24ff786400333b85d036fcf36e73fdcbf87759dec7f3dfffaa40b8a05e36fc31e1ec7ece1d1cb1989c7e2f068d7d12bec2fd3c6a0cd9b00921baee67f7ddb305ac8b4d144c5c4c48a18011284014d9cfbdbe65eec1a488410c148cb466fa4c738ef15d072a412ce39cd7f8e4ef0e027d26b32913e33fe3bba7ef16fffebb23a9af8c99244e38c1a652fd1277d1abdd6760f8bc334b319656b6fb06d465bdb1b7cd36a98cd500bde18531313f3b61cbf6e2f4dc3fff672fe48d7c734ba1672fe8d8de88d686ec97b58835eab654f267b32db7e85773d249b69ba66933dd9af9137f2c53d1c33fe39facdb6e935b5167234f1a6e9b6ffdbea9ff4c492e88d63753471368ed935bdf68948992e969eec889ca3eda12f1a69248cb4ffdb3c94bdf03622cb5ffb1746a4971bdab68a21b02c6dff614f447aa1dd17def5102e7d69844b13259246b49b36fafafbfa5555555555354dd3344dd3344d51144551144551f43ccff33ccff33c7befbdf7de7b374ff3344ff3344ff3344ff3344ff3745dd7755dd775ddb66ddbb66ddbb665599665599665d9755dd7755dd77555555555555555d5344dd3344dd33445511445511445d1f33ccff33ccff3ecbdf7de7b374dd3344dd334cdeebaaeebbaaeebba6ddbb66ddbb66dcbb22ccbb22ccbb2ebbaaeebbaaeebaaaaaaaaaaaaaaaa699aa6699aa6698aa2288aa2288aa2e7799ee7799ee7d97befbdf7decdeeb6ecaaa6e8d9d588feaee962118de3f023d73f05da370ee58c2fd17fb75fb315ff8dc67f7d1670ce6343fc75d1f675257d26c7ae81493868dbfe48f4b79f937e8eb64bb01547db860c7948db9891ae328f37079a5bd0eccd81963686d6f6ba05dfb61a6f636b30d0dcdcbc2dc71f0804f2de8d3d89f61c320104024b946f1b5babbab9dd25edeae890b75dff38d2c6e29c8fa1502e078e1b70366abcb9b5d1605b534b9311e30cc68bd7ac8c6cecd52bae2dadacdf2bde4cdfc7641dd7741c76b405e0bc48d72f8c9f18a4efe011196ce7bb0691e88b6e34fd46c6a237c40fe7d931b488a7e8a7e76876d344b79b26ba058f472f26e676553d6b5b4cccd748dfa2be6db1a2edeb56d0f5cf91241b9ac9c61a44e210ae3f9b1dacffb13d7b0d300f02c0e382732e26163cda6559d3731e309ee701c7e388f3607158fef018c0f9d1ae8141f9db0de7f40c8b87f72f0aef61edc38e101e60a1e1f55cf44af02071dea2433c4163eac4d93550f6bfe6597442d5749c821ef21dc87a461a6f18397f3986bddbb2ab9aa267377b167a127a3d1e2b9eaa39258844a4f1378773cee3e2e45ce23f397138e7c7e4fd93b364881c3bceb989520c0cacc44f4e0d3969a5b18824d271597ee3d048d7b62f1669bb2f94a3eb1a697f234d34311b8761295094355daef9b5f2a6e54a94ff1e1a8773797b9a38dbffa6913f4ae330f9e7927fcec48b6e9ac81d61a6699ac81d25ca3810427880c589c595f1f701d3a5d1d7fef862c64b640d100f2bd6dc28113a419b0885a062820899180de39106ee10a1704283a60553a80c81f4966983a25ad210316966c470a103d39062251969b8005843584d2b9a70249721581b5ab95a54b91182e88aa01d26a2a40921a0ae819b0f2c220889adccf1f1caa242480ab63533955213045945c1461d1b55a0200a445003e8cf89360895074ee612bd511004c719b2175d4c2408f2a5049197bb064120a4e624bc61d5a601b9636609098a005e005182c5a9e7840523206c8940a962592601f1e2f47e5085a3c7dd26250b3480c12072f7865d838420fe3b20509ec4b56ce8bb1710541409838b72f70353c1fc64cd3149290d14a1ee4e2d6986ca17155604b148d614d252a001d3932b306911b9d12349071ac80ced908067c728887a8cd143ceae8b9d5c1dbb3302411f7c7e56d5b942739176f2b2a34e9098963fa186b8a91300dee2a2e71c5117c47a0b6385e4585722111d94145c72d09d6a0085982842b8e8f6f4b1e4e3cee3a17322b74994a0b514746f6e1d6e80691185ae241bc226cdd523e427ac5698b6089542c649e46aadee011f6411335f8295a21c32c6184796d80e9080e49a518988bd67c5fdc08437a79f57f1ad0686914f8b08f072231921aa71df75dd63c81f952410b4754b18b5610038334bec473732a949b62db0c35c9a0322d0adc82616a06741fd66c45e31998a74d01db27b6b01d8418212ea436aea2cc6414eaea07252c37b1c842993c0511de6aadef2a594db0f55aefc5cc81000a51f7fced4813b48997e489973a755151c733f6e5849d1c7b66cfc088146441f5ee9771c65d35bd22b101ced9818c1f527cddb314909ca8c4b93b223db31c39f3c4504ed20426be232c0a1e20543b41b16f41dfc404e032457e85783d889392e74349871d2820f4228f0968c65b874cac2ca0811e30fa38a341dd0b07a8ab1c187377e9ef899505c742c7279bb80c74a264ec5d9003583c866802a9e1f6c886db143105bf5425099a00e4b0c04886885ca9d02da408b883c8824fe0c5925b050e74ef50af5a0e5137309f870a015910669e69ad420d2cf393c736e7504a02a61c39cf320a2cf1233a4d27c7802c56b950410c1079c5169184be6810f22b60fb424191addcd4df131bcf4064508c6ecd1304d6989c221b152c3bb53172448708ea18b3a97d6ac593b6018a18fdc1d9b186f840cc82961a587811cc2301ebcc0aeccce84739f10db4a8c825005f5008cd01548425e9346700feab4e40c55e850eacc1728b9017e209023140727721e95940342c47024077647c82606664b66095865f9e4a34b3bfb812d89c2e366d51c808f579a8246a6cc703388468f26982281c517e521811c43ecfcaf93e173f5559e3e1218497ca80285fa6b911aadbdd95bbf8b0d3252d9943239931e5597d609ab7cc00038e63c976cc8493bd98c2dbb4ff90124fbc0545526845fe2062ed9b841e6c2554c068edd8b2d72677c8cc588b4bd9bc4248a19c08ae02d203abcdac41dc11fee9e95a046aae0a4133c205fc5efb09d000bb142e547f8712482aee04f9ca9383d714ce2dae2383000f716a21341b053254b731082a58270306c1a25068744704894315d3c40d5c1331d41ad005420db0007f4b07456e3422738223d0c6890c6ce4e96a11e37831a6171931ef570b1c0ec4b2d889a1e10c0141b60f2593c1c21798099d784f168a3000f1f2c2e9d61d154e491ba526be0001b1c0f5ee8c848869ddc41c892d7a7ac361d3bb004d9e14f305810a1993b502449416442a3a643021d7db8c470538053161d51c2caeca8881045870d1d201e0829bb51c1911ca124c10c748479c94127c791bab355268733871a9433a932089a910307264f7a86693218c2d1662c8505ba296c70d8e128eb83a302ab9fddd9987a2392204980c0a4276e8c6984a92d6202cf0ddace1015275be0863b7763815a1c1be5310a4e510b13a9fcbc8902a7a59585515d3c5d829309d92330445004ceb44101973c38ea88b1b0b1400c1306a02bae6c547930e20b235f211b3a5cb03084642dcb86881aa58e8564145a00d4c0536349db284a715d626ad09874ea029c179e6abc717a43008d8d882b7f84bc097983f1967507028f40c70e6e952440c291e0c46e6726e0e189cd8e196e76188608e0844c706bd1264a1b539e8ddb032863f69458fb6a6b2406826f271287b62f6dc3b65483940480a502b5711a83ee685cc992c1467a42108d38bb077e7f6a14699c00c2968aab80091698c16c7cd89e04d96a64113189440a226c1f5e3a9894ecd13203d48c391a0c9df969b930c3c88cb4196b98d6d650308c82c59db05607bcf3a85220166b645004a9d1f4455ea3a006494d8c9a51ad9d81050100ab52a961d54326b3af92968803b2cc918b863402d2e2b4143256c950404b06150364e41893f1852806a9187762288941a38018689b6cb4373bd082a0bd404b3ba3943c33e3cfea4e672cca9c3980c108861718c24c30d017ae5e087a21008617c117263ebda85e3eaf93defba6be6515b34f6672cc8a98c9302b7ba04c4d195dd958d904b2476462c88a642c596fecd0a13f96055292b1780c98a4888b097c70177f9a7017535cb8c0c15d7c7100a630b84d183f3158f78d2592b50fd65e1807ed2170267ebbd76b50a14105bb061aeb7fdffe98a2be6d1e01e59c1ff9efcc25bb062689494f3cda43b3386b7e6d360ec366e3b004fb9d498b7bb0c9cca12fb36e079ac01ef6e5fadbf7301e128f769fae441affd117ebbed10c1b2fcda477ec6b2f8ccd7471cee3cafacbfddb38fc957915571afd27d2349cf475ededd2ab85a8a9944952f31c65b8f0f6c714c9bb03cf307a360ee1b495c2db1f4b22714c4c6c810a359c011d06744ca0e9baadcbbaababbaa98bbaa7db5dd375dbb665dbb555dbb445dbb3edadd9ba6ccbb2eccaaa6ccaa2ecc976d664ddb55dd9755dd5355dd1f55cfb6aaeaedaaaacbaaaaa9aaaa87aaa5d3555376d53365d53354d53343dd39e9aa98bb6288baea88aa6288a9e68474dd43ddb933dd7533dd3133dcfb39fe6e9f6b6b37ded6a4f3bdacfdebbd95db33559733555333551f334bb699a5d7122ac852a0bd266f74037c69141e2d3faa3a2b6c1254686154175438d4d28c983970590e809c4a0c91922373e40e0489220838c456b272e283a9040870e6002c8045b2bcef4088014d6132204143bec3ea4a0c0672ad9d4020717631e4720dcc479451194a1d38a30ad768409a12082056a3395075c6cd569b526a3e97105c3ad64da2818e13e015a45621373f535d84d80e48654c0ecb5043e05a74a96072850f161f416e5040bae7686891db75d231b3ce42aa4818047f6ad8a1441262a7106fc34b5d51fc2c0733498d071a1edc4ab80a4c1273635d10238ae3b079851d026d722518bc7ee01c0bae6078b5024682cd409401c96549a5ef520a541d10a232e8649085ef151a31c152ae475c1852937df0924ea1780234a9a156280fc0c9d52024ad097529f1e7880c55babb5411b807858b1e64637a8c1e2b1c203d4745f10b48950082a2532e5e9c95580650f87135962348c471ab83363d09625719a57319a7038a141d382295488a09900120307be19050c6f993628aa1b7875276ecd82379fb840ca4a3323860b1d0f68f19c4861f5692224c9a1928c345c80de142c0919be70a180450a064d2b9a70e496325c1e3c901604529a485a1b5ab95a541d40c78d03af3159b2466975b82268878928693832905145fc02d5e5a1abae819b0f2c205c7a806d01521c9a5ccaa065658e8f5716155e6a92d853311a71baf3c0b666a6526a8213174c9ceae0800748273250b051c74605a8c90f4f894d4388587adb8aa006d09f132d515205251d02e6b432df03277389de56913ac0f4024b823aae19ce90bde8622281daa60c7fee76a8e1a4674b09222f770d7a90a1032311960ba34011f2cd4978c3aa953167550300d2d8ed19c580979925242802784b4939fe4a01bce204820b8b53cf098b45522404d02106a457a0d67c8940a96259244582c0e20d03492d4e2478717a3fa8c2d1630432c591512552a1c9e252b24003188c214a4e4411ee71536507cd8f5d8384207eb6068b528b8555de4d039427712d1b6302a204a525324ce979b800414591303828854cb97fdc6094d992f60353c1fc640dfd48871f5a0806bcb08af6f8c36aec61f73483a95a63a179d3f3abad67d1f8745954f6718a75e6f5a6dcaa30aaa6261bc3b2bb0ad9e097ab7fd1ec774ddb2996997786cd133d7b2ab35d86d1382ef3b2ddcb5e465d773ed5b4f526f248e69de1985d579585db3575e1d68f797bef33eae7983d3f1b9b3d02b0c4bc72975befcd763ed7f85cd9142bcc2bb3b2fcd595fd3d8dd353c502f39ede557b8bca6c9aaee9dcbfbc731c9b32bcb61ef6aef9e7d4cb1bcb2cacca290bcf6957d5d8ecf2c21e55d31656d1f974e5f98cc3e2f2ca6dfb63f8fc317aa29f8d5b21dbeddff6c0daf29a5ded6c1bcb1ffd2bcaaa70012f1ba72ddbb2addcce287bce6b152c2defbaca3d4661d63ce1f89b70c722e0457d6caa69dccaace94d35ee58595ef4ffefc6ecff7d4dcfffd17301ac015e188d3dfb65154edd198ddfd30d0bcbdb5dd6cf2c1aaf739cb22d1b0bd98e74cbdafa998c0bc0baf2ca6647d3d4bbe7bcaef1da4d21dbdb7ffb1ba9b6d6c012e065e1146ee7559e7b9aa26657b1acbc261a9bf21aa7b3ca9a6aea63639537955b3435bb799e5e766177c6a2f2feb66dd1d97463f56461d5c59af2ae7367511555d7f5bb707761b7ab48b0a4bcbff7563dd5739e65d76c652f64bb796305f0c29d8553f78c7b576338edb390ed6977fb4a032bca1bcb316bcaae79b6ee1af7f40bd91ea4e5f5bcc382f2b69f4dff7a9eb3774d38353b4b0f8347bb633d79bfdbd396f5ed7caae9aca23dc572f2a6ea39bbaa4f65f3fbbffeb4fd7a8321d365f777c36af2f6b6ff96457d2c9f660bc3a690ed41a38fcf4ec462f2aae6ccc2deff386ed9f9afea91aecd80c0235dcbb547c22882b5e465e1bfc66a1af795fdffa3339692575ed77ffad5fcbf6d67b6f542b6df345df77e622579dbb89be80ac7ee1a9f9e75bda9070bc92bc7735fd358365bf99b2a8aba81b08ebcf037571646639795cdeeba2eda07cbc8dbe3d4c7de956313ededead7d40f5691f734e7f38c63d85de5735dd5386947d7c7572fda6113f5ac0cbbf3baaa9f4fcfd59bca6bec65f944dbafc2710cb77abfdbbd2acfea19c32b1a7fb457f0ce5fede6ef70bcaa28ec51363d0df558bd5e8de3d934655595e5d94c7bdb29785dafca7197cfd884e7335e7f5ff5b2b2da7ad5f4b16aba6cbcba26da9be04dfdeae3d874e37faef18cc6c6a45cf625afa8aaf7ec5eee267ac26a47d1344525783d3bcbe937e77f7e3766e135d5dbb668dca2a9db76b98ddd98eda17ae7b48d5733ed6cecd5b39b6ddd3bf5a6f02ab36b575d6f76b69ba690edbd9b7a5d379d65f36ce5d3f4a739a342b6afc65ea9774d53f49cd3d5b3b22cbb6a6a47930181f2b7a3e19425f648bdec573f8bf67435cdaeaeb22b64fdedcd7c5bdf47bb37ea85d1d685db5655fd3f5177fe4938789ef237d600026551af2cb329ea5b596d6156955d57c8f6085eefcef27cbaea77db533dcfd30df5b2333aafadca9ee88cb2a7290bd94f847dbb962308a407ea6d3d9bc62acb7ed45cdbbece69fae99d61d64ccdf8747bef41f0ca691ba7a96fd7ee6558eda7a7f7fc6c9a9abd3dcd336ecd15fd2a0302d11eec2afaa7d7e9953f3c7f7356d919fd299ca22ea737fea679fe18eeebfff30ccf9bde955dffaaaaa61aa3b1dcdbfff596f605046a7ae5734e5db4fd6b1aabee87cf4c6fef710ab3fe8ccf133de1b3c5f4aaabfb5dd9ab1feef377bffbc06bae6a5f51d53461b355ddd5ec5d7a5d5365d93ec3ff6ce5af9e5f7a965e556ee5569ed5f57ff46c61bb2f1bcbd01eec6707d473e03dd735fd70675d148e7f3cbb291078f4c5b6d21ba35d6d4d2fc76b8ba6de85814020104a8fd2dbd1b59f73bcfe3376bfdac26b5f655f675f6f695f40e04a070406fb4a77ba1d4f6fd2eb63d644599675e37ea2a86f7b925ed66c4f78f6fd777665d38ea27468955e036febceee29fb9ea6b26fdbee23bd28aca6e88f59349d512fcf2aa4b79b68bbb2ae37bf1bcb265b0777aee93d7abf79c25f3e3dfa61578dffcac0ebdb133de1396d51996de5a05a77a6e9397a63d8c3a7baaa279aba6e3aa3307a8dde786d673776d3d34ccf335d4f253d466f1acbec09afe73a9b2b0bbb7e7a8b5e559ebd79b2a6fb59975d5755c8f6b5efe9297adb546657f6344dd6bbb0da4f057a895e7fb6f23ccfa6e9e1efce2e2b647bdbbfde60d875690fd19bc6eda99eae9ca2a6f9cfd30dde5f8eedf78771e83d61d7cf27acce6c87cf565e856c3fbba1b7cb306aaae9da3dfcd1f3444f0a7a85defe5d2ffb76f66eecaea64ce85d6198654df7443dbb9ea63755017a83de96853faab2b0fbe1aec6b00a0402814060efacaf919eed07f404bd2c2babb21cf7738563ffbd19e84dbf7ac65efdeeea7a0fcbb090edbfaefbc6b50b6fcf960a6f7f4c93f749d603f4ae2c8cb61f75e51595d31eb3eed71b8c2fe03f26df80c020db62e92df0c65d6e5db8ffd4ec1e46db5581775e7d375134663d1caba86bfe1a69d3c438d89e445f76d6e9fd79bdd97676754f148dbb1c7f64b1bd916ac6176acfcfeb7d7b76d7a7fd84db35edaa90ed5f328bfc2a0e853690ee0b66915f66dae74dd7d48c59b475e5343dcdb93efbd0d76f668fcfdbe19565e36fa6e7c9a22bca0ad96e9f7d357b7bde15fee74f3f9bb22e6ac27e5dcb111cf612783bfbdb9e7635464fd654e7146df5bce69cf6189ebd399bb3caf69fe73dbb3ab7309aaa9d65bff965263d3cefe9677746e7debbfacf794e7b77deb585e355555358fdae0ac32a8ada7953d4fbf8ab69ef6ccaa26e2b647b9d5736e779f528abf63986fb69d27955d9bb5d6dddb9b76d6b7a384de7bcf2bac6df644df4cf6b4f3f2ba627e7557f9caeebbaa2abf9633fc36a7a715e353e4f389d5db6fb59ee2e1cb93dfb8cc2abe9db183d1178d17866531865d5399d537535d137ef8fd5f5c3e7a976198edb943dddbc282cb3a7999a6777d58fa6ed79c0ebd5d48ddb55fee7dcaa5eee357a6dded5446514354db7a3732c9b1f65f3aeaaeaca6e0bafabecaa6eba0ad9bee6e8ad79fbe9d19eb66aef5ff5ae89aa793d7c76f77459b6fbefd5cfa6695e555e61796ddd3ebb2b3cb306bcbdbbb377cdd365e37fa6a667551d3d34ef2c9bf347e3b38ddbf3b3739ca267deb335e5753effc9c630bca22710989a79bf9fd114657bca76f9779f96794ff6cf2deabf875997edbf75d323f3c62c6aaaeb0cc7b39fe3d49ccbd8d2bed4047a63de19565d9fa2728ab27ded272ae65dcf164561f374653986cd763ec3bc2e6c7e8fce6caab63f5dd7f444c1bc301aabb269c2b0f94d53f55f5e5956ff3fe5355e7bda51d6f5f2a2a96cfeb665fd0ca3ec1c9b4d7a5d5eb555571885e3d564bbec3f7b82e97179fbfce1d87567d477538dbfb74f2ebd2daf0bcb699c9adefd73bcaaa85ac0ebd5d8bb7e9ed713fd29daa66e2fa0a7e585cfd9b769dab673eb7ffc3d01af8c76f7cbf277ddde57f3a3595ef46ce79ea2bdfb768ebd37077867b8f7b835e395fd6e6cba698af6b0bcaa9cc6de8c638fcae78c9e72efcaebb6e6b9aeeb09fbef4ff88c856c978934f0c557d9171a1078f44520d0f64060fdefe1693ae909f07aff7d1c9b67aa9e306baa67003d2bef39bb332ba767cacaaaaba6b090edeb6dffdba719e9557959bffaef53d377d5cfbdcf684ae535cf793ddb796d61156e3f9c9e535e8f9aa9fc6357553ffbdbb44d51b50fd093f2aaabe9cd189ee71346e734f542b6d7778b26ebb7934c2f80f7a7301b9beeec5d1445db15ed4579d1b68dd37945dd59765b554e7b50ccf5ec409bee3d79bfdc5515fd302bc36aaa9abfe7e485fddaae696fbd0ac773dbcf5e93775e55dfa270ebaae88ffd3fc7f498bc3d6e57f44cff6f5bd8779fa6617a4b5ed4ece69fcd0eafe6f71ef54060bb962348d753f2b62a0ca76adacee939bb319cba5e7a49ded49c4d9fa2b1d9ffe963dfa6597a48def8a771fcdd544e5d19f5a9dc3bf2aa6a87bf09b3dd847f6763b667e43dd52fc7a67755758e6339fe2801bd222fea3f7aa2de8cd735fde60927659a2cbdc37bf5b6731a9b5d6d6197fdaecb9afe4dfdc373f5b6733761d865d7d4fb8e7ad72ca83ec06bf5b2aac9f6f35c4dd985d1df5921db7bb75ddb4d2bf872051eab17563f3c9bad1b9fe7f94fef297861effa13fea9ebc25ffe72c66152363b7d1bd1d4f3e88ba8dabb0edeaad7cbe91acf676acea91aa3a88c4ef0b66bfc4db96555afcae80a1791368cb459b5afe6b99623a8c653f59a6aaca232ebe5ff59788d5d9e046f37d7b69fb1777f3ac366ff42b607efb57fbda57ddd40609ca2a7d95ee2a57a5558fd68ebd753f56a3cc731aad7a3e6d95d0fb76c3b7b16664fbd312bc7aedacdb68d7dfa4f18454dbdae2ba7704fe1f94cd1798667142df5aa2dccf6965d7f6cba07f048bdf1cc7e1fab3e85d9df9ae8799e74e7a83745e59fa6ab9b9ae7daa6b3a8d7b370cb76d39561776dbd7cb611bc2d7bb26ecab2ff8cd93446cd50efecd57eba6cefe777cdd3a3280aea8dcf738d4fb445d37535bfcb06fbf9e99565774d555585e356edf247217855148e639fbaabd9e3f67f58c8f6d5d3dbbf6755b59557f85c3feccf4eaf1bc3acbab272efa6eae1f84439bd1f357d37533f9feecca6678a6e7ae73636d1dfb6bf9be9eacd7f6a7a4fafbaaa2cab68dca2306ab242b61391c560ea060402813d092fd30bc7271c9fa68bbabfede83f31bde9ccce7f45e1f6b72bda6f3cf0aa319cb26667cdb9ab66bbca42b61b3f31fe7441b7bfe05d7ad72fa3f2ea6538fd73abae5ec8f62faf4b78965ed76dd1d5afeb3cbbea1cbb737b1ebddada8fbe68f69be7c09b9a675f51bfb6a70977d3ec95de3696cd936555f7bb6c7bb232a5d76ccd1465fb4765168653d80bd94ecfc661f0fe722b3ddf1f0610588837e97557589ddd14f6b0fbbdcb7654d2db5377ee6ada59d37f9ffa7e86d7c06bb2acead5f5c370abaa66ab0ad9feff1c149a9d112fd23bbbb139c3a8ab9a69ac7ad614b24634db5eebfb08e93567754ed3d45d7f3fdd2ec742b6a71dd8cbbeccf78b2dedebd12bbb33ecfb99c2ddf41eed75417b08041683ffcfc1b3ff5f7c957dd974430ff7f596f665ffffa218df0002e58cc3ffe79355c463e0edf0997ab4cbece9c2b2cba2aa91269601812ccfd1ebbb29afe6099b2b7aa6f18c1663bba0791ed5732d47f08cd7e86d55944dd32e7f533559f8e4317a4fd58553cfcaee99c6683c9f660ff6456f8caae79ca2a68fbd29a7ec2a64fbd98fbe8653f4b6663ccbb1b9b6dd4ce5f98c652392ae83493898a2f7106ecf1eb4d39e8397e8854f7575d5558ee5997555b7237adbdf63b7af688ca6a63fd59677e83de7d975e3d3cbf279b2706a9e3c432f1ab75f6dfdbcfad6afeeef2bbb962328e4157a4fd6f4720aabdd5de19eae6c31be41e84d7d9bb2b08f65d34c7b1c9f42b6b3835edfb2dd4555d9a7b1e9b6f6ff7330ee5d8e27e87559584d53136ee3d874d1f6eb0dc657fd8dc61ac27b0807040281f5ef9d678517e88de7b9fde7875bd9b727fa4f40af5fd1f9645bf3a3f1ea9e3ffe8f17083c1663762d47d0076f817786e75465e73e9b737aaa662b647b31b66bcdaec0ebcab19aa2ea1cafbeb7279cfe7967f844d9d8744ff67717954f21db5bb431f554c3f3f37ed6fdae3b9fa7dace2b8a9a7dde3ecf1d9eddaeaead5f4fd7ecc1e3f37a993d4dd6abac3aafdd65e53def8ac6ea19a39e3d4db5355d2f64fbbaaa6d5fcb11048097c0dbcef0ac9a70cace698cb2702c643babe7fdfec371f7aed9aa323bbb6d9e37763f3aa7adbac2aa9f4fb40d26ebdbec5a78785e77edf22ab7739f531366d953c8f67ffb1b595c6d7c957dc9f87a4bfb3a7a35f6ceebc6683cc3dded322aff154e856c2fd2f59c9e3c393c3baf8ca671bcb26daa9a29ebaaac90ed728db48d5fed6e5f6bf0eabcea87e3d46cddf37f7fceab4b84873152fe356b62e1d1795bdf9eb2e9b2fd8cd938564dde9cf7a773bbaeeceaaee6dae1b515b21dadae5fc4ffe80604beade508f294f0e4bc7e46d1998ddbd95de1ee7e53c8f6b4be8f282fce7ba66a6cfaeec2ae476713654d333c38afd97ffbddd5c7739755145d4f37d8cf293c04deb3cb6a6cb26d8bca665f4f94f7e6f52edbbae899a6283b7b5966ddbc663cab327a9a2e0aa36ceb4d143de0ed723f4d565dd5d9a76b6baeec175e9b575e7f7bca7e354f739de5fecf93cd3bc728db671946d5f3ecf3e9a2e89a375dd5f8fbd58ce3389551b40d76b49f6d786a5e5635cdf4ec6aeb5338f5a67a76d50c8097e6557b7cb6ae8c9e321c9fa98f51d4807796dd0fafa70c9b737ccaeeda83ddeca7013c34af775b7576cd734e531636dbd3ec675e1955fb7a76195e65b6a3310b04a26eb0a3577866ded36c5b2f9b6b87dd3eafaee99679d7b8ab2cdb5d549e4fb4c71e7583bd45e9ce303c326f3fd1b3aba9cca2ecdcc27d15b21de58d79e7183dd11335e1155e511585d7b51c419927e69de1794ed7cfc26c3cbb2edcdd804020f0ecc11e7fbadedd3ebc30affa65d78cd3ceb2a9faffaa1e936f49bbd605c303f376183e5d98fd720bfbd394ff9757367ddaca1f4dddffff47552faf3bcbab5f55b69f666a76b50381f7b76daf767961f764d7f4fbd975655346bd1bec5cde56edff84d53575e5366ed576cbabce69daa6eefabf3a7f349d89445f16ec5e7805bc72ea9e3df6322bcf29cccaab5b86a7e58de13335dbb37fd8abac9a76025eefceeedc7fdb5d556e3dfab3bc68bc9e262cb767bcaa68aaae03bc262c9baec9a6f3da9a270a637957588dd7dfae71dbfd37bf39c365d772048dbc2bef373b9c9a3e455514f5ebbc9e6b1c4f80173efdfa51d9fd7367d7d83d81c013088c3f1d1088b6489e9517fdb33ca3eb9ccedec37d4dd978555eb3f5f0dcbabdc7b0ebfa7816b2fd8badedeb8b4d5d631e95b7b72babba6aeae78efaf5446d20b05577f0a6bcadbb9e299b9eaddcfed3954f296f8aceacea5797f5aab976d97581f0027861d8643f3bb3f179a668eccfb7b4aff9b701a3f0a2bcadeae1dfaeeb99c232cbb2adfbf506033dc9f0a0bc33bbf68fcaeae9b6ecf9e50f04f61eecad1dde93b78d61975561589dd3563ee5930acfc9bb76f89cd7158dfd399faed9a2295a00afc9db65d7a7ae797eb3cf296aa252784c5e36867b8f677956db2ebb309cd20181ab1bec29ddd9b9f096bc2b7ace663b7f3fa32eeb65190804026d37d85d02784ade933ddb338d67afca1d7555b30d76f3092fc9abae6abaa6eb39b7e80cafb071280cfebba1ed7ebdc1f8a2672010180c76b3077b3b8687e46dd5f8c32d2babb3373fda6521dbbfde601463bba071b8b6f57db4e31d795b53ed6bdae3b48557ef4f13c647123d10c8b22aaf0acfc8fbe7d5ed7d365b788dddb6a728da579979a25ded6b3982bd2bbc22ef7aa2beafedff71acba6677856cbfbf1c2a1b91ad0a22efaac21d4e517996e31535937f2e78f4c57e9afde88b684dbb6c70c8cbce28cac62d7c9e6eead51f94bbaa9e7d2d471029e49d51198d67156d7b9fd7aec642b6afddec6cbbae685fcb118c83bcaa87dd7535cf336ebfeafe53c87639e3f00ec2489b3d653421405e3765dbaf9eb10ccfa75f5b54c8f6a091eee7d71b8caf1bfe6633cabee42410380feb6f030834a20181402010687fbda5a17de2fc96f655c338036844068d3410581c0281c61a4906040281bdafe50842c873f7ba1f565bb7fb8ec6de6c5973987c57d4345157eee669fab3a7bd752bd2f50b201008fc35bd1691467468f7aa9e65bdbcc2ab0bdbfdb3fad7d1693dea5ed8cb7137d78f7695657faca62b4cf7ce1e965dd645d7f9af7eadfb46b4fe6ef5edd63b5bdf36f2355516fef1eab63df6eb19c341e327b23d79a463f54b56915f6f5fb08afc72cf7fbff0ac7a14eea9ebc6ee975df4cc7ed9df7d6cb2271ccbb10af7d90b5fd46f0bab5ef5f399b669ebb669fbf506e3cb4e46fb7a4bfbfa7246df06047e39a3af8140fb4877762d4750fef1ce2bbaba6b67e5de9eea2cab41b7d7b7ad1edf133d4f539ecf555ed9d6754fd565e9d74cfb3aa36d1cb72aeccf18eef56da3c67756e78ebae869a66cdbc22a2a64fb6df7837248f8cbc1b57fbdc1f8aabdf0b4d9da0be3d4adf8a22becc2b37ac6693ac768da6f3b5dcb117c89af2bc3b2f965d9f59f855dd424d2347c36f7b25dfdbea7329a9ef09ad2b771184c5764f0dbb53fa63df5f1ce27eb67163e617645fd6cc6edd98b48231a1cbe333cab1efe67dcdd1396dd2e64bb7adbc33457f8baf09753bfa66d8f7daaf6ff8947e49b29f7a62eab9ef357d9536dcf356ed13ebf72aaf675fe6b1b77384dd9ff7e94fd283bcf310bffbea2f1507edbeea6701a7f73feebdc7af3df472f8fc99e0d086cd7b51c41b9f865d9f384bf2cbb7f96ddef6121db55b7deedfab777715e01bf6a0c9fb26cfe767561b5455121dbdbf946ba765bdf368afab7453dba7acfcee9dcc2b20b0bd91e34d1b1b8174e65565ebbeaa2b0aca6a72a647bf03c89c41fa76ef045d5fe3bfadb1856d7746ed5752d4770478f779dd5194d65d4ec6d8757d4050289c41f9beb5a8e200e1eef6fd7dfe51f9fd5a834f18995919ac428848c2104180c89040024a31100303828188e470312c95c40b8051400035f9674a04e1b4aa44918e4304c21638801c600400801100119a21a070ccf197fda13dca1cfe05367f856a9b4a40edb4dfd00e3dda5f6968130c61524ae65a9907dd40e400cb0dd6164256e6533f35d54d5423dfe9a8177e7289e313ccc891b01044e009c9b4ad12ded6e8f5b136e8d968bf1a17f136c653a653354203f4109b99dc742e152c9b31b0304060098d56b04f0a5a4da365b1bcda7695b2cba5d7518d91a183f78f3e6979ec66a758ef9be4eeaa367088b2c636e8cdfdaa700289331e64258b9e512d93aad5911a2e5c88455f43f2678e675caa03b0d332b2f401b7cdf6673da27072b79c771fa24c7be92f35cb7e212afd5c76b46aaa0db49fcc4e7495ce6857616df8004265ebaa9bef57216b7c94b6cfbadb2e33e5a0d1168263519ad0d84711aed68b0723d0570a3a9bf1568749d8855a14fb9dfff5d2878c9af1af6089d6777649b6fc44a0714c0536b32f7cacaae4d88f7af2bc32f53c4e61a7c8f00e0bd9fd2d56148958e73dc86025c6ead0201782d60806dfa4ecda7a2e09816e68a402a06f6d065b9da7a69baae3ba6e7448904d967b54c0aede38d190da1d9a0dfd0caca21a5d356a3281445c5293c3112f911dae7c07324168828f6be8c200948ea16724a2a0eced8fdf12f517008236b5c496274587e699c9b9031412c714dbfe1ce6285232606258b7b464a8ab3faae67f6ab40b14041ae6465e5a8c6b3379464485174f228355da118afd3b949f5419c1c554f60dc09ddd1e64c9956abfd22ffcf7178cc14ac82aceef8a1179529ba771e513ab7b7aa0a9b5f86e6a4430bf742dd94baadf9e3956ef2e967a950a5a407e597a90a4fa3e5cb322664278ef802e352884a5c539f478dcbc398e62a5b8e100038936451b1b8d17042fb5cfe1ec2cd0fbcf800079bc5e0ab7c05f4580cb353f91b89a105708a54a5c55aa15bf9cd701f14be5bb680f8e2032f70dabc84865577fb01aa9924d47524cf60568def4f2c8780194f125507b22900dd97bce1386824071af7ea5116118fbb8bc8da3007b355a32aee1e5999816c53052fe26daa715aac1d3545fef8a36f8ecd6381997533e9f6148674f07326329d4549910ec94b1b5b927c8049457e5a59a8b4bd3d2d384d11074dba413f2082d4841ad26c2b83f0ec333d3069a170cf0112a0d5d0b693d3f8cf37d97fa441b39c62c6b7c1ed3f94b7f94b58f3476907b33c931bc4c7fba98f5f2f6e7479e95ef5518e73c67b3fd0e1d89fad4e0e88060be40834a06ead7506851e6261cd718516036302e6350614a118b3307b1f3faadbcfe020b6c5a36574a722247ddb53ac9f81e201c2dc0b9d18b77580f1812cd83e7d5a64a9228e15d00744e2dccc200f387081de40b49f70e73c8fa9f7b9e7a830d74b91dbe836db94d1483b15f674e7e2521dc4be7917527147a2512b217433c552d6bf116a845494765c75192b1f1f8443adbc80d6c258090840497640a311625a44af00612038bb04c65bb346e974f73a0c528f0064b87d3d87002cb834aea1dd0cc53f61f449c200d98867a802cf338ddd4e586b6eb570ead15dde894752991362554dcef0613f06d57ae2f955656eb761da6de9e6b8078ecb27258d5d6fdab82142792a0b8659ca649ffe14e8040c4bceca14f12e63768e7ebafc98c822564cebcd0c9c10f9a769c3c44e38f97ce9c563ea73dd76272e27f5c259bddd6348b7a39efb6e99eaede2617cf3040f0bae13638cfabe1b9a3174598a7ce759bf3944cbb81724f5562143d132c66cf8ae29886049bbe1092c8efd3f164b32101f765c69e9730e230542e9ec7ab48fccfb6b4befc6e4e0de8757208a9303e912858cc7ec407a336753323382110d500d314aeb0fcfdda3c4ed47f2dbfa837a67b1f57cd806ed56fc8c6a68e750972ca234a963977fc064f19819dc8f7dc9de38c90e97d04eeb290a3eb8c61d47a95df479d73fe98e861b693fdda1617d5e6c7a4841d1a0b178e5d1ca3295fc154c74835aa461dde6b2a722da5994d50bf4cfbe0c1be9b624497a8dc272d590a2b4d95f45b0518ceb1ca900e3877e2af43f5673bf7c3c418f893d90b8b28421db09ae24a1b12e3b36b5c09c8855f568064305607903b118481148d8b157cf5ebdce1eec2d796e20c229020c11ec29a7678e77b3e299e69d44df361ef58f2e8f78ddcc36b750d38909ff581546723e39144137d8db9a6c3860076e525e3eee2d9b5a28aeaeb4ec8cd7406dcc04db0dc29e1393413ee0149ad1d2a4703a2b55e79d6beefb9a8fe7e194fab047d380252ca1ba5cdda23b24d0af8d1123c9f299c1a0816b62e405520f33313bdf78d0053fc8568602c9e1392616dafdbbc4376b42d3f7dc4c14da36cd72d0b4af6565643e156f8095d6f6c6470e22c3ca02b8672c13eed133dcdb4762a5ea3b0610e951f9a13d3b1692097a286cca75efa42ecb2bd1af8d55478a917928a3a5842f460fd9aaa72b6c9347d7e65ab87703f4d81913403df96ecf73231b73648dd8f9e4972e1b951813c9706ad0282f1fab85d05e94ef452871a5a5407d5ac0e34b3744ce10903f8d656f8060ca074440843ed5ff1697cc156dc07568ccd6470fed8a5c37965c5d321afbcd8c865271d644f318fa9ca18b46b6b72a4900d3c892d65c135bab9f21c30f1722825592cab74fc0fc6431349efd87f6eba010b99667f60717c7b4f957f1c5e744c09e6f592bd0f16584b6d198dc07506e6b5938fcd7d584c4aacea42d90e11fdece1edc4f9e311512e9ec37d9b52d23a1ded7276a76421345c6739059f73769b534db649b1c65c0b7434ca85bf207144fe754ce4cf8599f143f52aac61e6fff67c076ca6504d6f582694101f8127b7bd41772e384d202943af1e84b7bd7696688735157fdfe79f13a502d09f353091f0d2a0abfb1307102e1f2bd2f0dfcff4891be42af8b4a6ae017229f69275097648090d68e52d04a0b60529a02034ca601b897fcc99f245c84211d5b61f9ba052ea13f82171906a715f2b8b1f60605e05b1f0cfb8d9ecdef923e2a6578309eee093a5a6db1b1d76bc32ecc6a6d2c5d4acaba384d9382306ed1c91b9d32e7c4dd54abcdcc39acd82d44c448d19065ad15a8ddb6111b89d4c1309514a2022aa35b9321b26fe9474465d27d8c2f57079844f2c10452412a979668b2220003fc221c75a222620465f8a9fa48d59414547d472603764410c40e54f5903f179323872395a05c211c91430c8a5297dce05a1dbea84325264a88d0b062171b0cb37f6ae4d470f9478d7e0fe28d6fca4e79a663e9399f0d7ad885a6c32280f629831992836a8cb24f116bf50295bd0bb6dd9f23425e181f361d225d808f79b57bdd9f98e96006aad990b59da01b7fc26fb3ff73fc38fbb67bb8cde52a86c7966063db5f650c99c993cae5b76525bb8ef8f3ad512faa3bf66f7a7235a8cef40c01dd07568e3733d419d019ad9b2cb38c72f683245d65ad60cefa7b58344bdfab0e08fd917d96fe37d44393e1a2214f7f2b695c01f672f321c3832d5df9b52f66ce3917ff9ff2144c146bffd9873ce4fac7b46c90acf43feefc24336423ec3371f1b00c52777148f44617b3d5fa12147d630aa74e3350119082ed83d1812590f3961f977625d444267c8580b13a683028830c09e6c13ec014ba77c74ded363e188abbc932ccd256c911126666689065735d00d0b2097a07c86dbf68b5a7965fea9a9570b2e9bf56aacaa203c3f6e13c064386f25ae5008c57ef8e7e0ef4dbbdd501620a9f9c46a45a9fed230809a7f074f9088079a5c26256b66cba5170a70e6c007c408f5744086378c0b08f2275a5ad7d4bec2f29cea91b1d698fa9e5ad359abec83c0ce66696dc4d0f9214f1f6ecad754ab5ef3a3810a71c412f88b90e4f262d87eb4a40d0cd1a1171809f1ea5393ebe908432fc8b19f2c23c36de5f79f45f0e358060bf58e3bc28e99f4025f3b69f3c7519508c10125f4f78a070fce8536c9d95bad03d90092da0325d5dff929aaa1a59abc9e4eb21ee0d38fee7e60def782244576719a89a6450c0e13ed039b7d6fb93aac208785d5999d9dbca4d8089694f71a9cf33b485cc601bc8ea9fb764d97ab1c12e2092bdf718abc50204f5bb9faa9e81aa42b07057c92c40260bfc71ddfaa88c60cf714ed0e83e45efd9a3e679414b07e9566598c0f2aa006a7cdc83347fbef3e9fc074a822436e1e50064d85bf37d3a0b19c9345258d020b4713b1354b2b9048114b3d795386b3041147dcfe75d20ff7ad3a2d5c00c345d94f8fba2679f039dc18dd516f8c8f549b230785e096619cddf55c8a31ad1c61f251690577a18451aeef3f8779f3429f5a1c194069461348051bba7b7342e372044ca487fa141adfb547d810845d2cf597078bbb4a03efdc724058c8d70662cfff4b09d48c6ce2e4947cdeb3d1a229320937cd3f5dbddb87aea94a61c7ab386a067a708cbecd511363d023c8fc0a089cd542eefba9ae7a33086fbdb1dfcd0b826afe80678459e6fbcda93aaf361a0758e41de87024325f59b5c9da01610b085e2c2238465fe1e5b44cca2e6da8dc2173f2b35f4e851e9f1cedef76640774848bf9052f7917825baad73c0ee661a2e823d944214a107256acf1fcfbd7c1626aa77624d6242b29cbdd59aecb1b62ae301af08bae8df8356a984c9b70b0e64bf162e0fa356b62c6cc22ef2cdfab1623fc04adc804908024615149a7cbfb9d96b8fc68b3f552fd0231cd833bc802fc2c3ab678093b25f71e1a38ee8a41a435012753ae9d4c2e0100638ac0728c82dbc1bcf1db03f63ec3139a0c6b27e262436c7f9408abdbe4e66aeafd9eff9178a27d5531a21d63a47d8f494f8f30b22a5bbbb1944261aa5aebbb8b0d7e7b1e826fc2ea9984ed777734510a0c854f9bbb826affb9d24ca0b2b9d290f3e3126a9cbb125c6e42b87c8e08a1acda51290fafd0c8fd581313b61ac7df7b2d8222cdcdf216779009551b59e49ccb2b630ac14e8fb2fd9ef885512faa012396872386a44487ffd09e228ad171295fb5aca4524b37591b54eb8a2f323cb70253ea1748b9efb323910262b83b595831f14806c1555e269413e74cdda13bb0e890c14e476ac9c940c1f711a35624909bdf75c517da15a6160e4c2f96957a6acf997c46c4e4b1ce89b012bc5094600a752b76a26c615084be5a6cc0817577aec6094ba367b9c0c767ecbedffdd931fd8b6ece7792520ba55ec33f17e00424224528efad54d028dfc8fbb98c16843b5ed3d11e227d9c284317aec2d6ffb8beba29cbcdc588f65399b6f3a4a9df66614f5ae1356a9013148e3d7440fe330aa402a3362a75028b0a4028c76da75913b3737aa350b11e065179619c1a49ffbaff40866eca3f220e9658c066eed50d6c8437d76451aaabf2748d2ca90965e24e5c38c33d97920122a9703b7bc238e4ba9d212fbb034534e1381245a42b6dee5e5ba0a953fb2a237e03106330c613afc1e35c6e3c5b2b024727d66a9af8f19dc8e39a8c84ff84f3845f40263230d5eb13878ce401aec5063c353e0fe40c22f0364ec92e47d965ad0c5a591ba04a1f071a80c969d218b6f7f8070687356f1f4de8cc64a5fb88af38165cc20eafeaa916872dc54b706313132a23876afb0486cbdcad4edfe9cc4aed272ad0cc54c5a2592e3c828c0eeddb35599053e8eb4c134544b9b380db7841d241d1f64fc3d3ab53e85076e0c2061e42e50ec618b99e54958f9dd90f3544e6cd76d7b864b4ee26c4b67091a807afc09b8391e76f3dd0f17cf82b3bcfbd335ee1b9319d4183eb9f673b1c67a71fff44f19b0374204cbe7c29a65a30957690b0a4cce3851f1931d2dd618144683a4e4f426a1638c4857a4dd94d76dec88e762588b7c02a46ac7868fa7eba68ebada105df3ba1d7c9f644428c38d16e26a13abdf792289e74cffc76255eb43da71a59aeadae16f9398b27c735ae469fd1acab97cab924314e383431d980efc9c383eb48eb4d2de03821179c26716631d38bf49094e72b07d4a333fa7a6a819bb2ba612677ae49da74be29e5c10770b0a55ab3f1882e797641bc23e02ec2dea27771d2caf5d3dae3476fae1754456917c93253439ef2da6ea87b08ce32abb1c34cc8b02a6b00d4beded3d0ab2ff8c4cdee56ada61c0cb9bb02b3128c50550006aa2f3f17adf0e74379aadba760c277ae048f9a1dfd18a0fc1acfd94dc6c23b57261137844f2e45603a8b320e8e7a7dae269e9c15e4360fbc353cc7cf22020883e7bf8f4f0069829aaa2e12aef3f72c18838e96b498248dd0c5de450b26ca054291d9f57e167c5c3871eb63e6db91d8b213224ad1f263f4aa5ba094705cec0d81a1b3e30c5c02b453cdd1972459f22ec2a743697ff8c15b8cc5ca0286c401f84510e311edd14ee3fb9872009c5e48547afaef122098f586bd71bf86fccf85843d7ef17c6ce59a83633131fc042973db618b17ffa1b92c57cc7c61dd756f654b48d093c71c7844c5f2d986fcb488e2e701a29c74756900dd79610504e5123cd005d0d140fea7af65143f483e699e0479de1e120505a71f8b3dcb00a83d68b501b0381ece6704b81ed1199bb62fa221de8c61fdc8bc55b1dbbf8d4e27eb460d15e3d00fa14472a757898e60e1a4a4035d0637a59113d916e394fbb00c941131a9403259d0a534288b8f664da43248ac62ce61e1bd96534460316bfe6bef210d1e54c468f011388d7e358e2c18bb818269bb7863d90013b3818a8ccb00528778041ab74b5caac791bc7418ddbb00654006bc49b9e0393ecd1b0bc1c361ff00406f107b4a59c295e9c306ac9ed08f82b832334f63e94b2294d5e614c54e38b69dc6aa915466c4013b79764aced1a6bf1a47a0c1dd705d7a40c2a5e64f4a0161595e1f1bc8107ad350edab3152d3b97d520cccb6b07ad798d7a41c791156610e04307edd4c406207ff236f6ee6f15feb1a6dc558c0e6e0535f397fa2403d8f00fe87fb2e8be05b0e502b66d0e93c15d9b14c2e36d5c4b1825aca44bef3201f8288a4418540eb492c24496a14aad30c0af00336880aae24935e644653b170c53f4c84100ce18316fcb4896bd07fd66c4bc732c444bde8368a4ec77b2d7959e3d7539a60999d0dbd129853353dcf321df5e5ce55de10cde1ff2577e87bc8d08e20a142208475b8a43b2a60ae9a10f663d84d92e7dddbfd1b943e8f57e8054f8176357d2d7725c7d2d6b069116da2eec7d02bcf2fc136962e08b688ea57160d29ffc853a9584a64805d82b2b1c36a7362d969dbb412ed94a0595b11981a3191ccfaa25631e19cd73a8db4d078cfcfc966084e3404407613476db459449beaed9cbfee81e282ffab32be467344765e968a25611f35f0c12fab8881c748deb9d558b5fc261154ebffbe746467b988d3a06b8512f66d8347366e8145738b9a340b7037a24c9b4804b377bcc6430806ea9905656bf88311d2e8d0a9773d5fe986f89a4486e1e491b86b85b3b8e2b30260b233fc5652bb5b53b90fda25d1862c51a6eba56df9405a925e150a2af9a855eb77b5fa1e6623300eb16cc174e24fd66ed7308ace581a2582899cd6da7d39b52291f8ed0a3dda490320ef47d384faaadd62049f95e75c039809e75035defe8a09bddf6efb518cda9b9842af0df6100ab85b35a6f90c6a106c0ee9383b22773d1b74e935c5ce115e94118514a7fbd93e218bacf64a2e59a520d5c8ba95b75ca44666d16770d632c12b24c9435a02fa57ea07402de6c702d8a2670b10ebac9d68c7d94e6353fe725acbc001887fc32d22d9aa2edd3929680f912d80297041431be067c74491eb831ac4ebe6b06d7652066815fa549fe3090263566bb05f15c995395d539f5f24ce021e4d2c1dbc98043d0520464ef71aa1af43476269af7af19464c637bb421ef8be7e36c2f9cbab6bd2ac98bb3ab650708f4665f669586ac7c0291364d2088625adf0851a212679a07b1e7faf8f3aaa611f413fb9c6b4d32ca9c9e6e2930e6de1025855122e300b939e6050a7ecc80810542bb18e6d187079df968274fba8098be3441147b6fa6fd0234f603b1cc56d41f823f0fe91204e5b9cc23f17cffe3dfd7ac4de7a9495fb6a02c477f557f076971ed2487600b1f5a33d0e7cf38fc79a65c4290fee7e4456baf7dcfa7c7d003161bbf518c8db453e930dbd64685acb5573abe6fab8d8c7a5c42b3a596b7b46d243ebd2b9cb982e918caa6bd86752377bef785027e75510dbd7dbcb304831f7febca81aaf9bc4052ea83f6af872dc2023fbc92992361bbddb37164f27fdae34a4e43f6996fd4136c076e2ca07bcf6c120704ddfc41e7cbac7b7a5ceb3b9e7f656e127814a47b64c6be664d0dca92834fef9035881e7b20ff73d8abd3ccd017b531f99ba86c3be00b8ae009ba06d4de4b5d1e82e4a07de073a9ef25f4bee462f1a89b379e68cdcb6b658f7c86e8fee7859f17d4860419ff862abb070f716cf10ce0980e1cf160d9ea2f3c1a1e20013f754e13f79c3167b31998cbb392dfc2627a03c677a4a42ed48434fdf53f5e9dc59031be637ff1b9e447aeb45c83a64cc1c861ca84e5362667abddc58a0710c4702dc487a429cf80309ee399ea1cc2983976918dcd254f3fdaab71d921c0e0e0dd466501df26ce5fd2da0f0679db172119d3fe250df2e05e7f81f1e2a4a5cf2717972c930710476309390ba4a72301e34594a9a4e296989af4c525ed2b2956bd2b0fad981ccc84ca99dfd038df7900c98297798cf9f6a376f36495043d138fd553e86137827c926b6079ea035e7699693e0e3a1a670f549185d8d33ccb891697379f994ee1c50f37582b2ccc708eaa0fadd3ba17cac1ae3d2ed46e9e64358dd59e702e19f84c35ef301097b8863a2a9cc8bd990f98fe0c024dec5041f0a5211960e0dc624a3a339b0f966af522713bdf90107ebf89f4f2168c876cf55335870a7d86e65d98a2e5bfa1cca0c6fdaf32cb8d50c8ae2e39603f1a5ea4ec653be3edc30e7959d865c5f8e93725c852fb343198d7619633ed0928e922c5f6c1eeaddeccdcfd75048dc03316e5787fd7c6758be8074df2845ecde87f615ec2b548a93e0fc3607612aff76c4714fbb080a6c65b5d27ff4d047e33ac81e419bdb37a5652ecad88d5690b2e2c45d47bcace8a69f893ba9e652a61b3b5a73067ddee7ba22e76d6be0cf96f6f9cdf449a1832b9096bc80047945a318a6e79c6fa33a3e3e6c81d71258b6bf1dd5fa8e1fb8edc5fa0817f8539114e568ce7b4f4449f5b3210e804822ade0e16c5b6cf0b201c7211b88f09672bfc26698165a1cb634b9662fb4a510ef64385ff30293dd93c6acfc7bac310f3bd0d71998691b2f18fa2dcb34e50dac2f5eb3c314bdb7f62d382de660621b8d1e22d02ddc4be9d5a869da37f2ecda4f9b4fbe338d767a014e768f97061a2be877f2a0eac7d7f3e8006fc67d4067e9b55bdf25fc2eb2ae6549b2d8e3030e8d7d4e8fffe5047886ec018476f262f3c2b60042c8f299dffdd54f1d0ebc17f0efe32ce7934ffc57bcb02f0cc99ad63fa1d43ae001c8ddc4a3e33d2d8aa7a4beb5a2d17ff3bc6d763043f50a43dcf5b991d144a49376b204066d89ec2c176e455103e5eeeb913fe177487addc147fde91f63a14a23b30156207908da1e98fedef323e33d0a90698883f8180357b480e728785c53ffe30ce335391d711acde6c69efd1da473fd62ecfafd6b857f3ab1d33d612d76412196d829be4883e06ee3a1bb2fd034f63d5d6f0b4d38de26ca3dfecd475ad63b167d3ce502a14d04249be4c6e4d30d76e142a2a1791d06eed68e27bd548449f3684e75046313f7b275700105316041b8d4ff8a4402fbfdb228e03db2fc6c69c3b084ddaf7e2f2cbdfee260a3279f2909c1820b20e116e3646c03edc59daf276931ef3761fd2adefb9758a755124b09e2c7e7b25673d010e771d624989852ff23c6d9fb61a752114bf8d44b026545437ade46f87e2f54f05976a5360e4377494014cde35fb9f49525b7a1adc4dcd82a25d844ff007177b3392d6a801d17295ff8fde011f0c62e8f7a1484c14a1b2695c89ec237cb97d24c14d078d787e0517fd785805b3fc88e44f5be56635b1241c886031bfbb4649226704b33db289efebbdb884147ae983bea44db721c3a7b533563a56ac8dcbefc3e9f7ea7e5074b701a6f1e2e28c3855b603046e3d82eacc58761ba3717d35229ee06a874ff56eda1afc18445299f96b130ba7ce01b4ef55e573fd1bd4d9a9315a67eb3c9b36e367d7c08a251f6f2ed9a36dd78f9e8880dbd19da60061a2f1de25cd2239b10de82be2f090c164ae585e61c4e2b9906939a65a5403a9aecf1d00fdd24415790d851107309766a477ac64568e68228531533ac5e4d1344d789764a4ddb61053aa303ab4c73189680fdaba355ceacd7f24c0da1e34791a64ef8e47007c693640057c10d79ad6ca28a7b8a0a53a6afe455d8057285b3ff78c38c06a1a07e926baba927f13725c39359ca67f22807743081de97b867f9c37dc77cde8e04464070b00bf63a6c6faa3c5af75f9517e9b6074779ab0b8d245b2337dfccbb076500091e87543917f9381bd2e09ab7edb34642d95835fd8dcfdd75077ce1586888b203cc20730c2a30c7e8c16c1b1e9eecd621f7c97de9d6329bad16001ca6d404d4191f743f3f44bc7bb6b1e019496f87d3935d8a3da38b85b41c2b336908f7697394f52b790bf3219e18e6c79cecf1e8dde93e73487753ec9530aa691ad67c6a916783490c9084bf4df789477bf3491df69fe89fd98692039ee35976fabcca126bc86abbf3fbb91062deced8b560abd0de233546e54f5771ee1568f335a5185f5588e6443813a985265e1f08dcbbfde490c5630f243fe05fc833ce577d37dfb748383afeb3ad53e6a224bb7e5ae5291eb014a2606a8ff5750a7c704925672f012bb027e42c7f1295097a3253df3e90217560cc62d04dc41401e8503d7c2b4f49d202c4062100b2086b3aff23dcc16fb81e213e6255a4b57366cd9b053e2a7fe203904b4f81b0bfa92d2b14576932c1b2defb6bb4cf94438c18157029b50c820e4d2f5d91482b375e1646b88cc7c2930664e338f25e832a6fee260666a39ac0902062325522fc09169752a46984b13a5bc3bc42e2bebc74605314f3d09d0455c2c8536400f216edc5390d10e983d01b677521f5cd124b3ecc53b4bf3e8611582fb1de8115ce9954140c2382fc03cc2685ec86d12b7c28aaab5c77b3a09f7a20571989bee34cc8247da2b14c0e0f48964595d8765237c40e50996dcf52834f5d250518b84f92475fe0e528897bb7b7a31d49e875fa7771567b84d1e3cddc1857ebbf4b95be0006988d721a5a258c32888a52d0c157bf9df9f39c8bad1e76015b85995c82324652bc1a91e09d18b9d7c346a9d63720aba563b0a469bfa39de5829f94a481df13de00d3be8f22d23117238c041164354511102683ea2449632337affe38c80523919171589c43547d12cbc438509dd2e8f36bf20112305301f29ce47fc5190faf10a9f7c8e164288d1685cca2d7bd94458a90d945a254ced0ec601daa5ff9feaaf3b73a8ac53ae7534c62ef1881860710104336461b0a4a11b326e6a22a1f868754c6d222079b60e8a1b4e93e77169983e73f0dfe5c483e847130828c21387a5204f07f14aa80d4c4e08e680693d658152e71a07abd1d6f4c032f9eade85c03ea8a83ae3902df1065744a41b767f2fc902355a24762da6a623a21ab741582cb4e8811a949c535b8a9e97de440e3a801b4ddcf5990622e86d688bcda7654a5ab3ffe34e8a49e40697a5f1ea0c7a6bd87cc4aac1cb52a1a7bf647d0f523aaa19b98f6731b9d1a01ebe411eac7aa29ab3235523cdf2f4473bc88055ef188a7882414328ab8b201a6f78c56b5abec00ab97092e05e50307b2b45cf4be48aecad2fabb38e229fed9244b35790cdb84eb7db5601c299ea89e6d9a3c353bd2059ae2b46b3d548b50f3425462caed7122da376fdfeca08cb69512397778b5a87bbd225b52c93c463599d6f752982992eca67b5abc7b79638c13cab24b054d7e453b1d86cb655839829d47fa54f7e06b7b283fcda6abc5027298b59991916ad149f29923bd2afde4c973a0afedb48166d51b29bed72512d7f7063b02d5ada7c6713069b55d7166ced693566a8c50fde8960c13eca0beda998a6b735840be7a4b0803e3594fa5c44a2d8b6c585eb5844919ff5c264665c413cdb65ca7b5a28403ebb623233d8a0c6ad72e124325c309fdd529d1c69283e8eb9e213182bacef5e591903382b17c75c992a4c0190088af287c87932e5d0b8c990a16cc9ae81d5a2a8ce2f6d44067b1739de651b036430e88d4a7cd8225804dc4aadb1bee8c36a7e740701ee32ebb8b4af44fab7494344b51673b6480b72577cd87fb9d20f55511de64effb66b21206018f96098a33b2439263b411458a7d6e54ef5167cd9606ee331cc200bbec7f8112afd6799dd1835c33c7e6565870e92af98718a9c19c35d0992f1d274cff80648b1b6d65f3b72b83101097de2c6f91716400a0c7289d78ce94a66c0eca085c04c9a170e46aac6477a48092f6943f36c6e97f2fe8b6900dcc9e18f325a19dae04d0aee75382aff251c9567621a023eebf803cfd5762134732f10ab5db1e7ebb079668edcb62578f42f63efaae8d1125f28f6ed4919034904f08d0080e8d998bb0759a6b9ba07f1cd2dedafe481cf052ea574b7701fde67a7728d90990c2b5d3e0318ee50177dfd0cfb6cfd91d374b4e75dcbbebfb92b2c70f4ce1bab5053db286b7ee3c9fa8ce2d4317f921f8d4ff0c41bbf664797ac247d9658d37e0901302c1ff31c55e4e15c28bfe64e718c9a5cbf2f78c8be9d30cbd18bc19080fb15c0e0919582b8327f6b258ab3ecb80ca29e043ec53c06422ba3752a363b38adbd29fae1ea3f9ce9251803fba76556065f45d3d239d6c5c6dec333f0eddea711da9e71fb8e891962d9aff22ebe3ca2a19401807ccf0e637d92254b7c128fe1fe17d11ba801fc4c7ca808c1189d355fbfc3f5534d93cac964a01ddf2d1ff7acd07f33d40350be7c644086919cf797aab1f0fdecdd0da9165be634615309ddb1257a576e5b97bcfe5ff4bf8aa206536dae95e33adf3f824438350ff12188d21f64b685ea8f4d94e664f6c90aa8f649153b16419d525d00257cb136ed9273f467f37b4e60213a3e0a347e503367f8bc1598ef7a911656dbd185636023cd391dee6b14c5a8d820b6103c38d32bbab38129adc9481a291d37ed97cc81cade7aa8e009606422361ba4c76f7f65dbdee7d2ecd1e64ca25a08ca47acc0202ad1a8af41b330d4da0da0305188415dbbf6701083908967fe3bf3eeb3a70dd5d637d705893a282cdd5a6a38a9bc95f809216d4ad844bf9d92a1dc4d35e3aa7f931365272d1f415dd65360823b8da1072633a9bfd6d0a005b5d1f765e74449213cb27e418abefdd3a4d15f988294265a599b32d589a02c4f1a05eaa850289944ea974a0d2d53311cd229e27fc42ae53fcd22facaa513c4eb74e897ba5fc2de32151b2c6451d52919f53f390bfd4bd328fec2a65196b69ba89b1c96b7b70adc4ea20a1761a5a3dc52179ed8d156b5d30f04efaae4e97bcd7bd7656fabf085533e02a42f7aaa7d04d53f0902785d05945625f0af32b84007632b84b429614e29a4500ba52a8687a8a16a72f8891eae2c88c115915e49cc4c13092e8aaa54f144591459173f268c33943168a4918a36662f8ea4a8a344f278a03eca2f903f28e44a1219a246122692f15492e6322942278f29949a2ae57ba5729856064d2c69a865ae5c12925eca08e6a514538c643e493327443330aa49816c26d14d6209a78cca797802a3ed279e6d8b0c950d5bbc3846432e71402e5e9414046a57291bb8f92c172af76f8217d8fac31ad22b3ab6d626dfc24eb283b7914edce079b96229f36471f48d0b3d99926a1a74a65e241c43ee030ee4193f6c85435df4c1532bc4038bfc98530fffcdb968478d09449f39de8fdf89b547c5fe23694ff6191d6bd8859d3043030ec0a3345c803c801d98ebcb95e91b7abb935b841ae14e5e2b6f51cb1658fa9866e99ead14912a7bd760856e87a1cd7ad48cfcf1fb16c5d8ca4ad2dc43a451034f574fc8826b3450756be50a753058f3ac96faf5d1ed565ded45e1e43c3e36d8cfe3bf58d00db2ba4d43939fedb8ed29bb538e75149f5dddfaf711c7372db7ef1d99035a16b429eeb0e3257c805c59364d73549d4f78b2abd90bbfc9716598dcaeb64b96ae244dcc6e4d63182bd024c7cd30298349e8b25d7557a3f128fdb5809246998eea3211f888f2a7fcfeb9d64cce079246b28a642536b5586bdc93538e84c3cc1fd0eeec75a12f4b4fd9ee3c0f8fcdf965f5c59b9393e7ba580358d186ecd9611ae02cccc580c1b0fcd0b330d4c1377d76f72f9ef768dfb441954868dba59f93f0c1b0540a8b57ecf68f3bd3f5b6c02bd372647be040ccf6bbd080a52a36305f8e0794b435d9532e5aef2121403bc90883e147a59f8f348a16c7c4f68d23ad3d03fa48e5141949a02bce8f1e116cc6f6b3864d2209fd8c302a4bd510bf197172333e9109ebbbf9a5f13d0633f11f00a164395b03f50fa11ed0a5f47a80cfc39da82d484bded8aa330eb30ef7d92163990030d15cbf6ff62cdf8f56c92cdb8993291a78f34b95ba55ac734e9e0548421db5b20a5f87bb77ae9bb36ac0a13bef3e8fa8911a7bd4625ec551d4ef6524a0b7c65030b42e3df472612f6a00c5c1dd9f3017048036ef3e9a740230941ecb0283fa4df3da59635ac19cb0542f9f1be4d9431cc686b5370d58ca7b0196d7a6f66c12fa71cc3172efc48b5f3644beb226527cdc2eedc9001129b894871ca20734980feedd35b718db4dfbe8ba42f309365afd37301dbb75b5e92666678d181051906ce93fcc4224ea6554d1a4c123faae8d83b35985c27ed54a688c070946088802b9221db3fc75ce2b13959e6910dc345b0a1cecab152bd39f6ae7ee19cd43d7861978d95cb3a494d9499548e3432d8a6ef3a8f3496c608668fd3e7507cc91594379ee3d2034f64537374c2e97f5a779581f2251346d7239ded19e9bf018ea4312c55e24e46c10f14b1d8e4609241a5fdc1da5e1205c0a4f8f2fc43c630216e3dea0885b12bd742fd669e733e14a869360654bd74411da81697ee0560bcdebf06befd8b62db33f02dbd22af7a42b0be029fe0fe18de44454ff3e846cacadcbfbeb2d61f76c32a515a4c68fc53a8684327e29409e7fcda3842154bc6e78b3c4c67c37fe614abf77e34e9b6af75c3f7ece73a1ba9c4307067a4fd29142512a5aed258f00151430f38f205acd0ea5ba4ba40d5c7066a396020c34610c5c0fe184cf912dfe275405393648a682ec833cb7692a51206b198c02bc9ff7abe7dcc5433b75395162ffde830ad787d114506dc1dc99dd3f6289680a06ef187c8f6e68b58b91b953a140f39279414274ab7dec09ea053b1f81579e7ee4528a1d0b1725d1c1f870775190a6e298881e4f381f552ec0a321e9635b4afae37bfb1c336c38014922a458faf1c4e4cfdd49b72587e4baf857b87676fa99632c9f6cd4e1db2d070513322944239704f6de9b6b6d99946de4af94361389ad44b9906262b9a0c23fe5b18c4bfe9ce8aa64a5f43f79488b67b166c8d45d3d8f03a68f183790b9c83f00df841ee147c7d9af20590e8e77ff513ce0d62188daf8c133c145a4885929f511b65e7278fc65814d38524a55d6f3f462f0605fcbd7a03e8bcd7e7dc41760e09f79801071622dafbd9184cf8bb4da42487b7818c787b270f6fd63af367814b49bef9051bb243a27aacad0cb33bbfa605f7cf52e82b274ec09d167645752996b1bd01729d00c9295a22a7a9e4806ef78db6d61306103da3cbc7d726d0ea0c2742c96a3508b31af540449865609f5b019db360ea1934e3979563a517cf17f848cea42d069cd0dbd54ea199ff9d21e8e7270c3833e1c0557a2db32beddff1bd72f1adbfde474b47ba7cca0931451b5a33ea46b7f8ab9b0ca216f4a44d4c85d913ab19522bb971e5eca813806b847e6b122d1b2e4f5768c19b02bffcd20bca4ea2966322007f7901c1686d0ae72e1b92f8fccc97667dc06659ba40e3f3517a5f71209ca25482624c78d73e399aeba71930fd66680e139a9d81a310586842641673ce17b9428e7f3a149f4b56403fb41775cb8097cb28e4a0a1ecbbf31c80a6c323e624bf9fc2f47480cae63a312cc7b0929168000d2d947230d96d1e045dc1569895642c1f74b15c391b307f668a222be216a29adbefa9322e04389a44afafde9752841306f6a77593fd35289156f2819725a2ec7001e5f49156705dbb3ee7cca998e499d1c8f98cd2ea14304ae7a0f3f87651e1bb6221cd5b7e3c336608100c5ce964a14526963392fe57dd026e7be30a0e05cd4e3b749c7c8cd5844508996ed7127a3c73f2176e84fd235bac00ba30dc50154e990e7433ca990bf662452e0495f6a59d4d13f20ff32ecbae6b0660b52f20bacd3cba03a043ba8df3cccfb3799662b8ad321a4261812b562a0470df0095f51da31153318131876b104349cb1f16bec1562bd5bb0757433cbd199791e9d03af61c2972d62db14a2bc5764d61336ba1b6a2f5014f7d5aaf0084191a7258418538c91b89bd0d7bb11ae69bfbd5fa552206e84863307b8e6c825560eb59815727626f89f44f0b9360ac11a25e9130b76aacb1b14c19d18e11b4f4a294f745b7e2515c688e6153ca0cc007a2c164a8b2f748099343e670fae20d775328d891193c00e3c0ceab56358e78eac81028ab0afc9634fc798835b8762ef56b3397889a170232630a4dc97e8acb4db1d79074de7757905dd8e0b027f35087508620805ebc818a067d9b9b2486c936c8dcaaa93cd71dcc04e0c5a071421900326cd0aa86cb01144b4636068f251978ea9226cb7b23c45613a42c9bf8703818d017347e33df3dabecdf8513aa5a9375af35369ec5a206ef211e67cdc70223c6cd16aae60ee04ac08220fa078fb4acee105adb4d5f927648f65ec70c53c146e0550c4177eda36807753113e6491fb5d884e5ac013a813802fea73e5ca25e2bc52ffb9c49dd74608c5e8d244593514a17efffd059204e4840e3351f2cbe7eb598e847a21841b9368a887a68fd3f09405f5310161e0d70b3ae8d73b0aef67bec751dd32ab6aa24b1b1b2b3f72f47c52cb349396a58397ab3beb8ea821644b404c09bfd4c4f21b14de8ef715f320f27d3f299e303520ec32416144653e4ed4c1e7a42fc27a0db29f9d73fdb6e1247e02bbaffd2cd65f1f6bf0bab9cee101b19cc6f027bc49dcf489fb03cd9c73a6ebb62037eced9ff21bdad1f078f4b9dce35f45df677572d6bb5146ecdb86ed871730dfb934d381262a923a97284b6759317318987f96eadd88636bfa4f898e55834e0dbb90dbefe5fac5211c799ff601ad9019bc4c6fa55b55d06672d61f8cd51c95e9dd5155f6fbf59d5cbfa2d828094ff4f191a58e8c4ce7dc79aaafa9b1c0d38177719caae5d0abc3f43eb5cfbfee2bc30fdc9c91a8faa6bb3a73cd5de473959e739ac1d7619f5aaacf7ffa591473f9a33519b1e730c9cb625c010c241b8ec50597661997da3cec949ecc6bfbcd51d2ca65cdf2ba7f7f3b107e842efc87e1573675a98290f4cd8a9859167c6c1b78764ff6c4691b24b63e5d895f5a5b1a28d5bbc92a8a2b1f880e38886215dd3094894b751920bbc4a94734887b4b8ccc5d0cdaf455e6b9175e027c3eb104859d4b7a1cc85fd1540e9b1bee3f14fba129fe9de2f516572efb34d5bfdc18717fda1b49e9fdd04ed49b89d851877603f5d39e1d23aa4d0a3af0892b5f203d136977da0880bce32652d6a5c4540ca247d77e0d1d74f69a170e0a9d35f06f0d63cfa72abbc8c861cf719ea50702f718936bdd8a3049f59bf575e149abb6befca4ae0cde761d7365ab23b79fa33a25463edfef1e99523ca5873b39c1c424e5a7806252243dcb4629294ba03e4b14e3ac74cc5548a43d321bd0ed161a0a5bd7f3bf1a5fe49ce3373874c98ba0723db452c4e2399e6c47364e58b86867d867e1e3482432245c0d45fb4597edfa0582d53e367455146d77432dc5473f4a8f48aa03523a5bbbc72731f112916109f7b1c241a97c3de26390fbb96f2b5b8a5c017e5130e2888c3479995ff2c803674d2fc7c973d80b70abee22c6f91d839397a54d0a9a6c013396cf6f173e288fcc75bfeed9b7184fa4aff38583641c710916d82fd057b5268defa7bf4eddd76c6633260ca3d8a9b5a6b5094f6c95479fb5e434545c1e016dec582577e5e7f457593fdb0f757c8a9ed3ad6fbb7c73b316e7fec50c74976cfe6cf394ecd3d88913195762aba93a2bcbd94ee136f68cca36e5e02207031f11bc71a8ecd1129a2bf17a05792f78408d5ffbabe523919895ac3c504e2f77e2f0f7bd74b7fddc72ef3eba3f5cf568ee64cb7ee602d7c7c513719f71d68b48af875fd8bc44e53f6b412ec77be3ee6a5886f9e7a7361769a5349c21bba4c69ce1a4527857ae85293c4af13ff83731507197100af3dd9db9f2b8cfe7b0db8201404cb58524b112aeea6f01bf82919c1c097a007fd4893605e27e065ffa392738f0a5da8f1db57535874ed5306651784034780c00de7538cd3f4edf7fff32713926f0158c08a205f9aacd1854fed6bacdcc78ada3f967780db20b3f26e94e1151a833486b18a58c363a2742809f6ab887f06c0115b34c701f2e1263a1cfd6ca0bfaef25ee58f9c67765c53961ea312d2625c943a48831d726d5db06c4efa0894f90f57f1aab0644d8ced06377698505f153b8bf06224f59ae5a9dfe6351a301cf71b1be4f124752f6b8b2790ca144000bfd8e8d9ee84eeaa67b6a3d2010c2423af45bd46ca098077dd1d43d297ab97246fa5675f84458c9fc47c162c09b2777b8ddd8f673c6b25877a8fb3ceda26f763431a8d6e90b7c1cf7e2e507ba4e84c1616bc0948e6d386e46cfbb5e6cbcaf71c9892129d40db243d62fee42e217fcfb5762c47718ff2b5cf8ca327474d10cc4e9b45b76dfe9c7ad209cf67319162fe40e69bcc0a5b953d4fd23abd43c427a84ec7c87972813536aea1a30c846c8471a35fa5b833f1f9619d8df453a1636f76363c3d23ed925a1a690ab328fb869d0ecef22e421a3275f304f01c3ccb2cf36532301d602138c1e648ecd36e5ef0c93bdadb92e3ee52d23b8fa43d29936353acb60d29224f1df189be72a570aeeede0be083c920a919e910b84afea7af9be65e4e565df02c8ab13c7ee612991ae50e2faa394ee28ab2c1b090e339c1b65582c7d35580013bfe6c653cd8c39a86650d2f2b554cb0a283ab7dc7018e08ad101d57e71d6e190e390ecd71a341e323aaedb5b6c74e37a77f799957b084c099fbdb4bd6a1dd58c4cfab4b4c8a7b627c6eef12928f2ee0002c1652c8a4090afa4e0d04c38681928d25b3241f8f00b33cce553dd725f81d70d48e0e6ad9af6d217ac3d808aed666161d075efcf0e868774bc2f99ef3ed675d549d3748c67b6b52eb14c5c3da4ad7342a53c5ab02a72021da195aa7d38ba43f9ef1b9c1f18ee722d9faa487916724a39376be501228586575d757ef3f56bfbc7b467b5360e28ae247f6104213a38f9a7dbf88ee34e7de9861e42446cf3f20d165e4569ba8043c960b86ba96422f700432d14af3e08d41c778a75ef5b4cac95494eda0dea75fbdcb65ee0481bf406eaf85f7b867da377758aae8044209a49aa7cab8786f2150e871fbcb5852ec32b3819cab779927739caf5668243e9799f079dd4350dacedb261c173060bc8cf0bb4dc125b1a89718919f611405d78028f809cdac8653499f88dc0c5954e060c838632e209e6e734d7ec382a1a036f74e6f88980c3001c79912ecbe1cc49cb412c1decb02aca2b1f0d8ba3e131a2e8300aacb695d14fde5906f80a640cc6346041d4f037af7f7eaa5e9338ecda5f288d93221f443cdda83eecb295197aa21d5556379f7593ce6fd0036daa3ca2b8a92dbac78e7c9ad29149fc168bdd988cd3cadbee4826c265cc5c97577490e7874172c2366be660f90338e5dce549fc006f8cf352ec1653649a100450d89ea7cbd6cc5a907e2efd74109c7b16ccca70eb659fe069b185caadbd70a0c23f30196db298f612362f1959840bf9990627e50883edcf9a03a5da430cd7e935ffd0f224d379927a19a528c1e56261502ce523b4301e505b8bde4c61a34d682d667e165fd7c6b68a448a5a73934d6f8322e960626f2abbbba98a31fd449eb95d20c7f8beb69f4387bcc98da5e6fa5f6577c1b065931f0320bfda67eab306db883a73202f6819f0fbe3bd1e32a7569de10a75f12f286148033a35c590df2cc6d80acf8cf277ad85e00e28c3e6ff8e0647e02d416a4ceff083d0ef48fd6ad11f767734823fec016bdfe6c101a818f8d801d182d4920fad9d146c76749eceb332e7e44a50d38195e3bbc1038f60d968a426a6e5b1081dcffc00077b580b66e3d5189fc27e718b58889f33ed38dd0ecd13d1cd074a2ba264b16127131779fff15a016f9989c872bd5bd737b31f0c45cb0708532cce1ec1e12b61df6eadd4404fa15e417f852428bf4e95187729e3483cc68506a23d488b20fe226bf3dc0065fbd212ed8b8c539a01d8c83d327f9833f46a087a6c265281b294590589b6e574c82b66e657fcfdb482ed867d020ac7af0b724d93e64e917c2db8a1d8525d73f29a543d822e8fb40bee55f1826a897bf0fd87d3acb480a3463f6fa40eade7feecb41f3de0f30c1bef7f5d89c194497a8762a056cd2f84035be275fe7c980067340edd848b1480911ca790588223207428d943499378758719f9916784f551e108eed6e32752588ec4d66a0fc0315fcb8d9f40783a73b9a0b9417906870316ff65d7f282028c22a7eba149ec32cbe8a76e1f52eb7838ea4c9a7364b9028f065a691fe322b290c0553c1cd3831ae5b1d162583c00bf70bf75a638b56be22a6222a87931104ac7ed7bf99780c8541f38b5531486b4804620ac76219a24a2f59c8b91ea413d46dfdd2d36b3f93bfe308c94d9cf9a4438e2225d9b68fa9085b4a8173d45bad656050ad657dd0da262c247fb61aa2be1c413caa10ae7a2d9db50450d6807e900dc7b5d61eef912c7a25dfa5d3ae02dc6413e1d9da68f0e044cbf45cab1b3db87a52bb20d4b0ab8005e58edd1aed2fa9153f14c1ef0feae3d781ec3c2563b9f2e1e32025b5dc9d10459f1dbf7811f8b9f6793f9bc7001fca3c91239b623910c16b4bcaa61ded4fb37119c150ffba42b4c5b39e8312b6886cd1842b5a2b7fb5cddfaac07a13e834e6222640ae26929e8352884916c32f8b120e844b09e231fb63c5125a89bc01913ea491b952efcdde8b8811b8c1f939ac7e9fc36bbdd539d9e4214e1f19f5f629dba646db90734c14b59ff037f79a2f243915e22c827f4cc91461d1569f7dcf8f8289f4c2c6e19a6a0e3d4850da2721acec6a5d05149b2aba8a4d56adc6cf5c2c5a9963fa43748bf7bdbdfbd100387631bc69c1f6d9df8bf7f96f145133b1988a420e848635a23dfe31d444179b3054f7a458dc44c7844455557f7ecc4e3616f16c78fbcf4b2f7557dc3016dafe0a957348a7d00e99956d7485a8f13a6cae7a4f0a1aa01d215d661baa30f9b2eda2d39031bf102a74619ada0551652c4b4c91cd89343e359da2a6da5a317ae94e08cfa3fb2533a9681388d46518581043caa6fbb2d191d23e4447aaba44263a9d362b3a0708cd3dbb5d14de54be71a0377857084a0051ebd178573b9c77869cf55f4c8cb157af504a8a47b67d9766d3b35735eb16276c4aa613d1c68b59020547c1e430d58b0dbfdde834d9ddc1e64b6887b36b1075beb8bcbffaa7f536afcc2f1346102f8e805d04f5c5dcab254dd90f0c6c294fe749ba63440f20f89296bdce5008381c6333f0d13439259940daffb85af0a9edf800f2ea44c1c51d5c08026e66bda5a194f7e41c281fc47122872645b6fc06339e6cda2c6c56189510088da94ebd802c0e815246a0c933f7fb921879ffd986b78412d96938dd733c2e6a9b3035ec5ac1a34326bf3c09e36fe893b23de38effe0f77a3c873dbe873191413ea87e0d085f3e723c57c726ebd05cfe79685f39dd177d5a14dfb9ae4b9e6e3bdd6af195980ca8b1584201f60e6d702ff1de070a7751fca6064c9fcf5a8c40ab269127afcc54b8062f250b6fb0018f3a93cb0321e16322af37d50c5c262cc4b8315ee65ebdc2a7edc819b865ef7c1c1dcfd9b00da2de6e83e59b04a8d99f17e782cc75efdd7b2e06f91d1e0ab88a92897f63641c014cd5ec0684e3b23c364cee75993a8e4a7e981cbebf46d70480fb6776f1889309f001b57813f938ad91ee661e85be5b2503fbc3c1bc067a6b1c1f45841ecdc1df583845d8f363d5c2c1d90ed52cd9335253cd5de56341b5a3f08ee94c8d7257753ffedb71d5e57f67a4b3a81d63c10628dcd2c31d9261bd88bec7a1e2bf52ad1b167ce73c59b3f6ac251241d1f501443b8fcd6e9d0198928594942f04860fe6c2dc56e4df69ad8d9e106f27f07e848b225c3afbf1f1d6d0a020ba18abefacd63130e38aa4027d6867a66ed704deec680654c7a229759d137bb63d1268523160adfd2f12303bf428fa592ec9a75771c875c8000586c5b8163a168a72b8499117f8f2a0b7bf08da809321fe980979080c0b685b8619428d0ab3ce6488b2296db278efb714fa58978566d76d170b389e50953bb2ede70982c6254f5842f8a82563b83e5afb362e1b37ae53c408e4c309ac05a121423c1cd45a575e454295e4bc7f73b7d40277ab66363cc8d3d584f0cece1726d9a3c1c2b0abe7f299c6ee3b43cf69afb413c61695c7c61f0ddd73dc7f5702f425989b812c467c8083890d245fe7aa4a6d51267fb6b5662f070a62e843d2bd953d5f4540c36dd301a9c68b68b70dce6745a59eac3eee60b8c395c8b4c610a1a9046c6044078931436925622bba7c8f114b6f4f302859d768e2c73bc503a21fb53c732bfc834d65c9e149a9338c14f502499b83ea82722f3ffa9ab0a351e4a046849bce4d0e4feb85f4acbdbc614f3e13211207403e49569525380b60819f7dbf3d4e5dd001189ff8f793fac60eda888bbb8fb2af372ad84098ae6f50f1737bf322dcd71619d5f7aebc5fbfa2771a006c45b4e53a8c342edce5d0c5cc5724eb7137796807f5373fc61f8d24e8abcc7c6e62a1bec248b8e11921bb09f934b17f6482b699742532f26facd775811b1acd0d965d2c1840be8f0ad889db4f2843c88b70d2916cbe5c9020a9388c490bf80a5639225d3da42419351d9fd57ecfa3ece3027aca2e8bc3810b27ffa3a4478920c291dc6c295161540ea24fb1093ecbd97edea63744bc83da76626d8b1c03666079f5b03f6733df2229739fb76f63dd85360ead47f54021e9794e3c75c0d53ba5c964342499ea620aaa9cacaaf9799eca42ea385133e325690ece7881a08e6a73b8fc0e7190568f2fac98d6ed373e3f4e4f784d149e1b68fe89492f148199ed69d1a79be96a3140a26b7f361f283c4a8b341dee05d497c126fac83873bd45ef780580d7415c4ce103116b04c32ccdde010f4abab014a43386241d5a96e280bc111c2a6ae05d8068202bf5b988a5313a5aff24b8e061ad14d9771c1fbf4ff1a6513a147fd7e73497151a41a70f4c9066977754ee35da4ae06acad69b9117ed969a513ba7c6dc232cecbe3ca6d3b13b1cefc58c29c73c8b5546dc08a8846ef2f76ee2ced3a9f2c2c6f890645d7bfe33498ac1dff53ad8e0073e60180418ea6f73ea3f7584ff4f096571d8386f92ffa825092cbdd5d298b444e46c4c8e51e644140ff59a4458c7c5c09ec12764e6f21531cbcd16239a22abacc7a3211086ba41504c34ab2fbb409f3851240d77a81e15bc93cebd74ecbe4e02fe02f7465385d8b99b6d7bcbcc32990df545075d7e97251603f60156a3aa12837d83d6a802d5afef482fde171de583a5d9b6ab7d5ad5900ddd60a7872f01809bdd0f1af2021a8de2e3e5b1066ac805df4dbfb5193bd9978a6dfc7bc7d9af3899214c66e76972b81b0fdcbc0491a424ecf9d2d1cbec8735bec2fff80f21a82f988fb84bcd067019bb3006e2cd3d5879a581847af746455569b1d9f1a888ecd49d489432a3a051cd974cacf936fe5cb907a33300861e2200501d6943f5893cdf1fe473bb067f00f8747718334352037454423c84058177b2737971625051e27ba0d57acec8e33b7b2c0ba146ff85039da983347571d30f91b9f176e3c6c1cb4e5a0e4cb9c6c898a11dc400f82d5e4967650d033efd44bd24276836c3f5fe22ec638ae0c5630866259a2933df887cba47558258fca6b2918eaabb94ac6e9dc7fc6da5843d95135f5c3ba59d80a4212b75e1f9e64b907d93c6b8bb50b85d4f24891400615d6069e700268759989c7a55cbb770e68fdf54272d27fe58aa8fb167b096522dcafa00bd3a89568edeaf3d4877d276e159cbf81754c4e35b80b06c8a23e993b26eced1d0d4d47bbfd8d3909fd1311ea48cd72cb340b31ff49635a842e80339a6b0e582520c7eb26355a040e2a623838b1100dbf682b6fa778f84685f75270e7979a243ef011890df77df8e176e442642a20767884b355bdf1e6fd915498eab7761063fd9582892c321cc2d4441a16344ec8e6b1aa5888a301683f2f9007b02fe43df2a8663b5058b0403d9a7ec14d17a134f38893127426b8daaf0d70fe332bf263a28716efbb0be69f5098d7080976f097aa4737f59643cd8c160467830da5bd185a3950c9574fca98aaa765adaa0cfc18d95cc7f61575fd41080d75eaec4b030448b1af2f2221c45727a14af5af54497b1e07a2a9bbfc56393bc0da22ff93a41f1180a783f5e5f1f5880a0c52f73ff59825b16d0906c26ebec0e338f8b2310fb76320c45eaac7e6ec823b056074468d8de0de546c1f37c24acb30d34065315dbd4a5d6f110669dd9637f4b9e85950342895a18bf80fd38774400a168cd37bcf868596dbf82ff4a889aba279444bf98f3e9120b22f2cf8b0deb95189aed713bbce401f431f188268b6e4a2744302ca4e5a55b7b7f2805fce11383be20afac1fe53e424ee9ca0303352f0c4981d1c53d871d23b4c4454386577b6670ed2ef6217fa4cdc7cd631cd4e29f0953eae4526c3e672c4c3bdb6492dfffdb6c32cafb15045f19e10d1e1cba15358d97be367ae3ea49948fbd7f7a3f7542bc04d15f40cd3f07fb6a34b98389661098de076a995aaa79d43d5f7987b262d602196b61f19f641b3288ed49a56dafd6e2facfd534b9bc66e66714a56d2fcb282c9b59b47460b6b3556688c42113f2b1ca7249b0904dbc41ebf8040cfd5b581b4035f101732cb637c054f17e33fd61cdc6a0a1ab110494c499e268b85978ea6a8ad3247771d792a69af794249c3577360f50ab5c7602200325526951969bd10bd1798477ce64da818ae16777dbdadfe55bda01bb49a4e5f77795067ca5879dd4c6223aec263b86f51b7ccfa7aaccbecaf3d9cf160729e83fc397788bc61007479fca177d6a773df95aad34f2834dbf22824a68a09dd262a99b9abe7eed66df0cc125f5d49467fb7f5f779d5cd8c6894bc6c46e7bda4e2f41ef145375b5b98f18de1a0ffcf7a6f1c5ec8f8a911d409b4f9e70c3542a67ea4c3f1c2b5a18ca8183180dbc341539edd043207a126579d5c9cc74d010f1058a5ede316ae7d6054fe31412ba61413f05a94a888b4cd240886d1ae9860ce42f6a10a7610af4cdc6d6d5fb15a7554f801cdcf20ef7151aa83a9d959a276c3aa0f3a3082184c48174cf4efcbea781991b7a5cd1c0ef5309d54833a9d82e3fda649b2bfb77483ae7c7d41d95f0659e2a150dd90906192d86ce4be677f0c1f6fa12e402265e3280d68fb931d6b0f7442c40cbb6941ce4c27daa8e3df2e4745f91bad70ca158307d13939a5509d87af4a131b41fd43b955fc37c50134805ed1ff19a91385f795bb620cc29c43196a3ac799b43f6315393a6e7a2c406822d72faaeff6ee4f717edc420000bc2d7145be745c8b7e7d8f72af476573614a710c8b4614e44a093c063b3bde697be3c8e5f40695906312dc921ac4ee7d5585fd4636ac178909c3120b268d5534d8eed0cbb5844c03e5947f51628a45ee6f59e80f840cf1a56042cec1d498a918ed34fca138c73d94ed6b0aff5ab450f1ddb78ddfc578bc87337530f7af959e0056cb6ca4895c059e798c87cde3906997e405d821082316fa3006f6ccd4496f7f6cce07d5d7cdf9fd2bc0e622576ec763a044bc2b4dbaf8a3d1637315858b53489c1655ca2d6f6339a897f1f3e5558242933b85f9186a39d5d84a9085f49f3d25fe0320d01c160211fb1aaf914f9911175f7b89f2d7b062c387a13a6612da24cbc2a3cf79acfd3f18128067d0ab6e8fb306bf3064d625c968396791120a3fdbd28c5700689a3c5305064557a9ba5812aa20141267043f824c8d06b2ca1a49bc0cdcc0cea2fb2d5093ada0261e29fa4c81fbb8f98e8e76c621a9a4c992ba11b9a482976f5b40487c55e71679c644b190b4c84c83af29d812df3cede2901e6b04986cb5fec1fee8d9b1968de88f9102db0286b0c957b0f3f13ce288de49b277d812ca114f346f3127c27b023e0b1f9a2e54414eaf1d8a78449106bf40e2099573b11f5639ebc3ebde19b421c7466e71f600e83f83af018910e308263650e1dc6c6710f06c42a2cfa60e9ed828c28772765a111fcf77bfbd1d227b384006ddd6e10420ae232ab4cc9d00c7b1974dea27c3e809370806467b710377cea4746222e25bbc6a09cb3d1228211860e1b79202dcecb895b847b53e3f7d4566c7543d844d7194f7e32ac39543e05106ba97cb81a47018081b87dafd84e4e257c5d77815048a1d7d2bd2ef8028619192d948d5c0c3c5244a73706a2c759280922fed9b005b2c47019dc1c08caf2684c8588a6258bcc0ac6009a18eedcef51c292d576fa84ef6f6e6ac8864bdcb80798c6bc1e74c169473fe9eb9a0784d209d8f6ceb365811f347269c61097b87e081c4f1647b2c3658b6357d885fb6b597ff52832fb796e7d5e1de36a3351860d4a6d48b65dac2fc309a7dacc130bf89a681aa2079a39d18aaf174af855427383e338a59f4fcf907f04a0402205a5347dcea164982e34c9d8dca05534ab1583319ad02afe138ff461166c17424aff0a2e5b6819f136c7fac71c1b35fb5a92eb622c4891b02df7571a9a9dc40e2afde1321c0c6deaca738dae1bd3fd5096a90e12d95ed915b50f0373fc048fa8c450a61e18ac8200854bd15411c73b0469ccd1a11a846232c170836ad37851a3e8551c8d4f3baa8dd77bd0e8efeaf7b14624cab1c73c92eee6a41aede1d285e2ecd997e11efe0edcab01c88e7b9f0846808c23ce14dbc42a0c000260d20cf90bc532d58d1871ef726e2845427a08bc534353d7acf47f429f2b8440e0d36537e928dd35b8aaa8d44602cd71232e700ea09cdf1010140ca69ef99f5518740dcf6120afdf5e72d46d39409ab5510986d16a3eff94a485899ac6706ad7b415b048b6b725deb4bb005031c3329e98cab89f476c2e2c242d9da1142e3bd641d165f91ad8d12c7d4509e0a53b97220923f2f5b213ab1dee02ece19a4c919c4b6c6b62daa2cb23ea923f8efe9d213dd15ffeea45313cedde812e84746a27500222632acc91b839ff3b415fb1bbac18dfbd1d49e668d2eb697c8675fc62186868b73e9a36751d523cf5a2a217a4451ad3ea6679be552cb88f36ac6f0aa217fb4bfe250ca483302caadc9df61af51cf28643ecd6306c341061d820e2dcdc53aacc072ddd2294ee730172d839e5d9ad0028ca71cc961040f278a1e4f233611d9d4c69301b23c3784752ae760eb58a77dc3f9f75105dd1c0f3407f820ead14725fafda428124958d2cac262e18436a3b2add1ad31685567ee5cbbb455a043872207654d40270a1b20a656d075e18308e868ac0fd64684693c748254b268f7d5da94bd3baac58f54b3dcc0331a5ac6b8dbc53ee966c198e24a76b036fb55162432f1cdd30731427723d4e89905b1b0a35ed36522aedc344c558ca216860e8adef8fecf433aa62ece0ed2a47623bd1921d8aa5f8a467141514336ade6885a3ee1fabb3d2d5d98a13cec00073006f74a58a3a49d0f9251a6473051bfe1f7c2d8b8bb74ee3b07ce167220aca813033ccb19437ef4696b088078616c8f583b9fb6e34b49459259a0072c746d5924ecb76a9e611c1806b8639f250274c90e50eaa19a2225190a3f1eac7d497807464feed2a75b84fa32d952d6e0500a1cd07aacc5cfa53b553f2ed38c2a13973eb55b086b3c257bb1d89198b1de5dbebba3c677a02ca7dda39ebd7832d6fb024edf1d77d4f688211688f03165fc2f750f28413c65fe5cb5d3d0e1df01e53359d721c41544e14a551fe3bd6e1446bcf017c14f21de0e1df05c5cac36616a8557c8b8fabb1351a620100fab0fb2f992e1799e186ad532417734df06c7e3c13f35581186d55c4dc1f1e22848a293b861fe97751d7aaccf5a8b5ee1b1d4c956efd8d06e8567d89c5dd4e4308a74cb1b1aad5a8b65f3c840d79d4387006f090bb5c85eb6e6161e5e4c73c9bf8f75fa04b76ea19c254a448738be358c72e85452a0eba3787c2f5ec81908dde00e07711a4f5df964f7036aabea9a5d5de88af767ae401faece2b648d780cbc8c5747905f6540e4995697bc5a91dd4cb432569f19c9e51865a94a31dc0e4f92b00c7bd1452707594298000094f6470641ea8513c9b2ede4f9dd0ebcbd133348364f03fe55d62244ff48200ae6beccc1d029683d960e325c6b125f0a4cbe6c5a2fc5d8ef7e0f85f79257b46d869be498c28212c6d0e384e9da0c1eb610bd3374b7a822d2fb5853bbc21de951775e0cb6646b9eb6f9ed820570b4e3ed65362c9baf9cdc899182dbb5b5ddf2f1f54ac6ea967fde6e3213b708b8f5344dd755eabf0c6f125fbf1198aa94db6cbf10691b3a7b150423c3b44c6781714d1d5ec6d3dd2d197770e404fa6821188b2cf790d3086591a20ec2f6ae40d2095875b19723dfb52140a608c284e76f922d012b87471f013f682a23d6d42680ab6ce711138fb491fdba4882cdb5f2af4285185253502b26af69b96e86f56172553d7c862edb775fa442beaf1406cc5129aaf24db61aa37fd11325dce9a212848b3112a3b1d93600cadf1d065de1685a04988ec90d696628727552ea5c5046ba659040cb16749d9175fdcb248fe3eb560b25bc8096cc55601aff1d7767cdd71980f80f77a7b2036f9cf8665b47a2f190973e197c7599ca82b69daa2b0cebd80468a60203531f32d32a9b285b9386b2b9899ff971ead9586cba319717b1fe60775c7994cb10d52dbf2daa1db03d9cbade6e8240ca76cafc26e56803919335ade96a5082ac56c0a2abd1cf70da8a92916ab2a9838f17ec3088a317cbd81a57deb516fb3c1c0cb2a1be3bbf0ac60a75a7697da99461798b461d6028af95ca27a2d42fd118d5e479397e1593f38ab30eae7f4d2b5c0686b6e52ea5228a20c6059621fbcb5ebd6662b62dacc1c5d5b4e7cb3e80317d19e2f75f6d6c2636693d26b9931906e4ed023ea9841f0c3a60b0a6d0013033333333333333333333ab6a1abfb54744564a32452e6d8c1185abc42453923ba529ce4c7cf845daf01769c35fcc662d919ee102400cd90b150c666b3491021e0871518517363849b32eee796ee2c08b1a9cc6f22f3449115fa3794183b368952849b4b9d955225acc25f06206474d2a43c8d3681f3e7a2183d34961ec549d7823d789a889200421f02206e7aad3e6612a5a52d2106fc00e5ec0e0b4356f428e527f71aa3243010f84b0a0e31507a1b4cde8b778494b82be91c591a06f4880043e32825c71d224a5ead478195faf15873b314929cf5caab4d2b1e2f81deac62b4b3f0501295bc53156d4850c27bb6913a38ac38cccf053ad5944978a93c997bfd5adf86a7259648168304024470d0e5876a0e2946abfa7642fa9959244d4b69ce2a8c14bfb562ead0515253a4c71f493fd2ecd4b492a742be828c571633a51547ba438c893597e4f33059f53c7288e954bb49bb2365db213c579663b66cff48d8916117d4147288ea77a1634ea66a799141427add679f9ca64ee1309508eb2818e4f9cb24f2c3badf45fab79a2adaa0a42c54a3012e2366e64d198dbd189b3dd2561de2a8805d58ba8a9053a3871d6984da6f94dfd5106ded0b189e3e8ced0ad8baf723abb4b347192344466b80a25db2311b564c347928e4c1cd7bf3b53c59d86be44d470a8a00313c72449921283865a58371d23173a2e7136cd97337fc24b8b96748725cef5172ae893ccb4e88d889a8d0a8080d8b8a1858e4a9cf2b64ec6dbfb693751e2a44eb3d246cb3b6deb4de29826e58c897e5d49b288e408493690e990c461944a4205f3cfd00c89a8b916080703ac231227a949b76d5027bcbe17511bf186c429b4c84df5265ee955a2818e471c4f8f0afa2fd929d15b448d4b301292dcac60a0c31187bf2f3b39e38efc0d1b712c299ac949b93f080808c8480e1b68197192428e8fa5b065d1ab2c46702420ad6da460243140c7224e5256722b3158fcd3a42451c451dda2969874bf7164c4449c6aabc41893c78d976a071d8838bf9b54b18ff5d19672888392f242c9ac747257107618e270194b8935c913d133b41d4147218e4989676292f1222fae88da4848b25182771c8911e22ca64a651adf7427c806710a16842ea5f39725e95a4e1067d1a64c8cb944ff9316382a10a245a320f1d01188d37ec8144c12a2554d36dc98c404c7800e409cfb67fe456d3829762971e4d8a2e30fc74b269aca29a926f9e687a38c7c570e0f2d56f7e1a4043929c8eeb5942be7c3f14ae64eb7b1630f2729b6324c2ee3688bc90e3d9c57545773ec32fd29f008a82d3aa0230f2761f5bb8409311e0eb3f9296f31ca7d2137920141c71d0e1a374c123332c4eb49442ded3bec703c316b52aa3358509708928bc0468d7275389f795e506adb4aa5121dce27d7644aaa2455ab267338862f159f57fa649a12391c4fbc4cd94288fc8b8b889a094810f2c8b30849361081472e011a33729460023890169e6e5000a45c00fad01187535693b2f72d7eff9788a899d5a0030e870f6dd17e2c55bb6544140424b12274bce1183559ebcef8dcc69605f21c23c56ed010818d1a7b9e6ed848bcc30d07a1a74a66ec37d1d67b162139be86c84848b98e369cee04b358df4da631dec186a378b696858ab163e51a4e625232497ed152b25d2a821a6fe346bb6144871a4e637a83a8641627ae2ca28623c7888d1a7888373ad27010da9fd5e3e2d61632a1030d077da7c47819de15468ac3739400033368cc90c002be02c9198e99945c6174091b9e273683c68c19584860c648020ed3263acc70b41275d49458b3a034653857981284dd9ff81963c870ded1bfd9abbdacd2348693244951998426f9737d311cf6548432e5fe362637b608c9813ac70d1b3368cc7015d4c800b2801eea08c349507bf5314918cbf78aa86d8137e800c3c147688bbb6ea95f7fa404688b90911a0bb295e8f8c2d96212936991f34c5a23021b37d2928d0adcc0e2060e1c88022020366e68a1c58d0e19e9f0c279847e6db9987032425d3845afac1517f35c386cbe4dd25c088d7576c7164e195ead3548bd2052a385b3cb9552f22554ea4dc9c239eb34868d3deb14190bc713257dafd2a6a4d55f415382a6d3f4d2808098223aac70126a5285ae3476212c0ce8a8c229cbeb684b666549dc3aa870b62acd55259ce7858c88dadae898c2299718c35f37455a3691c269de42c624f3529512c70b4147148e36a2ba2a7e3b4428b1d0018563d26edf9753c5843889a865c7130e42891353265d32fd9bda4287134e9ae48f4bf944b365aca309e7eedc205312635f31165103010101010149098180180620111d4c387c9f986e34863e135ac261c489b39d7aaaebf71a8c820e259ce44b3f91c1b2891f2f0987fdadca1546a8996591705e93b2c9b793d42513b45103e5e840c711cef91733e512ac7e531a0d1d46385c74fd983f2fcd5d01a1a308e73c31378911b9f7a1abc00c2c243023c78d1b18c80e221c4597bcb989ca971c0ee1b4e94dc91fa1f269b184703a4986f6be332997a406e1bcb1191b7b5fb632d70184f3a5bd4cba2c8844e8f8c131c9fe8a31cea25acad8b8115266f674f8e05c17bc522ebf0ead931e9ced6b764c26419a383d0f4ed2447e9a96c5ba0fede0fca22ec874aae94453e0d0a183933093927cc2fae5ec7370902585929a34fedac975e0e03416662e9dcc74dce07c326a10adf1f32315289ea0c306a72a259778eed9b97beaa8c141dd6bc8baa6d5999e06073532be491a53c89e7cc70c8e7f627ccffeca73b364704ca16664d388f13669470cce3a5a7499b6b44cd93b60704a53f2492749f21a7bc5e9e46f51445d719e115aff2d4d4aae5d2b0e6a2a8845bbd2547792ac38eb6f36531f5a92c622e06215c72f2d79720875131daae2602a3bd6465f12e42ca9389ee456cace4c66fe101527e9b372d5735b629d051a0971b3324282ae91a32c052e4e712ccb4cca52e83cedb3290e1a64f0f5d3d5d4574b71122efcd62a0899f32c521c67b4250d61a5bdc4378a93564a39b522cd54d44571ec53c25a52b94d29af43719817a554ccbb73cd04c5592ff98d6ccc0d9fab083e7150bae354bf9da0521aebbae0c21387d79372d94cfcd01b75e214f4cd4a94cab21faf0b4e9c5f5634e8535517d6e46213c711b6652276f28de645d4fe4688c8087240a289e3fbc92409e2dab72fcdc429c46f54760d97e49163e220eeed7531378961c64b9ca48b316a92df997194963866d6d2a3ea23fce2384ab0c5d955e270394c85f35313252a2e28714a32d67f55e998249cc4b9b22925b79aa323e51bc99c085c48e2a4aa4a6a13e533d7c573118993560c6a4bea86b06c042e20710a939b4fb8f0a969541781193466d856c1c5234edf6562da5eaeb9a28e389f361393a73b76c281c343b6405aa88b461ccdc4c5e9bd6513f616d1b32e1871122a467c968957bd5a5a59c4d95426319e262d13de89a8790e1c37922b451107dd8ad7d4922419ed2f0c2e1271ca96a926c6b4f8f89968e0460e1b0fa08007422ce00211c7a4d132af2873bdd2b37071885352536d26ac04fd176388a3582a95bcc289db5ab935b828c4498a307da6c2055d13218e5a25833699a74e261d059ea3045a8488e4a87102633788f3997bd556bba8724b444d057150d2fcc95d056b934b11b5828138097772a2c474ff975844cd05208e1d6a739a8ac92bde1df9c3f92a9624c7c64a7da62fe6042efc704ae9336f0ebfa04f8e036de138b658d3a23be0651570d1879324bbdb296d5eb7c9e2820fa7103234c786c9d5a113514b1a13a031830337dec603f670fe4b164adf4e52a54911352d4250e0c58a1e8eb184f14b5994e8d868115ce4e1943d3e2d98586781fa4616862b708187935b694a6a418bbc688d9011f7bfc351ac2f4668cb8b41dc24706187d3883021bb663137001775385db57fad49b941efc6e1bf7438cfebbb98e0266e1af14fd0052ee670165de29820b233699ada851cce3222e324d50a198465e40a2ee270b476930415df3a7a747038a7a6ddaf14c49a7825eae20de70c97cf4c3a19a52daf00379cf532e39f4a3749b4442289c80872006a1b37682489821b27c002044464048998369cae844ddae2e574f5323103b860c3e9d4f7492af86fccea226a77b586b356d6f5afbeacae4b0d07b1492affef6c7b51c2349c464d5d361d4a8ac9d8a1e15c92b86023532c9394a488e2bec0c5194e49526d0b3a6e2a292d262ecc704ac24e895767b857d019c145194e5146b52965597de393e124a537415bde18446590095c8ce1dca2444db443759b24226a213792b1e1420c27f1c4e83dfb1159d1ba08c3c92da8c7ff7c885591175c80e12ce7bba74caed8324227b8f8c2498cd1a29f12cc3face485d3bb9baca557e5f761178ee322738b95a01a4ec985f3bcec462faf68fad52d9c729460999733e82c152d9cfdaea489fd19fe3b15419f9689ed8a93da4b176fee458ca515a724e3f4c8a4c64c880b0424c434e1c18a83721d95bdf49bd0513d5671d8b3d323c35d0c42095571124a56486d6b8f71640b2d7088a0950a78a4e27861d9b2749e146f44651ef040c5f9cc8232e97ab62fe514a7d3d2aea4b4881373f430c5f182b6ddd924a6d251271662c62ee1518a9305ebb7a05fab72ad07298e75bb5a52b2d1ccadf118c5e95ded84d913e3218a83e95845ef4ba24b5285e268165bda4f0a5293a01451d3000888718407280e972dceda5af213773f719ef1b70cbfa33b5f0f4f1c936852c80d354ae59276e230f2f4c97c0e0001611a3466241b4e82460af01a38b000010101390f4e1c46a49a36dda4b2c9aeae4ec46313e74df917f4bdaee48b3d3471ca7dba31fe82e5f13113a78a1a43c69ccfc9c53c3071924de9117264b6d6fd66d098e1038f4b1cd49d689525f94b38358d1987e9016743f0b0c4315c1431934f9b7ccaabc429994a2b72c9eef2c8831227b9f7be6257ef3189e3e9baebb4a0bc5a5611b51c23288b901c35b2d862a43c247112469a64722dc3b7684a4063c60c0b60c002129841c302129831c3022539247844e2ec795aa54edae09dbf889a086cd41871678007244e2553b29421c4892c298f479c426c08e95de1cc4cccc311e74b91db159f5fddf810b4112dba036aefd188a38e7cb86fcc4b9b37234e493a5b4d624528bb7d11c7b8f771ad9b1571d60a15dc432fe610fa441caf34558a322b228e2637a3f4bc7488d3e8aa0c26e3c6932e6588ac3390635853a769423bf349529047218ead31c8be94efc5434688639dec35a6a74da8d406714c29b5e55c2e2f5dd1f610c4417e74655c562ba67a930f7804e2246eb6399997c4125e01e294a167a3088b299a9b7f38ac8ef80ef3d1c30fc7f2ccafcdaf2d4af4e8c359fdf5459870af1a631e7c3829d5ab376f3e053c10e21e7b38a5133bd94325e92e9c20eae19c596d36c85fdca09220e6e168ba7253e3fce55bc5c331e5fd51a1ad153399dce17c9e4967123e5acf7a3b9ccc2b6b984c21fee292247538ef95e58a86662df1eee870503d152c7508ad1b4e10e7706cedbfd1d34b5ebec9e1783f5fe9d2ac94ca0c621c8e6752f3c59dccd491c1e124aa46d54dcb74af718f379cdc2ab97bbba8cbeaa11bcee27d3e76628511226ac3a9f2e93dcb1a76418ed870ae0ce6735f4a6b38ed8c5237a9645c91aa1a0eca4c0cb30e5521b3958683fc080d7ff964461bd170dea441976e32214adbbb331cec7ef42fbcc9275b6b86738d09e23586d18da995e1f01b84093d6ef3173d32a8a1c4bc6272abc718ceadaec1f485fa8bb1cd8187184e6321f4c6976138e54d27a355f5463379309cba4d2a154e2bdd64fbc249aa132b44c678277e79e11c16e62f9f8951b3fe5d385fa5d44c31fd574c31170e27f8c6d9f426c9d77f0b07959f757a71599450f1d0c2a94cf68c792b5488c51e593825bdd87762525bd6241e58385e0a95375dd03fd2f21e5738b8c9d7743529b849620f2b9c4d924276f35e3a39496ff0a8c27954868ca6f392664d7b50e1a48489999b5cd453725338986cf924b9945e0a878db1de10be89c249d070a57992f08d690f289cabc4da67c693abede2f184d32653fd917bf170c231b76c97c956f726f64d3889778fcd244eb38bc5830907199a4dd6d9588829dac16309a7fb17f17dd192699087120ea67409ef0d4af68d3c09070d6a9394829e9da04a9070fcd7607b95498f231cd48dcc74cd242669818387114e2daa33986077f93bde15e16ce1bd92ba2c9632d69d133c88703eb9b6acfecc338fec8670ae132709625f9bce7242389c5de83dd1435c38fb2e0887936f540e4b3196c9f200c249cbbcf26e379c124c8f1f1c4cb788f9c9964ead2d041e3e386912372132dfc512d51e9c3289d97479598c49361e1c33d5de4f9811b7d8a2153c76700e712f72192c58890da2870ece2675ef66460d12c1230727fd35d14653fed4d9207ae0e0ec6da192502a49274ac9e306a738b22f8d306969734f21c90632379218f0b0c129eae8492127931e5379d4e060aa65524cfb9bea1e343868499fe954a808dba4885af198c139d4c32a65d497596cc4430647cbbe924e0a7372c80c16c12306279574f742882e61b52578c0e0b8297f9b0c9331e9682f5e714af221dd4d4513a22c49e28a83ec8a056dea4fdc986ac5495b55a87cc99455095971d6501b6bf3a4ab8bf32a4e3135f69d7c7739a3a78ab3bf97084d42d544ff527192eb5a67a75228ed3f2ace37fb97ab2479529de4298e71639f29459ac8209be274b95acec2f5a538f87909b1af30f59991e2a0276ab4e0ee280eae156337c38593a4e54471ec73cdf1ebe2553587e2a0a6e473cb5d1b2da4a038f79a6082ca275c4555e0f0e21387ef12cd84679a17edee5e78e2e0a226a992a4cb74e294548fca5192b4e94f1239710c1b7dbc940669c9fca58007425cf0621347d13197629acf4d41a589530a1bca7e834ad598c9c431ef9ac5af8e32b97b4c1c2b754d8ec612e456ecc5258edb1b2b29395a9409fb0b4b1c47262db1da66f482b012c751492a9d1647a70802929845bca0c439f54b5f360d6e72749338d89e9874a6552d45f34212674ba17de369b7781a338717913826a9f29bda0d53317e0189d36c52aa73922066ec2285178f388b4c796bfaf20993ef0b479cf2f24cfc5692dc42f6a211e7f88b6994c688539292a08449626788b52ce2e8a5c5d7675cf47e7ba18863fc89729574938863d0aba4a25993596e1071da3bad6cd167115e1ce214dedafe44dbae5116439c94fe2fa94d105fda094212db620b8483032f0a71aece20b3578a51512f429cf54fa9ed33a9b54a1ec439bc7f3709afd1a276419c3747bfa437d9e22d1588e35adca668cd57b763c81b5e00e2949b4b12d524e93f9cc4d8f6cc69273f9cb4cb6f8590a7cba4ac0f871761c233475bc4457c38ed66330d9d3e62d9dec331e68f0915b33e177c3d1cef52bbdba8601ece9b1d1b3457dad00de1e198f46dc9969420e64647c38b3b1cac3d65638a675953ee851d4ea3a4ffc99982129312abc371ad4ec54c526636494c8793d279a26df9a93fcbcde1248e900b22a39ee86bc9e198dd5e93984f84a5c53542f4b27811877326bb3749b6941bbbf2020e2755932a59e89e0b6279c341575a859c54f2c20da7f0a1c76c4d890ab7bf68c379d64c949c2b9bbec7176c3885babb202a7cb1869360ea176715d3a98abe50437268ac245f5763c4a4e178ba43b926d5f49bc268388f4cd1e1ae3fca1452e30c27b94fda26c1ceb62fc90ce7cd6f172caafda20c27d1f95adb342645860c190e7a7fad6153c812372a8a1763389d2ca1c4f47955beff85180e3286d0eb332553ac0a0d1c3590057c64e454f1220cc7b0f94ed4944b1026a96038e8cac95842888c31e72f9c4c9c52174e2ca3f0c20bc7b2d257962ab388a65d386979cb5fc209e2c259df2c63bcd25a6513b391175b386653929a60a675d43c2d9c5470cdfb4d514cc6f94516ce619fd9e4e24e185362e16c71ac3ee49bb4ecf60a2775a124dda5e765ff0b2b1cb6ecd4c2a560361605ccc0420209500a782044e445154ef9e4b6786197bdc471a8778d2c32d035b2184940428583daa57a99eac93ffe8b291c544d9049bfdfafc9165a34e2a8c003520ae75bafafebdc2bb14ea2708ad39ae4b24927d5e443404084f0020a873139a637865793f26f2ef0e2092769334549532944b6c809a7984e5242fe8413adac098715ad14fb3e79cf9209c72f91c9748f8c2749ea174b3808cbd2a1d7a43a21b7e485124e3b5a8248117acfdc0fb181da092f92707e773335fad5c48725b811b24978818483c595c78ededd243e928587e0b8a1e5c5118e9915764c584d93c7712344ad181c9ea34642e385118e7d99e42a5e899cee8bb09abc20c2412f75349f5c23b6c4396ca0461b30b705d202435e0ce1989b16e626ebba7a498819b281a30223098042bc10c269d34c8ab72ab27bb7201c749b4c19197d54cc8fa4c023608070b2dc54992aae173f389c9bfa931b4c46e66ce4b8f0c207071574a9b52b25595c5744ad78e1450f4ea92e636b92d0b754e71849b00b2f7870b87c9edd5dfe5ff9bed8c1799309b9d27bf2ee9988a8ddc85158bcd0c1a95b354979bf84d73211f0220727a975e93257959cb75ee0e0a095928c9654b052da3fc046094432d0352a072f6e701613d39990eee12eb2b7512301c6cccc2cfe563251a1f286dd89b36b2c0d4a0caa3693cf89a349db79d79a266f2d13623380b189d358f64e8d7a6ba9945580a189938c35f3b6a56a36279938dc660d9b92b6fd265701100318983867df65ccbef5250ed2b26fd3bb59688a25cebe4932ab9bbb0c318d4a9c72747e695162e5939450e260a19254c1aae35cbb49b02633b229752a8983b4935c3b84a9a04784118983a9ec7c8c3441e2b03944c8b71ab7138d19603ce220d2ce4ed413541825c81127157ee156eefb2ec368c441995ffef42e61a6368c38653f493c13f4476ba42020c9224e724ada8712de4fea36024311479353fd5e479e88c3c865b659af0ba3160c449c82d5a953dd3b5f671fe29ce5262821defa4b8c226a35466a181bc9a2468e12140086214e292a1bd452ef45a485b8449fbcde5012e2143474d6d86b79891b40c018c429979a5e865222040c411c764fcc7d5599620c3ba4c008c471c46dc91772b6322e188038c639cb98719a5ba9ca00c61fce5623f3c539d95452d80fa75367a62e09e2b75268fa701247a6d6246b3e214c091f4e6f9b4b12cb7b3973df801934663080c68c05cca0b18753de91a244f90c1f3a82a18783fa6ddffb5989f4330d30f2703c95c62c6d107516e478389728db9433b88abee60e878d9b9fe9942cba6187618753b509422625fc92ea7f068dcb038c3a9c4fb46b0af667ba2e498763daeb8b6d294749959bc3d92433156ab252107f228753eba9a6b1ccc6e194c468dcfc172edb9ceae070d61c7b23cc432f3420203980f186a35da9585a4cf525992232821c3083c60c0accc04202202022e986835ad23d9af6a15a646d38696e0da1eaddeb6ae300061b4e42e6d59d8da7316f726b38ec2955abefaa7519cda04163061612d0000808266380a18663d68c8fda9a143f3427809186a35fd298f274ac010c349c724d454d739226e9ba1630ce7054b54bcf9cb1a2c9d0994163060e4fc88b19cef66652e77e58bc744d190e3f1b84b6f7d020fa2a0c6090e17426a56a92f48bd8288901c6188e61b3525bcf0479133c6b030c319cc26bff68c83cf22cdd364c0d30c2703e792c84264bb9e5570a72d428768001869318a55a82e7092ffa041262233546dc868b00e100e30b87939a5ee2eb1a6239120f30bc70d0fe4cd125c55ad4ce42cc981f6074e11844cc5899a0452c6d40404040ec46ca0c01830bc7ca57b198f7fe90a12d606ce1209324c5b2545c0acf68e1a435458e8a88f413d1e0106064e134fba62c6fd60b8bbb0a010616ce39bab4faa5778553ee59fc4dd1b5c2495bd692f2ca86b074a9c2e1b36492b3aef2769f4680418583a6b18af14ff41a534ee198d456f48c1e236b7339020c299cf352578941c44f8e1885936caa4a058d278b7a1d0a67911151cdd7b436499e70beeb36317ecb68c56c0205184e38aa4511dd4b29cf5f4d389750ab6e4a93250a3098d0b78ec58f09309670521572ddd374abd243634d80a18453950c966413da6bc329092731493245cb7bfa5ad60318483887d234b3f5d35dafeb0807d165a533a5b52433698463beac2f9a79a2e5138b70eccae4a1c45758d312e1aca57ffe94f8a12a6b4c42041843387cc9d95e8d9937c95a3c802184931ad73649f80dde9d29028c209cfa37a5be24fd4634a4051840385c900b336be94bd6f507273f0fd3cc97732df55c80e18353364de9d582b957c97b01460f4ef2a6bc56b99a47890c95008307c72db92944e46c6a6b07c73afdcaf533a5a9c49325c0d0c1419e14ca2c496f165fca1b6fa3c61d1560e4e070693e356d0c7a2fe60c0930707034490e256e75e95b966e7010db73278ba8cd1b64120d306c70f65eed0df5559f553a038c1a1cd6fb7f4b4dce50974b20c0a0c149b0249ede767506475dab71b55426c9570701860c4e792c63f210af545386980b60c4e0bcb984abd0b716646d2a0b306070f8b7d210616e955bbee218a4ef9bd6c5654915579cba47fe46fac9dbbead38a8ae14d3c26e4cee222b0e4a995232a52406d1d4db2a8ea6fb2666f454b124dfc2872ace956ef7f9b77e154a5271128b2327c8cc702a48aff0818a53988da72491263a1b44e30b1fa738bbed9ea469a66469dc1407954be6ae4befd3da4b71b293562cdcc8ac9d901487ed1a25d37a53fde533c3c7288e494a59e3afd7d5565a1407eb0d377e275f5a3e14279bff90662b325616288eb6265e9292d45be28987d81a3e3e71ca2647d659ce096ea6278ee9b4ccec63aed2cc9d389850f99149888c3f160808274ea9de84d266a62aade9386ef4c7264e7929377f9a2e8b7a061612980102a28983bef92539a29289b3a9af4e79b9b7f20f1327315c95789717bcc478068d190f3038878f4b9c2c63374c344144f8b0c4d1840dabaf259b52f25d89936d34497989277949529212c7b694b6a2f94c3ea54de2d8736695dc2cfc7669923897c86a2a338d259e94267c44e2e4a13395246f897e7241e29c1a6646491a3ee23897d3b5cde424b35188691d3e1c714a929856bf152e33798d38ab88d80d35fbaf5dca22032020216668f0c18853080f69f19220c39abb88d328319a9adfd7ef162960068d190998610109ccc8127c28e23ca756c62cec64e82d1147d16ca76241b4a79d883825999214632a25a368778883e9d125c6c5dfb4d810474de12ecd49e9429cbe4e4f7a886c163f11e2248bfa2dc132ebe4ab38828f419c64d060d962456f9283801c123e0471f84d67e1eaca6ba34920ce779b41fa657f4b620b88d3550ade7f2246da5fc8f0f18763c69f95a59261c9f4190001010109b194c3871f8e6eb9c9af5f9329c9c3420252f8e8c3f1c48eba569b8b354a4ac087c3788ede9b8e9217fcb29103c3c71e4e17e629a357ce4328f570de39339d49164fbf983c9c94bcb2986ead3342838763fe4bf2c8653ae9c265420c93f07187932055932ccd1a6452e9910f3b1cff52e65279529c4d973a9c7545dbda7c263994183a9c947892a4f3843641e58b161a3ee6705226bb6fd07ba76564391cb48eba57ecf5d0a1bf389c4a8bcdc5942a8766ee6fdcc06101341dc2071c4e1fa2b5f9de4cc6d7df7010cd962a8956a1d3a44c0d3edc702e7ddabda277f6d18693f40c26fc5d529992cf86c37fdbdbc971620a155ec331989a923abe4953c371f4f5627d89d1d33521566938885a65ddf90a6d7ea221f6820f349c946ef9cc5ef147c6dbf8e0e30ca79425083b3929733ff830c3f9448febf451e2b7e8ca7054d354269b9651d7350808143ec870166923e564b9a079d445f818c349beeca37d835c454d6a88a5e0430c27994a99f81b42f49b6c09c3417358d2906fa2a3651d7c80e1b0b16e1e5baa2f8ffb85f35dca11f7b2621a745e3889dd78a6eef28dff8658760d35c247174e42e48da86c3df96309b1e15984e4683b077c70e1a0b4491b17637a0819db40d12d9cc3f7926c2bf1cb1294e51c0002a221c5b4703449bcd4a77f6366d4b370342996be1432569a287d60e124e858537ec2096575b9c2b96b936ba99d5a2a6d5248f06185a3463d65256a49d229c9037c54e194c7d372c67419767321968e63061f54389794ca84ac6c563b95b78d1b1458c2c7144eff39ba7159a6e59e144e62512fd9bf8611b94688999e8f281c43a624fc6cec5753b2c6830f289c36a9333d9aceea7c7ec2514c9689bb92ec4a962ef870c2492cf115150d7e6be21f4d3865db2a91ed9209a7d25557cd6c19ffd512ce6de24dfec922251c4e4b0c9536b9838f241cbfd652541831275ff58184839b2cf576fbf3934a0a043e8e7092e554eef9d99896ca8711ce65fe7e964ff35184c375bb99afa92432459111e4001a33b2dc8d1360e12440592840010b48018e1b5af80440403885a4e9e18308e77151eebba1a4cb91171a15984163c6d102c78d6fc3c7100ed2e4adadd3ed87104e7665622ac5ec9235ff08c2e17d73a56eb4be5c52ef1800014920205d0304061f4038c795c894d371d15da9467cfce07862f30595bbeee29f2491f8f0c1f1a4c5ed9764e2fe941f3d38e92a9b2bd5733a540515f1c183a3e9ca65793bd4bd4909b2402608a9f11f6233b068c0165a3c20050a181941160071c2c70e4e627c4daa379f5ac96f051f3a38f6c8c6b592cbcae023072765e2db75cd28a984930f1c9c2b8c66889213370e888f1b1c73689272defff25cd006c7246490bd932a35389ffc669543a9b4f7ea070d8e264c69cb6d72ad3df4318393b696d6930f09a9010252563ddcf02183838f5413ebaf579155033950160c0001b1e13972a02c82f01183f3d76e30a54de8b313fa80c149cb7f78cd49319b6e11354f00c8c0e315e7ccd91ae31bdd8cbce9cd356723ce334ac8bc39212b0911230e9a596f37c996e43731101053467811c7bcbc17ead76a7e7610900ac850c4c9ad33adf777e346544646426ee428d79e6ed0306524031b01198938956e5f1b3741834cbf889ad9b93365846520e26c3fbfbb317765d24806404070241c2ee310474d259ce9122b5d5f4ebe05ea110f7963387c044b86218e49be54f724a5f3e4b81067358d49949153d2a509218ef1fc4fcc7c4ac9e9d3208ee297b726f9a668b120cefb9f7f9d1706e2242a2a435aefd7890b20ce964b570a1f292696f41f4cb1272ca21690c08c09d02881e1c8b105c618830c3f1cc4871ce131a74605918c3e1c948fa524e5e3ab74c7878398c6f82a1af4c9a1b28753106ee2749f2cf7af530fa7b0bca6b1fab24949c6808d0ac8c8c3f1946db8adb878f7c9ccb3e035830c3c1c2be6ba2af35b8ca7dfc861e3014a010f84e090718763d021bb416957861d0eef268ea5efabb815acc3e1774f05ed1926bb48e970129a4649d28f5e1231cee178322dcfbce413f43e1972385aea9b2bb9fa4fede6d220230e87f96cb71c3b27ebbd0c389cc692b4f297f10dc7a441498275f96f6fe78653780b6a845cd5f94e807084e428c1165aec40461b4e7d92ccbbab28725321776c389abab832f2eee2978c885a48ade1585dafa9bdc49860bb886642861ace6f72c34e9e20fd3aa36390918653f5c9ca3342a4a706a1e1a42db4fb48f598355dc619ced526edb674944a4b926a84d8b8a1e901362a7014f0404800e420c30c87cb97ecc43bd1a42c2732ca7092d1547fba659bfc36194e49ed9224ecca848c9a8c311c946b3c3158d8e02baa840032c4701293605249e9c7b64c18869374a2fc887f8fb9a632c070ceeecc6ad2cae95097889a096a2413d458401632be70d813dd196fb252ce464870e3860302c007195e38870cdfaf999496b99876e134b3267be336b23423a23672638b934d90c185c3e7a74513dff4862bcf10938c2d9c6684b4ebdf1042e9c5ee6568e1342aabade8fa6d5b46168e25fed56de1dfb45f26030b27b9a4e94b16a5de576f838c2b1cefede4aa9ab04169df0a47fdcb95de4d28499ab0881a7a055ca4414615ce97a14e9cb45d9a4416512b1b810c2a9ccb64861255593fb993318583c5982461b45c2691c249b4f6935464acda84a42c6eb4086cd4d8c29d042124b8718343123721230a675f930471e41899c1000ccc60830c289cf264af53a2ea785b58c6138ed17dc5af4e2ba2664420c309e712b446ff5556674870e3868867916adc952dc868c2f132c65862d9f49b993c292890c184933ca34a5031ca4965a1828c251c4ec986cdf8b260d2af8473c6494ad44b2ae84c56414612ce792755da755ed8341151c30ad010c95183032359649180193466cca03183c68c19584860465256a420030907bdc14f941275a3792da206023292a306ca38c2b9cb4e939c7b622b3e1135c591630b194638f8cf87f8a82e59d369ea9620a3082793ee5c4d8950ef2123c2d94c53994a292cae960a053c10a20119433869d816ad273256d989885a020119423808a9fa558252b14e52cb08c239df24b1f246bfb72045813b000424a1c0456400e164c25b89b96264ac45a68c8c1801c8f8c1a94ac789716137988565f8e074ad799258ab6c5237193dd83fe334e789b68b800707211b4fd2569562bdb583e3cf5594f1d3bca1611d1ccb2e493f2767decda1c563a600e1c0818ae3b8d15ac8c8c1497bcd87feaab7522b0ece7a2ac534cc9a3062bfc1412fb6966cded8e098c29da0cefcfa5449528383bcb2e83d6a2e9420cba0c1714b54fdec85934ea949010f847c40c60c8ead7f31975f16119b89a885545595cdc04202336894f641860cce6ec265caa5444b5c2f230647ebfa50dba07a322703062741575f8a777f21478bf18ad3452f35e1f45e5cf55c716d9b24a93bfd62b4e278a24ee9db662c8b9388dadd0c2c1a50108e12a0108bc18a93a50be799afda6e6b11b513b80db3195834202dc62a0eead24acab929a60e550c551c76b57594b8e637e918a93865bc693171f52b6a490c549c648bac983abd54c90c2c1a00023242821b3744629ce224469e94cb64a6385b8830d124614e7b2ca538052d6d1a94b0d5393f294e6fc2896e324659a81e03e78318a338cc9d9d94c2e829134f44718c934ff7ae4ae7ef1b8a73678a50f2fb59e80ec500c5d99289dd3e62b75c2f9f389bead59fc99864f7ec89c38c50befea9232e8977e2a8d1ec4accec54374909278e9bbdf1643a258495691327f9a4696ba5d555137e2186268ef12dc655d634c9843213a7785212ebd8ca3e2719625788818953a9946942df05d5695fe2e8afaa6169c4c532dd12a7d2959dbd6d55e2b4ad6d319a899546bca3c4612d5cfa6e1265c82ab1f4ffe64e12c738d9aed48eac1d153f28c488c449664dce672a29a8a6ee2071deac739a84aec8eb7ef788e39d05216e77ba73c4493ab9e3224eb72c095f234e315cf80b42451b0f25461c5493fb65d5c6dced2ee224bfe92609d69b255c10157172cbb79b7ea39dbe869888b37a699cd013ee041dd6126220e264eadf97513d445ccc28c438c4517e4bc574b726c82a211a82554d52978a4a825888931eb5361ac48e2638429c0493ca44e8957c96db208ed1f7948a21323a2e9d8238b928b14d1e37e5f61926c408c4496f4a13eb4f056d1e2302e2645be1cf527a3339eb3f9c7f748d5227b64831d50fc750319a9216f564bcd687b3464d7f797345dd6cf1e114fb62dcfd4b269fda93640f277135caf23ed3c351636a290fa7cc50a7a48626956412443c1ccf33680d1a3344acbcc3c194ec57b2624f7017ed70feb73071f3dde226d43a9cedde2e479d0a5a464f87c39c50eae797de24b19910c31bc498c3497cae9fda50829ebae4703465caae1871389f76195db24fded92e8310030ea7b0a27666f4ce5598450731de7052828929ffc88e13743d420c379c52b6cb2f57e2a9254b1662b4e11c2ac3f6c5f82b3b411b3522703783186c38d7553659adddec7bdd104b8010630de76e2d4d33c94e79996a38c68dea12b5e2426759e3c606424c8b1869386b9e6b892e27f3448d86a3cbe5910d3fd2c53fc3f94daeda24fa82127da1420c339cb2a55d934aa8c625b1b1321ce4b9fa7f7889be3f22c3c1e72d9412a37a731bc3298c0adbbf92c208d9300d31c4705eaf4d9b2bb4a5e5cd0531c270ba9ca25263cf64f01f0cc7f0bea943dee9cc178ed135e7a878e1fc7b66f9d737edd63c82b2a0b14688d18593e993bfe2f7a486bdb9701236c6cd2735dbcda8b770304198bcbac992da64da32c4d0c2b9d692d41b53bcd5f19318593826d53369446cbaec86701c101084c36bc4c0c249be8ddf2689caf9f75ee15c1a43ead749b71e7a2b1c7554aee9305153291ea30aa77427fe29b9ebec664f418e1ab683185438c6e54e99d717efd2838090600469113285a39df42253caec27bd278563d674425fd07ad205a1289c6ccfc4a44abded26998318503849a2c917d4a4cc355b79c269f3456fd73426c9a0e284c35f12c34273e5f4cc36e1f839c24d05a997d562c2d93289eb16c4f72413e6428c259c45e9e768592f21a3e9410c259cd2786d961126cbeac783184938293196d83a19128eab72ea7ef7cc33fe231c4b50923e492ddb6c0e6310c308a7b7b89de6e56e629b8883184538e688129745fa8d6c4884184438cbae8e922f4f50e2343186703e0ffd27456b897a199ae068104308c79e516f39414138989cfd96fa5a77a68070cae62d626ed64e92f51f1cd336679498ec0cb30f0ea3fdaa2c553a398bc5e8c16934499f1b83921ea9a10508488fd4d022e9420c1e1cd62c9be613993d8450093176702c25e554dfe5849b500727f924f9c43caddfcf33460ece79994cffa51cb335c2c151e3d77de953fe1ac486183738bac8d1d6a0e49262e3d9821836389fedbffefa8cda932c428c1a9c94ca57d2932c67f00b0d8e5627dd9df598daf262cce0d82683ee0c9b35c514951fc490c14914bd162bb216448b1b2306e7bcbc235aba5d628c890183d365bbf79eb05f712e3ba9e669192cc66c5c717e93a6a499941a74a9b4e2ac57924adb6b65e2172b8ee9629fa60f6162ce985ac5e92ccd5c2c19454765aa405b3a4d2a4e9ba559268608d323a2e22449492ef1ab7f0ae8290e7aece4e7babf4488a638c97b9b269a05dd3b2ac5a935af6ff6aff279498a93e816c7c3ba519cca82bed8341fba440618a238dcdf9518c4a7286d9b0ac5e1ebd2eef3fce54d0b8a5338513abd927293d2fdc4292669f29ab83167578a274e82028fc4a81452c6a2501c0c0302411083000424bfaf0253120000000c120f860332a1542e90f3001480044838284a32361c2c221a188ec9229150180a8583c15018100ac431104541180d9440a63e9abcca0b01f330bdda343407612c2a34ca67d3c698ca6589624288b64e6bfe540dc138937c4498d2f2dfc1ccbd401ecff1eb31ffea839ffc2cf4a44e3e0cb71f76b83668988f0f2fc04007aaaa29ab6f81a29bf2625465e5d7cc7b82c6c5fd4d7223f3ff87a696cbba9adb245a5b8fafb0c7ab687880b902a0970140690023aab3cae83700a4c4ba556c33b569ec0d1c00693719809e0a2b2f033388875c6ad8cbbf4c27dc05ba75863e2353a1b6d2e953b5a136a0d1ad0d516b0935dc9fa825c49aafb9a8e562b74baa7c54c748143e8d00ba3e8fcb8e4a325254925075059bd90314dc75660d5616386c61c7552b72cbe0c36e2a14b3f5102a8281c41cd8809bbd773fe1443b845fbe878fdfa139c08b7b1396e72ce30162f1ab59bc36ebf30f6b0620fc673748321cabd6a75cc505e04e1188857903fc29c632e0db9cb3522216a1cc41adf8cbf1087c32b58ccf26b985714e36b6460ec7e90adfd1d4263bb1d8ce23d7e21c159bc70da5880eed5f59ac989dc31182bd97525ef034b1dfa706da468ff2fe98a76179033c82b1182c8c4e3bf39d87e5e8bfe124107c669ec57ad43603c7377e844288fb30c88141349d7c7ac913ddd718e33e3cd0fdee8186349e644c7434a18c1b66496f4bda821e4c9f20223afec4670c06956ba6e8bbe97d560d9da8ddd120c57af4b9298b869d30f85e14a507cd521a33965659b69810754c5e544a20469258613a5a9d67f89cf012d5c2f6562a189917330e9ac2aa2355d4fd82b9a7cf896d28573879d0e20d671eb92b04a7fd37d074e4e7c8a7a9fd173ec00e1eb0cde3d815392c45001a9b6b0e501b408678820e7695e56165ca89024270091c00988f152893b49cf4ba865fe99cc4e521104473faf31dde8f4d3e5d504dadc9bb70c7f77e960ac1d33e58cfb8b8fa5f57bc9e3c5aadd51d0aa09d8ea034410ec0c92992073d91375d05caddb99cb3c6dcb5687a44958817cd8500eb3c153f59b8845594d07a9fd8fff1808dd82376b435610113a271d75fd2d6b480ae6c9dc05c50b8ca1b3b746a57459a8848e3a0ba362fa9acfc88e888b48b1a985bfd9fdf42850fcfb5d261e0c76230a54934c0447b41d0d102beee85a5941c697eb0061bdea5f0ba15b062a0a84097c0ec2066fc0f82b65ab493581c4ba04899a31405275fa4898013960ac7b55d1094df7ed48b2fccc2eba2afb8472dbfcfb52345ad60c5dd464be730d8d2e22c66c4a838a1e7b6a2ccc14c997356658e12be1cb5d55f909a20e016d577f4aa1b07a2d54df8ba706ecfe013c2aee5a7607c324a09fbe00878fbd84e7bd10bc2b3ebf99c043b5d93d1e37e363bc720fffb05fb3742b2ec376d9ca345463421ebbe6f5e868fd816a5f7286374cb425d57e232ddee33852a2fbe4e69f278fa42a29b30a6ce4ffdf9d5964598169c45550539af9fa72ac2b39621a2c26aea6ac163ee05c9993da52ef56dc75c3973112e6475b2892d5101628694be17b76ba9790d1fc443d2224634a1c27e16a217dfb81cd43bea53e37926d5df1a01818603fb1084eb0514ee818dc79432b1997fc7a0476393740d1b2b5dc9cbb048e4803f33cba331e51eceea84bdef384bd49dcc0d54e86e1068c566d3c5a97b5e7274e34bd983504146858537b26dde025e00e71062fe296370bd92b4a3753894ef0efa95a2afa7e7db83db2f35d72aa7d9d44d331a99c5c689791aab619ed23e5cfd709bfb66ce81db5484a809f287e39f30166f0235f5f67ef89c9d5fada36fa22691b1f16a46c353b3501afd0b0545748c8ab39804a1ab91acb25fea414f151ca67301c2af2fc2bb70427fecb8c568a24afbf5c260434f416ad0d086b9b9022e8e77cdd83b4ac05b614fd2f5ce78b9dbd27e4c569de3a24895d1058e4039e0194b615d106a45b5418bb0cc0d49436727bc0bd7a05d2f26d6140ab8da6f11134d1300a100b8419184c7e0aee15df07cd1086cf47e5781b94ce00d1e65200e912fc84969a23739f4600cdafce0e4bac2ceb76105aa3500083082554b657abd7116acaf074646f41ae86dcc3379563453d2473dd82af353b37ecabca0485082520478ed44ffbf858fb5bf20857cc15d73088fb8be153401bf54b029e09b7b6abc2d1f7928380cbacd3c6d8cb2da025cd8bd4b9f4e7dac227b04c5044ac852862da0ce8d579fff60ffcc819adc5114c4533461fc7fc5f3764f46626b14bf84433fba298262f8458561fc8927d074d43c4799f11a03a6e001bf89658c34448636d9e91529b1cf06e21f443dba888db6f427165855faa86f849624d548faafff37f8453cbbe1ab1b62084422df7c4def4f0d097fe2cee0432142589a11034c55fe9ca26cf73a71c051cdf33885652f21a9d096ccf3d52bf56aecd9f843c8583ea8cdcc8cea03160142aaf4a36ae4a85e08958c075356f81b795ca464342817c3f80fb3947782373064a7b05a14a03808ab7d2a6243c2671c54475395f1747d738ee08dcd153e1fcec3706e291ee1dcd9a2f1d419cefb7d434224f735bffe5569c3235abe3e97ea69226b76f968985cbff0225a692ca1d00bb63632370fc01548e991e762935f4c02d005702a4a76f73d74c1157f6566f2cee01d32c51bd189a3dc560ced83c93ea0f42b92592c4f870de17be24502cdda624bac85b94c35998fa4fd704ae08d6296bf81832bf56c863128e61236884406fdbeeece937927c7a2a83fdb0810c699f80122ae64e7491255a4e997ce1bed4e23892fab79f0364cc6aace385dbddb286dcdc5537376c2a4aac0c25a7f97683a95a22f0da3606014c6998766f1cb96cac58194adda436bed5939f8cdcf125957cd880fd2867bc7731c21fe0834a4a70ebb4052e15d375c8892129bf87a74c29fd758924191c1edabe8f1a7e62aa315d4cc162f582dcf160f0c81fc32e15dd01ed5c81049a8d8a31e3839160b63244e9d2b049b05aef92f6775ea59b825346e75e1ac18c911c35e41921c6eb176e598ab022499c3244c555bf78a1de8677133ecaca5acf5590451d9549b433371cbc9f5141344ceb163d94e43f5ec6358bfbe4a12b6ac94fdd8fd862c3ef238da69bb53b4c4da719fd69d3e8b7b4095014728244cd3087387425973900c6f27586ae7890b7487270e9a7871397487ad9eb87c4f5f5f315a8e5184d21e25626851a4224d5ef2f2084f1d1003abe48c2487649d99eb259e76ac65d5cadf4d73ea34f5c11fbdf4733a0dc016097172ecacea1e731a16b0271f19d161905aac412493c488230fc1c5f9422657ca51ceef5baf71f8dd42a50e79049aa1545c43984226d111b69a56340330b07d77f766682685ca31beb81b1885d06d70b58e2fd26f5431867a30e62a04a81a046fc262f85004b51983c453035c527a0564c4b62c410b9531b2d7bdfc19e3f05c1e8878b7b50664dd92da7c18dd2d15d7a6db8008e3a06fd8c9620384da2f49ed41f758ea6589bc8a9927f92c0354d98138fd362e0d0c62af2fc697c8040310a2c18b9a2059ed1bcbcea617f56c963098b5d0bf229f7e7ff372a985faf3b6ee70178cd1806e4960d40f289850f6bfa00d79ab582a47262413ee2c141eca24641f1e9a2f668ded9967c7c9962d0f6d80f80784864997e7922b4642600d1502b227b75094abbb95ac5cd85ab85fc1950015e3081cb19a23894a4c54b204bc457a38c32677c59c17e5f4123a0cb5bd18d55951c6aaba34afd6f81e1e008da60957c172403033258e0e8143feee5b6130d730d0e7f369dbdb635e48d2abd2620d327b071176e9ebe808f6d62082bf46cd440dc2fca74c04796b0a41642a9ff2511afb199eec57d30631af4346d88e7bde561b2c8449ae849d54ea6dd28257d731a068b8e17977fba000f8dc0208c122062a16b7be5de8f5631aedccbf689bc3e8d32490ac7b90a9eb144cab10324e6eaaa2c61ff681ed42eee35595e4f58ea92415fdf30d4fbd5b430650e3d1a69ee011903da84974c8be1eb8560d5cd7447af4f4888af12198c733eca56884aa3ebac86b1ad14b08131967c8e79e1938112527af4219e9443bfb21b168c6f00110339042b21e7b834602792d18ab3bf22851a999cd413cb2710d85106e2914e521ab9ffac41412785467c6c92d2e2f5e2f06d1e161103f92a98779d048d1ea1a7af86289f08157812834fb7d8ecd7e9a8a4254007db341ca51ae17446a1413fdb0bd4837790134dd9d917831f60258cf1e758ce79d59f1ffe24111f71699479514440cf082a8819505559ed0899005e12f267c591cc330e33042a286e76b02ca11bed550d283b97f89c3291fa5ea7d79b8a0f539f7faa28111c3dbbf81b2a3124bee52dc71011c63a05bd20543001b49aa252ab3b66504a2f167b3f2092c5b942b902fff2878f3dbdea2d65963b1de357d3c9e2f6f90d0fd93ee8a11bbee35daff187a9cccd4075c0260cac1ea8b4b09aecb8d13934046f051eb4118865531addf14f8f0c7af148f34e084d2c3bd859a4e8e29a7a903f405801854f56a750dfaee570555bfca5476626295b39aa987af79f88ce90f5d3ebd8b35b255baa347c72df6658d934ff5c76cda034cafb5a92c72e3cb8c410785bebd7ea03a45230b588afaf84481ad2718cf13d4d10a415408ebea7801c3ca8940d9e8d261c8708e4890bb60c71beaf720ece41838634cf9e9a93df964379475ed4e7829bb8ee66c86467fe64670c7b4aa394980cc1a433e6ea0aa160cd2f1b459c37bc803701dbefa52f1537937167c4c28059e23169e9b5a9998ddcdd80a1d792a3cf8437dd80b21ddf0824aac28280cb056a4cb11b169918ad38a727b14387752a903b7ac1e8f023581b50f59d0db4ed6597e417c319a54eca8345a1e77de7fb9684395aa76dc5b8e4e320ffca30cd79a697318227dcd002c7477ad981d15cbe2d4247cc93f423dd5d8a8b76efe1d78303ee65660d83a40ece1c720c94eee504d0035b5c6c16b37090ee290487b34ca161b434a6ea76308c86f121657abc0c17394d18d0e9c37d075ca60e91aa37f8184a6cd83848023838b57a5440162fe8f8fec701fd0db2b264e7dbe9f5e197c2e3d2d705f04c8925b0ca020f9952fa690db79aa9bd815f8bee8b56e4891e850ac883fccd0370c25fc46a0841de67992a2a46c7c054945422d73ca806960dbcb40708d58da37321984ffec96d5594bc72274c0e8288e5c694c1e3dabc3280e149fa16d8dc99990744e5680002f26f387150d8d9fbde504b629552d112834ae9f0c881872fd89a03df03b840870648dfc70ddc82441b62db3b7dd20a1cec24bf8724db000ed55ea316882a58f079f6d7664fd7adcc28db2f5952f957d0e68b43de07353d3faf56a9799838143d2214b264fa19b65e8748fac1ef531dc7aed7c7d058e1917a6497b88a542cd12acbd3eea19c7fcc969cdfa3551c543f19ecaf653c0e5f3364545cb40ffc3496054276fadeee8baea2856b5220c676d6621c03a5ff71e53d7e538db8b4758aca4de0083d469c58bcd6127da38134401b482935604f087afcdd64141d5852dfe0aa53b9914bebb3d164dc72f836818b458f5e36706420999e7428561318d8117b5db56a5b0e915657ec9c1d03a8aeccc2830da969f2a97c10c24bcc2501822bb2409dc38d2aad08755e8d8cec625bdac13aae49794015d1d38b9400d79ae04e411505087651cd12948acd8ede567311b0e973400154f78d476266c880f816de4285944688c4c420103e7904845143705f11a6be1ffb4ff5e84c4246a6a4543d35d7a3348fa4b0c8f2ff9a3b8cae88092f3d05654611bcf06493326c3c54702cb0ad68ca892e7cccb25b70b823d5bcfe2a2019c3214011b43cb4abd9315e26df00af33994c69d5ba385647b0c7449ce12cf5a0be2fdee3b002e20f85a0165fcf5a6ee9dc097284b5f6dc252ae7b629a2f8b4c7111a96c88694402b36824e3ab59f6660467dcf71a8b10a1921cb63ac1fda7a5a447477d6ba2b5a1d7c80031f48e9d17d3b4b60685fdd650673ae5b5616f59bf3e93ae42d89821fd74a54041b2d355ea1cf294fea3ae8a84302468a8586151ccabbbe2e04bbdc775e3f762c3d0a34be65814709ea9f66c0c244afc25b4ffae14ec93c54eae8ff19ab4b5a574ae4353c692579f3abd1f50ed52806477d3639d8a66862fe0d8b897026a1099fc88463b3a2daf1394b675754015f0587b3c0078387b895f5939b0d43252f18ecf59f4a1db45b54b288e627e0c63be7781edd191454fbfcc0af2f00d0ca8969bbfa3166adb95094c31f86eb9f751a638565cb23dd1c5e306f659a53d695c9f5f498d01c5cde5b1e3a36255f3427b739921e0595365ef308c938e2012c3a10c19073c3a5c813430b5a15f9474b1973a729c206236de8dcda3ac5120980dd230867929b93d6a6f6e24e93bb76e3bc179758333d4220a12aa600c0dc61a17cf568ca0ead154a85624792137ff17ea051c0647d51f34b291c3433b3228a5511619a93695f21061935e5040aeef44be121125196e0b6cc917ad8f4336628151194b22e8b56f4e34562c60380be22aeb805c84d768f76546d32e6a42576c9c828166589104c25543821d603c907b1cc086ec21d11836c29c777e333fc848d4d7a99e8b85665614ea4aa7dc781713cca8c656b0fc1faa20e6721cdddd6335625cd6fedf9ac596ce42e8cb3b5ad54ab5729f0a2fb3f24e28856c2f7de342c59111b8605d7d1b18c2e8b2a029eafd5943672fe21c43545baa89de4936d49a613275d26c4357a651963896c6840d2bb5f0ddf3c7f7244609a17c87c1854c06e04c8c5570b36e3a6c46852c764ae2ef7a961694043e4f5547a92fa4c858208c927b1be83a9033dbb408109ea088a2dae51d18be1ac8eb1081a5f027ad5dea1d3f647b1dcd1dd98caed332aef110340d01cf3ec0708eb8a7e6127810f2a5b7f86e432b3be2f834200672a52fb2911f1e01e6bb96847f4dd29f59abe8ae1a731327814eaa2d6d9b9bb4c1f720d1863db43676c5a7943f071289b47567f25514c7176baca765f48bfebc84fe335dc1a83bfec45c0febb99c7780967e4bba1389b48bbb3d3e0c235f6e2581010acabb92a38af2e6637d8836a76020b120318d1a119922f7a650f9870611a011581aeda2e0862994aacc74adb4a2aae391d911aa6ac4749514e2674b05ac0f47811806e7171ad5852e283662e52384dd0b9c35dba924621cdbd73684c342ce987a9b41377af7530338f2d5def2d2c13630341559066c14cc699e5341251cc41f6e785a2a0e429edb8a72ddaf73784827c6db1b5f0295f28bcf2bc6973bf4e5a36b7b07733095422ae3bc3ab6cd813608937cb353c538062a2aa2a19fc2290a1d1675fc612b5ca9a7e364c5f729a13cf8ff5660c0b66715cddd3355f10422efef0b93ff886d94c3578d2be236d4ef9fbd8951ff726dd1481c2ec2b9e340aa26f017c67b1b983653c8157e3e43c1fb902b22dab1d9f2ef74a74d95f5769fd732afbe9324d7304bf8577ea51325ff105b248f49462680a16e121bfa1f11d223ca60f0b8c53512cd3ca207b6ea07df0b850b720f5a8d0712753269440fdd23e2c617bc5822f08845f861214b83acd4bbccd5a13c2df678d9484e5ef12abc0df7f7f74903730d731344301642b382798a170bfd7df8aa2b4afb984639c9bf780c33a69f3e05331cc04d52807350311db7dee182e3ad82b4fd8c20581aa90fb4231e1f4175fc4d15fc7b68c4d9226ee03c29ae1f696525c7cf86bbb216e143135d328305afed0d58dd0605b0fa89c720017094965465d2e16dc883a66ee2878f54b788219976fe50a50425088141fd415a5cf98018b673a270333153049cad1c87cab46cd41833eb8307822095a73ae50f79f0d5bdf5b00d2431236bc0c834e363a2ef00316f0a4df1d4b1630e1213fc2b356840a22c2ea701eb467eecf8c60b500912d26eb1a6342aaa3c1431f0c90cd741c29b537c71b671c3ab82d375cb57a4eab2843d26ab5439258bf8d4b561cab8836fbf45163d1decc2149ad2ac5516cfb4b1003498397c7b2eed075bdfd1cf3868d1c4e520c197ba63da6f83004427416fb5ebaa0b93469dfc0ecc760ea6928831807565b526f84c42adcdc0a0758e48208f088b8f780efd58251f50ca7e15d17c6958ccf199604078baba925e743044338dee427ea1c6314a1a962d1534bd815f31eb55987b119230ad063426f58ea7c846594073c435b7f13e0f4ba6265554ad7d716f4e94fea27f886f190e1ead51de35722f95470866d962180717cacf08995407574769b65bc7b11b9711f9a38d8602ec9f53255c06b17ca1e1b4139ad5a8864bf9364954861c319050b765c89af93ee9e9f26da55339f3b9abd51ca4a66bf7571941182a63db4caf89884e9a6b5e8838a37bbc47a1e4e6490bde21ffc058e607b108a330a87d0200621fca0c5c82878e5fcb0ae440afb8bc3e1975440f0deb1ef52a548dcb9a08ad8c1f872c3fd53c6ac636d737463014e894cde523753629b5a00b233d9b418cbcd689d197951be09c9e951af2d922c585204144e48f32617bc9c60c6e48281bfcbfd174e5e930168bf508f7774e84e925871138a8955c192f0d1d4dcc71b909a102d598d8cd2415d5c73c3cc706de2d8c31b72cf4458839391f16c626104dc14ee3de00d17ebbdab45ddb9d07ad6869dbac3bb834447cc0ca03225e51bd8c4b14a4d6e484cdc638d2a61e3b30d876dda4ae0f4188769e374e72aea06c9c0e199bb9d43d020282c50dbc3d2551e9b18e39b6ba5d743aa3e39c1d08a3f8045c5764e7c0409323cefb77aad02d40c6ce72adef3eefa2246b86177f31d2862f29c64daa02d2b2d6a5a2ee5d3e7c2b001cefa6647de502f4e088f6b86ce5aa0996ff5b08e4050ff830d257010bec67c84a59f55748c05c651878d3115f8870dbec82453b6eaf1267cd404a33e7dba65c67ddb065e58533c99e84691947f4bf9186c04219403ea175826d1751f1b7f4c290dee5146faef7b1f5137ef9b5c8e247c39baabdf1c45eb682e49d4ce5abf2caeb8b8f85ddd71d2a634a86a48e79bfc3a97eec767ab7c30fe261c52a2b7e8f34a2b15aeb3581ea3e8ca80a1db1a4fe674cfac82380f1f4ad369f1cb955c30a1aaf4fb880903fa43a161b6440211ac4687ece29608737d8d755f834c2f5feea0f0ea6cf3124f4c0777b2a1d7ce36bbcd9b511cc489febc88fcc9d1d835390b2add086d8529f896b1c92c1bf95714bf32903832974def9a3f84065ea65a824168c841a4fc5dd1c50b6292c1a24816874497308fa282e3e2986597a7dc094056314927e58261baa857b9a93648aa390ffe29192ba7a91de02ca526a381fc81153b8955ff4caa500559c90713ebd4a763c1511d00a2bf3ac90fdde9f6288957a36690db670c276116141319ab543285cc557a369c898d8ecf047a143186750d5a50393ab002d6b5249171372dfaf28a2d5329a13a68976382b9ca6347f5518f0a4115ac471d076bfb3c128d56b44d1c0cd03a0aef9443312e041ea3db9c694c2ebe2e075ccd0f0bf9bced7d1fff4949cd3abdc796b3b65ab35e1c5cc002c2ab6951a75407dabe8522acee624f70526c7b9d440739b941d830738929b8b712c89b4f0579b2336e3352f8e23ab4ab79e649053d53c11ea1320672bd56227ce80662cee6678aafdb23f1bb62e49173d658c9bd84d73835e10a6480a007845d04e6ba29853e6c0f3175ae115460b02205fa5b2a0541884ebfc7b0211aa0e3edd4598d1b5929a4a834b7b808b2632cc99b8850f9fe66f36986b419fa91401affe78a595d7319779dd494f9501ef2a0656415e8bf8f3629b577fa4787a220abc06d56099b669f22aab05684d71faa7d36d9d2a7322a5d3459d0c9dd32f974de7d45437ebdb1ae59685b612fd88777d250f40cf121820fd603e1daf7351ec25ac085399d430ae8f83f5c4acf82992ced041dd8f3575e76c97ba1318e799fb3876140c0fda4992958d5cb5d11d7591b41c8b1247f49f94747a0bc689fc5be02fea7d79303e7c84e20abc2685fb3a5693d9f4c0053df4aa2366618ccf04ba5e7640a4fe45e5c4543553db892955d65e96fd97c1893008c66ea1c817f1ba7337db7db40905662b91119fb0f00d053d333a739845f98fa852921e48c2a4141713208514589a555cba79480dc1813c4ffd74471c5ffceede0f5c89d8dcbe3be9277309cd793fd6dd882d762cfc7d6a65d92982be75bc92803efc8cc07176cc458b332ba45e03a27bc2d81ef866aa304369b98d7aab699b8e72cb6a81bce2bb3d769aa8c608ec06ca07502447301d129f6e02f40170a489bdc0d43d1f9c00324ad6d81e0c5e288835413a8e6dc4a50331020192a62287b73320642556a2956c944140f4c0169267bf5fc4936ef60736344f7291d3c706bf164f32023848afe570afa32f446f5a1cb01db486507d6ee106cd4cde36e0374d8b3247bcfec7eb08d6a54e1af3e03c2897a0066d88a6f04acb85764994ceb6577f1930e1e88f38da66bf58e233d5056a4368c18b8906611e41dea716ea5e8b73c7454bbfa2a8a6ef0816811e27088689ab10a098e9daea26b035b69171b34ccfe26f2fc9f4fba305f00b31ca2fda28ab40bcdb387a32b7a1fc8ab4703240467f33a51d5cae19553e76926cb535f6310780209dcdfe76c30ff6a1457ffb0f2b6268f78336491f101cdc9aab8f5863c00a23c017cca0b9e2a328ec9f31fad930bce91aa5fda08b35c4bdbd2554de9287520617ccd501c8dcf2d4cec8bc6c2e063adbc4ffe125b2d41d0496f17b0474d04ad760040e04cb97197f66449ebe1717eeb8c485cb381d986a717007dff857e92478026d1a8389a36f2ebf1537b55e689f5e47637265a04ee97692de89024e17ed3ced79082d338713bd74fad595306996870cd8321c95f06ee6eda1ce2039aa71cac164dbe2cb11755dc81fc1dc1cc28e8af6d29465fc3e3d21ae4a7adf7fb9a1c6605e7c7e9a4095a53a04030af2716ef4ce7cbac71b938a3b584cdf4f3e0f9967c9c07bb8147a7b8dc57c744d0d4ab79185387589b1862b9a89abe57c4deb591f630337cae9a3cd009f46a679dd6cc62704e994da150bdc496c4e1f47c0ccba13c312f2131b7a041e1832f77c65fa7d00346f0ce08e4987b0c85cd498376c32b7e23e487e00a22ec008455a59c9f95a90656fa32bb067c8c38617372fff1550fb24f3d16510dac8fb186a4a6cb0ed1626ef35a7013ffbf11b51f7333ce6606d05a00fd676257269c358414828063288289c2630aea4159043a6473b02805781b7930a9473d3730491b3a6b0b9dfa1d22ba0f28f7b7fc0efd12276ebfa40c3d41ab3be9932fb2a9cc1c7407aaed20b5b706026cedc3e68ba79a459123370ca9d9bce72e5365c07861d2d1c1599c38fdf152ea41abdaf0e7b7a8421f902a62fc65c675d46d96ff538a6aa7b7f5d3d871b6072e304ab301ad41c6d01cf087f2d3e8e693651dcb6d1695906101fe0469e356ed148315ce78cfc3f1f8662c98829c8a3c612ea02cd36c8255edf17eec88e5b5ac10d35cf502d967a730d9b12803e4ae56e6e7dcfaefebf95644d6745fc83f7b1dff4024a23ddee4c0af28db4ae2da5a24a2f42c212214b61953b536dd210e11cbef9aeeac58f3b447a6f1e79121135776b200e5e2f966bcaf68f9e2c23b8e32a7b832187b3b61c5f63fb48d5a6d4f3c9e5325ded985f489c0f606e204e86b6ed25975fc92976d3f31271dc21f3f2042e474f0023b2724f5929b2ac288b9ca09ec3376839ee4891830959d0905624ef9490aae75002260233ca2002b68d5c883074e1c77f58c308bb22124c522504bf7ee2856e8a2b2feb1721f5b8d632a65c7fd09dbe5caf4d42c1e4fa4968ff21eb3ddfd68c727b3132c3bf6aed1a1ac82c2ea729819a599f6794b8aaa291e7e25ea777ee15c9240a411dc47fda8177da5b5968328a11497cfc8f00df3b5138bbdff3e7576786069448e7d5c99700871228bae813e265080f8353047a0162614c7315b8a96c6faa233d30b056ceece4008d1b30d05aafc59ef325ba695ef166441207d2e7fdb8d05584e6339c9f1403ad66e5281eea51c49c9a9288118e9a33c71b868c131d1ee382edf1ec22d5ffde4a50f58939774a1519e47402dd3b8bcc0922e75d47d703c28d6db5881c3da5fdb7d6b672b3181b29f44ff271a65ce76b75544175e1749b4e4ba0ec33a4a7dfcac9a32abd2a082a559fb52c6ab2ae93f38067cc3b459942f48e4d88bb5c358e7b5f41c377f7126a16cc34530eb0b26708711631e1b3c50afca81c358bbadad0654a237c95380b14a1f7be42be9e8c5113f00b385ddbe253980c6cfb4b0024aca15168007d2e651e4ded54b67bc8c42e9eb1cccaafa79fbefbbebf22f8339ffe81b2f9d29212a3d33f749058c4085df803c7cff0186bc7159284a7955395f3734783c297d2ab097fc5cc78c0258902004b592da798642928488a118d698879fa1da22661e07266f35e7e6c832696ee25c348a729a8a915e013a9bc1a6fa44d81c3cfcb4f89fd565a6ccdb91033227f8f693126c01e89b0a7070e7ba5e309b333b0cfb6aec8a5bd1fe2e001e3f44af9e285848707e747845f721e02f463ce5c88416b4eeeb20ca5e1c74e565d990c94fa8afa689992bd86a5a4f710922e99ba5d7d7d29d211cd5106abf46df3cc697bf36d1a1135a8d4b53bd84b8210b785fb50f8a9d52cdf741b1464354d87f0aa704883437b63118e7e3064768e83b43d08a4df522d3f1d83d41b299be61f6912c075e74493a1e5496502f1a7efd80959447287a72daf1fbcf29d71c9040a8d3e46d3aa642f879fbaa138737567eb5a6453c70ecf8c31e74763633e1315297a4b8698000fdf7af8fc5efaea5c609b71ee1af0ab131d45cac6b45400a52c8209a1fbd8621dc68afc9fcbeaa312cd9ca2110652e5e74489ffb3ed8b28ceb33a7803521ff1742ebe7daceea32fb1eb3b192e6f332213f2304a18a1f494f3854c502402bbc41ca0221bd37ded405a8628ad30f4e79971a120dde190eb375de48b483d016b4529af711c607a5e1fe3bea766f3b829e4db580a60ea4d50b350f7621c2415298fa82bf6ccca08b8d5b05d3e5ace0926276d2212e0146a703f7f1d645f54883268af380922abfb3af9b46713cfeeea9820daaafd60bc6eb82ddce5bf6037f750c9dc8c0060a845e2af5a7920a198109e9a5f98b1d068f99f3d393f1b1c5830cdda236eb07f914bf75396e9bff48963373ad4cff7b30d997849ddf6e7e241a1e07382cece108f3b167b2ebd61fb4199344d95d2591d37664bd1aa32e1aafc322aed4d8593965752bfee1ce709c7b683764c4242c34b25d3d68a601be852832b36683068b3eeaaa300754174d8098a3f515f8549efc8dbff356e5e40017100492b302c37485cb9f4198a5003d60c432c7cf8c236a60ca52246edc45c13625e2ee4f6f1f2af8548825a36bfa3c9c0ac1264cfb7cbb75c37b9aec5952b9326ea01f728015837a5795be7004738b32c0a3a39c12532226eed4cd230c7b1d2a0d39cd8453ac68bbdc0623d0b41abed2126ffa74b3e43ca0a10f37fa1e880907c9cc3001b3703cd5c467b734c98fe28f8aa561f34d28b76621e906bd9718b81cc0274af54d481156ab2ddb075b68a8c6876388a4e433d9d9e634114251768f4533394ef12778194687c635aa184bb33ad21781f129d32699a585998a5b626429faca4a89b642c874c30a212fe70a19371871a8e82f3ea61157b025efe7059660acdeec78e5de073599356a850d000f49b9ac4c9230ebadbc828bdc95721029cfb4f8822f2ccfa81b9a541becefe2fa7441ae7e7b00c62fb321651c907efc9156db4a3571a05c47b4b1591df0835b5e38b223d026dab60ae0ca830b655736384b5feaa5e1eae9345773a460fcbb0f3defc1dbe9e7eefdf2c096f8ea05b05c345555af53112e537e19c31534d0af19707554d8764b72d4f6bdedf5c26aa0939d10829fa76af57bee4328e3ddf14a0e1de94b15404db623a90aa5bad456c34891899c88f99474535f04cc9cb60731e0996db70bc90cf2f08f145e306901208f8c6b9051653ee76cc0c317970d95dff6cd821b100166996106fd18e1139cd530a6fe74432d6d836ecb2c70eba46e501a9e5c384704ca71a642d60ceee19b1b151b7e62503f503af548db3323b69d43b5598afe06dd2eed239c2e385d95eb0a9aaa2e7362c08c163c1762347aaac3a1797dc64edd119b17f38cbb89561f1d7902381129c86b6232b21ec30d293b341abe9d949d4aba410cde8616b7a0ae84c6c6d0d7101fcb0b768e83995f53f1931eccc2159c07fac3d0f78123e9f5b03cc408278c42a646dd034bdf97abe84010784bbfabfc056331666d4bb1036ea764978cc5ccbfb5fe1505c9659357dc35e2cd7714d3924251d508ce93d885c2e5ffb35afffed87a746973d0891b975417d9c6d34a0394ee16e7bfb022394ed41bfb046d0bfc38d7e062140c6e45a6da5d6406e0a937a64b3c6709c8c7119af43faa34088ac5c016f66e2ff83149de2480a60733cd83b21dd808a0837525eda44bc5a0a1482e2af3a22d59add130ef4c3db5615bfad6ae695b5d3024739c656024fff4b4a64c490b7dbd92b1b066a89b4e0e88c6f89c19be0808948cc0ad2f5e408b72020d0da2fdcd46977f5e1919d5e993336bcb839bc9b5bccf1c89b451e01b70a959d6835a2a2f08abc699b50f3224387d3912f57f548bdd3c9f9a8538a6c9fcbf3e4ed895eae9f1e94a959c103ac0a97c559c1e8da4fa4c839e26f891db671217d9f7d89afdf7130aba1e7aafcaa8f45cb9897ed51bfd89af0d76bcace30860d40241bb88c80690c933d9d618f202fe61b5960bb04b897a21ae0871ce704b47ab4d91c13ef6f04bb0f9bcff56b27c0b5975924d173285b16e5378e8816c760f9458cb049778a4d7819d40e89012a089048fe39574d512ca4d1d20176592b94b009c92e0aea208b125d0e4998051860ca5d4a91c74568410e80cd32face166ba431db10f19dd298c6bea361db13b8222ee572b43a33d9f4121c05ec39f5378c7003cd21d469f7ac8b690dd9b7aa1705373161540f6f2297d2543f71d1e4d9c3aff01af8760d4aeb5c411f2dc4e891e3f48721399ef0c7283bf510186131dbf06d777a9002eddf36ae573e66f09ae7efd4f2ced9f04f661d85dfe367835cc6311797cd43ef2a513d8d42a751c62522ec478add9e8966065be21031c90551df1c5198c38f0eb3f2c792d9ff43f6ec85e145150aa3d654a927db41019088a358486e70b3fad7b9481b98b3ea88c7f913f48300b522aa934380bf748f1344b42dfc68b945711c66dfa74b6fa46f2bc07c9a33618b959b55a60071ed0b3722693bf10589342ae92deb553c163ae0597fb72ef457f0e87b94f17f3b0a84b6243dd7768fa5930cdbdd9b28e9679695a8cd5c19331bfe8db202233a3278150fccbeeff1e94844ec47f57ef3c08b8edc23c2af7c01591c5ac3a53a8c716e4490da12f10d70ccc3280252a0786b17f2ac5ed9a32dbc35ff3fd37ac71afae8a48a093ac27a71f757b552b162549052717d5244aaadb07d01ecffd31ee5c7ebefa5f35ae73cf4a4eb04ce35c9e37afc6018df7d48a76d0dab3aa94585afff0e0b2cda89ccff11386ed169688b72b5f5705d41a10f986e03157927e709487fce535a09a6fd6ed610dbafb2cffb1b79d90d70f2bb3515fdc15eb990e7f1e0ee94f92ac4ecd2617362eb3baac1b8111dc2330c33f3a76414c9aa103fa781a440fb42a893582970db927d4dd55ebd6240a2af78ddd04d6cd4e3160aee36d1de51140a2dff915cb2ac0c5768410722fc84e202017f6af4124739f1825bd2a81e119d0cd80fc2a777b207a41c90aaaecbdf7be3c53424d4dfb22275b0024e9159150f5c01c5e07acaf7613c5f33e1873ac36774081cffc1082d2ec8357edc802e6c1f629f94c0044aca0fe62af2f19edcef49a7d82f16272c59ed850612972e2c8778dce2f1622242e81203c40a755190789d3115da7ff081904b2374082b846994c865b40582a2b11215204cb70dfc1331d598fe649240133c18621b030687f6790344a52350efeff67fa22baa95c894191a8ab0182ba1b03248f44e31bfc0100fa0868071e900977d132a5410f56f787066893e8511446bbd9af1671a8f200af8b215bc7c0e20cc62bb603968e2723d086ff3c1f30961212e4c04f8bc51a249b7270e196a03a56c026af43fa63830ec34e903300cc3300cc3300cb34c2076fc56bed91faf2999e49609012f1c23b29e0a9494529232a51473eb0220d8068084b046d6b43e019c0a500a080a68ef87e93cecd0e7fc1a4fc3cbf14fe560f0a8431f85d62ef520d364cad0a155423d9e9b72398ae77368a507194c939766395b1e7268a308cd7b2a2e2ae3ea1187366a9f7069f2a355b33ce0d0a8e6ff8c4976677d79bca155fac14fb57612fd1f37744a8955fe1e444e79cea30d8d98cbbaad2537be2ce8c1863e35c9d5af5b905a84a6e0b1865e78b652beabc3e39c6ae8376b7c0be39e73f692471a3aed66324625f59aae88864ebd5566e1e5d25a76f90cadd8a0b59c548b199acfabc3f8860b21b3aa0c8dd42e5ebb705a501f3cc8d0a8f6868ebd61be933a865e94500fd142954e0d8aa119edbf2d2e83879a1e86fe7c46a88cc945d52c058646c6e41a5b94d02d3ef785569aba4cad94c8c30b9de61c7f51babc5227198f2ef4820857a9c2c5dfce7b70a117a4baa03bcbdca8bf7a6ca1957ea619b2529a6ac9430b9d94b1dea9e3e68fcaf3c842ef22c4cc9a6a3958e8b4efeac60ed9e30abdef494fd9fd34538f157a9de99bb4ccf2e7ce12d201f0c2a30aadd8dc92362d52bfa8639e64713144444444fa10e0081e5468db74e6eccd8c627226491111419382c7147a41462d49f1a2ec2185467e43bcfecd2562a4a2d02af1e269ce3cb19d22bc1b7840a133253727a1e595f35a0bf2c0e309bd14a1c53cc5c513ab77c22bf56bade59b37a1f1182db7fed166a2954ce8b7539788f274d9a62451b361a3e40cfc81c7127a713242db434d85c72f071e4a688494e13bc8fc2f87075392d0af16155a7e519f569791d0a7d662739450da3b9647e8c5cd72f64fdff4c5d6f030423ba734b84e42fb945c91a8a10e3c8ad0e61c750b2e1f3e9e0caae141847e44c7ac5c469ad4d89d780ca14dd5d15c3b4b0aa1dd2437a7d477d1a57804a16fd157c49e8fc72c2b7900a11d25a59659f75c0793bf8d656d78fca051291e4c8cd4927841896f78f8a0dd53da79a5945ad462961af4a25fd94f93f974143a3729c98b36afced2a46e511294941312dd45bfab6387ae56193e289168186698a0a443176d0c9e2511a651b445975cb4efca94a70b325cf4a22ce9f1fd1bc637abe316bd7c6b0d5f1745a2766cd17e7e5daed4e7d4a32f2232860ac210110143472dda28d5fb37cf78a8ba246a69380ada0a3a68d18feccbf036a92b5e25513be33fe5cca2f370aa6557d3d72ca7f1262608c30c13a4e12af80008be04c58cbc95451fe275d4b22cbc9c63fa14b761df023244440ebf8d944a4cd2061db16883d012f15a6cff98913739b1f3800d1b7e2365c980c108093a60d168f71d17b2752623f68a56aeaf8a8f195d3e3f1190a4b80848529c448c30c6284118628421820e57f4720bcaa3e716635d295bd1e8e688cc527f7acba3931c232ee86045f3f24757b6fc19a71aaf4c4ad850f28cc5a06315fdbfd2ae59c3c6975d68e236ca787542c6be3a31394a060c46b04315bd4739d2d467c3fa8649d44cdc068ea444e0838e54742e0b225308f59c91ab49072a3a0ff7f477f57f9d321da76863962d1d640891d9e93045e7497bbf4a5706a2a314cd0bb16baa323dcaa811a18314add4dd2ef6ea959de519452ffb1b3f9fa648f4d8b10e51b4e6df6f62b5b0590a3fc71a49cf64042928688891f239d6f8003fa12314950e503ca0e313617478420c0c7474c27470e26499948c6c421317e8c844af834bb2bc656f51478b890a745c822fe5d13bf7e796e8dbf5ef88bb8af824abc448090e0f9431810e4a44a0631212e890447f52ae97a8a779eb7fc4648ddc48f134461e3112296bfc19296b7c0928d00109943f03e5240d0a743ca29562b338971142c69779939274e364394b478c60a0a3118c68e5bfa8324ad91efde145f433a7d9fedb3af8788a984047221ed08188b65c35863d21aab33803a2e3102310e83084033a0ad12b997596165a3061c245444444240a1d84e84d66cd4c3a89b77069c7209a3fa54a7c3d66d134d4218856e64875f99d3b02d1eb76195d298fa6251b03a20dbdadfc472a828e3f74a644f33783bb2c6913caa3a960fdd0e910d3112a2f76120eb41c28276574f4a11f3d2575d2f8f18239965743071f5a2d7370d15d0697c5e6f20ca2630ffd49fdbe2f9efeddd293a899d48343a0230f6d66d2929767ff73860e3c343a85b94857a144b3ccb1161cc38188c808504a468ee100514a4670a49c8e3b8c80d16187c6d3c46a162efb68492751b3e1237a385ea9d151070674d0a1914907d52974552bf7eca1630eadfce822cb4b7e736374e89043bbaf4fc8d0d60f7d793b74c441011d70f0e87843af6495663dad41a3ff1d6e18a940471b16d0c186110674aca1ef286474d3b1ef8228a9a117f13a6e18f1725ed199f892928646689d97420a215acc2634b4a1e1caf547072f1d3b432fe99ca986cf182953666873d2524cdef44bbab465e8e514df767163d442647490a1179e4b09df0faba7aa8e31f4224b75b3bf9259f1c4d07acea05b520b5a33f9c6cee80843efadd24cb46c90fe2a30b4fd9b5ae9d5ae4746ef0b8deb95d925ad4934e693179afd9cb5e8e8bf7b3277a1d5fdf8b27cf92c779c3ab8d07f74771967ca84d28b888ca4a43cca8e2c4a49c18e2d747e5a56cb46b27720e8d042f3592ef72793fb9d62165a99d917f76f41aad43bb0d04bdaa56b39658ee9cc92a875a0e30aadfe9847acee9339af153a19452bf1b2b4ac6396055bd0518566e43b5f8f4b97bae5ef58d041855eccd244aa8be2c5f72c14c771724da1d90dbe5148655a3c29d521853e697f2b0feff2893cd1be230abd66164c7f94cb1e75550393131b9b820e28b4529856a93fc70e538d3f27e878423f2f8bf6d16d8d7abd1b25cb2b2734ebe287c6243ebe5c494a090e90063a9ad0b8eb9ce6094dd0c184b695f6fdd3a82e5abe90a89de1378ca18e25f4aa77b5d6b2a0353dcb8282374181191d4a68d5c3cbcab3b8c245e125a10d3e32684cfab3183b0a09cde7ecfca79427df4c8fd046d3dff1928e2eb5f290a89ddde057c0db6184d65c94ed2f655d7bde8bd09aaccb6242cb9dd37d22f42bd67c74b91e57253384ce75d442c76cc105915a247408a1ffb82bf342cb603e6b47109a4d75b1fb5c92dd6492a81da231822c071a37c218430561740081d7a6dca51c1d23514b1974fca033f34ef997a2e5f0b1c3078d7099b40ed94aaf16a468265ff4a215237f5bf2f9d4d2a25250bc8c335eb4f153dc8316f4246a26236b9878eea251a17410b2b9a48e56cf74d1ee8b9ac40539dbda8596e48b5cf4a942c913cf5254b5d817b8684c8ee7a875164e6946d42859671cf8e2166d9f0c9f3d0759255f27c516adeca85f482de467793ca716ad7019b685bb98f78d91a83279ed2f68d197c8acb1a48e5adcc5b368fcc7e528f5b96ea02cdadff032b9acc594f65c2c7a793529fda9aa32430e8b665db5522e67654a48a557f4275a8f10bf7aa3271957345274458590b956f4332335fab6ca8a3646ebce3288cd51afb78a66753eb9a69ba13bb3a8a23121656a4e21b63cbc52d1ead94cfda051a3ca7e052222af4444c880c1481a5fa0a295cd24b5887297a577123593131b27cbc8a6e08b53f4493c275126a31164afee0b53b4e3b95a84c6d0bca6a0380e15f8ab4044a4149d78dd314bbe5ad3a386e73059232511ca2f48d1e8d9245565c76771e5246a252367fce3501580c0eed595f1c528dacf9945e1313f288d7112b5b316d8585e8de048e10e2d7c218a3ecb629e965992d318e750b41ae36beb76bf201afb0214084da4dfa4a58cad65af0baf7532bff8c44113f104a289f8179de845c69b16a3c9139de7e1441fde3e68c54de8203e6b597ea9d38b7e5d4ee6524bba0f5e34eac9c4bfa851e395c90844444444523cf0b18b76b4c8d09b3367b1598b2edaf0e2ea52367bf6ac76bcf8c845e7399acf894da9f426ef40f0818b7666f563d0aad2659c246a6938868f5bb4f9e26f3419cd7c356e1ef8b0459fad62b51ce219ba5bc4f81214330c9e008ef0518b4e64653cf5cb597e919ee4407b7542c6d90f5ab41de465efa02d65376666d147cf8236977ff794d3872cfafdec92d62dfc3dfa1e8bbebd25ad5cca9571b935b0e8646c8c9975f3ee4b3a26699ca8e0e315fdc7985dc5cbd1a530992bdad82b37c6172e57828f5634ebb21c545dc78c3f58d1cc7a299d0f79faa12251b3e187ab683b33cba7318b1a6744b3fc5045a353cb578788f3788d13941c29af34157dcc79dfa4b86cba3ee10315bdd0d49f754c7ab34c5a87e4e314bdd6fae921a3ee7e2ed52859a6e855a6ca2f2dbb7b95598a566e962535d931af564a73c41843056140e28314bdbe1c8396e5184eb9e41a85415fec52dd363f44d1f7ce8b06ed8cfa08451b22b4fc3185584d6d4139193922f800452f274f5ade54a541658b868d8f4f74e69b252d661429e3c713edc93df553f9a23ecf7c74a27733adb5bb373487538c0f4ef4a2ccae5df628b489369b679975b38c870f69a2effcad1ed7b3ce2c74996864347ed0923d3325c56be428b151924a6cd8f031ccd270940d7c60a29352a994a92f328e8c3dca3133d27015d8a5e12826f8b844df29b39478586f490991a4384992a438890d3e2cd1c78c2f4773348b6bf8a844af450819474a97db2ec7c6c98852a2175e546acda8f5ca8d88480e346ed4e06312edb92057c62bdd512a44a2c692e8e5f8154aa8bc097d2989da488e8f48f4323288cd318bda59deee0312adbad43ca7cf3c680f9aa47182f0117d0e1e46e9ec596290a4b808d6118dd4654297127f42b72c1f8de8c5ff76fb66f9f566583282820f4674c23febe4ede5b25b8e16d1bcb62ca1397a5875a5227a51cde41d724f44af75345b27172df98f88e8bb35c9921df92d76f4108dd232e88f2366f2f46688dee3cb9e8c14edac55883e4c472daf99dce4324c88deff65b72856293f1937c6069196b5342153576fec43106d68e9a7b53ca63a640ea91332ccf547203a153ae91d99dbfd736ed307201ae92a47c7ecf9bb399ae01887e0e30fcd9cce8bab336a5a74f9f043a3f93d3acb761dd3d6b9c18360f916d83d1a377835b23c0eb88c8f3ef4b205a93a6309712d567ce8dc4d6f68ee2cbba8d93df462871663903959b25f3df431c8536d1e5e3ec77ce4a15f1f2df8490d6a6a5a0c1e1a577285682df90e7d36d1f4a8753ecba6b543dfae2b5ed0903fead0be8b318a93f9cf9246d1a1131ddf92f897f325286698e0630e9d165d14fe594572e87496f1c5e059bccc2943a2baf91187be57e6d2f82e46eb5a8292c364e0030ecdb676b61c352de92cbda1d75a6f3e13ae514f6b6e6843cd3d987ccdee1393f0d1865e664fadfbff94a7bb52f8604323f5becb39aae71fdd9da4989c2c6679bc865e5c525a4da3c878945243bf5a102933a3965c943a6968dee499362d5c79ea090dad9b482d4a937c8656673cef91e17d98a1d5ec282fb9d092d86f3fcad0c8a85d4913fee235683ec8d09bd0d3f2c71cdbbfe17f8ca1d10f3d7fe14ad6e51743ab4264bb96c53ec2d0e8a09da12e6860e86352d94a9c3c654ae87c7ca117b5cfe6d8f3f795621a7c78a113a5ddd9336659e8f074a117f39d577eb3fbcbc25c685c1619dec447a4b8cec7169af1d24a974b625bfefe430beda99812dea9794c8c43f8c842b36e424bc2e76379e63fb0d0c7963db7a051a97cf549d43e8789d7e00a6dd2faa4f470d94f6a7cf0618536ec6ffc8db194528546a616a99fccb529f34b6c7c8e1212b4207c50a1d3a5ae51bcd6fcdce6c7141a59aea5921d3ae49b4cd0381951fe281f52685d50da7b5ef856f59f442d75f011856673c91c5a16bcc465ac018ab20f28b442b3e09ed977b48ba3248df3f1844666d59d4d6f38f9424de34d1ec5700a1f4e68468e891784878f5d5a4de8959cd7231edae473644227fbf12d9bcca174f46309ed079da37b76a6ce82f29cf0a1847ea59ce937d919afbab91b1f49e84ddd4cb7382f6736b750f840429b3fa54ca2e5f0ea4a3e429b5fd2a0b46f39d03801133e8cd0e80f339774d0516ef87c14a1d3552e29d9f2c713fda26bc207115af73ddd4ae613d7827262ec66f031845eeb4d25a26389d328fa10422fcde5a58ed995cb5bca71728282858f20f4823e7dde1e4774c90c62326030721f40e8b5a45cccb275ac5c293777b24c46c0468c8f1ff4e1c28e66c94789f5f0c307bd164b868db2a414df722f7ae135737e3ef395bbf1a2152d6869e926336578176d96c58a5dcf9266d5cd2f6e03872e7a615e10d9a54a29f1d15c34bab3e479ffc9a03dc545afad74cee2aa284daa43a23672e30465e528b95162035d5a0e351e61e0718bc6f33f5f8ba3399ae8a02dfaf821338ea7d07ccf7ad4a2d351d5528ccb1e7d9e072dfacfc29ccca5e13c66368b46cbcc7d615d48d46cd828394316bde4aaf478fc50d172160e1eb168b4696b1da5b95382072c5a9d4c6a292ba47099cde52368666c0f1eafe8e5489562fe3335844a0d1eae685c636849a185a8d21a7f8649b6a253114a9846d72e67fcac685fc6fc8c13f7aca211dea27f5ce5c227f05045a3517c64c754325a96c354744a8ecaa48389d4061ea8e8b3fe90c2450d234c8b6b093c4ed166e12237b869cc723e290f53b4d93bc346a945ebf0a798a1b54729da20dcccb318cbe37727c7d7e04b50cc204523bf350be37234544b25258251f4524fee6b7136338b19cbe1218adef489d79acd25081ea1e84de95caa852ced61446cf00045eb71b7a3ebbc0bdaf2f8441ffd536370d73f22bc35237878a2132f3fc90c6d8d9ba34e74a2b7d5dc84ba244ccb19103c38d1095525c5aa9241e8ce42a286f223c7686e139d16175b367d97b4d23a231e9ae8fb555c79969b3bdb814726facf2fe8a072747a5019a263b5f7c044ff3a8c5c7122f529e6be244709123c2ed10817758cd541849031f9ca129d099d265a5734eb0cc2307854a215aeb3be0c5aafd6fa43a2a64a46d648232338523e90438d1611c9a1c65bc183128dba68e1196314ef529b44a76b529e0ba61e93040f4934e225730fad842eade49168e7339bd419db5a6ce185c003127d76b94fcbbc5ade109b47b452c69bd4620e71d6c0c311bd7231782e31f3928cda8836534f89114275a76cdee0c188de25d7d96d7af258449b2fe4b5aa6cd9e52052449f1e4e27d15a7aa5983c12d178965da3976c17f3b48cf04044af5dc81229548609c26883c7215a316df2c289b7965f45a2268266f03044a35eda5349f790a94485e845fcc5115ace93105a3c08d10857f12ca7e2e37986443d06d178522e55cbe6e45a5c3c04d1e8d0f02db6a0a2128f40b44afe5d18b15a1c7d5a88e20188c65fd0976590235d634301143cfed0ef7a6657d9ec496cce0fadca10d3a36599992d49d446504e46d270146424f0e843ab434a193a8ef6f54d518c191f5a4fde4a875c1923bbf11e7a5955eae0ba4a47d5d708ca490edf3323f0d0433fba95f0cd3287d14945810a443cf2d087687751a550265226f1d0cbd562fedc79e40ad9ccd8e30e9d760236464e4c26d1cb4ba9c57d75495ceb25d127d35e26e342ebd2e291e84fa4aa122ec92f1d3548b441870f524e8b9e21741ed1f7e6e4d2536917740ad111ed7e9c923a75d688464a156f79478bd1f9614427264cec0bfa5402b2887ea3ccb1a7330ca2883ebb646a2a756ea14527116d0b7a5ec9585ddd302d144010d106f32caf85d33b2345904334635ab590a742121043b4f95564ce332fb916d3cbc04234d284f894e9caf4750c84109d9cceb95cee9c41f43a6b3ff170dd403919e306cac9e2130388203aa58410e59a1a45992e039040344ab99c93d49e63b82806441b4e7974735f7d2d757fe825692ae5851c97739001f143afe3bbc96ff9a7956f7de84b0699abb7f4e80e1e3880f0a1973f876c154d1aa48e5240f6d06a97782d2e3eddb3540f8d4ba273d6b2deac01c9431f45887a8e6302c143ff9236616eee32c808efd0c99754667eecf6d4b23d80d8a153a54469d68d1e36e640ead0e60ea385c89ecccc591640e8d0a6b6ece2cb713c43447773e8b4cce6d4beb245b941460e9d3829b596fa052daec8e3d087d4427c9b74018143f3f35fde92cc535a902e01e40dbd1c4ce8585a89188f0fc40dad8ef2b26f9ed372fe541bfa4c17b4b81957e9d2fa1d081b1a51d76e55e6b39eba35f42f9fcea8b620446e49a2866000a286568bcc5ac797b5cc173c98865ec6cba25e19b63240d0d0afc6f19cdab15f10269ea137ffec97ff5a90fbe163865ef78b6f8c32b44eae2c43a7737233297d103274a262e489f81e2d4c7b03640cadced9556b793f65ccb2187a713c5da5cacf6bfa14863606ad7546171a64b4090cbd54e2b49bbcacc385ee0b8dd6916a5e2ebea0b4a506102f344a955ecffd5a167d65bad09acecf46b12dcbad74b8d00b4ac828a3a5d7c3847e00d942a771b390a9b5687ae4d5421b7b3c9ae7161e64aed20092857e35c80c2b426ab640b0d0fba80bdbf9c26b516b815ca1f90e2f572984521a47b642739a84b6e9301ef3a973aad0beac5a7566a9b9c5d3b2020815da97795ad2297c3dca17069029f4f15bc98fb9e849b6e50b2052e8c4055f53beba1a540a310aadf77616aadd2f7ae840a1d372fe79984df9a94f204fe85446ddba635c6c9d7c4427f4a93decb9928dadbcbf036942ef626c61ce3d856c006142eb2e6611dfd3f1a13d4a005942e35aabeee0d9f4838ef10c204ae893925afcab740149429f346ad642f3282575048284be65c86b2d9f944abb0be408adec4fe1a5fa6456520562844e83cc2befa29663e7fc9c22f4e9aab32008111a9d75eb98e530212f7a9021f49fa7cbf39e0879cd8008a1119af57c6878d54a7390164082d0b7f629ef7f190408fdab46f98ce1bda566417ed0798cfd306f1dd5640a15203ee885f51d5f9d2d6acfb2547ad129213dc8ef4e8517bdf05dee792265336b5576d1e80aa5dfc388cace4b4517cd6a96f3aa47eb9215e7a27379263d7c952ab8683ea4a8ce42b4f8d1dda291d94bbb7b7ceccb6a8bbe83fe092da54bb2757806708b4a2d3a337577555a09dd2854a145df3256c751d9dd3832b36833cbc153fca80b9d3f880e1559b4e6728610e1a7a243afc4a215db416921b4f8d2b2ac028bf6a516575be8bae913565ed1ffca3c5adb431557f432aa65cf6639e6a6a9d28a5ec9fb686b31e9efffdcb1a2fdccdf1a3ab5bad0f46e156dcbade639a6b41c3b7aa78a3634a8e8f3173d68b84c182aa9e85dc91f0d2ec8ac9f16c9504145a705ad95fa46cd11f3413c457f1e5be6597d219aa2d5a9a25fc99645a9f5432c45af4accb398434f77a9428a36e89c94a9ead03126af328a56659b9807779da3ceaa88a20f59f239471f2d4e59094563425b8ed4a547c4f70a28fa5511263ae39e8b33aa7ca2cfc9bba3d6aeb5d0912b9ee8e794abd6a43d4e3da8138db896c578d472963486112b9c684e8a4eee528716f5c56ca297e518a596a38bd144af51e7ba5c224a6837136d0c26cdb414d5d9b962a2cd2c2d7db17b73d2b14b342a576a59c89b0b57254bf492aed2ca65398c5495a954a2ed2cbc52a9e54fa972a444e342f4e5542fdd2dc3ca24fa4d993529efa85995ab2289fef385e6cb64241acf2cb2a9a3d4aade02895e4cc72c45a968ddb93da27ff9c57e7fd72d8a3c39a2d7b9a59c4d33bd71d5bb4a239426baa4bf7cb2c2885e7d8516640bb3f1bd5516d18b7459741d9458f141e5878a225a8daea673a9eb9f5d93504944e77268b159f49e15a35510d1e7cc9a63f4cc51b764aa1ca217648a78551aea19d28a21da2457c6e8f0b22a791deba052883674925ab7d862ceae7508d1bccb72965b16a7575e3888466791aafa2563e43d4134ae49946aa6502db94b20dad4e1524a7f6d97a1ad00a24f328f76598472a9b5963f344aca8bf243736ef252c3ca0dee5adb875654e874515f6cf5a84a3e74a62946a3121b1aba2751d3bd3db45167d3615a75d42994bd41450f6d7f8fd614e9e24999a9e4a1174573501173bdd183153cb4f2c59c7a37c568a1f5ca1d1a35b1328b2dbfaca4ec8250b1439b3f3ffe726f5ed741e80c953a34a27a4a693f117b3a4a874eae08d7d62e79e25099431f7fa556d56526937a14ad2287d6a4d48ea9b1fa615b2a71e8bc5d16472aad4a85bf77a8c0a1d7a2cbb965eb7f4126d3869ba0e8bda1158fda55bbd849cbd1191537f4ab95dc1d131d7c778546a50d8dce2bbada7f9490afc486f6c4ca4f1d2fcf62d09254d6d0b72ceb9c5cc968dde0ef068d868a1a1a315a5b968496ff0513eb19fe2ed034f4ef49dfc36897656aacfcc4469ea08286beb5e626a96bc27470e14063e48c93131b6b2908430cb6ca197acd151f5f8ec91867153334524d5d32dd723de457865e7e595b5c91498bea520cc38c108cb1c6970047850c7dee29ad5a5adfbbbf31f449b3d631e55162e8c50d975bd0d385a1ef951f261b32ebe7c66b1a1530b4dda28c1d4fb3bc32b998a1f2855ebb205a5e63634bb68a171a8f51d159d14d2694952ef4bbaea1e4e6396d970d47f91b4f82a3d1b8d0790b5ac5c86b97d4a654b6d06c6c6e8d71b468396ace56b4d0cb29b7bb745b9451498da4b8b1140f8811c60740a07e711c2b58e34bc0834a165ad1c26619b33d152cb4e52df47f66b9ac65874447504e2251b94227d48416a48b2e771eb1a1344954acd0f89eefc78e41eb721d33894a153af7d2826867cd42c79d446d0c152ab41fe447359654325b4ba5bc3a31394b54a6d097683eedd1ddd2a48a442d73a08102117c098a191529b4dbb2a4da73907ac5aa246a765aa844a12d1de31d37831528b43a675966c165ce6b722ba93ca193f3951bc4fc09993b4e688452d3e1a16ba509ad7f9febcaa8c1cfe70a13dad82fce739bce41b6ab2ca153d1a9afc947b4ec5a51425ba2646ba9f8d33a65246a222208f1a19284be55489d23b33cb2735441422375ec1452ef7fd0f892a072845ec7ea99121754dd57152334fab25c1efd6496c7e7af14a1d75298d63842b66b9b44e885edf2511a26d364a83284de536a17a9456ecee85684d0ce86cc5992512e5b96952034db51c9134246355d88446d8c0a105a19c46541c7ea102e3a0a2a3f6844491512a31217b0cbc05906f0cc4d60a935697f6b81091811a422168125470a1a280508c01a29031e014841f9050d75828223011c4829c1e11e013803000200800c6c0007201f00404a4a122180003c872b910204c073b83a411139000006d08004a0fc198be7481919010140001470001c37ccd026f1a0abb5a8747d1c379632b427bc3dff66cba32e92e100608ca1cfac1bb54793def81b9a6088610d1c4b18da132deb5ea9239b3d22515b03c772e36fe48dbf81c0000396e4502737be8025397050a2d018194900185ee883afce9d2d7fd41d4312dd3334ce6e3cca080e4ad4885a1e470a5b0e93124c3129c961a3048c2ee00802c0e00296e4402149b13132920030b68025396c90a4f8c84802c0d0428e4fb9f1370c004616da4ce9db27d685e91f0c2cf42f5b1675bf9c3805c7c988d9001857e825d562ca4f422b212be3e04fc98d1393356c9c94f13fc65eca186058a1fd1c57a36f6aa5a2f555683fc36af414a29e9da442ab2be379d45916bbc33585d66484dcb032ea89098121855ee6a454a7761e8c28b4a2849a67bd331850683d68d32ee678e59afb13fa8e528a4b3a7bf4d825184ee83dce63891727839bdc844ef8c993b31ab3d28c097dbb206596436f0e9fcf25b473a23fbf1c33fadfa58436b6ff64a92909bd122926d385979e5a0b129a934d13af5f95762a8fd07e799beea82b23f43af87a6752faaa6f16a1552ecbc8902f4b3a0939115a2d96d0a2698daaa58e0fa18d177590101aede7a74346f92fcc29088d96279b49537b4f0b0161f79848f32a56e77e739dc5e82c307ed0ea4f9d34cba0328c6a81e1834e6a19d13a2615d9ff662fda74edd41e735d7c252251fb33dc8c105ef4fa4a85792bd58fc2905df42d7f16a3590ea51dafb3105df4d95f54fa5f87a76769482e5aadd3b4a40ce579b5741221b868b465f428326bf1516cb7684bb6187d7eaa5f6e1d5b3423376bffd231b769c1736ad17ee78eaf64c7efe6d56942082d3affd5f93bcbac59b46232e4cb496368a94ab2e825195208393b32b3cb8a45df63e27b56e9a628132c3a8dfe1b64c3854aa17a452f688ba67a43e68acef574ce598d193fcfade8a30b993b56e82c8b4acb8a5eb7ea345dd9ace9e62a9a0d25e693988dd95bcb640d55f41db5d49d95596827532adaf8d94cfa768648cfa610828a46778c8c51b6cacdcde613424ed178872993555a37b31885105334524bcbcacfed21d52b459f4fcdfba4929d2d5e4248d1c9c7e99b6e595dd522868ca2d5a2de5f4d17a4ee9c88a2e844cb3a4bdda3158a3e68d916ba59102228da1894870821425e920ff1139d7639e64931c24dcc86e889ce85cbe2472da46a7e87d8893ebc4c32eba3943e9de3447f5aebecb2ac235d4cc24df42dfe37557787a889e65373e8ccbe0c324b2266a2cf973b67c163d6979e43210413bd52ba263d44483d9b74894e6941ae88d559e55f36c4127d940f95adc346d7f32d21a412adbbb0eaadc4c3ffb94e174228d17f9eb91c56b618a7e4c8844ca24d623acb48e1e185fb9268de05f9820b1d5b5be8dc8544a259a95bbe56d959c33b2b8440a26db95f12fb265e265a218f307816fd5745378ee837ca876d49e61f8434a2198d9ba4d0d2d4b1c41e8430a295a3cb34e7f032b3700111b2085c77e6b0bffa3d1c5c88229a13af673fe308edfd862422b92d3a534b9d8720a2f1d7172e731ea3538a3ce0218768b56949312ae61043741a84123717a485e89472f945dd6a2a36ea09d1eb90ef628ce7ddd32893139435a264840ca2d54169cabf6c390a755941342e54cc88d19b5cd67a0d4423ca05d12eebd7ce4f25205affffac1d73b88a77e80f7d668f09253a2eac9b8e1f3a2d0b7f79a51b6e42847d68339a9a9059cc1e373fc887e605f9653edfae5fb9f6d0cb319fb532b9b9f3327a6853648be54ae67c41694e481efa9871543f690de2a1d17e931926c5cb399bc33bf441e918ce4477d693fa103bf49a39bca8d45f463d87d4a115dff372f2a815428746c5446ae1e5f124c2143287c684e789c6cc3a86ca246a2925c84c19217268e5889e9551e3978a9049481c1af12b8347a97154b82b040e8d77ce209f84e816f1b284bca1cd115a68d6b9f3851965baa18d7933b43c732ea40d7df6c6c80d7b1e5a9486b0a19d17de6263d2fe395c43a332a79462b6d3c5f9500b216ae837666cc1b7f40977244de0810fa0c00421484c43ab59d2feda3bccc6900a41432fb666f1b339f907d9869ca14f2252a94e2e7533f6344ec4101149e3040525082166e8359b16224de458082943e3e1da394dbcd872a42164685c778775315ad070791c38d01843ef7ab3a30bdd9c5576232347b2a0f8a7a41a42c4d06ff6fb08ddfdba3c64c3811012865e3e4f725e561ae61dd34108185a79e23a62655d3eefbfd08f0b72f5bee7cffa8222226d08f142a3de829716cf8e580e42bad06f26f92cdd64d456a5102eb4d14c698e5ce15d5a2c25640b9de6299121ba3cb77848d402215ae83dc669544acb92f6a025240b7dcca022dcf565f0fcc406167a9f9d7d93f19469872708b942bf9fd3e37dbe94d2a463566883dc7d2d0bf1dafa9f2af492fe78729430fd8d5d0a15fa98a4ebf391621ada4da12d313ae683ce98a2742934ca25e5a2f14aa7c69c178444a12f69a2b53c14dad88296b37916b1fa3f4fe8f59ae8865697b2abcd20c409cd6ad920a56bd4ae05214de8f4ba0ba1e5312d8cfed4cc086142dbfdba7fa374792eaf294b68b4b590fb26647849cb4ae8c524b57efc53ba202409ad472dab8596b4b859c94868b7633fcaab708c9023b4da7368066da2d58488042146e865ea152edec9fdef9022345a9658139b255fcc3184088d10d3f0a24bcafea4afb1206408cdeb9c938cfdfd4a731742e3fd7e22b2e4cacf5a4282d00a21a370c9c5380a4280d06accd1f7930ea6c5fc412108f981a2153914e28346cabb309df5c7dd2c5d2379bde8b4164d9856edf3a2dd329da3651d36bb9477d168d9a1cf5fe975d1c8d62e8f901da9b318ca45df316717b34bf2275c8b8bbe579b9a9411f275cfab3e0820b768fe5777092965ab7cc6169d3ed961fa596b7d524a44c453d4f2a80720b5e8bb77830ed25b8bd1315a34427a4ba132e2a5c818c82c7ab94fcb9a56fe51c7670520b26893965bee1c5bf34c9cb1685746c7184f653e552622028b5ec7f653e22f27e52d4ea22220af683ca8f857993fcb410b22515b273f82726220ae685bcea2e3de3a478d2741016945ab73922d5de716a49bec021056b4396b73159dd492122d966ae6a03f882a7af1272fb9f89d5c450b928a763f8fd69d592a8f31064145ab3d3cbf2464ffafa64c4e524800728ac654366ea81462da3b88297acf264c6750223da5685c906632c575bce008c8880208297a15f11a3ec88ca2cf4ae74f55528b32d9021145ebc9ff052de31b8084a2ef3d25cae7a567cf16285a1da5d6627468b195de7701f944ab275a6c996849ffbb487278192222243972388827fae05143feaad2faf7ec44a3bb0553327f57a48c4a4038d1caefb8427faece26a32226209be865c943fe8c78eb1017899a794a4a490e13bfb189c61a2848060c463a00a289ce4db830adbabd93f64032d19afc3cffb9a576932211111191c4018260a2dfd48ce1fa856fd172705ca293dd70d9fafc57356c89f6c3876999ce2ad1e6a8fb9b59a7de75414af449738ede38718c5ca8d43006f3601c0c868281400cc2301cd6bb400073120800202c1c8e064402a15054a61f14000452422a48422a2c3020160ac623a1382c10060261602010c3401443410c06623c48c464039f4c69829a3886742b11a5dc5ce8e2335e93f88f556a290615b07e2566e54f5ec9eddc6f0be29645b1ed82cf82ca70704fb020c104ac903840aac14b1cc43fadbcff3ded33fcfffbc38f7782313377b1f69c11cd8c300ed0ad986986e3d763d609583fb0c91b539685ba70f59a85e38261f95089f3cd9490bc930cf45fde6c17963b3bd6f991186b1feab83b8b64913c16f2e2c8371a7b381e7e4861a5d82c675920be1c140f95fff30e895cbf774dc517544153c37406a9991f94bcfa8beb0a16baa20b0c576829285adc592f259a1d3f0daa2368a068735cf0da8a8f9188fea0c1bfeb7e0abe873766d99971b869e0ac3efdc79e734dcac54cc32b4802a24cbec9adeb1510816055769479ac7a05686d8b64000763a5986e08aaed2cb7b7fc03ffed796038e8929cb0218bd77d23a03be15c4390e743c52b4fed45b128c9f793bb2136a163788ebb2d6a4778829dc102cbf00252aa3e103e2826902de0d581083578f993a38906461bb598de5558238a3f1c442558dcef3008b7966dc996730aec782c5b8d846d74bfd1ae98fed1f361cdf3e96a84b84648898f67a28d3211be72ea3e9d723e24f301280a2f8db78b60de1f4d863ebedd24b3b513989e6c30c5b66a59ff40324084b565de384aef5a5b30e95bcd1006e39b2f584b9d8f8b274cebc0333a7e0a067d8180814f28df581d5fcfad71814ca6f9c1736f936d4b9e37294ca2af72c69e7ca4f2244edbe72440fe9974544c699e003c9f0000f31b3b68c4679f42acbeba595f36418174b70bd077d8508a7034ef01ed7c3ebcaab138e9eb81d2a1b022f527a3681305193e759cc0379c2956946d56d1ca4be0306f5b83228234d3dbdd70d62e7cb9dadbc22516c79249490cb096ec017ed6875e71765d2af481b6dde3aed0d086dee0f3a623aac08829c1766af5e7f3fab815b28fbab098d297a22eadcf19c8260264cf25e6a6544691f0f32937ab3dbd29b766cb9f849e5249ae5f5cf72a1b9f72238546d7bc85d009fdc86b2c3fab0e5ad485381596ec04db80a83380a6cf6e382eead11f093aa0315a066cd89ecb0130cc8daeb14bddfdf9252ed7088aa59eb99af4c3d77d7778ce0e9e635d8fdb9743fecc98a4ddd28a99b036aa087e442c485eb391a8463c15aef75e0aea506f05ebcc4f617ad85b61769de823fe3f9dc65c5691ab5b321b5f431ea9d78a0d7f9166312bc81a0c6eadaa1c31e42b80c1a1c8337164c2f165a409b472ae278e7672496b3f4cd913c100d3e30b8ab3de3106c5f166879ddc4ae360b95d11317e1e73b8a7c880c3ca6c111778adaae8c18b17ee0c87e34a96111b267257b72b95e761028a1f15797ba1cbe6f38c817f7ca0bf8e8d3ed2975b839762d55d549705bdb54ff9f695728b98549953075449e7b65f5c66a7441ca0d9bc1ab5a005ecf70aa64e368340972ca156be1e95bf1d389971329dadb25ecd4fdfd3b19556d9f9367a257d9a591920e0917aa57e01c7d902fd5cfa7412bc93b924e74bdf191d83e419b4a585395578c551a685c678df282ed42c7156755b7cea3ebf486ce46df105757da0eada021211f3081ef26cf844d3f9e971217e6b452e794ed635ddd644327d1e718e500dabf7a280358ccf3061d99ab82dddbe5519501d98c3ac05cc1592826b158d864edbd3f4f753accb956ae46e583d1f5ba52f37f34c833147812e1ff106fa7cf206c8134347fa028501cb25713a2f3790f73f214e4f324c1a39bc5082b683369402215bbb2cdb5f516b207aeba211c38d7cdbd7ddee180af6be3002bdc3342bc2958880685c938660a36ae0c185b912bd83516c17e778b2f1b1bd0a00865be8f8c908d6cfcab9337c6511029d6a9cd294c506101d425ef63b65022d638e2606015d955aaadbcab202e4b75eb4a0a10542cb08a004f9c096e211fe2aa2592a1991826ec70c180f6c2ceea51bf7673888b6f49afa1c0f4c764567efb93996bd74f4d0dabfb1cc82672d9c3135ffd55551947691fceeafe889c8346ea040a6df112e130aa5858da0890495d42de5a070cfb4f1ebc68609aa30a1a383e62a92d0103ef51372b9fbae33133461b1efb72ef1959026ecf81d8e3fec517274f1523391084365eccd24d4928ca9f9e2411f00459a9e2f95c766aa4127fe7d8272ede5cda022efcfbd30d48f2b36cc16cde570feb6ed9020773585574e7ba0a01d369e626061ecafa916629972d84646691aefbdd8dd6643c73e225decd41d0c1a16766dbcd66163acadba48cc80f7632c5f99a2564410880f794e6c53915fecc290c5f46227f9e56fc715f12b3b79ade94c49fbdb35d2b53b72962b483d1f651b805df0c7e50b4bd870e54217361917aec66a948529b08159172e0f8e03ac5477a8113d8165d2624410007b6dedc1274f9e6133913e84e9c6f3f8a6da997046816172f064f959db56f0e66e30c45fa823c9b5d5c4b5a68970d59c4a6d3f253a58024d99300751dd267c0893c472bc06730cb9cd54971b1428f6f7f74dafdce04e83d4dc06e6fb938549c250cdcbb61e7388c443beea464b5db874e3d67581ad6a92a69d877c3a1fa4f35da4bb97d585b0ebdeb00d3f8c202d95968d0c85319811bde5421bd09ec2d4731d19b2635163190ef527ea00cad950fb126b2478c8b49199bb14e0b3f7136ac1b27a61023b05bea31570e80223437155c92804c3207312e4dc12bf42fe32d330de866a93144c4428e7b0b42b3de1ceb4d4be62c9e66645206930e23558ff7092707f8f29eb5ee7e209a14cdcf1bd27e553790c8936d6fbecf6fd7a64d7206aff581912a1734ab6ea8f53b5f30b2a5a419eee6753417c5511395e1fcd6378f428ca4629beb9553e3fac21d92d0030b9c96ae5aa65da07c3deb35c9ee1c94e2b50b563d4ad341c78317136dc617769e397520f14ae52f56a6d13a8bf45be2f75a66a790bc501dfbc50b618c50d33b89823c7bfe3a56d40a3f93082ea762d673255d7a026daeb914428145da2f4fa7490da3aa7ab4db4c8dccfd40999a9b704834aa27af22a4934c52440789b048549d581a044958f0329652dedfc1041159102462e6b4545370f82443386c8f66ddf36f0300233b21c368b42b557406583993296f7ce13b4221829f1d56cb0198ccd8423a1a15418be0591b805eb5b11cda015df2744609cf3c44d9f80bd42acd8b4e7176f0800588b4526bac0be629c72d955eed0a56f934bc839c280192e68b53eb07526a3a3776584e82c898c3514e830dc044266bf184704085ba2211036b5e571b69f9ecaa2a0608b67f2c66d030f8f0f16123e9e7f6c5d0036306b6a1ed64c8b9446e039b12a834c6ca927f66974c6fac02e9d6779024a636cc01c4861834fb10425d02ef4e5c081ecebcfe7b89a797cdc3ae60059a5c61d3cbb89b6f653f8a47baa92a99a0491a04978409a7a7d4a56477930eff60bbc8768fb8ddbc7274cfcc18271552bd3b4a412e048ac58cb749271eebdbb10dde4d54346f305a36026bba9991ae7371f8baaa05ce700a0d8aed159b05499871a48122a46284c17f1d0ddf0a120329a7ffd82e99390333e4c613cbbba305f6a8ee48cd56b777a2daacfcb5c79ed405e6c73c7e696760c04942bf65ee5dbebd8def43a8e00a4061055b8c5dd7158791fad1797297c371668aabb4270cc02d6a8f888d928e554d374aa5eff1685dcb325853fa3953e7899c038ea98ba5d49828946620e9483c909142bae8e2269c44084f16013fde094e1d4899951c6095036f42b450d607fdc7815cad156570025efa3b3de87ee7a908c77d288fc0a6c14ace72ba829ce050a3d46f95866d8a7b3fea09223d7e94a8356aac80365631d380a785026e2ec556ad92014a479dfb4ad1aeeaec29244b6eb30d3445b63526d486af2aab6aed7c36c8139224fca4342094801e438c44ab10d6d19e59e8dacdf8de0654a5bd5afa5b262dae965fb02668c84c1262b7c665460eeb0a7c9a344cfb28890ec5ce7d51e09b81129c17dabfe5ac7c665ffd2e9bd6fa32684c83cdde3e2bd27cf35b8176ad58227e93fde476cd4f247607b61ec0e307cd630c2d38e3bffea64c926478f711fe10cc745bb673a4b9f6fce39a5941632e864a67dc7604165556a34be39b5700417f935784351d8bf785c053199051d8b790983868eaa32bed2bd06f95ba15e414292566b6db47a12c0a7780bdd05d7b84349255d9f0c7b27935b7bde34d1512a2428c0235850850b2f66528817d26cd869fee02f6fa1244e486ae0268735932139aaad08b5b093b73f9e6b58bc6a21fcf250ec1709213d186883cd33db48d9b8dc7c525612d631f358bda7f3a5737a4a02a828c039d42ef6934b1ce09ce92a484b1582b8ed153c73a86437530edce1d534cbf1d8b588743e3bc05fb31b8ec8fa7e148d63005c8ed5a4ed792ffea19e2e58ffd911b4fe23483f38400324d87da2f505fbcf7c7f23a209b7f477b0383aa5173868cc921d57c7b0e45c0fd8c95fb027edf75ab757dd7aa130bc2eacf23b00d1260009544a7adbcf58b6f20161930380819e38e6912d30a7211c665aac83978bbc4ea7d751efbceec2291f81e8ea6f863bb06f1cda35fa2ea334f82a5692fc282c1a1607e8ae2731cb0b6c0fe6bcbac7b0d7b905f9849c6f864e0845b89414bcb03f50866be1d94e4f9ad2931c9942c2049e10cc41304b78debfea3ea264dc4d2adf04858441adda471f26b2e73e599f8fb3619f8795d28ed8d600fadc761cdc37b448c9b422525d84c2b9b3fa77708fe2a11e165bad45f0c7918ec4698b6c14a27b32956f72a689a32d76e021e008185b415631424bf188bdd0e5470c85becc6332c9ad39b99910c486c2cf73158440dbc722159f64a04a05127c1b5a3bcc1197dadc47be0de374ce653815b63e64cf5bbe4545103eb93112466a2bb20e31c99527b22b4fdb25c0d29bd9916a79466b295101cc7b066bf8442ea1b0337bc8a4188cc7cd71503f4fa7cb681592c9b90ca64e1710f905d32a01fd7470aafc254ffb9163e361fad39caef81e03908ba228f4f2d042dbfc7710711619e5de6f63a74ed0be8246421bcca5b2499865551bf356dfb6a73dd25647da8d7039167f85d835755d078aa438a7a2cb4d63c7650b31c192a234836f65d63d9a8d6fac9500923dc381efbee111c66e5cb39fbf469bbc97cff7e7e1e4d5effbf094284185355bc5cac1a9dfa682528b2a3965c7420900a0cfaf1f1c2707119f5c2a4d11a538e266b25f2d5d078776e9152bd14aa585fae5203b4129603fcd8509509c8cf7edcbc7017e928944df15c7de46088130c0d1e75f6dda02741e5be4853ba432196c74884658bf7a0db061b044288c6828c116482d7143e78c44119109fae84f80a2f113eb3f9976dcc7dd5ddcfe7b45a1bbaa4e83418900cd492baece00b1f29a13ae8d6169df5a83b3c8120fc6427553cf0ee055dd74a58cee3fd65032cacb628af757b5069f946c2e3b8be058c00eda3dd9f8bee00203d1b7cac4ad2e3d982b0fd7d1702504d85fdd1e14f79aa5346c04fb1d5c3a586361a558888926f1a3fd2cdbd686268663382f6191ed74e22b73dec5425e6fce917032b83d9c426b323fe61ea32d2e4fa46118839c800a3989443d3b46ce5e4a225d2ae294e0839ad045b997d05218b596f169e49a37890496e56418a80e1477174122bd4afbd56df7ff7739753472cf3395255c561c2ccd3fee1c5c6124176c1bb40251526a77779e0baf7b1edc614f31a2a2df682acd71257ae8c332f9cbb71b015c59bf0f8efcaa3e5311fc1bddf40531e645d6fc2a908edf1c3193d10c147d06c293d698a8331ad05c0bf33d90a7598dcfd44baa5aa8234dd736d73c67892cc4c71a7a82c191742a4216c205e48e64f9fa1cb72e39678e1bacadb8751d9b5aaa879381df08e97498fb7ed61e55d9708ecf77c2b80dc7ac0c9c0833780b9f0398901bf4152bbe06ce9b4863acd7970e49fecc8be8c5fa52d8cfa87f9d7ec794425cfee5896cc6fd3a72be8808909d653bac7249d7da8195894b7ae926736e096837ec95e319144a2d25eac5d7cb80f35e359faf505411e9cd9a3c700eb33ca7c80d4366e047c3a9eacca96f86a28aea443b4e88a9a2f3971b469fc433d49b75fb58584b5c8676dc621b496506a5072955071a5cd97b8e8192eff150528ad53c22878bcbda4ba15b83addf6389929c552c6fa5f28b68e53bbdb8de8f3b2e22c15d9a1abf684db8e17c06524efbc5b50690d9cdb7786d2af9fa1c5b8341d145b62cafa7b0a9c63be9f002099510d582ebb4065d88a44fcdfa35658513289091d6bdd1faadaebdfb0ce0f215636c9239840a818456763c793180468d475090b64b6d985834a55124e5378c87afb611674b9bf9d04260fe58a534ee87fcaea7a1a1120d262851565bfe5c7f75b94e1d7fa160eee8c2de801c2b2b58c8d082b71fda721f2b778171eb57c4ac56e439c06888d9c6b01e4eab67e54406955cbfb6bf7009400af526ea56fc50ce1cb058210c7359ab26c4351c4bdd1d3afcf194e758464f5874ee63dcc34b3a435dbed6034a6af0b0f653e4e6f8d222e0e574e894cec1d0c04b4a8251f116a69b793a5c1816681f140b1ba0923c2b17c7224780a25147b504097e8ad4e00b5a6c9200244454f2d9b7348272f9bfe234cfe95f0525db4e8717cde89f349b44d4db80d8ce0eb9491a2767c334e9d4f5e70842e55d7dbe45ec637308350cc9f79b4b969ea644e208dc999f6a18ec838e22c0013a97a85d02721b74889224e2d5a2876053eb5ef8cda1e9a5dff3e384ae63a8fda3309291eaf03dac7c02a99585c5a055764ee7a0d3c70729e5dff657f5f3e6072a7b28f9610c3d61b0859b4f93468ec9a786a11d8b3cd235ad763654b2ff97eebd0932a46cfd868eb16d25a5c0b5d7d54c4f8f2b8a969f81306f02fe1a0ec64e4990eca9c93921e123993c119211ba89ae8141e4a630f56be9ca468aaf89dbf4fbd9473eb13d66c468cfed75ca77b7ce7ca33b2832f666b2aace5bf2215ec2a4bb96b814e42cb8e2de141eda116730c7ebabc986e64826c96620c38ed55d976728058c3a4b5f63cce541ee34ce9e0fbf5876754d33ad0ba51a4b8c3b174a809deff86c8c78be547cff2a0be9474e90b50b2c397db4519c631acb87edaed9f4ec75d63d6c937ed0c04fb25c2ba9e100d02862f42c58ff2c92b83fb63583edbd216128a23141a554454956ea6b43271c777382c99cc0e4900f6687763af39866fd19eba9a4399608785b29aa46555673c9f4f04edd78a3f1a43c9501f185645211b7f5de086831af0c15eefd12c508ba4199e50c3acea181a9e45ce5a4f42043e39c2f671926010da9721e118e51a84221fcc1052f251ad3f0991bb6acac5744d0c66ce7061520908b0a30c72902305062a05210639a154bbcbd27ea0412fcb45afcc69828a2723194bd109466d6a6a36d2dfb181cd345c56dd8bda6ead431e72ac9d83227f96a41081fefe7f338d0d3318466cdb0d5cdaba01241e65a2367effc2541ff98104834423312b9b67570bbe80cbfea8d5aea3add245a38e1a599590fa2ef25b35539348e4de76c2a57b6ad92f8bba71ce11a67d16c3474f35fb087d619404b9af9fbf45b2d3342ab4b18358585739ea937cdff15e79bbec3f2394f28c4f2e62abfd4dbd4f3dd9914898b515f708681fde76401b91443adc28f742be55fa81127a987351c3b0b9fee761f9d5f321aaccc3904e875bc8cce4b9ec54baa009036db710b48921441932825182913bad2ab284b61cd08181768a4edcacbc116d138d7b82c3a8a827022af537313732ac6f4cc227837fca198992f5658d399c741dcd9bb7c683f66c41b7e8000e7270473b9d247567716fc4c72f7050cbb2e0f7d909d5619a8369086435545b46482598e4e131058be54478405201e6ed9aaaa1c2773617ed95839965c2d9a3d03459948cae8dacd0a337f6b4111f4d3798d2be97da084e9f264c8c7c481887b7685a5fbed7ed4276c8d4d6140a16459934dec3d6673b6bf791229c06a3368afb48f827d8bf5917dca66e55d6285860290d2d06f298220d456735a14f2f52b1f3219dc70427dbe4dc73a94debeef6f238d81107824867b110788beea1c361095668fc30855c03ebc09bd725f18dd5eac0e5de9a9a21ee59032af0d57b60f8ddaa98d5e63a248809b8b862702813f56519f12c8a1a22f6865dcdfeef5eaaf5d76984cf082ee1b2cfed9cfc4d259b460b6600a991a01f1db88f43b775fb10b4d2e32385fe81a0481ae0c85f4e736ff58731101f9c3e9749a9b5b83cc64799d7f98f56691e0be715b01ddc947abf05f09233c84681b13cc2a66a8c015467eb90f431923c1513d96a61123337cba3b8285e66ea5e341deb57fa60b256e8337c44f1e14d80829307b5cffc9ebab66822584dbf930d0f70c06d0b456df61055c8aef183550daba8b6fd505d9df60bee970f39d6fa036eb9fc7632a665e6d4f8556872d86f2fc1b8cd2d110c282459e3498e786660f86ad02a9d03a62ad1bd30c550f878f15dc7125ab6149a391eb247d5eab002e8c2c71b8bed33cbdf3cbca9b2fcc371e815a5163c01195dce28eb5b3fab2110c67599c9e7d72c9872f4d6b60b37694cd9d194dff330a1c0dd5a6d2635660ee993ff6345efcd5ab0d1d3c64b8c322d586542d846d0a4993c8d9f0d8a3492c4c8607297ba0fe85c46a0bf6043812cd1ddc921378513b583fcca5982a68b84aefb2eb11193f904f9383cf2f990503317f1cdce10178ba8620e41da0203fe188525dacf3a7cfcd2b08eafc88fa328339efd4ce07804f3872dc3d91d99f81cbd2cf15e9735299ea96ce4d7bc9892d34c230884d270c30762a255a8c99c92a4018f3cb1fe680546504271b755ab63514d77f16fdf2c48ab41ec26799d0ef5014f2aba4f3a52673925f5402f5cd1dd871e3869baa596d0946baa9bfd2f7816ae69c9a36c478dc33584fe7b17284375b932d35993710442466f477ebb485bf00cc7051e2e081298fda29d7e380040a39dbc2e083dcc82841ffc5dd9b7d1b7e44b1df68799016882eeb763cf291dde048ddbc25e6bcbea26d0a07def13454d6cdb1741f6557aec0bbe4803c285f4c03eefa64a84d63c5f6646d1e1273fb2d0068a3ccfad697eb23d7b02e5f876e8040de674995753b56619d462ebd595045451c745465aefd6eb28a9eebe6177a24c62dcbeec2709640634fab793069f59df3299aca8abc1e7a728a6518e09cfe6dd124ac1625af32b585e3d20a3250e9a80542d81034f43ad1aa15227173ff220667a557417a6408b2e3a74677baebccd0acf23088cd4ea83c02df6ba866ee42ebc9a7d020569644fb0d691b463a48e53300f36da9d01c2bb8b02efa369901f346bedb54e92971a9b25a71450a0aed698caf1c14cccb09d0762666b0b418cf0bf75ae4d904dcf928a9503329dde3a86067f9beac240a2c759a64bd650d769719e1dd05dbabaff57151fb28557ca31518e3f3da30744604f618735f9792120ca302757c68f2e0412e94b118e9f8c74dde4c2447a8741442e2358ecb781f27251c81425e25839b0bc195d09c9c15f1b639cd95e83e18a0742fe7e52ee38363487dfb25a1199308ac739fe320a9064726782e80c5c1945947d460ddad35a3030173a8fd16acd64ed0ebc4a553f99c3c2e4ebf9001605e7b13454cd3f3c4bba6732d48c7c6d2753854293274f5445491d0c6d516a65fa965922f2fde2ddfa97c3443ab53aec6331505d28cbe0fa20754fc60c280ce129f0eb859e0fe7d2082b9a310e0d881639f1a33b1ac299628ac36f3fe0093693352ac14802c52b254ac275e2313db96cf4453071c5293f69d494b43bdad1dae92078534e6f9f93596298d1d7eafc6ecb62ace74c4bf368a30c07f74488f07586456d50e601c77f82482d3c03931c369261134fba567563433b3c71c3737ee20a3b7d31def9d3c573e2ce1520b5feb753f39a888eac38e82f0efbf6e3f5e1ddd22a1050a068c3f35dd03cad8d2b8d86b031e1ea53748149ee355ef0bb64f4ba41249c9b0b003facadd83ad6fdba89e0326cf64083af807a533c5dbccb39070826b74da550252130f9c1ed811bfdf3ae290b9404b733fa21e4cc23f2f0644b95e18632679fc83a458c5181063a6ba62c6e1ffd522ce08706a009421252a2009c34940ea246069cc5e2b407c42b27c1258a1c755172aff1846c3fed5768f8fcd8b526e8a7f92f4e9d05dc2036b400b389d367ca9036cc07f73c69c47b69eea984af28e11e52484617eefba6f074788cb5d171ca950ad0eff6e9f01366d8feb5275408ddb6030556c8db3dc6bae953ddb186311123a31750527e8843f5982d9878e97a21bad484db62e36b51f57afa9264a0b8a489ca067263a1d66190458e4e60658952b1b55f25a0045511b3b0821e7e748bd80abc96b55b9ff9930d0c62e24b7446d57a887a4e479552db476de8c5196911a388e40eb7038f338847930c453a865cb3889f009ddf23443d57563d8bb4aee6c1db11756a154a1b233ab8ed69c8e597cf093ecd48e933e86b89ad84c48c4c1a8c35910f93418d141bec026ac878b3d6939a62050748611bc10e6c8552b27ae16f36f46a67fb0d19c676f11ac28da210eed135b6bb7c62909ff852479bb44bb34321651782950bdba0c758f826ad680cc0af308a0ee517d6b25aa2a623cc926c921362601dc13d0ce6c21a746c33a5b85f5207a3ecb3d52c865f08013a47024de3d8a5ae6c8cc12f5d196635cc38714a4cad2a837b6644fa5a8c6267a6508988dd38220f8bf0dcb6147c984819e49420a194fdbcca406a56a79423e7d079fee3d4dcca90aaa910115ef2f429b633773c6ffc4bd2011c00400cca2e09f0e9c1ebab29f1e54555ceef36a2c1a7f6ae3d34183da08c2e42163719c5ed669bedd922b9e11a078a1b996b0bc53bc1711091329b38bf50a169970bc7981bfa1aab346881ddb7ad70607fc7dbcd3235ca99a69f3ba2a435f4e732a6117943d5e25a01f91e6b9eb51b32b85a3d9f1de264b90e94e01aedba996e7af52076a584c7a050302ea94af8e7691e0075b00eb51e808fef554e046d0aa205b0f86b577b4b3136fce526bd6e977194bb61c241941494dba55a0abf9c55cbeac889e49eadcb0c2405cd34b8c08d711e49539641ea7bbd8e42a20d3c9d28f48e848f9c478533e1ac71ad9a85fd025a05ceb1499d680651c228259e2bed134da1295a92d8cdecc3b77485ca86e49fb03e344ff70ca0631d9e7443891089462514590a1497eba6e4f1f498d946b959e41ef792a532223d86bfd8eb09a981bf3f906959bf37c4d429e5e00a0396be66b532e90d4cc7208d684c54183dd5037d01310bca4ded207d237c6c12b374648b2c25abb4b31a75801616b97fae8848cddbe38b27479716abf03f932090ced973017340f431ae37953d9e302320995b6a6bb6e1bc55bf6f1fe9df93674b224688c0f4c63f840877ca699d45b026070babd2806ea4ee4db179511f6fca964ca02ae31741c6ebfb2680ce4fe6ac1d434e5c11a29dcd6010e17ad6f523ea7b2931a2ecbf5bcf3316ea38d1453a2b34c55b0c29dcb1043ccbb4444924aa4b2252224ee719a5fb7b8837fc2f54e897ddfafba0700c09a022b6b0e296c641c7ef16474ad793322e003141cec5d961ef24eac8d02c080bbd18e2f1e2ef90117a259d444a3e13100b77ff478574c3ca55e873080b5bb180f8dbce337a4468ff032a1fa7ae740065b58f1015802a1b632e4686b414d0473a669e4ce030b06ef3736582725ae15d83cf768e12dc0550494ec761523f14d5418272a32e1b2b31cd852ac289a217a492b8ad463b994ac5dcfcf02c06c8e7082e6744d2f4cd6356eeb227b814f6930ca4b4c44e6a0e17974a5cd7162e6c23b4bd83c9194cfccf5e206d7e374e8e592848a70ef2f49e156f83b75f20d297e34818a6a450bf4b64333bb8b9a5d3b8223113c8a4396666fa1fd1cc2b88e7bbd28f8b412c4413249fd264e793152aabac48bb16c8170d601789066d62dd93b1b77f7a98d11263d4c716f50618c4acad10db14a687fbeff004ad386449285a1bf2e96e52944349740977387e0fd194235da6549a944618db99c8366a0504264f8cd7667f0b8451e0ce5a765ef99a460c84685c9d5f9ef667731b5566e186f6dfa9898fb07043d4c3a64b81dcee50db2140d77bcedb0578058e91bab05d7966c6e72366badaaa4ea4040ca16945ecfca9ac0dab57fde546db179050483dc246641fe3209e2b7d76a42bb16d0edabfd1242b63b0fc05613acabd8dcf98c340f20c2a2f074d17d5bd511c67ccb11256cc01c644ba2a6a4511389de57babefc5561010165832b8665c9165fde836f744a0ae2f93ae41573016c592faacd834d53933fc3cc1fb6f7f2f0fb216ff61d1e4899b80918176c82e920db4902855366beb596de1d8bce3d22744407c7a72bad5de7c97a041e7e7c3b16b31dc158901afa8dae260fb99a2adf372e6ba9ea12b8b35c85ed4aab15b0cdd2b7ee2261175a59ff48e002764a2dca2a1466054a3f272cfcec9abf1be5c4a5c67d2fd68cf80e3edf5ca6934b6708f0b45f6aba47d34bdbbb317b11b759e38c5a3c01b68d5503998b27d5b82cbc4f5138f558c202baaf76003c5f2a9081a4420c2d5f8ef38548f62336c48a9b931557746d295ea6778cc9851a0a6416a216446bc02eda11d0455459d85038f799d01b64f8e0be2b8c773dbe68bdefc2abc6de2b7681ec07a5c4b1ac9157ca334f8f42135ebcb90859adf3d12fb207fbb2e02ae2f6218f82c821300c9d539c6a71da17abd7696228754c8bd579e15e162a2eb45179e41acfb4ec5eb507c757ff05717182ba17d0fdd62901d7c8079f80f19abd605a8d47d2a0b4822003dec2e4", + "patch": { + "balances": { + "balances": [] + }, + "collatorSelection": { + "candidacyBond": 533333328, + "desiredCandidates": 0, + "invulnerables": [ + "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", + "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT" + ] + }, + "parachainInfo": { + "parachainId": 1005 + }, + "polkadotXcm": { + "safeXcmVersion": 3 + }, + "session": { + "keys": [ + [ + "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", + "HRn3a4qLmv1ejBHvEbnjaiEWjt154iFi2Wde7bXKGUwGvtL", + { + "aura": "E8E67m6hzdSKnmdHpkzuEd8JtWR9bSBUq9vwiRufHzZ95er" + } + ], + [ + "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", + "Cx9Uu2sxp3Xt1QBUbGQo7j3imTvjWJrqPF1PApDoy6UVkWP", + { + "aura": "CgjLFDEdzCUE1jk9UnYcu1CyVenT1H6YVcrh9QPZLGxKLhm" + } + ], + [ + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + { + "aura": "HbRj7HfC344iugeEtJAHPvhXHH5NYQ2vWLdAyRZutzobqpL" + } + ], + [ + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + { + "aura": "FJDBwbp7Zb6XhzPuY5vXNDumKZ7tkrvDArLpZ86x6hS6TXi" + } + ], + [ + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + { + "aura": "CofLuVWVddqHR87Bp8p2G5A3kW92tF4U7rWudXcyEqtxz5L" + } + ], + [ + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + { + "aura": "CiZGfpBeJ3FgAtksyBAwxyqRaua32e7BkyFM6NXTNk3JYcr" + } + ], + [ + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + { + "aura": "FRd2aGXXgFY3f6bE4UeT3Ty87tJmra6GRWbRkahEq5rHVGt" + } + ], + [ + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + { + "aura": "HAKDDNB1tENBDWZwLkV8VoDJufPQu63KWBF7UFmM6JYGAgi" + } + ] + ] + } + } + } + } +} diff --git a/cumulus/parachains/chain-specs/coretime-westend.json b/cumulus/parachains/chain-specs/coretime-westend.json index c79fd582348b0223cd4c1de71b94075751cfdeb2..377870f9e2b3dd8f9303936cc54668a8ed830bf4 100644 --- a/cumulus/parachains/chain-specs/coretime-westend.json +++ b/cumulus/parachains/chain-specs/coretime-westend.json @@ -4,7 +4,10 @@ "chainType": "Live", "bootNodes": [ "/dns/westend-coretime-collator-node-0.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWP93Dzk8T7GWxyWw9jhLcz8Pksokk3R9vL2eEH337bNkT", - "/dns/westend-coretime-collator-node-1.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWMh2imeAzsZKGQgm2cv6Uoep3GBYtwGfujt1bs5YfVzkH" + "/dns/westend-coretime-collator-node-1.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWMh2imeAzsZKGQgm2cv6Uoep3GBYtwGfujt1bs5YfVzkH", + "/dns/boot.metaspan.io/tcp/33019/p2p/12D3KooWCa1uNnEZqiqJY9jkKNQxwSLGPeZ5MjWHhjQMGwga9JMM", + "/dns/boot-node.helikon.io/tcp/9420/p2p/12D3KooWFBPartM873MNm1AmVK3etUz34cAE9A9rwPztPno2epQ3", + "/dns/boot-node.helikon.io/tcp/9422/wss/p2p/12D3KooWFBPartM873MNm1AmVK3etUz34cAE9A9rwPztPno2epQ3" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/people-kusama.json b/cumulus/parachains/chain-specs/people-kusama.json new file mode 100644 index 0000000000000000000000000000000000000000..f93d622a37b98168671ddb4bb04e5af962c12f3a --- /dev/null +++ b/cumulus/parachains/chain-specs/people-kusama.json @@ -0,0 +1,119 @@ +{ + "name": "Kusama People", + "id": "people-kusama", + "chainType": "Live", + "bootNodes": [ + "/dns/kusama-people-connect-0.kusama.io/tcp/30334/p2p/12D3KooWQaqG5TNmDfRWrtH7tMsN7YeqwVkSfoZT4GkemSzezNi1", + "/dns/kusama-people-connect-1.kusama.io/tcp/30334/p2p/12D3KooWKhYoQH9LdSyvY3SVZY9gFf6ZV1bFh6317TRehUP3r5fm", + "/dns/kusama-people-connect-0.kusama.io/tcp/443/wss/p2p/12D3KooWQaqG5TNmDfRWrtH7tMsN7YeqwVkSfoZT4GkemSzezNi1", + "/dns/kusama-people-connect-1.kusama.io/tcp/443/wss/p2p/12D3KooWKhYoQH9LdSyvY3SVZY9gFf6ZV1bFh6317TRehUP3r5fm" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 2, + "tokenDecimals": 12, + "tokenSymbol": "KSM" + }, + "relay_chain": "kusama", + "para_id": 1004, + "codeSubstitutes": {}, + "genesis": { + "runtimeGenesis": { + "code": "0x52bc537646db8e0528b52ffd005874bf04ce0e06b71250106878940e68e5085853077037f7e0ac00e39f3ce5d32e68cd9920c41d6c0ef827f2d41f397370f8585ab3819e905b19509709f6cc0c0dc5faff31c72dca4555fb9fa2d2f837217befbde59652ca94522e14a311af113edc879f1e0f12254a64c3b592d338129b6bbebe8f07891a4ac439e9e448e470ccd7e7e341025222a851a2f71c5222e896e6441a257a740976a2e7394e7224682891c9e43628118d976adc8613d9a044a6ce4d4e64c3332ff90d5fe71e0f121725babcdb311325d2e196bb8eb7e526276a375122291d52a2cba113991c7324a29f28518d1ace51226c52a2e9359813d538468934cd8930b7f119083da34452fa4589344a84e39743cda113650e29919c7122e93c9c3a11744a896ad4701a4a44e396e53994a8468ed358344e9dc8724a8972a696e344b3a34ba06628d18cd3d0b8cd0c0d8d0ef7ebf21c9cebc2ae594363b241d2a0d5f3b2a13d8c46966a64d6cf442af5abb1a0062f8b0693990d938d575322c96b4e0d83160d29833666662259fdfa2ad5481a4dd298b4a7d303625daac11c45a2978ece8c09d3260f1e4ed4ce83c7b4614387d3009fd390f5e8e14497f7e851635925d7e13cb2cb79481a6870a21aa741878657a281aec37b9848dec3514e64c3513c783811e63c280f4739d1943a3a588deb701a248dd3d03a3a3a3d9cc8f21e94484787a4398a521c27ca1c67ba0ee791e3386e03e53c9cc8e43c68a06187534a44833b751e4e74b93b11d4d1f9cc4c9b5c87ebe0e0b8e7e4b88de3b8e33811c9719eebf88e13957c8783dc38ca894a8ee2ce1de53b4e64c3dd899ef3a0e1e64687dff0f01b27aaf11b7622cc6f9cdad8b8e750221c4a84e3ee36396ee34499dbb01349a74e831341a78177e83891e53a9468878eeba0443b3c27c7697022cd7538d1f41d4ad4a3877794c88612d9f8cc8cdf50a2d3c96d28d18dcfccb88d13d1b80d253ad9f8c98932dab33bec9da33ce31c87129d28d1c9713ccb5c87135dae831271ee3a9c08a343ec0e3be72827ba6811bbc38ea2443de812cc03734a89aecb6b50a21a8e51c79c68d21f304a74617e43892ecfa6674e54431bb03bec374e444315b03bec3450221d1adf41897450221d4e3b4ae4385c0725da2c4821c317655e0006144cf1a94982124f8451862eb4008924f82051e33d6f676dd0cd41f7edace3a0fe76d64d74ee0e7b0e4e8ddf50221b1b7ea244aa2058a1852e5e6a70033082e053a372c1114e38c1164d208397287c6a9ca8861295287783ceb7b36e83eedbf1412bead749f4e4441a156277d84d9488862ec13e48685e8312957c862e11c4070992739448d3bc44895434b892c6151a9039630b5ef021ed13c658318313b880cc1664f021391189125934c8464f6f675da3fb766ca035875f873487a64976873da344185d02e58304f48b12ede0832cb850c5194a1883039f4997701f24746821061e10c1094994410b3e48b45b4e645122497d77d88922e5dece3aa4fb766aa035c8af3f8ada1df675d52bead10040420a24c6d8e1faf97bfede43428a7fefbdf724db1d6eb580e189f74ea13a5521d7a9769d2985ccb76b9d7adfecdfd3bb3d0811d9ef162184617db7eef71ebf4e6b54fb0f8ebbdb731eb3cf678a63841d3abfcadf8fb98b6c3fe366eed5b64266a72aff731c382290ceac35eee06b2be4098f7921eba3d428654fe3eefd16456a613e8a465a214fd8e8850ef0ecedbb1d8146bc15e18c9e5d337af6f692edcf4ed5f6e7dbce5e5ff63a1f5cfb3bd21ef4e86cd47a02b2f8bb05054ebc2927db1d0e7a904ed59943a72ae79d8a8e43a7e0c71250f9e8399dead4fbaa7d0df2d1b779daa76a5f4f1f9deb547b7453f4e85aa7d8a3af4ea441bbfadda162662919fbead420ff3ce36e3f638d7f60a318ba6f47a05b7436ad43efd92f37752a9399c4305a31bf1c935aa7a43fe73a85f9f34c76fc19d66da3b6519af346a41f364aa355f3cb65b7af7543ef31cf48b2dbcfba7dac439d9e7df747cd7976a6d5f2e8cfb3c76c75fb57370fc03ebba1f8cca66fcf366b6d3722d299d6f9ecdbbd6de50c7bd5fe7906b785335aa3741af5dc726f94057fbda77bde76dba876d8557e212e53a64c99afaa5f975d1d7abfce7436aa9db79fa591728d6aef69cde49d5a7f8eead47e4ea7fc9ffb5821ef9f579d7fbe3a0fe32845b63a956bafb377dad7b3e5c105e1762545caef6a0452be96be5d00bfab23ba7c6f3f4038f6f6ed94e5edb053cfdb67a7f6dbb3de7e2cbadcf3d7ed5b1d7fc6dbf3ec75432cf4031b05bd08f7cf7953c06ea3aaf61c69557d9ccfea2afc0a7de8bdf4dd7ea2f77496ed4644d20a5ffa74ababfe96bfaed65a9f1043d422def26d94e53d6f764244ffdcea6ace43cf5893ddfeebf6773b023f7642ef9fc36e1bc5bedbcfa3b051ec4d83b8df1d2a8b5f12d9768a977f3d2b6da7f6d7b753ed75fe3accb85bae3dcb5a63eef9cd4c150efa73f6de7e982ed7feba6dd4f3acb51b2250f0627fecef06e936aaa777fb818d7a3dcd1b0faa6fdfed47c5cc6164ab53fd9f678be2b2e5c16da32af7c3cedb90228c8c8c8c78f6acb5ed14fb3aec54fbfa6eb351cf7b9a3bad51cf7f70d5f4cfdba1d7f9cf3353a7b651ebcf4f9de27f9ed329f6e7196ba74eed3fdf0d7651743c14d5fcf6f94d718cb4436f8774889f296cd4fa6e45d89bd676f69eeee9d579cdcc854930c5eeea88d5b3e7b00efb9f358063e7df1ec0fa6ed9f2c055eddbb54eed962060f1ed5ca776458229beddd4a9f5f653a7d8db735807fef6d5691ae4bf3b54cc06c87687db951154bece5fe73ab55b8280c5afcf4e2d1746a8f2eb5aa7f8d7b779d6a79a7e7d759606f9ef0e15f301b2b581abdcb3a33a55b567673f75aaa29e9ddd47a7f8d9b94eedea882ccf6eea543ffb360ffbd49c67d73ab5cebe3a4c8382fcee50313f20db1edcfa5a1c19e6c11963601c18b82f7024e098e096e0a6704a704970487052b811704770467046a532a53394d22899a1548612194a644a63289d510243c90ba52f94a2501ae3e1e0dde0d9e0617957a6131305f304138ae902ab05160b660b341f6859683fd0b2683a201d411a02090cc90b2433485a20298124464906a518949a2895a024456906a511948c2095219d818406c90ca432946a50a2c1b44296850c0bd38ca9452626fb423626eb42c6856c4b7684cd0c5b1936326c64b6316c62d8c2b08161fbc2e6858d0b9b199b98cd0adb14b6305b1436286c60b62f1b13b631b6246c5db630363036246c47d8bcd8b8d8b6d8569b10b6206c40d87eb061b159b1ed60d3c1966512a1f4040d8b39867406090c243290c890c6401203290ca5284a30289da074b4254132a2a4020d08590c4a52c8aec0455192524a41c9a8f404298d9213251464514c25e610b2176429d0a4c8a46830b219f01137c12698623805bc02a020802065a1870420c087c8909f1e03e8b080220a4891be30000104a004859911cc1c3163c48c1157863b03970687066706ae0c1c196e0c1c1938317061e0cee0b6c069818302f7857b02e7851b8313833302f705c785d3c21581db82d3825b7130e05e4001ae89d29852174a6694b2509ac207a204712d201161bb62a3629bb28d603b82a7601cf00dd8068c85af700d98062c05cf8065c031602b1c05c3805fc050b00bb805cc02aeb2e4c540ab42cb41e98b768312985218ed4883426322db426646a685ac093764342889c9ac6450642ec85a90b120ab92ad2053016606ac0c9818b82e382e382f38227047e0b660676060c0be80790133834b02a7048e0cae091c13b02c6058c0c46057c0ac805501a30216052c0cb6050c0a1818ec0ba6052c0c5c181c1238319c1338305c16b82b7056e0aac095c151819b0227052e0cc6046c0998185812b02e18181812b02fb02d1817ee09ce09cc084c84e702cc0b0e0b9814302e60637066604ac08e803d017302d604cc0b460636068c0c468627059606860656063b4366941d9119c145815b023605ac0bd908b032b03199940c897e42964436a58485d2164a5ac0bac0b8c0b46045c0b6287101d3025b6144c0868009e1f100cb020b020604ec0718167d04cc07580f301e60576056603bc0748065c1aac0728051814d81e1a0a180dda0bdc0b0340db02bbd05ab0146034c0a6c06980cb0186056b0283018602fc05c804181b500630156055b01a6022c055d057b02730243017602ec086b02330156028c0a46028c096c096c4a7fc192288181218149c146c03bc08ee0a0c08cae32dc09ae335c695c685c66b8ca7091e122d32fb8c67089e10ac375c60586eb0b9717ae3157172e2e5c5bb8ccb8b47065e1c2c225e6bac26585ab0a57191715ae295c52b8c25c51b8a07081b99e7039e16ac2e5e522e362c2b5846b8c4b0997185712ae2e6fca15c605c68584eb8beb0897112e2f2e2ed796ab8b8b8b4bcb558487c4b5c5a5c5b5ba88700de112c295c515840b08d70f2e2c2e1f5c3db878705d715971ede0d2c195e5aae2cac145c535c58583eb06970d2e2cd795ab060dc545834b8a6b06970c1e0bae185c56ae282e18b40bae175c505c2eb85a70b1e0aa72ade05971a9e04ac1f5c4e5c48582a7c47574357199e02ac145e522c1b5c435a5b35c4a3010ae242e242e29d708ae232e233a8c56c23c432fa19930d398684c334c32330cf30ca6627a616ea114c6c4c28c9479349b98269825985426092613afca5c624ee1274a5778573c1ab4142c8085f1a0782db8be702a28598143019782c7c45be219f18cba4c9fa1d36834da0c5d86264393e931b4183a0c7d4683a1bfd05ee831dd85e6426fa1cd682d74161a0b2da6afd056e82a74194d859e4283692f4d4627a1c76831ba0b6683d6d25c349727a573d054f4148d83be01e782b64163e92b5d839601a64457d131682b1d45c3a05bd02ce815644af0105808ef08ce827fc041602cd807dc03ce01f380ad601d40f100abe089100632f00357820948c0480d910a19ff7276e5ea0704458906900ca10448082448327e41340142a264484910489060cb404c34a064a809111b40320404d09325413459820489cd8f1f9a16485a1670342c2c07966ca08913a02125404f8080b2040a501320223a9a18209038d94093224c983841c01010404c983841800dda1582685660c24409104c98284140158418e240132026652c10d006903819423224040796007960479bc24261b244c910501048808036d0438bc23ad9409325483ef0048808a10f2869806b505820209a38698244099225433c10104d9c3060a809114e8000e27168608270020450103ab4272c940f0005218102e50340469a385902050a10043acd09eb812543fc13a0a0274e2670a4d3bc2cd09092209630511205091011404438c087208038c001253ed8a091b150828000120208252c94a126404f808468b2c435319a2cd9008ed665815802a5c9922743450021f9009321865082e40950104c9610e113048413263e395a180be546f3629520c9d1b66c079028195212849221a01e66342e40b084899225434b9a2cb1a169b141403861a2012440434400015404500d6db5404f9c2040d388b04d9c0c41049220982c214203489a280102c992217ea809500738000481208082208209104d963489809227447c0f6d080b0568c9d092274e84182242098d26846de264c990922744048164c809132848960cf14a9e10f136bad904abcb162818e15795edcac8e859f56c642c2396c143b00567666666dc216fce63e67d3d67c62b5fef3ee65e69bdb5aec75956a6bdf8369a2e66194d6bed63b9cbcd2b795787ec850fbedd071f678fad66f9e02e7cf10017c7ccfc9e65c1f776a5f560c3edbdded32c8bf9ada5bdbdf6f58bfbb46cb9d7b29697dfdc7e72d9e265ed69d6a5599ad597d4acedebf5f526ef3e299f25e59cb3b77b3237e3e00c6049b9da6559ef65f0b1f5981f3febbaacf7de7b6c6d05d876574ad92bd7daf798e7e465f97a9b9f0d66b3186318ef62d86218b6d862bb8b6118864938574a29e74ec96bd5d448b9434dcdf294bbbb532e64b8524e3833b9732543b82b57c296dd4db27877b775e0ad79371273f74c7c2b44beed8ebb52f64a295b6ea97b7bbbb77ba55c967257cade96cdfb5e33491240f6f2ebe57d9b83e47d8f59cae6e6b74fca96bb7399e7cec9bbcb524ade65c97277b38ce53e9ad5c1fbb21b6f27cc78f6f15ecc248b997b9b9bf7edaebce65a37fb52ccf0c696765f9b7679003870b65b0ede1c33cd52000190cddccbfc76776f30377397b6be817737e3e5c9cb162fefe320cc8ffb35d7db4078e5f6b398a5b5bb26de9d6b69bbcc9c6d2f899744da98b4bdbbf5e47d00789377b9e76eeff20f9e73ce655e669ebb4d9252ca4dc285737b77e75a1bbbb767b7157997b97b59f27277eff2dcdede5d5edeed65def97a6577afd6d27a5a66bd8bb3628cccd6aee47749292533c3d7d6aed59a7ccbaffbedbe65962ca5c5524acb87c599b44142c852c21bee9692e505f9a6861de66df91ef37bf17a39cb2be54a282db88f5b6eece6c870657835b63ff0c44907803a206fec0d1c70c20409079a2ce100079c30b129394d114041345982a4c912254200b1810d38a10260c264495010548f1e281e281b3e6cf4a0a1069d20a520982c11020824434c8850b201a020769e281982d2a304c5c6e6260808251a60c2c4c9931a7628017a7273020a4232540450931c401cb0a9016508ca92228072e210104aa03451f26408c9d0920e74c009cac60660c906809e0c41699e28016202044e29882640430ca104091007943c71320485ee0d434a9e003501e2000ddd0660c88993274882007a0214c41327404b9e0cd55004901039341b182202c95093254f8638ed0d1d5832d4848827488080b2a40334004fa0e0ec0d1fd8c0922740519010e086010c20004100edc036004100418102f464880e380102c913a0284e80007a82440994208000427243506a00011802082028489c0c0df1812740f0e4c8210037380e29244538f1c0108e1aa9010400490080829430d100120e345922041425427803013dd9404e9426406fee0d489a385902e5095014241d40f2c4c99012209c3061a204c950114039a234017a3d3422f4aa54aa2cc9aa5458925549956a1615a9649222de242abe8a8a8aac22d5ae4aa52a7a49b68b601215171575d14b52c4aaa2a29744c545aa4ea2e2a24eb2aaa222952a2659d595648b5445aa57c42a4e52a42a52a954f12529e2a2a24eb245aa4eb2459c44c5459c648b8a8a8a547126d9a2a24ea2e24db245452a15545949545ca4924954ac62554ca26295aa93ec2651b14a0593ac8a93ac4aa57a4956a5ea243d0f0abcbbdc01284a36657c1563bc007eb75461e5b3cde057a6156e57b95711156dbb5545f0ec16fdf59ec7ddfbd7050911bde5fbdb55aef2ed702bf21e3a5bb4f2c30afff2f5ca74a9dc7eac1fcb77db19afd24b5e339fbecdc3b9b5636dae0df55b8e3969a70ebdb73c9268dd2f9b26698dde3ebb992a5c462b167d7a6f44aa2ae851c9de171dea7f3ed927adfbe5a1b74583d8a547e7ad08bba45aa3f6615352472ba818f3ddef162abef8d514584a24af9cf46a9abe6991366cdfcdf22c6b8d37a60bbb88b3cb39aab8eaffa0f6b67deef689b820cbe357ffcc3b7561251c72e84ab4aa3ef3cb2fdf2de39f8bfed02876f8d68b24d9e5984e39592f8c45fb3032130c24d26d940838e9d594d3a9cb9f1371fcaed3290bcbfc791092bfca5f990906923195af43fdd8162ab2f8ea3b381557fc731d1fbb6194a730106875959ff443a3e09148ea60a338becfbc0e3ddfba6d5474ad838d8ab442bf99690137d49fd18a495af9a547b75016ad431d295d9db7f145832d3fd0327b87eb54f4e754ca18e383fc6e99420a2a9f2d0f8eb3f82d533cf1febbe506677cb6d96ad6768414bbca5fa3d7985d9d3fa5774bd77c3b35e397c34e95fca21777f926a1c70b6e447e6026e0f6d3a7463d6a6ad4abd1e57835fdf3996e1b359de3e12d2f3d92c76eebea7ee1a367d7baca547eb40cfaf31f3a05bd9da7b00efbededd0398bcfbab9fd808043b1d7a94d5a550fdf72eeeaa4f13af4be1d7a95d0af8ea6dbde617fdb91ec1b46b7ba2abbba5f1e52668281b0f7f40f9dda87ce4cb00efbd0e5f603e9724ce5b98e694440e5d32e82e7483caac4017cda9b1635ebc8b869555526d83f87dedb91e88f56e8915e910e3722fb57a6b88fa445980f15cfdf66e47a486b037ef7c7f5cd5ad3aafade47aa11f8d2f20a5956bdee2732d8031b3ddc8e702fe983ef41fa1e3b91ed36c643d7b43c8400f4cb9d90e22f083cf1d03727ae78e8d32b0ebf5e77f82df9e6bb7eead4f4f51cd7e994e6eba84e5dbe1e24874e5d1d8cf1450bc3ba7d6b4ed7f64bd37b1ac748e6127a96917cb71eb20c23656e791635df8f1a1d6279f488b9d5f147e99156fe4cd3aeed08748d0649afd0a1a8fef2b91d81a27acc832e879ed17a3946a3ecf652bdec36d73a158e91e89b47df1ca355f558a99b8e056d0ea3973a2952a448297912bb3730fb24b17b437d7fd1ead3f38488bed4adcf543d147a3f332fe0367f9b11e897bfadc8f48bd6cd27c5b93c73e9bd15d928ce458d686eb9e69643cfb42c48eba1358d3fd27af9c41c27fafef4abc3897488f4e993ee637e3d16af20ab5e73faf34885b84cf47704faa4d5f2cb31e68f1d7f11abb0ce9e3842e3b1cb19ce076ee16f516a94367e6d85ec2ea9b723d0c8e8d7797dfde7c9dcaefb0ad7e361effe900e9d3bcbdbdf3684dda2d5278e118bb263cf31db76ee60a35ab6cbed08f6ebd80aa90cb723d9fe685f8aed8f66a397ddee8f6e23bec7436a6a2db2e7afab00c70e8170757e734c58e9f84d15e0d8b79f3874156479e96f6a3f2499f20c1bf0430ab03cf8e5a13a85233d7a033a55757ee854452511a253f5b45c78e814efea09311fb1e7727ddd2f657cfcba66f0449f0aff71fd91a53fe9bbec43f2975fa753425ce6c9fa907ce9bc1941f2edb27db9e9ae0f7edb0f7bc65d90dc7870de86bce76c85e0a51389400445b3e8a56f57150fed4193d6e7eb550e91fe8cb43f2a02ee9e67dc6de4394b6a844f9db23c7ace36e1a0731abf5b82800567da951365bcece2739d5ae9d1b3de7848238d339ce1772bb33ed665c7657e37a3f5d146463c7bbf31d7964c88bf358fde1d14fe8b06b15fbe822cde86df2d529ce16b7f74ee9ef0fe883e345f68cb7ce6bb0dd11cc332a618bfd655e9d1af6e3d5b0840d73cdb0b70bb5ac117fffcbabaa8f56e5d2f7fde9b11239a5f9e418d372256e657a739dc8ccc21d399eefe60ef69adab4d797fb05f9e75b59f7dfd8a325fe89dc1e8d7adae0eb14a726321db21dac57c24e3a19113aeabf85d59b1c17714bf2b1830f1a8dfd50b80f0ec4eb8b7c5ef8a05649eb5fcaeaa5cf13e7e572bf8f22ba48560bf0c447a69856c1a3c92779eaf2fbb943d5260617f48dfe0f748718505b22f696d5a8b3e4a3f079ef0b35f268ccb346d857481042a2f54fa28f3d99f4bd6617fbff657f9cfb3a7c5ad4886c6d15722681c15915f893841174808f342499ec7c0e0858a485f87a6008553145f87b044914de1eb1009a610bf4269020f6c004297af50b0e8f2ecbc1599464645de5664cb3c7bdc8af80bf14bcf6467f166247ad35a03a397de6e6d43a443ef795d556f91f1158aeaa55b9dd0962953a6551dc5060d8c1ecec0cb77df7dd69ad54532be3b1dcf1b11ff76d945b101e9501b71e9b10b6a979e75d71b112e13dd8a14a708f4e844a0473a94ed4a0a347ea8dfa2b53d0a7f74d5771fbbee7b28fbf605a38d56cb8f10347a1b066211bfc832967560315f7ebd99677dd631d6011afd7a66696f1bb25fac39e7943de7e339238ac49ead40cab35bced0b3d8d16fce98089a5b1dbbd60559cefe36229611cbd9da26dcae9a78e231b79c8f70bb92c28cc75ef32c7b1a6f4466bd3cc8ea2ae69667568753041a19fde6f0dfefe656d7bf794f5b5adcfd51f276ab2379a9ab16dc86584ea2dedb10cb39ef795c8763c472925b4ea21d8e11ec2dc7dea237fb034ab7bc3de31ecffa40b73a53a3a0979cd4edef8faab9b51dc15ef39b15023d6e4770f607748dde90481d1bfd6e44d8e8ca8cf734f7786628ec1de8b044ebfcca05598e79b57c79501101c330cc7b3a831a6f43d8adb715b11c0b22ed0fe8a5fd018d1eee0fd8010e1a19f19b6757b6d192effeb84a4ebabafa3e735246ba32dfba27a492e63d5dd29c946d9a5f9946777d64f47afb57b76e55f695946bd473faed5b5b54321f38f8bb32411a3e70f177650232bb3f768709c47cceefca045f3cf4fa283f6fe8107a2cfa17cb7848855e99323088096db2601cd547d9e56e47168ca397f44a56f43576b1c98271f4d12b085e46d9a40052561fe91511144dba45fc73f6ac61f77cb70a5c1141d196e173f95e31c251021a3c61e5090d56aae0623434c496f1578c8090b1855194024859155141f0f1882dc3e7a2465b860ffbf32b4637a0a0831160c1c8c867a9088a2635820e691de29fcf48010a3538831423239fdd7aa0f9d8f206d9d1b7aff7f8badbed03ad902741fe0a74d55ac19f2fa4914a49e2874ff429343e543a65faf69b9923ae32f9f5205f4d5fb70a0d90123ba6d2a8f6ca55a6f2ed75abf0ed44d0b9b71306287c10850fb2843132f289febc72df3eaf33823830c10c8e9081107ca424f1c3e7f9141a1f282589f6913ec5003ecf6337c5003e4454f8f09ca8016fa7fd75f9f6e84454f8203d52a29eb7d32e2911153e447f94c8df4e7ba441eaae56cfeb76593128e1c5952d38e106521063c6096e7d5429f84208308081165e7600069ff5815e837cfb6e3eb89191cf732a9deaf1edb07bddbe9da3df1d4550c50da9781076d199ad18ad1823ccd9f87755822d3f1d1dfe087199872e694ea322840f7687f17c5748f4f52c3e7ed39ff427fd59fe7ccae74ffa7b2f935a60ec56ceb44b67e938d0f9fb716011a4c78ee58c1d3fec76f545e5fef983ffde7b3e35201cbb9c611f823df3eff6d36f5f371fc9a467196f3f98670eddea34df15b279f46ceb545f336b0bb27c3debb2df5509ae78b83f626fd7ae75965f1d7ffb76d3b56efa45847dbda727adebd3b3ed6ae6ebd9d366d79bf376fb5b17343d28f376accbdee5590f9a6799f3ae1014d56f5e3d608634ca3c94ed82e509267ea33573cc7b5e96456d767d39cca436bbf6dd8818d1682de22fcf3cdb8dc8d2ea711b8239e6cfdb4f4683b021982fc57cb722f32f1a34bdbd4e23edd3af6ebf5b55c63009d9ae10e9eb31931d0e8d8a3e840fd2a8e8bbd59c8ffe760342d3729a07f3e83bac10df1fd3a3fbe814d7a8797974acdbde99aed33c13e7238fa977a6475f28bee2f0d17156087fccae2ea751d3dfefaa0441e0327206faf4e7bfab124cf9136fd3712c7fdf8f6351212ef396efaa0458fc76918319bca9e38be6346a5a5ddc1febbb41d9f1bf2bd923f268effad8ed48bfaef24b1e29984ba1e2f9e5eb597675bbeace5a7bdad56d18a3b8f100b723ef9f63ddfa7416b7fff902544dfc3c1264c730a0e7a7bfcd4897def28c548b8e58eb4d013ddadb14d0f3d37b23d2e4858adef2dd8a685547f6b4de16a08ae2a7674f83db109595174af2d3b36612a91659591f99a5c9cd9a1a36af6e7db24bc3baf5b9baf5e9ad48bba4959bf7916ad1effea8bb3ac1132f1debb8ab7323232323239f22d01f7d9b5011528e30c2e89f6ca3a44b5a5f6f47a0bf0f7a1e7d3705ec5b9488d30f9d5ed2dd1ff539bf17c40e3b1c23f503dfbebfdb4f7b4f17b54a762433c9f4e03a9daa409ebdea3cbbb562823bf540b262c50496a329b6fbc13280db9509b27836fae759697d752a1b7d7bc6c3da760ee082d8888fdebf5c8851e6f9d97b33c2462f7dbb28b008f7ebcf778554e83845b08754a8f4eb4bc607f948eba3d07bcb7cd6da760de0d8f9a958e74dc885b87f34878d7e77a822b70db20a705906845b37d1643e7090cb56ce688d82be26574003c440390674e873eee3d9dea9dc577fe9d9ee70d14f3d9daa53019daa5c924e49dfa153f0a5ff70c54bbf40a7decbb75e5ee6f072bf78e9d07b9a8ad14b29a594be3a9206ed9836232b6239f40c76adc1ce826ef5349c97f734ecf8a74bbfbcaa2e3933ab8bc20fbb28fc96670c3bcbb36edf1f30c8eac1f20cba500ecc367b1aecaccead9eb4c29f2eddea5e435aa7b35bdef366b72f44f4ed6fb5d573d2d915366a7a6f43f837871d9cb40ef50b311abfdbcfe656572d8fc23d136864c4d7e942161a4694f928f3a7c3ae6afe3c76419847cf324827842e34a51c61c43f8922fff228d64351fd45e1f329648d79cde163ded3b31ff3ad137a8f519c22bcfae870fb89fe3ae83d0ff3d845e97f9e75f3fab886f047c73a68d1ca6ff9d555beba2ab5ebbafca2d37b9e94ef2b14d5b343d7e810e81f69b56810a442445fdfb317e1bebda7b30e96d6f470a0b343ef0e077abbe519ecd833de14d063393becb621ed96c322ed96e52cc4659e0c69bb1519a248929f3ed783a05b9ecdaec287fe2efa4468c71819fd508d9ffede90f6f3c81058f744e800dffb03fa907ccc6b3ff4ab7b82f990fce9bb1941f297f7f4ec8474fce558277480e7fd7175425ce62f9f5de58717ddf5017b1b121d3a6f3f9256d54b87dd9c1dbbd5edafc7ae6e3ff0c9cb58f34206cef88b9ec56e9f378e43568b4f562a9279e69986f96a8e697e398675a646ad5f1dd7adb367591785bff267ce5d14fe2ccb3cebe56d4862dad3591724fde23a95b9e5ebbc6525fe6cb79f95335ca3300ff29af3f6c3b4e7f53477953f48fae52b84dfea7c7fac739d0af2eb59c7356ae75b46a45fb4847974e89af3f600ce317a6ad4ba464ddba895ce9e65bb5db4aafe72ade34eeb2ae617462b7ccc33e7ee75e5d7bc2e404584dff5a1d18af9c3ba7dacdbe7eb794fb7107ccb7bbaa733d9d5e8ecb3c3612ac46fd11c2d46466fc38fb7ba9c46f14795c5110b19849d03b820e83dbefe6e090216bb426a908faa5804fb98c5e815d25af4d0ebd5c352e123bd327dbbe9b193001032b428e3b30ebb4af43088c996f1964baf451f7d57875d2075bba841981fe2b768932de3855e99322fe91511142d18473e931a2d184795e823add0ebf5cf7b1eec7a7cc6daecd677abc08271e4b33dbe8855b15b0c128ce9274d78e9c7b3238c559632786006349cf009c09626565ab444410a61f82c4785d31ac56efd7621052ecfcf99a0c2b8258b3138485096ada67a37dba87e10c28e7f370b644988e9a6c8180ade16e00204209982a1f734a493aecee34076806d5429e30270bb2d40f51052157302eae9dffa7c0e7daaf64e640a281eb7cedcb6b7c6dc7a6f3ca8beb6072d152afaf5e56aa0c414bf2b25a87c2d3d741b7eb76461c69720cc9863670e6e3ca85ef5ecddcd54c9def613fb69323a73ecb1eb20117ee93d3d3b8533845fbaa4f3d963c7bf3a9006717d447600f6f5ac14c4dd4c0b98e9ee906c9fdbd514343efeaea640f13b936d01b4cf4acc496ffa1c46dff64ee10c697ffea4b3c34ed5e841cfa14b973e3bd5922ea77d4ff7b48a997b906d01b8acb49dda951259fc73c8830a3af4acb403f7bc5da8e8a1103f6b20b34c5ef27d3b35780dee8f0709cd9158821d876f3b1235be6fc706b781e4482cc1be6f27314af9deeb86155a1246d8afa1170bbeed545b5342df8d56c83c3bf6335e764f66c746dfddae9210f3bbf14a892c5eca977e6943269dbbf041684929a5654108df8b7346191f8ce2f98ca50ae79cbe3cf343a3a49be0d4e6f663993a351dfa29675edbcf9c31c68fdb8f6559d69c3146eda18c5d85dce517adf09a741b15a5252b7c18a16469942d0ac63841e689299f6d126eb778a2ca6725e90baf688e75fc373355389c22d031878ed120cc2daf58744ba31be07695832b5ee7779583a35f24dc6e8182302f5d85751562d8b47cdf8ce55de1abdeda7eae465975a8ff22f2254ba7f6314ae44b9646ed57ce9e3f912f586491be4fe4cb149de227f2058b46ed5f57e619ad30c3e824f2258bd911f97245a3887cc1d229d5eff7b63d43e48b148ddaff32c56e46ac3265ca9ce12d4ae40b9646edf734273b0e21835d94f092a11184cba153bdf1f60384abdca9bd8374aabf3d87e6f1f69ee6719f7605748a8715f2be94c33df1eda353da6f14f6cbf39429508b63e4f6236687e6599f309263dc8ef1ed20b1975608104ed21c8228f1c5b7e30077f8f6ede8769146ec0d5b641076cbe54d8d5a1abbb93fdab3ddee46082e7bade7b55f2b64bf3d764c02239ee36255c6f71455aa90e25bcc4680db550ec47cfbaea698f2555be180ccd749808cc83e3b37eaf11b2063297c045777f5eb9b5959211a8e4ac36ffdf1dbe3a3571ca270df5edfafcf0bf375ce6423ea301f4f90b7135df33a33abea600ff2787e783bd1a746ebe4325ab920af43d2aae36b908f1b5cd30a69d8619dd628e857371b05a143efeec910b740e0a3a6fd01bda7e7e3b1b13bd0a3efa676511587875e7bfc88343c8c38b2a7bd2eeb2eca7ccb7f783c6cf476a2cfc971191bc56ae3a5d1477f5b11ff1af4ed195c6e52464dfb43728b928e75daa2a45fdd5c94f4d9c14549b7badd21264e1b32e143daf4ca14f7d9687c5dff051a15fd87f5c256665b58780bae9a624ea786fa1ffca1fe226d6434d4f0d921645e42b69d7af041ca8b8a21f8f6f8dd45e92740e27bd80ebf3d6be943f3797fc4fec83dbc97d0b3a8bd280d258d7461a7e06b55e4de41f48ce7f2f5f7b61fb8429e2fdc2b976752bb3ad83b742d6b6b00ec013ce6ae4cf6c9989b8d8a8dba3aad7762a67ab432d73115ee799d44b445597eea54856fd153a3a25722fab86bfbe949e76684cb942953e62df8bb5914a708fb73a6b051d11f8dd29fc324e0eae9a301a6b8cff4e8a7c97dd41a159d47c03d7f0d71906dc74b70eb59f75b08777f2cbff748db44b63cb839c4ad9632647ebaef98bf6477fdc8b7f1a07a9be799e7eb99d97785c4679741b439ab70d3afe972e341f5d333a849ce6185f45b960b4180e5996fc7726bc3bcb565bc199c16272fdef2ba498841706894e5bdfd5cd48714aeceeae32d9f97cfc971d77ccbe546c4797ab63ba3354a7acde12d67cf6185bcb77c874e3db72c29e1ea583468c744197cf9c70033def2fee29f675ab278cb5b7ae6d16bf42745b887d2fe60e65daad187f81f65b7baacb33a9c22cf2d7f34286bb75c6e45326fb7a250e9a1f81e79143adc8e58de1146e16f879e95a6679bf9e516e6703b223da351de91e8fc7c4bfbbb4d8a53c4f2e7160d921406b50ff1c721428f0af1379d18c31564ab5379f5704ee7f7b474cae2027f3e9f6f4ee7b715e138b54861bf94ced2d9a222b5ed54171ee3172e677233f25c46286211c69819a3cf9b91e79625a547e9118d151a53647b8129def209c55bcfa316543eba9ca93133e33a3934db105ebd45abc69379851f7d69cd3a2954d4e81d145d7ac66d46584adf8a4497bedb155dc68b465a2defef79da4927c80e0af021099322a41c418185afe854ff66367ad3566668d7bca16da782a4c76b7a074db7bc9ea4376f46580bcb729e5ca3d8ea3623cf2585f0f17624f1caea2d0b9d1919fda4bba80a8f106dfce745a09151947e02847de8f44c2b147a65d068a367fac4f2a1095d16816f15118191e85ba850f9e7aaef8d88ca9fd4ba5ff34292d07b4bd2657f5b0f91c2c9afb2b8cf90ad43ab5ba859decf1dc76c761805f09b61f9e39be9fc16532ecf3d8d627f0ebbaa82734e27b23f5df5ecd3926c75cf65a77a8eafcbb3cbede7d12f9e7dbdf84b7e5d64ab532fa387bef3577b7e5e82939e31c34649efe6f7204988cb3c4e91c8fe9e69257af68eb71fcb33e668324b769696a7d57496168b8bb56ad429c7c95738f0a28512be7ce9570b31a2f0d942600a2eb2581427b994f1cf39c3343e62293ca5797438743e6228580a9e829fe02a6c85b13c746d1bd26fe39986726ee74b879db298391ae7edc7e41a58216fc3a103b1a9b7281b0e3d09ebb00bc486435f1da71aaef436bccec77c97c7da1d1b8e0579deac6ea68a74de245d8eaf8d07d510bff11a5dade1d2337ece21c73173a451f839dfb6219ccfecc686a7f8f1c029389cd364c7531a0569b49a8ea7304b99c2953c3a94e2a11459201670d5a99243c752e1140fdd7a5ee1150f7d2bcce2a1cf28c1d51dc346071b653977b35196732e69e51adb90fe1bba8db27084f82d8f025fba50a97d3bf25cd228fc16ad9cb3c76d087b10e7d36b6c448224c72f6297e6c9e1da8d0d76d9c1a31ea351d07574eda577a0674fbb40a7385aa5730e9d66231264e3439495e0ea8ef1d06d3a78d4db9020ce250d1ae287541a053d336956c70fabc8d3cb1baffed2865754950b568158dec906ad28ce2d48e2299dbae1d0339b68c1671349d6a96b2e8d829ea3eb2f7a0762f9cd6b8761286c745ca5e327a690488e036e43e25b94a524c1b1db703845f348a1e2463a740845a79ed4383c397468054ad1291c870eb174cac6613cc3a6bbe1a70efe4d772587cbeeca14f7c9e1abaff18c87dcdf50d955eda56756169db24911f13fd578852fe74b7f36b49ea856f3b609a3dc380ed9556bf5d05a7de1a58c31161a539eb03205165aba7c1133cfe8548e4e0a15f2e6c621174d4c79e9393db0dfd04a7bb0b0a8269959da8d8edbedc67bbab71f1bbfd1f5671207dd055273dc46d1e7e4f88d1ef86b3aa122a3b73c839b117649ab7f8ee7b84ddc8c5858340abaa415360afa0db5b26814749b6e3f6e8b0457ad2b1e3af4dd6cfc6d46d873688dc27fa3e3df42058a26aa60920bcbb34cbbd1edcfad0867b90db734c6b4de70a84d4764dfc66fbafdaca35623c7c78d888e975448c74bb7e9f89b44437ab81129955efa0dd7d888702fc46386f80b711829fdc6b38cb7a76bf4a379b2b3fca6ab5ce66fdcda88709997d26d78b60d91ce6eda8cf0dfe8f86f3a03bcb51139c04b2a74809736fbb821c98642e98f225f7a8d0defe92c3ac50f9ddfbaa253361cba8545a7d8a15b59746a6d74346eea20148db2d228e8335de59ff16c462363336666c548df15c21467c6e1c797cecb93e4ed40976e05a1a1b00a4be1ea86a9706e472e2ea0f8e7ecbcf5f084f86bd4f09eb73fd3ed7375bf78e8a4aec28da53c74adabda5758a59eb0ee89f575c3d49cafb0ca439f49a2b3d729bd72d68679e83f74ea39741f2ea0d33cd013c0c36a0a2c4e1f73be9ebee63c645ae747afdce7742ad2ca539e1dba11b58d9efd32ba698f2263eea8517037a610c6c85d3bec58c8fae60ef3dc653cc7b8fd70116f41e89635f721fb6eb221540103811e9d3b0819aa8081b04709692da29d3b58a513b260d711baecdf4e9b1cabaccc56a7c2a3879ef1122d8575d8325466e277c9d4fe6a8087feb0407d7d55827c7d55eaebf2d05f9576e8cfcbe381bd03fd74e2b82a33ccc30ac59cde189d470665f441bec2290f8fe0b6915821bd2d60bf0ec1df588b9b47cfc9f1de7e723ce36d4bf2b68ec6779bd1b74ef53431d653fbec5ea7994c9af734971b94c1e5b5777fcee521c0ed961c60f1d9770eab5821c6086ef32c9bd1789bcf37efe98c66fbd968687cce9e369968684c3426addb9f9a6fbef96e26cfb66e3e676ef3b7cd6d9bd3b74ddb369f5d555953db9f6eea367f3fd3b79fccb9ed67f39ce6612ca0cfe6e18c8c8c8cf0810eddd4a91c877eea14c92daf385c5e7d3cc4bcfa57f8d006adaab7e1b3ab715377c369b81b1b936b9d9a3e3b65e3d3b3d769dc366a9a16b0ffda8c7f9dc56ee2a0711cbe9dc2e11556a981eb6e5a8722ad9cd355fe1cafb11dc9fecd6c4474784edc8f737f3aacd2a9e8d3b9ed6796aa3c1a668038003ccb1eb5715357b937cde734269ae73426ef79269b2ee8c68bfe997298bacaf0df741b93dbbc87e3932607b57193f7345401eb40e3f3f9111b5afb6fdc69edc7a9b0cacfe78fde7886e36fbef71e8edff87bef864215d0ca8fe3383e29ce8dd3bc2a3bdef93e9e1dbe8f8787fff0e793d622cfa73f9f34366ed3cd54e14c7ef20aab3c8debe82abf0ee73622eeb3e434feaad8e06387d6f94cbe43f34ca48dc8f32093fbf6681c7a7b313da7d9f1e561f21d26da695c706e6eba7d9cae7ee0a767cb8dd34dcf368bdaa434febacabd8a68bae9991c3e31ddf42a9482a60bb2f1a27f38265a556ff2d7cd93d3387c8275784e5321145f4f269c9e86db91da6fe339dcc64f9ed1b8c9442bacf2271fea9f269f6f721a37996868d0741b37f9a9674c3e63a27508eed659b97a7a93ef9a7cb722363e4ddd848fd34de7ed48fce93736f4c12718c8c9737438bce7e9d041e151a34eded3581e4f7be99cee701d1e4e03ca677e38105a513bee1e048807d90142dd33a891a00a70f8694edf4eddcc49eb10bc9969015787e08cbf83063dc7e1d3ebc9b367e4f98e3bc571dff193b797c7d358de0e7400d08afa412b8a7314ad7e83f3a0f5e43b68e5a8775e02a0e33e68e56ea0fb7668701b683d4d3fbd9d1e5e03adf3b9296f073ae73710fe0e4779ed30bf4367aa7043f13baf43f177f8c971b8b611e93c6807adfcd37978b61dd1bef337658737fce9285a3bcc9fbcc79bf2d01bcb0e87dd741e3876380d8d6587ebd0caeda07528fef493535a270ec7b61f1c2fcaf7fa815d9e7d3b39bc9e7e3ab73c5de5edc0940e9f0e3785e3d3e7a6687cbab629934f7f5b0f38bca34331e37e4daa21f8f7b62211be17c9b679eaa90c1baf2da6cd88de613a75e3d1a10a5807fee8a48e1f1e756a3f7a4eb7bf9dd2e1d161a770684c1e235d0e5639794febe8984ca3a0e3748c46a3a0d3746dd428e8a6aea5340a7a57a9e1d077d23abf86e7e82a0ffd54e5ebc971baaa7a1ce7ed07c7b367f2cc447114b06f7222fb263af302cedfe4aa7f5de5ea3fddd4d5e9271c4ee33dad7a9a6e283e0e0a55c0404edef34e5d749c2e2792793cece5ed408773d6783bf594dddc78c6da4dc7efc58b171b32361eb71b2aa627e13e54d8649636b721d377854cbafb63fa8df3f673f33a7ee69eb397e7737a79d3bd3cf46b1b62721a67ee394db7fbe3b9a9dbfd216d66aa70363efd713636feb61f9b472b13ed4d3ebda6c6fa534dcdf39e3e75b5e8697cb79f77a3dbafe9b65137bca69bbe1bcd8daef27393cfeeb9a9e3290c643a4d57f969bcb79f47d74d4eb36f763dcf4443abea697c764ca551d3df0f0d15b2dee43dfd3a93eff663a2f152c75baea8c25bc933de7ea6eff653721b5de6b3db2775fba64e739a6ef3d8edd7e82af795c93cf499c6f2d0b9aefad757e5a1973a22fb1be97907bbd9a8c7584cc7689ddc73bb534f3f697352a8d82d5430e52d5a4f5f198b87fcb15bd8aa1f1d001d5c336610c2ac0baad29f173d43e930839ef5b348b1e7e559a6b9956534cb2ed7ba20ccda32cbba5cb35cbbb2cc7b7ac330b7b8cd35af25dfae9eb97cdbe845a16fa4adb90cf35ab232df9cb4d1aa6597e5edd8352d5a9f4b2d93a0832e927647cfba75b0d241151d4cf900fc6ec9324677fbd6be45dfb6dea2e5fd7e8bdb10d55bf0ebd2e7727d5bdfe4b6be49ef79b2fd7541f0bd64df3697f2bda38d0abd67ae9bafef16b7edf46246eb506f9a47af4df22d48d2ca59bf924be7e47449a2439797343af43ea3d1b16bd269d2b6b6b05831c5d7f0bbc58a1d8c7936c1ef161d84f9ac343b559fe3b4ef5bbe9ef93a73d3b34c52927357b9670cc318938e415217542f8f5ef4922fc730f812f6bca3fe4885de57e6ceaaf067a657a6f2cd4cb8f42c2b394622612412e63d0fabd24b5dd0e6fbdcbde748b4aa9ee41877153e4b2f615ea2fbb84a12157a4ff29ee6ba5af441ec9bef766473cc7bdabde4b5867343cfe231459257e99c9bbaed1d8eca195af7cb4fe7a2733474a89f4437af35e8503f4649ce71b496e8503f9324e6d037a975b03ba23d46eb35a98916792e990906626a14476acd208b962c507c5682ed43fdcc5d0eb03cea774b0e8cb250f91ebf5baa0836a72c59b264c952636464646464f4ed377470308d21d3463d8557930bd7e5e465b55aad56aba3a3a3a3a3a317264b5bc992254b962c8da5b33416bdba3166cc9831636cac56abd5ca74747474744453234b962c59b264f9f6991a0640b3e22eec250c1fad56abd5eae8e8e8e8e8e8851943a68d7a4a1f7595196eb55aad56a5a3a3a3a323d20bf3c2bc302fcc0bb30149d5e0a35985ad60c99264b55aad56aba3d5d1d1d1d11173e12eec258c986d0cd556abd56a951d1d1d1d1d1d7d3b26009e99242b66c9b0111c3366c547abd56ac555d80a63e12c8c0576ad56abd56af5ed3395031764e6c0ad4e5ce098970485723f9d386e8ae1c69c968c1bf194c99d7cc231161c23e19808c74038e6c13139680c068e00a56f8f56de4e4545af7ecd1cbe7ddfaebc2e17afdba57da395c713bbbc9d768dd65927462b37693d495a3dd2ea9056d43f5a515fa395df3e76a14200d29c1c773ab957d4776fbf543821dbaf673a68dda553367e3dbb48d1173e69943191311e841042ee1632c320dbc74385742aa0cbeec95b5491e8c3f5cf033bcf792b72f5f6c3142a8472f8a0a1f7d151aff2b15c766b75522c4f820aa11c7ee875b263bea1aa5ef5d27bde5b9fee64578b7a3342134991b23ff888208c2f76bc3f221551faa1cb08e9d2d8308a6c75aa75f4ed99849af6ad69dd3ca8de696fcfdedb7e508d6a29df637efcf8794fa3fed12a3dcee8a35393f69be249f1a0d8bcbe27485e1f957f5ef2faa4fcf346a3795e982643db2b9397259b9d0f1d26b8e95507d5a87e615e89d649a295db683d69b4baf48c56549030df64bec22a37fea20f4b2f31c56ff4de975252262fcbbfaee20a14fc8bef39a48f3679597e1bd5d3cb5cb847b751d6d1ef0e1589e518ceed8f757642b4acfdf12c8bc2f7203f0ec6c752c6f8de7b48ab073e760e4dc841fb48f70a19c4e2d9a79867b75e956797cde5d9233b642ccffed87bbbbb77773de3666fee5eb7aac8fa7472d7119bbee70ddfb4de7b4df9bdf71ea4efbdf7da3242865dbbbb6bb58c70777777775dc7fc7e5ebbbbe7dbe1eeeeee7e2c23715b52c82e14b413efbdf776b7bdebf6c7ca084d269a1cb8e1cbe1f7bdf75e905ff6c29bf5e4f71e86f990d68307e17b5a1af27befc517e394c82088624418e9ee0f0c05199301b3fcfaba2557bf1ee1fa2383c9a80fb3ec8f1dbcf7de7befbdf75eef73a207f3681ac0d0813b22959de553c79503c391e56838db0dc9a674e26a666ed4984ba399341bda0dad463b69361a69d3b06b5a32c2d773f69813458abe29cba7b4501fe9bcc690b9eb881c5782d37af0f5b64308e5f7eeeeb64308217c43bc7c77aac7130c6fcafe80fd04c7bed2b3b7373ec246c986103adc88d47ca4fdc0c83a05dbdddddde5d7dbcaaf5b637e5daec775b8feba53d0dddd1709a74885f2dda551ebd695ac7b3705e1ebd5217a95524a19af48bf323ddb3ee2a0d08533bdcd8736f2999eed16f7f15c74caf499de525e995ea55b9ec96e364aca6bdf4e11ffa25b746631c6a0a1fe47a3bcbff281e934df9b0fd0c888371fd8c8c867fa6e3eecca67d27d64801042c9a79343f828f7b0f441d01f7c938777675a2fc58b5a8f10f6a3dd04cfd9a9f50c76b35116097aa410c2267677d7fa47fb096ee620cb98fbe94216980bdc36aa490b82aeaa4cbef71e6f44c068e9c84509c87c017eb9a0d2844cdb324c2302468b962ef2492702868bec8880e922b97c418980e9a275aaeaf8f6e7cfe7dc7e5e4af5dba9e5d171de0227bdddda84b621fd289bc1496a6a543b6f5ca3ba8b16305980c9024c1660be4081d1d23c0e6605e60b305dc07059659105182c1ccc0a8c8e15b26f91b1d2620629dc77a9aaccb220941b1130583a85e50a2260a6b03a2260aea0c259be5bc04cf1bb112102c6a244c05c31a147ee2d2260ac0d6a8163df2b1e1630568e940163058c153059c060012305982c60ae0033051829c0580163050c140f8c1460acbcb845b63ab566cc3fce02075d7ab63c46efbc46c98ec7801adc86b4d350fe52f9e7a49589ccf2d0e5171e030b1c7c5ea0f7f4cd4c154e56f135bcce136c437262c761f6c7f38c1b46a9dddce0748cc515cef276b270d978d5a8d5d4588c0d63793bcf49db15b6f2769e67d7a59dfeb915bbd35b13bbc141c155b854c96cfc73d31833db4fa4a62e5e70fc44a39ecf6c7c74a4692c66d3f80a5628695c054e638edb7e66b4340a0a5c9d592d4d3f520d7ad3d14ce99f9356a4554d98b7f3bcd4a8d2ccaa26cce3317589b4268ca9cbd1cc36e4f43556ca98d1980a35349e02c761384d7b16f3786ec6bc29385d1143bc1d3063fe798d959a2e2bc49491325246ca481929e34c477cd3f194b7f36c363662231b37b4d865afc4d7d08c7ee6a8515120ad6aaeeb023f780922491826389b1062fe797643e332a60f395b039e199615e70e39cc2e013d2b1e1af51cc7a6801b299fa5b042261a2b64ff398f39a3339cae888ae85be356741bbf11bde6e4996bcc9dfc06adf0ad99232efabe69b9e838361e5438ddfa98726c4522d569548ecdb9dc7441decef31c1baa51cf736c46de4fd334e5d87eaccc46632970a62e9dbad19833798c1e8bc8b7e8ee8fc86d0cc359dba8da643e7a45bd89c3ac10f8cf6574cae4cf590c9bd1a9e9cfe10a8e592136fe329f93e332afa7e77c33af9ecabca29eebf233bedb101b1f698d952870dba81b1e777fdc308dd199bc34ca444d5d4c5d3486028739cef653e31c6685e4fc1bc36158cce3c1f167eab23d5397cdf7f198babc9de79bdf74f3ed3cdfedcabe9de73dfddcd4e5f15061e3cf4d5e3a75c39f9bbe74eae4cf4d611ecfcd8d8e3f470c016f45e28dcee6b3a7dde84e5f8313b51bdd8db751aa42379db53b96e3307d36b51b1dcd679776a3abf119a6dde8669efb4cd36e74a5cf48a4cf48da8d6efbaca4dde8b4cf38ed46977d36a3dde8b0cf68b49b6e7d6e74d76734da8d6e5a9fd9d06e74f2b31bda8d2e7e56a3dde8e06727ed46f73eb3d16e74fdd90d363837a41b6e7de046274d2e4db482c0a6eb45596eb315816fc3b39b854d32dde86eba88f787e536db8f0dcfa05693f337dd8c96de797eb3fd9ce8ccaa51cf67709a374292c96bbafd1b1dceaf8d68519ceef4769edbd87e26dd8dc170cbe1c8a1c5ae73b00e2d76399ff9ae55ad3775d99de7357c97e7c62fdf4d459f593d9e1b4a5af5cef3475aadbe70ec190d5dcd0d1b9d89a6eba2c34e4d13ddedc7a2e9f6e113feca612a8ff9e75c57a1967f5e22adfe39696645e69f6b5d3591f16f8cafa62ed5f4e59f5753979ff6b819998d1a83bdf017d8a94921cb2c46d84a172cf3778b14a7481399e56bc6d4f40e26a484b2e34541192184d28256c7fb0346296374d94060e680b00db106b963a12637a107766910c5edae36fd840ac2e998a951038769bb2c171c3d4d4079901c4e3574e498711df00925dae9f8e0fcc44f78efedf0eb42693a281596f5b265bde4e8441b50fbde7b2fcb9cc0b13fed7a3fe1f0226c420e3be01004c5fd68200ac8a1093914c0049c59a9c2476f671f90afefbdb70400fc8fd389e3d699d6e746747c50651febbc3f6c8835c81d4b8c23d414a3077679e181694c060d99ced7dd5d8d3b5999be63d3580ba74527a751d3a227c7c2a19ec3e79757089f437f1e04af0e36aa2b693c06744e6325e89899536a6091830604518c5803878926c78463437befbd77a346e32544104431e2e9c606e7066777352e71f58b43d3a2183438b41a3a72ccb88e2a9c6bcf797f30a1443bf82eafefbd775579129dc24ce0d86b3cda76680c8665d5f9a8a6a3f11268e0715d3d50d7b5e39ca6699aa6699ab4818815b6eaa286255c57b441e3254410443122843e345ec25a614dcb01bb3c18608cc1b147d45b2e75fc734cd3eb75f9e5ec4157cfb398a05e844f099a0621fc81906611aff8754d8b5092708ac809c42cbf1eb1fc03c00f2000080282284604a2bdf7820001c00f1f36d4b083eac183069d1db4731d397004d9a10cd9e27cdddd7d37bb6d33e1096a5bf3757757c61b96b4f1de9abeeeee4e8dc1e0b7faf5ecd21eb03e0f8bb7b3ded38c049a4bca1a1936a3651ab462e5b94de34aa48d9b12cbc37222913459a5ca6f12365845e35ef6f5bdf766b4c5beeeeed6b868b4375f66d21e8cd6af363b551dfafa73f6200806f734de1febf26b3e20b990371e7cd1eb7bef452b1e6b34eec2b1bf855e77778f7efd4108213c65efc606e7945383e3468ef9782c6f1b3a4c4ed3d5a0333b389d120d241e5b0f0d95ed60355c364c1fd60f09800804067937740004704382be6f87c3e0e09f706efabb7d6c8e169dc3e0f8eb7c9c22f09ff73f5a811ed275303876f86257b95fd8d5f937368d73c39be568bb2dad445d7eb3fc734602c7fe98bc2cbf8eb3fdacb316aee9ebe0ebe673ce72706e6c4e35376c98686acc7025d2a665d8352d19e16bde1c12b7b325db4d41f85a876efea027fc4266a7b2d26e6abdb6c3ef0f6a6f5adb3b1f1c7fd3d94646abefc79d46f638c8714f43de5f91a7c723a90f1f0ff90baefaf87e3cb2eb77048ea111b8ba5f3c0f9daa7b04232b649f737a873d6e3f8f9ebce0b41d9e7d72696e55bd03f3b011fb763e82e090a9b0ac972debe59f2f6c2256d8aa0b6cf5cff9bd0f7491597e9db9582632cb3b6be1aa8f67afa77fceddee831d87489fc4870e2993b7c58b31e8366ab78b2441a7d6df7b1da3bf17a1f6ba99c3f0f66b66e676e6addfa33846fed121fe5e31d1c9c1c20b65e8408c2f27fe399c568ece43bfe44a3bad781006c93d9a63caf1d51526e06123232323247c9e6bcdb33ecf4d9d823cab03e90a9ab0ee74f3abc50ebcf0f277e5c594af26bf1acac089962084318223231c6481c51463a5e16c91022a7cc10b0eccb89203ec4a81184a90b8488219208410729ca9e6978b3088f034bf5c2441cc576ef6e0e62beacbe4c08cd50a9eb082177cd1aa34b1650b13b6e003246aba60940614be408229946153322289218cf185208c410aa0ad42192e300186195ad0041931982723566c61852a541153c505a55f2e9460c4c35f2e9450e58a474b5a51e6e19440075654c10531c0410fac40026705185ab3802838b1658a1198710422c8282e6082162464e942145fd4a007172be862c78d4d021558c620410bac488117cb850faec000092b3001136058d1024dcb15baccd828410c9ea045155b5c49e30811729ce9c6efca0a295f3929a508608821ed200ca501fcae76b0fa1dbf5caca00bd4b3c3e79e7dd927fb693720644cb853a3d84f379ab0c208a898c10a246cc1c7341f8fea8a323441cb1434c68411069ff5dd00271fc718638cac0557a1ece6ce2f175e7cf9fee5c2084e7c855c0db2183ba19f752984046bc0477f1dd308bdb2ec88f037aa28fe6d14fe5128aa7ffea8021ad5acfa0434aabd9404aebdae966fbfc119cff0f9c2477186ac7f4fefa2d66317bbfd6cd747ac3fbc9e411ab4fef615215b1edcae3edb1d6ebbb84119289a2e6ed06c04d7ce7013d0a977844f5d2ea646b113ae700505553cb1040ec0f8ecacf1524a8b064e206305093265baf8487aa25ca358e7dfd71c7098410bc400450c840003323e95fba745129870c59632c4e08a18f8ece3712a44410331541063822d7cb6caa953dc3f7716fcf3f978381e2c21082b29539820069f5dcddf4ecde7e6771185a319e409f97220010b4f500205475d84d9c1d10b76945454dc400657aa08430f6460031f28fd514e762793f4ca99f6edc088528c333a3f1e0e9ef1707b08218410728d628ee34cdbaf962c5cf095835ac8ea7a61a3d5e3f2ebcb3a6048fc7a0372783cd0677d0dc02487f9be480d29bc7082490e63747103297ebbb0819500fc7681850bcf53a8f867adf198b77c42ed75d2af2e12990ff90a8efdeab8e565c4523ab590d6a1975d1d9112381c0e83c3657cbff4ba68bce58db2780a532989c145b7ea7c31cf53de72a24e5d6e391b49f1b1aecb79fbb9e872de3d5a87f8c7b52f7c9d656a94d6284b0c6e7a9d6f5996ff70814e41b73c09ebc0fc9633198208ae7fbbc062c6433fbdc565b06b96d71d56be63fcca1c12d03cd367b79cc0cacffc6e39cac14a0758c8a04b3a3bae510cbd4e22d1d43b3c3459e4800aab2e53a488f1a9a77f5c8841836bcb1329f847fae7a8c7037d9e07e11e8f019eb08230b468e2085e90e1f3686592c33fcec2ed5713cff4615f93e9d43bec5c05b72f805f2d4198f233bf2b1d78f96a7a4d28fd76e10589968d8512f4756bfb617e653c289b27778cb1351863f482352d0bc3ac69f9e218c3b2e69cd3b2ae3931ec9a976559d69cd31a018431769bcd3c9c1a47865e7007e1e6cc6954f4a1cdbce6a793c699622c0321b4bcea98208411426959324a08218c313a9441b63cb8e8cbd2e5ee9bb940a3a6579d977eb9e9d4a9e8323a8c5107e56377e972eff9ecd6b22c6b3f6ecc79392debbaa6354d2f99eb94e5193b079157c85667b6a5592c9d0631c569cb2f8f7e5153a32677ccf3baae6b4e2ccbb00b9b73ceebba260d72b983e666292dd4b3945246eed81db9de89969cd39216e43e76c3ee96318af9f235fcaeb26439238b952ace786b83efbd39e6f53216205708219bf1cc0c9fef7b1032f36ec7d8af9737099625e56a814f0c583e83ddcfebebf2e519211a85798550335dd7c58f75dd0d61774308df9bdd3de17cb28bdde428864bc6fd4bcad9a898c3cdec437f754a79f19cd725a5b4649731775dd6b46454410cd370938f3733c827a5554ddf2ba594b223ec1804f9e4f3dde816bda755b25bb8c3fb7b4fc618a3cba8c48957aa53450d828e29433334234d4002b3154030381c148dc643822869ba0314800f91ae504e9c0d83499005218aa220a40c22c01000080043008c6ab609820f066add6b28cdba8be815ccd6ef959445d8275b5675c6028a89310e3187c708fec4e9fcf41329bee07292d3cdaadde2d9374cc5dcf7a38c7d7866582d164be8a3ccaceb16933e07dcf0c0f05b25b3e402071cb4a9c865cc7288332ab02f3ded698b52a29f4cf0d5426bb72e9116dacd56db726d3ef9e03a72af78f332d53b06f467e2b10d833e47f46a46ba125c7294bc65d43b366826e8fd93419471641a8375920710811a40bb2547cc717496a9fe31a06c7ac640308cabac71fbaa2c697945c692243651ba1f3cafc62cfac7c005fc755b2bf24b9d0b9c8443b922c20a61cfbf3e3a951dbbd99457c7f4d9ba16ac063087f2f9803e95d49845ccbb52a720c9d48379af070bf409ae4e6699ea1b073437c185ba977c82f8950ca72b424916ae4e0281577f682c1a4e9321fc6280650385d4cbed5b909123197496617bb621f428ee7d37e923877f5142edde47cd244f624f161fc9d1a24ffdc256d0da0cb9c1a30381967e9c78f289d34243d400b95972ccae37df9a6033c82a486b0ed8b3e29c8727b971a6218c10bfee18403799c643e8e15a403e607f0a4a663020a1ff38a170c4ee856056525abf4c0d68df71474607613e5f7bf551208a3a0cd6cf98ca670b2d9d3ecf01a749ac18c18adbc4efc458d7f9d3555bb3566934600805ebf344da292a09de69e4e5f0056219eb1d071aa66e1c84068eeb2c41064f8edca07b050e5cdc39aee4aed6656c6e955b19828058f46572c5cf70188ce5efa809c2a9bc777715f6d1fd0fad03f0591d1a433e169e989266ba71548033ea9c2442c9948c5de82c8c460001cd1319c19ffb33124e104a67989f3131c4c2995928a2e4da23e38413bff541292596b924fb169c4368d4aaebf2812af053329162a13196dd00cfa9f3400fdaee9d48d6c3877625a8a74b8ca58ac4597816ff248ac3586d47cd07152f8ab695a1724cc3d3ef605b08a5fd00fca21ec823a0cfbb38cfd93228fac2e02af2d3dd760c08f5d628c5873c26b43b49ca192e8e7387239f43d633ea8a23f3baa2a46e6c01fffca4923f54e33c63782fd79b57ba7c69d6df8ee34c276c9215d881e811b40109262b81b57efa011f31e80ac18627913beef70daf0998e85351b9b6c2d26026a04df52b25d516a1c390c8ddaf99d19102a0782823b5fa3413f8169309ee79d425a71d63f1599027b5868b7f17c3e6286eaeaac60148ca4e27831a08dbddd3d7a4a811b91d4c0b4fb9a0a07a5e9ab2a2bfa623a26ea107cc8eaca6893b32232ba8189fc19501d4103a3d9a31e187965c20cf7624c71742c221a02dc82beedfd015f5cc5d4c22f8887a944cca0ead74ae680aad7eb53975b193c74e011e2e56508fb6092587225f9c9d8e669c163988a38b30b8ca32e7f99450b642196071ab88a03cbd05395c213e6c214cc2011c2a02b7dfe580488995cbb7514a21e66ce54f1f601874225c5bbd778ca0654c2a42e30f89314880ad841694fd0e98d69c66a1ad5542b05fa265cf16dfa318bf20e653f9e776e68fd7f46f9ff7d13fb7b138c4d9e1d63004212d235f4fa6d71cf47884f48eeacac798d31cbd298f471241e191a90ec727d0ef5ec34657df515d7323cc2bd6742004bacfc9b9dafd08a0bbf46af3d27f4ffe6568267859233f51e7cebd567f4072dcb8219239cd975e4430ee8704c509830ef51c541a87a0f21b25fd080a2d3ef6d2f187aeaa382b05a398162da094f99d169ed00b832c2a9c3221b4fccaf993972bcb4ad3f791822f868a2f9bea16659017c01dde70e53e63156390b7c96345c01bf0190b1468784275593db2ca286f4f27a4380b51278502a33727768873b8714b28a5a205828e6a8e81ba474b224e6a7fe99349bf39635e6dd765b2d43f9047380755b0f42f1e38eb5bbd171a706716534890796165ed6f15927b3c9fd42866e8e9547d52cb94fe5d2be17e49a4577429a38387f6fb90414b6943942cfffaf3f5160e37d111c55303f2b6c5206b72b2b4fe9d9e996d1ce75b9ec8835e56cda0a06c80d0e0df0486e535b32c6d2cf541398b511b87eea58cd2bec28045592e0d128f53b920316992d6d11ede5d219068348beeecf9638444c30e4653dd217e621a71b74c14217cf7d8a8ac9bdecfc1364b0241674e93fe628b62f478b9ac6604e8991b93540511bcd2cb800da0661acc9f07154cc8ac62fa5224cdad5f443558682886f4f4c672ad29736de832ca1f672dc3b4cd471133b9d316ad7f76fa093d5f35ee263825139345063d6ef1b233f8f86337a9e89fc32c4ce24fe844627560a3463c40f284de989ec6ddc8dcb507cccf5549846fe6db98d06c84946cbf9a12f49d14a050b4ff88af29a72fdd730fc795efeef169ddfc6c1d664f20d86d5ee71d946c9771680dbe230241ed71c888befb370e68926454941218994ec2bed35ea670c8f6f3f6f402baf79030715b51073b0ad0f84e315ac9bacbc6d23d248b0a192c1f47f1a92fe9724a13f0ed9427f1b9d20255ee203f7afc2fec3160e655ac8a4a494970b60d1efdb3239f4077026ffec798be36ca2d5493ca20a4b518cc3b7007e849fe6c23468ab312055e4ace0a75e4e0f29bb268d2da42723296c56bc48e58001ce177221403f923da65bf0a862b553c7e6258236a1e1d51e2484ae68ff411a26a45239f49c750b91ce3e98c3c9751467318b29b01cffd8c48dc34a7354dfc5ec89d18b089c6fee4be38372882081b70f6b1325ca646c010b6cf0e307f7431dbfdb867ffa3f689879e0bcb523f74d44c01f1a42e03c06aa147d95b62a4b2096311d05e63319d4bb6bc126153807ba11d69adcad6e132df9343a36fe8bdc644dc12b6c008a1e740733daeaee7dcfc4ce2dbe250f52a02ba1d05c1401573d8ae9a0516d58267fc681301613340dc2c4e8acbad3b8d6a9f12ed92e1d93b5e04e9cc4ba0450d512f3fb4d558427599fe3f41d7005c4946cf6210a0949fd9b6ffe01a4c7dad4a15b4b99cb21230b0fab502af39792500eaef5eda1712119c7bf5b80f47d75fa0048628a79d64bdb10b8cee4d1fb67d2aa35fed7fc699405498c563d5ff695ef6f0afb1b870f7d2ced0894d1a2c2a5a66e529f49e0aa4161caae69cd55500cd320230f348e2bb53c175a6570534630464e621c5e2a2cef4c8a4ee47f28946256778c7e4843b4edef0fce40f6fa33ce0de9407874bdf8f3965df647be07706a4e59b4edb104c001eaeb481fb9115c15123a4e085fa30b841c21bdc47ac0f1eb5a1083794c3844b22a91fa8f652f40150157ae76744bcda58788e9a209400dbb9c5511c1c9aee9285a6c7673df7c33121c5aa06bd18021351080211592102dc23c33f24c3f2eefe10828a3ae6f565f6f983f1fae6274c6a59c5df295289308adae83927a66623c8b4985bdf9ecaeb2ec693c7a6ec9efaeb5c7bc8a6890b3ad164489709fdbd9b12e1c40005a112a983785ee5b2bf83c09ea4e902c96c8e308a9a966665381f135202f8683125a84b04951055be4b8b818438445eb7a20e8215302bd198c69fc6668481187aed83ee496fa7f662f19368a9728d8191a6e1c437df07691c0a3a4298e8ea7e625a754fcb9031a3ab5cb0c4f76f74797b292aabdc0e2c797f9ea5515ad8c2b42ea3dc8fe1c258d1d15292fd9ad7a12d62181d8796f8f2fd3995603fba961dce3069dfd6e621128e050ec15a3cb401a7b7ca16fa632bfc5b59d243c874a7a491792013410a596de384c30fa599511a8f94c8a450ab1b0542a0f3701811cdaa1365cb1939634b34ab09f4aeb46285a4aea091f7dc03dd07bc2579012e0ad743b8211d2435aee5e7277317cdd4f5fdd1f18d3f31259b5dc4135eedd895e924e910e622cfd7afcac13b03d9ba40319ba453c9d5296fe62b99b187b730acb7481b15b32bb241c73e65b420bccc95606cc32cb9a11384ec589218a16145d97f6d13b61e18b670633945d258ab6134cd006ae598cb2e445135a2dde37e8fdccd93d39fc9c09fad3a36bc36445efab63dd65f481f0858328c3fd602f30ec43ad1e386746d3b6edeb3e2c87bd5d1841b4e07b4453f6992ba6422dc885eeb8dd90c6442086298f26bc8b4ed290b80dffa53ae2054c33552b6b7cb6a5f82a4378939f524948ef9b2f5c9bce724dd88a50d70de61438d3e65081d210fd24b1ae92e03381c338e5ff5d2a9bf839beef034f0fc0a41519cdcc8900295fde4471a94752cb998e619bab7737c8172f5598c941ab8129d38979c88e06f6e851f0ad438d8572c5475434513fdcdd99f8e0849f472d51aa20259ecd64a45125d4b37781456152dea2c174d760981c470587e76a0be59063e405ed73b6722ec9961c7a6266bf125641b8f96e35157834e593a5e4e457f50efbaea4c767079e883080694e2f79432867558caee3ae685b14c011bf2f59f9d43d0cb1ef0c4245ef26c8b90fd69a9c78094398283e9fd220bf8a16d76b96466a63a9d4d3f92ddf0601dc24f775078331fc3669d64adf6849b6a253be66563365e4b5ae2612a9a5c77ea24e51aec80f0da1ccaee81aa820921376ed90871ea1bd80ac69232bf461b4800b8a0c42f1445e9c06e613242647456fdc3cd2141283ad6624e9da6739b3febb6a26a5b7284c3c7bc5a84c73ac12a7045eedf91c608783236845c6d68bc510c2e986871fc9fd21a3a579d759b39b1d002030fd6ab799a3e5955dc6c5291767a4900d18709b98e9a569712ea4a2e69143b7725041c0e0157a16ad269edd06a406176c19068d8201900387bb4bd8c89b152bfa3d47eaf8374f1a46a36f650705453e46e4a32c20e04e7fc090a4fcc8d3823acb539f943cf4dead779b25cdb8e16a2be4929bf18c6393219c952090dba2d6c35b87149312a54d9949e0cbd023e105d57683aabb62337351a70f572e3cca716fbb40fe7b05876332ce8236b30a49ff073c21524f05adb89e42a7a1fc471de3a0ef6aa80e94a0e58958c0dfab688361b43aa3490413d4cbe2cd874495811ecf0b8c3acc345a714d51f92a73fc8507babd77eb80dc1fb9b4d840a950feb6e6a61796dc666090eac2bcf771b3e4ed25b7e88ce254aca73813c60920589cb74b91722e0ed7170c0b28b27c505c4b4f8f2f52c5858fcd5dbd4e6b3f61543076edfcb3c72e2a7f1fd05c853acb16a3b83485f8cde6cb36415001446a6546480731ae6ca314526c0804c6276b0ec842965636854f4344e80d2207bcbce18a00142020057a27057258bfc5170cc5f094a15968531098f232e1d9a90ea2c6453bda88b91218e2abd10722c1350ca188624197041877106dcd46bc86ae305b995943e931006483a1e02a204585cc6746a480ca2d2e5b2950952e4264276cd24a02c618bb9b53e2bf6c7ac5327bd03fc6186e4712313cce77db5df66c821730555591339e12ca949ea0a3b88a16b6cc534d3f913323a07dd2b87a47695e6b56d1675d78561d99913a951bd5da9b6ae54a532cc2f8cc3e59de18f4684b907d00f23606789ad30014c1bcf13022726c9cc8f902a73758795214a973c23e956df5009eaa339d580e691902ce0a522f92b8721bc093f5514a071413f4faa5da03f42b6edde89b68891a646f9634f2f92040b0e51d01995b78273925683ced5bb47051437b03f6a224eb8c644deb42a50924545de7ca06e7ec980432ae0b9f5edcad6fd7948477f0389af4890a67fddaa7d1bf4cba3f5ad2063e4047491852c60ee626cfb6eb0ab206b1db520023cbabbc2c902d9016c574e6fdf340a22bc0152c43e4d17c974dfaacbc6ea7427ba24a2c80953b1ff77b260c1648c6bd06491f0afec7ee945c6f6bfceb8af2aff7fc5ad5c2f696bdfb7955435777b1eaf5a32fae51d0e60bbc89123fb5a7ddb6ea825331b27aa83f7025a26751c21deb585beeee49d369afc141fbaaa4e3539430473aef7f555a2b18c7d4090d9b4373e73a1f6d3a867c35679f6e129ad0453ee71e25381f937b53d8c43cf5afd77dfe05e80e87805b2042a2ac04f518997cdc54412af888dc274e16b27d3c3eec54e0e7591e38550f8efeda758103a994ff3eda27ee57c8c27d26549e55c64b1a243ae44f6a94f5e0773a4c46c8971d0b8ee0449795cab0eb4f2274b145f3ce3cecd8a0e99dc4672743a1b324c744d3e67ea67b3717a4082b665f47e70a91ebdc14b46ff031ef39f8b1ee705488ca3acd1e3ab7c863c33d16b53864f539265a4eae865b312c0cbebde885e0602bc2bb0f3c1a4a35c023d4c1953af230db47c528052c70653ba01aff0e66ee6e478698157181bf0726016e9e3a039b0541f1aa5b734259f333e8109feffb2f3873f3d091b3c0d2bbb89df7e0ac886e0024ba40a063640bf6247025d83f708728a6259eb4577f9f9e838dac3b3817de87865d58fde73fd73a144851ec7977fcdf3e8c58f2d4ae00ca4fd0ff4e7880f6e48b1a70afe7aa21708f805d07b5fceffcd9f5bccedaa3b7081495b00a0bb5b48677b20430bf5982cd780a11313716bbf69a9db63f560dc97cfe60dace7794373cf75c9d1e46d7d87216b1ce28a53fb850a9b527663e3587290c2f63c1331798d697712ce04c04020ba94e78fec53e03315438b1c364725cae7c5def7d26c23092c8799695b14c584b42b8a0e8045aabebe4c5f5d375f0b51dfeb7f69968e345bc126a03ed056bc23e419f70192a1084ff74a55191e6ebeb40a5393adfb734a350fd54c21e3ddd95cab096973f091c4b33247f2e62ffd7d1d607197b89cc375b0b73de76493e8fc57d5793842ab9dbb68fe6cd505be10fe0e9f43bad2362c305c550484ff73a1353e4ccd35d7ed295d137370ab123cf3a259ff74bbcc1d9e372eafb27ff0099fb0717fe4683b78ba51e0ed6a66875d789183870ec5c3b1662d3c1a66cac50ec25c3cad1443082c3addf32a3aaa9fc4753237914075b17bc31afc28cbe90eaf2781710f1b1f6fa0f4a0076f8c35f9b2ef007030a37a1fdcb907a60612710f53d7f45ad3c1aabc3f939d5d88c31c131d26d4a1cc724d231b8b87b3f1f962c685ba4dcb008410285efa1926de0583628722a3f4039885467dc8810424104ab9ddfc2d24c88f6e1386d37858c3c106572e71b82b69cd9b9bef17084c7e9bb617359e300e1e784800560c8445c140177830f12be2356630d025d50818c47f62dfc553c4fa857b05c544782c01b91d839dc985bd2d0894e74065ac606eed06b86943a5702b1a86b5bb350013df3e224deed381b2c70934d7dcc5cc25edc52545b2c1c44460634dabbe5a7ef369c45c074be0b307d2bcc536a12b880b7d5929bd7069327a8c9db8b7efd17ebe5d425872631a041cdb07e5da2a5918a48079d8b5949e661c42cd0bd984bfbda7308457f45f8d051820211ae5a8b94644910a6d1fcfd79c0500bae1c2f6a71c653817bad82c53f18292c7e17bdb48464cd645332c24407a627cc9732bc7c48c4f71d38c71e9171135210c4f32b5814b9495164992ae13a3f33b5d94b8e562a6d24f604321d287edaf8fa3abf6b5dc1eb32acb845ceeefe731e04d1203b68801dd6ea1d881c314af6dfa10568a5c0543df037cd5a4bcee39b9ac54d7ef6b703d04b637c1e31c13958bde453a734a5a9eb689325a35944152a964de386e2041c365e72f536a3c032339cf558277f3d1c874663a7ca908942f342147afaa43e7749cdb1dfb87630ad65c4daf7fc57ce091375a1a8bd4c717d9eaeb64bb7356ee2cd3edec0a7c2aeb9e13f0a183eaca3afb90f4b9ac6a8bc3ff06a11d6250003e8759ef50ff9279e293a8509d3b7c87f7f91358a39d8d77a74bae68d63eb85d34dde707fb2e221add5d9db68aa2780b977b83c2fae8fbc6da5b562d4fb56298ebab32099bfdeb28784b2e89605f0b60070e372d13656a5d04f86de8776e7ae4aab0e4ef7e2555a02613dd7b82eeee68fa05099aaa37f380e91ef7817837de077cfb3668377172ae4cf19502f19dd9294c67eb3dbcb1a3868dbcd61acb11ffa584615a5a218fabd152acc8931f685e6b2f660c7d8f5b24d3abb9950c975b0a878bb95c25785b79a087bbbd8655ce0119b9f8f0fd94243772cdb13943eb36eaa1535e74eb77b0cce0ea7e5f05a96c212719cb945233a552a68df1e3aca0fb5e9e334de3e081359148e6c78216eb549b208a7c161e782e2731b55986cbc640b2cdebb21aaa85683d73b9703424f5ce80a4c9b1befb96197a07a6874c312822936481592a66077c150b76000b24fac99251b4fc072233414053a2d87a96fc16bfd281ce0a8b1bc86254fb53ccd50c12c04a4fff99961fae7e647bcfa4ed76b4fcdf914617d8feb0fda84c95a3435905bbdde9b0ba71160bbb95a57b942d799223fbf2a05239c68be8050fa514f285e71470b1d0e92600f80cf780477d7482cc7ba4b4416a93c026cd06926d345b4836916c90d9a0b245678bca06992d920d349b4836d06ca18d09f21dc6832175053ea43247a95afaf2f6739bf9df32e249ea6e2d58c3a631df0f5d7db2f34a38c99920b3fa39b8f907c4b9c537356053554cc6c60dc965c1953352373dc75e385169f9a62a3341bb2f4ca183061770b8abc581c2cd6781404429cb3f2ed64b1af327699f9814e14e6323eae1a64109235b2b058f2e19b65be3f09d475d4ae5945179e37b89693df2b9897b70052323145e158f4b8e23804910436b7e3b0d545d233c6dbc98c1f1d411354b409972aefc184803e442d89479ceea67ccc568297031f41441bb97ea5691dcff490fe35449920afc14a3833769cb24e3ed292ae4e266b9744aebc552dfac971c3d985b205e12d0e9bb4a35afd2c46c8790de9a34a1451f07a553244bc286e222bae82f7e2d064408b3aee853f54a45c056d68fa5e132fdf96448f687e5aba5e9543fed3ddd680fee02eeac3a2d721b5e3836bb742b0bc72eb9ac6f5583bdc08599452704cd6fe630a4a46edaaadb8be6682af6999a2a3cb7f37ec39def416514b2f7a8b3f53a29c37f8168bd2e9ce8061e36c2183609041ccc8b0fa562dbb40f6726d8daea31e2fc9ccc969a7ebe1a731c6fe9af545005432c6a62a524e3c865a32990a7f04098432330c2ea262c2c2546e87236ce2b90f398d0fe4d960d7508d92ffa10f95e1f1bcdf77a3445fb83b8e5e61d1b64d20e90e504ef120b6cefb912134165bd8915f223dc56c1953f57374a01f5f5a89cdc33b47d3fe2e56e41b11b37606c90a398ee12bcd2077256c5d478d81c8bee0ecc91f2b7ea1f74c200eb429e8cb7d91e494df9a4f18430e7d5a2008d2844247795d185ab332a10e261744a1d80d2c42cf3ed6218e7c36332b9494c374d5ff8c838136272906c5b5b6d1b1a6cb2b1d6133b8d88f48c0913219dbcd33b33d4f474b2707a4c33c3ec31449ad634bc904207024986e4e61b7eb1bb1bb3eb43e46c8721c5e3a78a8aacada3f7411403624645271e455c60a5376ebff5b449fdc7548fb52eb0dfa88664a58ac037c477803857e05fce009f10fb4e5c0e7abe5c1da63cc8d49176dcea9db4d3cb1771dae2a6a9c175a157220df36c0eefd320d2fd1345d1be9542b224a33bdb476d42bc1e6adb49e85d284507c294a968e9dc6b221ba4da186bbb03504d9a87ca044b28665ed402178db2cd98becb8811a6089d793b336af3e20b20e9e6f12cf42cb06446518c93771754f3debd34224e0d7febad821a50129c75cb7bb30e5b8fea59e845ec578c1ba8f096151124229c32e1d7a1dd879b7c8f0731ab04493cb2a02786d31864c52c8d9e488d5f42ea0f0b5e02285ddab35979d6f0ba9a8b56ba2ae1b510dea7b00c6040b7f92bd3bd72b6a7f6cf52bf114a70f14758dd56dc98212b3f745a7bae4cb119d49d3031eb4bb6859019bccfaa4976aa800e2294df8ba0843df7b4f25e39529e283a9e2b7b3ae669ea5b9e01c17db2d59dfe5167e6bea5312302260fe44601b5ec3a562722be64810613305abf8b1b27ed818d75de815f021acce3ac09d70ec91e4ae22a083d5d04dfaef74c0f0e95a43cc3412738c96db90feee22c639f7808d5315e7fb8c6c5a5751d195eb8257590e52dae22ed09f4d5f5434220a816c0ae41e5edc237070bffa9a4bbf82e0bfc0c61775400849ee00a7aaffadec4a96c163e7e912503ecaf27d434fac56382fc72b845054de72b1b60310eaf67b0874461e8e0f0e3a067b311421e636c9fd137d16118d68871cad085b8c7223bb18ab838f8d145061616f679e1c4f631c4d6446233d0a38a88d21d0efebf27d269409044c869aea0a03041575c135badab12ae651adfa583affbd1a99af43cb1c0f574a003407ab93c6d542a196b4993de7645c794112d098dfbe1d639ee8ac6fa311464c50740d1fc89a6fc8270d182bc3100cd5b392b727e6747829033f479d015aa039a372a04cacba802ee82146093bbd4ea07001d01ea785948e568939d0067a1edb4db684062d0df3eef53686660d21a82d976bcd9ab9f6406b87d950e19313980feb25f667949495cd70904451bbf29dd90d7cbc5b252bdda4c61e0b81a3ba5721652863348acb30d1a1cb3ed68b63642bb308bbf2092cdabae919806a7451042546a528d9a5ff524a13341755a98ed47e881f2265d791ff6292b1a231dc2640b74776631633133ae4161eb657a96c7d37d6358d644b74c0789c483ac5284f7d6eefca2fd0b09a2d954810a470ee5acd8f0bec619f0c1aae436e33c01694fa39be3e666d864f1c4b2b1ddf73ca0c904f507f480a0cebeaeb5f56d1b0ad304920ed27475896404176e3f38a9029f4fbee2b0ba3f31013385d6a639e8ccebf65b8b6963b4a415d60a8b7b51a0b7bdb14192597c2337d0d8070b62b225230747f65b94814c5fa57b12d3ec9cc4b23683a9e807a8c82ec7968d15b78ce039bc9ebf2641c472086f02e183fb3606dd8e9e6072be189409428f904ed53581047f35f24719b3ec0146047833c6a3382a9d4190c80a453087f18b94cc8e365e4aec98c83765c800c377f6918ccd9d94b82ebac7ea917cba912a9c2c16559dede7502522809c7ded28fc8afdbdb109ffb14dc38d8294227e212b1d62d2389de45be17e1d69b2ad3c45b868293e139c7a914bac05b1673624c2478c80454cfc784e0a42e79133d87f000941f13743238971c2bfcb195ed3c4b81f851d4b185b4c620fb51024797bd44b8feffcc64d404bb8e96322699bf090b3d79341e506ebe495f1f8f0a80ec41aa3799c64acd878c49dcf8557b87b0f7067a6f362a5d54c2729bff285d874b87b3623e0744393ed8a549eec810c00d1ad4ab5974bb31872252e9a3d897285467faa5b4b8696b1eb62a929a6c8802510d501cd6ef8e27dd3201aadc6d40e8363c11b0d0af6714cc90d49fc40a363a94dd4de2d39ba6aa4b1e5521beb9394dee7cb37fcddfa6ef79e8389bc9edd47d1ca317c2fefebc6ed5c5aa5248e1747e02cd6718f06d7654b2f8700f6884bb9e8a981e87a748fbc6d5ea2efb63de532317202032cf0980aced40850d8d17a712ad654e2b8a15fc68e1f3d1ade04f2ea5f0dcae5f2404467f3ad161da42af60d0f38e37a328d471a4a75f26ce2674a748b396a75473ca07d21a2cdc0a494f8f7c72883f979c6e4b8303f4448ac159b14a121c6c217b31bccefc30d1b0b76d1bc3c6303e405d98827621723982cfbc02cf9a584207e674af1a7fec755c6c88748e1e0d9dd7811951014850cb8e4f3221c06ec067edfcd6028762af1103dde0a5fce9f597351ef4bb28d60406e5a120b99e2453c6623c41bc53312ecc5a48e0d8d1a24b312dfbbff515bfcccc8ff0970eac768562bdc86fa41ba71588f66cd0463e0a210bc39e2786b361153c914cc036698fee73ec5763c9a791bc9f00c45d17271caeba7639ed96c1f2240ad35db6c345db130d2fcb3c158cbec99a8d85746e2f1ea486de69efb20111e17fe7c372742030c9f95ea317335e77d0e4a072e0c45a5cd7af9e90640fefadecf2343efbc587a5a0870ab291784b84e5a2daa49b040ac36c1224e8c29a13b030d03a2442c755969ac660ad40595c57d2829315d84a901513ff6870722115d80e35315aa7432c4ab120155b84f00d350ebd556e1230ca61860ff792d2eba2aa8e57e284cb2885d66754de91b3aff24fd7a8cda9a0006eda18cadf44fb0fc12bc55dc957f23514ca7770a4f7613c6c1e47afa3e38b0cc5e820d208624b08c007cc64fd6da1002c1e8041e59d0661f73ae7f49cf056a93dfc9007b3c66137575f74b809830f73c06c66d2001c5ac255f112a8454c7027c7bef9cb8705170a1e56e3614fa1c06217c6f309492d0bcc32b9f679c2a0fd7bf0d50cd7a9d0903edab6f7b255a4cbb12453d912cffa395d18a2e42428f32c8a4cc7e73084e5ee9e91e13bad923a4fabcbde69820656463630e957e82b5a26e8eb94e01a7f1057a74daa4f7dc188fdf23a4a2870418413a36950b8aedc290289441aabb1b0ddd77704521bba94997b69a61294f8e52422fee256db2e3bb172f104af144fec3a9b9e0dc01b1ee91f4db390eaace8fabd9d98f9ddf893e8c40b73d68ae7b7e6ecde869be70cc5c5d83c9d1b28f79a0cf994708133e94908db032d02b0d99b806aa2ea7b99eacc17dac02953d32741138c2f8f9a2bd1abd26add412840b39ae394a92cd00c226705ce183c0c8f04004901248f285d6d5311599d1a707e2bf38601c0dfba157fdfb4e649cfd79b21f0c3a61ac993a20b2c468eb1cb3b5279f1c3396de6ed334a5370f4d3a47b43e3dd1b7aabd8d761f16788ca488f222b53e6685dc1e50a62c5860a665df9343bb0b1dc60c1d3f5c1ca4530928ab3a354f4d9aec524ca5c77c6b8ed20699b35ba13d5e24db4048faed988a08963e60eb1b9a747964f9725cd047a8e07ab1b58b1485f1bdf859801ff33fcda6caf0b38bbe588d3c2730bd110a9e277bb5925c24672f14ba3a22195d259296b455742934a1f526458114c330ae4c03f9264fb88ca19c961284bfd1ebe2b9f9bb601299f8fb825e8b458a4bece6a6ffef7491cfa8c40484b887a32f479a1655cd5f2b23027a0507fe8282aec18f1659d2f5f42556a52944e01d9850ff526d5cd3e94ebbe8d0487377364eab1fba21aa2238f4e495794d66064588b4605ef306215ece798ad358d126bc6651b69d735bbabe01427487a266f85eac3cc266c4bfe02ba9ab69cc45c5c8ed1b6b4d448fcd32d69a61b444c7f7db98e0757351ca40d882076a5605ed1d56771b2f1027ea31277a12b961af0e24d51299b2261a7bacc41a288099ce838c6febeafeb8476c1591a63de62d007b924fd2f6f827b057f2814c564bd4ec61f63c602905e9abc9059a204a4761c0cc88c66d584bdad5cba0d38a685e0518c01b2c584d7fe6366ed51ce7814e893a06213f5e130e4e45b950762bf745d15e3ec15fc48be6f92f0ba670345b0baaba62f1981d2fbcc2f02dd899eed969c65b65049cf5f8d3f1a8fdab83e68aef33d72fdd0ab7ed005cdf2e519550432cd62ad3a06f55561007781aae10b8ef2738dd319ff1cc3f12de3a28218d181ebefb55018c92a0500ad60d3a28c194dc25c141d3c5d13b3ef63616a8c60e8762571c4864c9600d9a44f241110516efbf060b43ad98677ed524f03b548022fb4b49234c2924ae7c47e8356da5b1fc8238161d24c2caed187386697c74bb0659f0beaa48ed161111f7667c532560191c0aec3e8f4489b0c350f04390854f80d0499c3c9a76acfff7e520edf21cf4f1826e2124985336450a75e14e91925c1b107c02209fa7b152123c4fe0c8bcfd30df1743da4212fabaa9bf66dd8b94a2c280b893464bd676bc2bcfc9b1c63b0b532dd5722c15af9304c8d85fa5e61cad3616b9377cd51ed4003fddead3ce3190905ff70e23003c587a63ef07efcbee2814c60b19bfc3c12a903b464d2c1eee02a77778ea69e7e80915804630dc6f5e51abfda299e006367595df0e980d37676e9460388ef463c8491fda0bc945356e8453663aed6df123103ecc85d4f14488c1d3c6be682632787c080025008e5368e200d40cb302c8649124418108be52c11d4258a32126bdb480d7cc4a18f9c690c5bc871fa782e9dd3f0bf095dad946c7d4f9e6428a5007c6af03484b4d8c59350084544d760888bddaca441b14198dc2bce66a084900c2e68d34f323ff233c061dd46d3a274c02b48f2d9ad17cbe964337d94cd6241c456d0b83ec3ea5805bb55b0737b7aec3d16b63ebab120ffd58339c63254c0ca3305bd57c68dee3c5ff079c431c244f0f96c5c377ea606910a37ab576274a91532f5626bd8426d4cbb649d7f8b9285dcd2a7a69fdbc2735bd26f720b927732832f541e3759cb33760896ad61435bb372c2471ed038dcdb9718a21bbf47ff3d7e09322b312f28af2accc1c050c1d70730209f0776ad9646396988de022e68a751d19d36f4e9862c3c77942714a9f1578ed108d5e87b9b909819280e239e4986fe408e82538bfc61e62ee425e430e3e6e935eba05eed13a70b0ab4270e8b828cfc9c3657e75ee35266c8467866f23ac8ca6b25409f8f6f0ab59a1053897021e3d6b8b077948fcfd9e4b0126c566456aa176f1bb9296974bf9f2e139ee05690c603394251c0b7262221559bff51e7c1f4b7738776db31f6cf29ddf55ed0f6f1f018c4ef0e4dbe67e9c09b5667e30ee03b37fd9dd9462faa21e35709d00823747a3b4511122580b50b4bfd297a1c8eb0cb754530ec28c52e6981298c6cb28d82eeb0e346607c635630fd265664f18627dd09dd161ff4bab5e5ccf121c3bc6feeea85ddf641dae30c0131115174a659ea20e9a900d3f4a696f2e51b1218d1b574818c7151caf1042d3a9d301a8f99b8dfaec12ca8d3ae1c62630c9ffe09946597709d03d5290e80e23a4af5880b0b9037e0976ecf6ceda171ede91d88fe6dff4f64f3f97ed996f380168ef58d9e1c78f9c1c3bd17eb753518138c51b6838dcf3f1bb44a965990ddafc6daab0b29f39396b4c6923c909a547191bc2d6be40a171b87dd2409434dfab1b1c5830f3e26ae4fba365835d1a7dc412dc429bc708ceb855baef9def2aad63e23cc568ede236810e4f2e62d04ec84c6fe8d79de81a25c9bde9bedb4b399bd24e00f8d998c89e3fcb4f8034d11bfcaac0180684e16b6bc5eb09c6087692dd1b55376a0a4639a7d9929ce40b830eb90996d8c7be097c5e2821b3d4e4f0881aeac9f00ba52d1d09c436c309d418a0b119840fa62dd969566fc83bb23079df588d8790116faa18b09b857276d9656ccfc197d41a2b0ed2a961e0aed6f4222e4261cb2eda4a9e5f820bd94ab8e3f26eca73f218e83fde47511f55f6d2abbcae3622f025ad163620d7964b8510617e7bc8e3378419c4bf25282a6210923d22b3f4ed8912a4fd5e86d1d045729361c59ff13cef3f286d149a6db04b16902dbc2a00cce9ab76c7c20bb79ace3666978216354cd931ebf54641ef1ddb59384f84c32236ae71c60f12c2eb553cd7d6b87fc7fce1fd76dbfd0e28cb3bfedeb1e5ec51c02ec85b991c250adf0eb3ed5a6afb1e8546560ea0709168231cb2e682aef6829e27e426769a15ce709dccfdcf363af410fd5218ab81e9bb696962f39c121311fa64e0fd112aacf38f9d69fd1fd0b371686aae98e838081fbcde79d2446d5b4852f28b9559368d2a6663d6643c1fce6347c53040db0ae18139459655e53f8df6a895c59059aae14724b36c90dc61c4bacac15c11e3012f8c4c477b2f1bb9d4004ce230d22aa4e13301d40391f7a10042459345bf80ece98f6ba88437982dd044df82508747bc20518c0b048d2194c922fd9b08106c55acf0100e56a10045a24bf0df7dc84c62de3ace584055e0d2b68ecb6d51a52fd96269da94bb122723d2c358354e79585de9189ad6b26ed101cd5a468902f9fb70d810ec6986a95b4f0fd33141502822d048b41725199096d096f0a2ac35ec0d8079a90360c56ca07f84fbac4aa0748f0ea2a70fbd547462fa924d414480551012c7983cec08da5c3da2282ec75fc61d99120e8343ac1966ec72d4d0386c738465f765a1cfc40df5787af7583ac3bd64cbb7ede9c99f475d3e9701fee864133c80cddd60836dfa441a96981b9da19e4301dc4d0e14b109aa4c0cf9581b49427561c3c3997f29014448634cc738582caa3c52a4741f3f4657e8215e4cc9817aeb6612577d2a955fabf27c4c6bde3bdbff20369f25f7ec82be0cae0459e5c28d946e85620c1ccd939a62248a85efa3215ac372719ed1caf4ef9939281000ed0a36c10d13cea99f82eb024d8b4db3847a577835d053016307f2860acf730217b7d35c88170763e8da89722d57e7da9c64776d991e6b4c096c9cc4911b841c2a230a8e7c84e591a1b898eaf1e951cddccd1d43db28264ecadb9735afdfe747a79750e96a9f7ad264a0b65020daf06dde4ec72edfc032ca347dee9a24a39cc37c58d738bcc2e3f277c5753b118a2e597c14dca4cf60c42ca03507e973dd62346d0c516420de8a52191aa6b22936d70de89afbf40c31d999118f80073e402dc457744ac6f546bdbde6dd09b377c3d7fac1dd6638191ae7256c8754781351558a94ee20237ab0d1082e526f83acf18e83326fa58f6d8b074db0f44d7ea467fbbf3a25ed0710623434d7449814d7af3d14bff68c6948ef3a0390ad094709f5c274d767b9d919306619d8235eaa1280bbb7decb937b0a86df32d59d2223cca045a8e9b30062db72fbcb89c040cf0574732002747526e9152e268162a5263f5b2b84653759fc72b61a4eb756da8dfda1e4570e753b73538c561f9b8850215cf06853096e8ec4207b533c7683d63a4b0cbca23afea585ceae2358123c49e5010e810194dc536b03b9047325a613aecec54355846e808c2f4e770479e4cee8c142cc0d57c6496ef354c14ac6946422c34d2cc5aed9c7eb33dfd2702d1b957700f56beb3fe8e97cf379817042f0b5d2ad3d87aa0f86f6ab063953515f6ad45e14e455e49be57d255c7f1c02e62402f3c2f3512e95b953116ca21145441e12afdd6b31513fa4a8d12f04b58bb7a6b031567f99a165668a95580936e132fd478b6ab8cf124ec2f556508506cd6c2e8def50db963a4f5251d1088df02c2f378c690ed4683ee77030059839e403a9057acf2c1c4b503d5fd69f8e9b7f0a42cf5744d287d8bfe55fef35b7d1dd7f47cf9a4fdc417ce1ea649164d1296a7941d7c577bb62da4d163ebdf23b138e5782eed79402ab571eb3b7b87bf7b94e107fb15618ac7bbebc18b525ab98dd7e8cf212d28cf43bcef9377aec74c9c5cb6dea82fc6d079f11b40002a9fb4750506dfde021262523bede54f188994a1e1c2dd69185759933f70d70a9e9591dd3b57544a3780e94c39016801e690d60858cbf98becfd3669e9d029537bafa66f886474b5cbadb0f5a4117cad7e8c80eb190408fe89e6cdb44da4e773b4233070f49560af4f4580f941c1449d60843abf8f4d82ee20c8083582a0fde9852f70fbb45ad122de71207192fe9407e3bef28e2a74ca4b2838662fedebe7094aa798e4c84f2ec6e35d1e4ecdea8dbd12b0646f36a4db41751fa6fb64db45de4a4e19e20634c8911f9b6219f2d8e237f7f879b41b403aedf954c68318b2c7a28ce9b58c4cc7bb0b3c5263185a5336360e6063961d9b871812cf43ab44628d5025dccb0b6632acbacc84e0bd015807bed39b57093318b4b842f3366c1b31e6df20f7bbca88f07afc66702c56c39be5bc453b8f0b7253780a45069c0e0102d04a615e9cab183398931a489e481a73387bca41498fd1aa9cedeb41cd19804a43a76d219fbdf7ea6712cbf5a94465f73455bf02a3f47ab88dc31b3ce0294142f51ccf1545d9ddf5611b50301c4f760214738cf3e49e58d1f66a6dbc1482a63495b9bd56d73f45985f6eb94250ec8efc30c76aede199747fa9890781111c34447f6c85dacc4f3333f4fa8142671b63edb2fc5055b3248dd334060ae3764891e63dcaa9c7e5b714990a22f2c3bc2c3bd042b50052d90782953114f8c4113144372afe7de8cefbf30b38ee5700218c0c4a2655efe912e8770910c4349f2e16bfcb94ee133ddb746b23c320edbe71a2794d2fb1db59d83663166b61e2ad4ed99b50b8f801590bbaa534390e507c3cb79bcd1fa1c2ab5bc1c7d92ac95ba5ae7d17cb57b9e0e509ccb531b7d967a4bb41b21b337340c0efcee314ac6ce65d7c9e12f15464d1d8721ee604ce1cc662844462234e19358674e58c14dc37e6d44533051013b5b910589e2af1b77c331715e9b6dce4589205d824ee159e104e14683aa947651b162be5afa0193a0ea0056741b716a5e2519d935b1f2eb0318549f6eeb890a00b39e343869d9c06d7b3c5cc81147f186aaf1943cb0adc23d5f92557b11cfb8f3a34da213c5a9f6788ad203fe8909bd0637175133034ac503a39f374c07ef0e70e7f390fdbc80a53e045cfd55a062c71d31bf043cfa72ee9159da989bb1ccd23fc2d70b5981289a576f4545b03c57f20bfc12d5395ba282693b4fb75b138312830cf10666302385b4a23b950e99e1e04974c5573ab656138e50565e3b9e23a6693163d3513072d8b50656de1575e624c21982f1c843f2ec2748eee62f32c6375af6f7227a2b7ad604a03583d799605a810e0056e5cb0ee11a8879422131e4640574f89013f23376f4f891a37787290286a47d97de7a15e126356dfb6d8f4d90f4c7209eb8cd740ec6ed58f3edd1e488047dc0d1a53e845c33ef98b8b4ad0236886e38ea45ac604935dc1b8801c9234a9a2dff9e558e7952998f1336ef646812af82b8d246f658b04c25c7997b1818f6f6063dfd7f40dc5ac6c3ba610f69079fc06aaaf292bd6e982f1e5e9e6e4d6f9760d9bd8cea777fc7a0f037556013d3ab2fcc727615f27c74640844df6158d364f566412869fad5d46bdb7eb377b7e6d2885d2685408aa61cb1962fd00e081011443b1d2d26fe087b077298193b8118c84e69ff8e0989175bc37465aa01751a8a6a763422dd3d121a357d6d7812f3b0f509b5fef30a22af0cfa7077fea0deb6ed8ad8ac0e8f8bddb64a80fec23058b5436692ff95bd98c89ff7e2ad1567264a131b765e0574395b80bbea65bdf51fbb0c5a219b4c0b32e2a1f6216b32cc631411248b2d3dd94ad64e73d2f204b64a0300e0a6cf152ac83385b19e73eadf7a10f568a451f26bf68b23f9260e4d16109d03e49da0835a0dd5fe31162807368265f8be93ec9ee134167c15e58a51b6bf7ea3cc35ff854ce9199df78d1ebcf7089ca6716ffedff3bc70a37d00956e13d61843f9ee88c232c5711825880088cd06f68a324ddbc9f5e09abac2e9b5f05fb02ae39b4a4dcfd1ede6a95fe8aba153e4e13be760a124a0aecadeac43a1ec88055d659f57a8fd4185fee6b8b4f3d2a5b6b6bf470bcadfeb49bd4086cc1abdb50b6fe0cdbd9963598fd8899a544e0eaf561aa6fc57efe29bfbf792498dfdc820b299a0acfe6f73eaf3abf8521745d82cc19d86824916091bc4712629ab42c556371d084bb88bff921a86a5a4641254c230ac46ae09bd09a93e3fd65524cc0d139a9f4f055e36cecce5f19ec4b1e6123c053fa3c18a1b01048529238013e754a9bd5d8c6749dfa972ecbcc490c737ab2c1629f02a7ca31a9be0e78520266412d8c2975a48336848cf2ce57575b86c99e8a184fc9129a22e516a10800003fa7a7e3c5f055fb466ad754673b7caaa7d77b67586a587973e7ac26f8a052ea7bcd63405f072a576ea2aed2b9c7020cf228eb1e318eee4848866716563255d243415a993e06e0ae39a614baf41fc46ffc664a93cdd35ad860254e6b3f5fd7865d3609360511f0aea219460b62f63c0234954d066e26f311d80c21550310406e1e388b40a95673b23a9a2940eb9f9d6d9a01266c947d8ac8892781c29dba3986bd70110e1eda8334aaf5bcfcead3237f80cc836f50432ce9219af286b65cb143aa5c7ccb68c472347da911600bed06345db94f92206395eaa89f9b78f40f35f2a4423f9e1719dd00cec493b6da6c4aca74cdb840730d1c3b7da33b6ddb0b4e7e40bb28677aeca671391f7ace5583a386f19958c2de27baf8c62a5df7f930e326c6390f9a97ed6f86858d58030c74efcfe7888abd849474897832991608a3bd2cde18b0744b00fc56a807bc3955f7e1c54bbd520a28f718524f544c243626427ba98b518630db09048c41b3faa6335418e8c97bfc9cd2525729125dca32871c110ddc3e773cc1ba5246977399a572cc591e3a772de94845e869aa35d9498325f329c8ca3058a42e8f296196202333804df4a2b51bc75c9decb0bd95b5efad4091596eaeb532a5dceac286366584b49fb99775bffc5bb2dd4cb5a528e68a59602d6eeede65ae09d203f856b2afc100a2c563ca55b094440ffa66b3323715788611b2cfc64338bfaf3f2b4d86420bb8fbcba3eddb555d39b65ecfdc2d62c8df6bbeffa8adc889485ed054d9359e2451c33b0a7c9e96432fa9b42c1327385ac6072d37a195e0add065f3d19c268807db8f2f2fdf052314bc3927c6d82eb1b0e42bd14a06e4b5194932c3ccb409a2f1efeb392b1e01cd8d2c9eca6e25c6bf340f5d04163c1d88b8388c7075760f1a748996e782ba2f00869a3a2207c14229a0c344bebbc7d46cca60b608968aee68c846e7156baad9809cab789b5284bca024ce67e10874340bab6c60b311566724b0d7104aeef5a90a77a793760b91266861200302a6bd8f3daa81bdb99f8b75ab88c205ee196123ebdc7f69c945f8b1411a16767ec008458ff5aca2e01143614c3a965746bb5b26168924a76be1e6b7a75ca49283be06089d93a6f0efd81e5450502ce69f1ed906483503e6e6c5c0c02ff2d507419a73eeae9e0a8af465442c09c7df4f867ecd169a8e8a1d7dfeb74ac89dfd70c0cbca1f592bc85ebfc3c32a4f7eb5d9495282244a31d4b627ad0d694499cd70069d698c470e75adbc8bb2ca25e722f47956ca21a4fe25663abc8fc946bde366a683e3195b8254f7100c814e30f1a4a283d01816c8916be67621808d87538d1c94b4f55ddb2c97f9e5f4965d48706780fa485cdd4464dda50f3d08a5f8abd73b691d27a5c9417ccbb922cf71734a025ff0af5d591b4695922d9c3af0f50dc535e10e595d1397c992063872d24ee24e12940c999f7b96603daec6d97ebe2e15f3d9f15ba62ade8c2bd3a3a87ccb7b01c6ba07073c69bedad64c608ee6daf4ea355ce7cfbb92d91d8c63425bbddc40c62964e9fdf9977440eeb26d741ead758f299c07df8afe15cb59cc4673c75da916d45b53e0ffb4526f52b4e060bbd227fd32cc454a1ed2183d97d796bdaf0d031b3d08302017ede20b85440fac0e08cba1b6cdc4a7a663d8ebbfb2fd05c238d7ad4ec8457ca815469e15a72771ca745a0aba9c72943aeef46d1b6d07ed3f2938508c68e875d44d7283edd31370540f1c2c7a652d782409787988eb7d653a2800f3851428e9c4d5d02fb936baeb80249b9dd2490926a4055221ca2ee4f2cb990f1521c8c45709449f0980030577948796806fe4fe8d985a7df95daedf2f9a6ceec4dfd9531539acca4cb6d3690d53925bb270a7da17480f933619c6f51d5dda54696854ee2c0dfa1aeea077d573d6c39485cadabbbb32d7965ea58d0ae1e933c428de80a19a0c5ec9321f29b47d4002e8a2f42fff07a3117db71023230a9c061314edd4325190304899ff428814c8724ca32c05c24d3a75f0ade2da029eac88ad6c24af68f382bfc14bb2bbafdc6062d1a89c009c8ac123dd0220a37637a411fa239446cfd88e84ec5d19ed97460035a023c844aca07e399847142e76fc1728259a90fd6fe79e79ab631e9016e0c8736fd1834b00e2b5aadf69f98597b7d3532277887319bf407023f072e4d67025bc0a9cd780d71aea2dfc094832012955c89d313d818947ddc6117eac0d48663c8497d4e101a6b4a8e8f56c64405ca242e95bc98e34dd5b2725bb909b72e2a04d25ae712c01cb94d7a6fd1949ba7411634068a62aedb773db5aa0e19390ad87d5040939f94554da78e5a6a8d6ac80d1184a1aa0441840e1df68638ca5b8934210811b5a6501c9ebcf8b3c70476caf228f5a9c24c38689f48b2509c9deb0d1e2989b0153a7c29ab250c5e6dd308bb2314db2303d3835512688592c18e310822e98902fe079219cda5833c9e74a4859d886c2928d89a4550650dcf131722ab7bd5de95c8202704eb89f95ed389e9a58f8a120b6dc2d0e1f9889dd18e06d6744e2beb6ec89cf611a10d3b600c7244e61da0ff4c893df344de0a4129de2edaf7fc311c0a3a1f83893c0348758ade5798946b591609941900cd0bbb5cccb4883dca7b084e8fd63e82c8550c631484967b705ad1f2b0f410b1cb88e39b399d420233f5bf767b5b32ec24021f4cb03fbcc01236d63ca2a7a3b080375298e90b4087086a3109a4d3ea581f2aebcd0fda092e261c894582a8b2402d612847f09c7bbb6596bcec1b2e4075011d1cea59376708a07152591e1190027338d13e78b3f141f1bfb040b563642e59961ffc89081d9ebb7bc1f22bacef114023e1d69afb070fc956360e6a445cfab8a6a8084ed1998a200de719334abe1e0ffb2286a8b1a86af138dd4f7cd7f97bc011f802b6000b07c83a7549e16c8a2019a7e5f6e3d4bf62c5452d3c14fbc0d9c0469fe1f524732b716859f70722c603eabab46f4fc9e43d63d8499f76c293ab128b8b1b9c861d7a3094eaa1ea243766de5895a1f7c672ea8497f8d3b31737e506996513f47826bc1da0f12bf5f818337d973179c65c9b36365cfc898f820a66358dad386a335e9b16f2943318816d9afdfed2144fc5c4bf453cf0068fa9bbcdb3c47c48921d9ca5fce62fd54093377efb18c389f7ec5b6c389b3a34d9bc049d78d2e5d177aad3e6cf2463022386ce4873d9a36aa730fbbe711bf27616394fa78b50d7b0140dd5af6ceb2cc852d5e1800c5d442b3f7c7c4864cb5d2dfd4bb9d6aae8c80c0dc40ea95ba6b1ebd851732d07d9b24420d633902159e47023de97f0d0ee4523f0e80978f695ad0a0074ab83596d3fe9d73ff960ec75f4b3b53d65acd12b1ba51c1f1ecb4818eca3b224c6425ba84c953b6cc275bf1877df05eb03fff06043d3daea3706009030eefb0fcf077c5c3af9d7580dd7a3728ad3f884d881eff0872358a59ed428ef9d16192ad8c78a7c1b16ed93e32054c7758e5c2b6176e92f6ecfa7badb7a43f17d0ee41a2fca201b55860059ec2d14f0fbf96a170a3899f2b5ba69852ed9817e625579e9c4837989581eadbb0980178890eb7c20c22202bea07369f1b790e2b862b2d99c3c10985242c14065b8ce3226bce13390ffc2ffd5a77830d19a0dc36b804aa527cbb00d7cb9f152b7cda2a211374affb6624b9241f25d955c55f4d7b2b4f0d151aeffdf5221b9b9c940eca4a5ed343d9ddd2538a59057f0d263e1fee0721626828959a62894c37043e3e605f8d1fc54610e9ad2bb876bb21a038fd6fea25472c5367b9126e7070c2b982468cc36a170bb50611f8d821aaf45372712c7396ec7093cf082fe5e9743602f4d409af6629424027c8dbae051105d3e9a61955a1925397d83611cb08b79fd40945a0f82bf5c858257750e20d29f5d3e7758376c15f4aab1d55529ba9ebfbc6f16d26ca84999160a48d3c74eda7d9e649724330c9bb0bba29edfc57347928c8145ce83028b696d305f07fa5892a4b0a7cae4b5a800740b6c796f738e922c61da3b8ea5a7072656cde49d27ed311fc9b5e53bbb3a9b6723f4a8e132e01e549163efac48e88b7184280087c0f34d66e807b49ed18f4bda5354194a061086f75e3d9690f31e278ddf237b70851dff2cbf97bd146e18a237ea4d711fefe86b66132fa730878c4806270f964071c9a7a000dc7c7653f7f467edec78c8e67a7817230f90db1ad4a88ffd7d6788a4d1dac930ba80d51b99faaf30de9ee4c4b06a13f580583547f931e3c56aaaeb4aab3ee0c6f0a5859b1ef3686e5b0c30b6dc5dbb5c97d120303a078b423792c67c7c3b3d56e41254c95b031574efa593a32131e5307e88dc602b5d0ad723e3133c7910dab490a5cda24d16742a71b2d6b07db17cf4996deb1b39b7b0420764c063d73951c4a3e334f548a58ce0c41cce721a5b61b5cdc5493017782579923b2e5574aa5c1bf15c50370f8931ca7fc64a489568b5f6866d61e1cb0681070b6374fed2e14732a1b1ea0db02e82d9a77e35850129c04ce155195cf49412e0db24a86d5ac334d9aca7311e8dd54e534ee05a87346cbc32207a05502e7e12292a598eefe052cd62bcaeca3a8c3954ad94beb37cd1cbff292dfe10ed140db0b4de4c48f44655b15da52e6fec1d59b32ea2340ff9668fa9891c8802f4b3f0f2da2cb54ed8a706c4c4fa1dc55c6c1ddef64ac84b7ffeaed8ef8f1389116ee85c2ac88ca048ac265cc6960667aa9e0964c26fce428a69753822e684ade5c3e3f561d6d95d14c35a46f91049869b1414ccc6f89c5a8dcf413f61bd342e6f3e4266c6fc57e8af900328961e0e7784f7388e89b44b9603cd5c2966da57ad8e7dc8898e695b7da273563494ad783b09161fbec2dccbc5c269914b85de7ef74e19b9eeb0523219a3a16711a1509c87cefed00fd6f2a4f1417863d005721a5265dd6568e29f61e5494a4c44ec8fd49be089b585f1cd8f45111359b438680d1eaed5728232496676dc3067f78ef4f60caee231580b73ab7345bdfd10ee9300faf491ac0fc53e8a7294b38e97901d07ea5874f5891270440ae59df7037e796884adc02885659b27aa0de815e740f43a026001555a77a2ba454046edf145236cbaab5870aef0b044425fd4f9a210fb694e05f11436d322b04c01d3e08240a3ade47ef395337328b648cc08c1f790722317113b9c92bf6034ddaaf95711ad3b116fec5ac883eeceef8ed7acd070043d1edd5fafba2d25d6791e3edfe4e604a7a8f39ff86f595f934b55980544690c033d54bc22fd10d62befca97ddf3049c381cf3a9dba5a4f01b682823175a98c0cdfa60b6a5da000b067f1bb31e678ae18382ec113cf1814ca5fd586bffebb904d3ecdc6ac1d6d92c25909b51901186d40791d7ee3c6aa269a29cbc9c1fef6beacfeda7d4dac60484d383704a354283aed83006236057c4a670c91bb9623e19708089f53c356d87fc1129b3c9e0a2279a97e9b1e42238cd66b6bcb229c80886b003c7467ff07bc866e1220de8600262308f5d46016d55c02131c82da69d43e21b1d5f74d08403fefff8fbca3f4c01029420ec267beb873755d00cb8662a84b4583e243aa8aea09599a4147e11b312deba159647c1bb2e24cf71c0c58003d944a3a9aea50b67cfc6d6062685a2c35b1a1453dd1b2681d09d89b8524246d4dfc83c794a44c28b258aea12f24ba7e8ab3c0e6aee32f06352624fe5fa1ea0c4be8ab9fdd8e3059796407517a0cc3c058a2cdd0aee9ed3979371fb0ea320f0efbb1c7b610f0f8d59243bb69f2c3b98de3e0706e87cd0bd1441f1d59cc8c951aa9e4a53327b13e3177570d6c80de3e2b303f1a2f901227f4dfb0e84a99f55bc0b84cec52241ccb708f485b2ec1268383e8e73665c686dc2a218997a88641f14cce6c309eee29c332e1a36b12845e61e22d8170ab3f070829b38e78c83964d7d9491498f08f683d22c2c9cc12d8633e3a061531f4564d62b32fba160960c0d4f1f70391347349a6a285346dc61369f4489102173394a53a77ed3dee2c81028f15d8a602e1f746133c449dcec6a97f8a520dd354c976dc46301f65335e50b3905495ccb77d8609c403385483901715df306b873f475a86a9e7170a039acc849870345083453889413697180898d9b726d6621ba4e63c9799407fbe38fcf78482616afab82dfb408eeddd89c5662ba420b7ed084fd98bdae125fa6eee8d11a4ea56b9a2be8f85a3654aa7594ac12b6f46fb4000ec59806a22e63d91b710975d36bd28cade89ab48303f89f5e0be85d372da94462ff5e7b0b73541f6593c1ed299557a5173c64da676f2bf7227abd8acee2c52e653f782fa2cce8739422cddefe133bde9df2bc3c4cf0b83e78ddb84362b7f4deee248683ace4a3d8e350eb410f71982de596e97e2c5254e86f3a3e72a8d39434803cceb7b735b8528bca7ee13e70e96094940ff00df4be6cd49b371d5325589760d905fae18f5e0ce0a391e67cf0ea3163406134127ad1da80a0980159303b319e1c30503a0920aad00e2c842e3ba9d2a2407d8432124efe7770dc5fd639a675b61346878acf9b95a71340b673c2bdb16ef22fae43e4cb1880e6130cacd07ab01921ceb402d361e98ad60a68aded2b5d490169649604c5d464a904932740b5580a928a1d2371c601f2a537517e07d907d696b224be0bdc301cb7a04e055747aa72f8f0c5205a6ee071c8df6e8a46fc3a9f06a42c296cc7c88c2847d0afe41893aec771491d8261377c62333678e2381e0222acbc89f0be7106475842169ab77c2838ec2094110821ebb510c65362ff32a62819446f1f45ddfaa45c92a8ff091c12138571019379dc371262e1112eccd82e26dee8e2fe1563e1f563154be40813da54c85d7c81f2a997f7259213ef3977cbd3d26a83a5ac2fe931e279327f204e5943c46464f4c853a9bf9fb47869bff1866182ad34be070eae8d918be31582f9990037edc164ab7588feaf402043214a0d4a919522796ad99a5539a239e4f563a949286f18250921b29aa3f715172135ed444db0c13c23af434b1a267f2bf7dead0efbe91f9da1b39431c05aa612289418ed741a5d90c1dba6fad5bdb23c5e91b413dfe420b4accfdc342fdadb450659410ba60e7901eca151be4d33e33a8264478a0d834167e747e9a88b242f7fb9bbe24b8b171da7aee56f7f466126a50592e3466561414cc93f2d1fd0e98aaee0a54e2f283137867827608b9b8b2cdec71ccb36a1b751e3879e0fb74d9634f690770b675f5549e8062d80cba41572fad0df2964c4c275278aaedb42618847898f602d112c7516c43aadf0616546e801a32ac539e10487e8acdb8559d2b7f549c71c4200824756a6624cd7376e4bfc9239d413fce3a51db700f189f068fb993d90f0f0931d6588de24143b5c2d2b5c0d6560f4822dc02f4dcc6b0564db585a4778b7ecac89105afc5b6e5c77b78f349c903579e34560c9cbf0342a9704d640981f7be3375c93548bf3df73774c71ff68cade815f1a74c1201a0a00a140541f0695d7ae1d94a9c3c651b6dc827b44d5adecd31d35d00e6b45efb3ec1734e7d14ca8b9caffe55a63d044e9bc539757dbdb5c63cb232a05cd41b8100e09b64ca7fd3875e02a7f25e19c183a518598b31cbd038ce292b18d1474fb5a48ac66ec8906c6d6d4bb2e1951b525d90d70f83243c1aebb68b8f7258b77fb30be4acb28f5710c43c723bada758685d9a3f95d4458da37e9cfb2483e0bd90722ed9cb435c37a9fe6d2486c4f267d403518006539ce5aff4c1a8fb90fdfdac34a55fedfbc5ab2e5876f261a76071a65603ad12b8a42c6708450063800bfe40f87bf19af4ce7456d1070114ea2af90ccf373d4544067f21e4b8b113019dc65974633b58904f93caf5f5d68980fac5dc6e6a7010fa8a0ea3d0a11a75d140967c279a0286a4f44c91916618ffe81ddaea9d102f38e19e83fce77a18176648e432843f339891b03df3c3a72d8088a9547114da775d18b9a420c8c3f2355f7029e912623e5da03de10ad8ae6341ce30205382551482c5c99c222ab28fb8e96fab7c7caf3771a7a9babedc4c4ef466f5c37041e0d44eb0c54205a52a50395e2d88bf9cf76cf1643d790ebf3aff01f4ebba5c8b1f53009cb9bdf0d171317362d010f628f90a9079a1a705658993926232cbc23ba5a1ddcd850948a6bcb1662625a4436217bcbbde59652a62465430d8a0c0d0d19ea60224322d30ac0c1ce1a5bacb145f7bc3ecc39e1cfee398b66b793ee8e3ea74b8f1dd7d8a19485ceef7dd2decb7bbad55c4e161f7b6bba17e677dc9797b92eafe3cec7b73e1177887725bd251965541a330ae8421dcd22f88ac0fb4f22f86ac0fbcf26f0c580f79f43f0f580f79f42f00581f79f40f045c4fbcf1ff822f2fe730974bdde7ffa40970eef3f7b6010d7b3fe9b3c9ff4826c23bba4c2279d905d2ea10cf84221bd5262005bfd9f2ccafeb20bf84af9f156bb527200bdfe4f6e91fd6516d09522f4d20806e10183d4f0feb2090c02e43d6528080c82f3fe0d6f28c0fb4be88a79ff0a5f45bc7f075d37bc7f0aba7ebcff0aba66787f17e8b279ff87ae20ef2f035df91d7f4634a24c3fc39e845e57f24447bb07bb92226e122b1ee689dc2456d0509f889bc48918078e153dfe898a33c4df50f3f2d9863f52b3cbeb70934022c6916fb6a4dc8f3a6a57e5e934a0ab3a013d1492bf6a8fc700be6a18f0c75f95c85b42edaa469f9203e8aa6640af59f8abf12efebcdf81bf5fc9e06fa503a39030ea4b19e2746c32f6d6f6e6dbcbddd1b1b374c336ecdaade62ae07fdc20dee622e067b809f820f7006fc335008fbb80afe10af1afef69e8f17d55c0bb18a0262f40884f014124000107b8aa23035c951a2d405c2d2c201825721b29a88fbc75d42d5c27ad9174739363db6478225a28c66d2e17e6199c02dc8635f4637edc14f4e8cf7057d0a36f735da0473fc87d48432b6cd10e7af46f112c6ec8cdd95bd30673618e21bf64ef8fbd9c7c984c58d7caa753451151aac1cb5d9701613d032e05be0177021f81ec6f2e7d085c237a50224a44a09c555932232a40810948408bb93c3c909bc3d770b31d9e015702fff2093c7679104184081d584e2487871d78727841724182419a48150989b574ca9c1641e4c4e9d830ec286aaf1eb9af1cf9ca91afac1ce9e07454594504860eb6875d1d32b1abf91d5cce8fb7b1b379c8e504799b639b57c7d78b2d767186b9cd64a8877a8b6e12a4c8c6491311e5d41475519fc1b59151abc5e5fccd3d6e101110c0ac226f351111ac1e48e344f730315d457bfd2dae858a845ee523e6e5c21c8363a8a9b904f81f77006f737df819ae003ec80dc0db7087b86e0fcfe302f135dc1fde021620c010202eabe787dbb26401020c40003e04e0aa8e865c951a3440dabf871b210d7d1a1926900b93b10b9361f08724cf70399565c3ee0b0d765d729501bb2d79861b44e471f378ab860b8a4bde8a4bedd3d3d340355cfffc6c3972bd30da704131c95b9df443db5699623fb0ab9ae165c3ee0a0d5c4e0c6b89b5d4aeef225d24bb43c8ebeafccde5e16db819eb217029f00fb81578ecaab0321eba065c237e0237e244e046a3a018d730e246246ff5efe0e2d11a473b0c7189f87af1cfabe35daeccbfdc1d0f73ef4fe0429c1d2a7059492c246fe9f07059459725c3e55021accc85d3c1b28a2804402e00be869b83907fdd1dfee6b2de864b3fc8d5e167b837bccdcdffe3e2f035377beca6e4bf41445e020f53b377b91a904052ce41546474848459472ca3cb22835524e4b28872b82d4b00b82d4a2aa994b52a2a2a2a2a2ad9551591617486eaa83d35b0632e478787ca4272787181c1747278d841480e2f2e30980e1d5c8e4c6b8bb93b0fe4f290f3aeabb383901c5e5c6076747278d841480e2f2ed8ed328c0ca73373f7e36fb89c19fe86db91b9e62d9cd986b8443c764f99861b34c4571b6e6a3cef7fb57aa94f71300bc35c30970959afcb727259446314f128d51b4e67e61acc8303c289531c71c411070e91e7c1ed48fa36862de6ea3c90bbc3d770fd795c1ede75739e017702df802b818fc02de269b8f46f6e967f868bc3dbdc1bfec705c0d75c1d1e02b702ff804b81c7ae0986081d8ed2f0f92c7cd22dba6308c9e1c505e688089d9e8fd50556176010987378d8e1b320045f9f1cf0f579c1d7c705c3600ceb00001cf25519f9cce6515e113929f2567f052830010914c183d3993976af0fc2e5d0f041b81d996fb8dce30611f14f84081b8c88cca740605c304699e50b48d305ace97f5d95131aaeaaa812a13a5221792b290257b5e4adfe209ccecc37584594a4db320d37a888ef718388fcebb25c97457431cbc85b379835c4eda9384430ebc85b2ad5dfc0ea7162da5c795c560fa4e9afe1b62c419a5649a5ac8a8a8a8a8aca8a1a45445c1591b7c8303ae3080720d8cd32cc8d4c8686b668d2c40900b84884dd1a7363153970514808bb5886b971898f4feeff1ba7f889b9910a2e02d16cc3104e8808e1726630d29e9056a2bf7f881b7bb8c8d35e733e78c6c111f2638b1dfd1f5c4ed0108f5d9b6c69d8622e7d201787afe102e0795c7fd7cde17bdcec5f57c8df5c1dde86cbfa20f786afb9f987b81007bb33d3708388542299a543d118482bf0f9a4b7c2cb7f352eff793019dfa3dcffdd9edc4484e890c3184500c00169053e6f854f7ac1482e180906234d8c5431128691584bb9ff86ab22625d9513af591da2c5e5509c2d76318fc3e5fc5bd6865d995d97d504d2b40d5f9d387d7fe5397d3f8fcbe201725b926a4f6751a8aef674b5a7ab3d5dede9ba141baeea8cf6fa6b7ecc6073556404b92a2358838adec05cec7176d8a216baef9382dcd6db70bdbfb932fcebd2fc10978877dd99afe1c6f040ae8fc7ae671a6e9003fe6fd0103fc30d2ae2ab031e6688ff716deecbd540cd353888c8bb5c0dd4ecfdbc1aa85986974af9632d41e07e92b7fa1f70bff2b4ebf6b413d0754700bd1e7f5d1f0f03beee112091bf6e91b78cda758faa19d075d3805ed778deff6ad5f5d49eef221d5dd6507bfd3497e580cb6ae2adfe99cb121a81d6a37d7f0cb70509d2f4fbb82d4790a6fffad8efbf4728dabeffa6e199fbfe7bd42e083daea6c6f3fe572b7be1777d72fb6453eb7a57e5a43d98cc03b728419afe064107dbc37a442e67561e17c65f56ac885bbdd541710d2277e5adfefe87f24a1fe597fcc580efbf3cfe6ac0f75becca901970554e9a8caea19f074ec733c52aa2259acc807b9fdc8f6f6f52bb30ec02f3f52b91af5fbf6b57f6f553ed0aea799c22befeaa5d2f5fdfa55d3abefeb74be6ebcbb46bc757fc19f12c766f527b1dbbd061ff5da4fba4bdde617bd83cfa3b5c0ef6f45ea4f65c1e7239306f63879dcb79993be3b5d73a2e109bf63aa8888f4545601c6e606e1011225845c485aebedbe48a7910f27205d043f37091ee937661df7f93eaa5a9d88897b1670d997f014fe61cce0748942746407bfd391c10edf5cf6498ff24f45c5e871b32338c8a48e54445467bfd0cb8aa065cd591b7fa77389d56c6b0aa680b1d6c0fbb3e32036e0f5c0e1d32a9e9e55b19b6cb1fc23cf62f2e435c0778ab7f072e0706c3f676e0845803bbcd43cedf20221e8608ac72d2ad7e1d2e2706ab889ae8e27faa1d9a191b62b001c3bcd8c0a25ab121a562830dd8c35c985f2ecc2e770816979379cba74acafdabfba996723fcbfd58eec7ea22f7afdc4f8594fb53f76bf142ee57b91f2b8adc9f723fd551ee47ddaf850ab9bfbb1fab89dc7fba1f2b8bdc6fbadcfd5a9690fbb7fbb538a1a58d8f75831cf91ce7437d4fd2aeecfbbd4709c52a8661231a910fd0095f3c91bde30b68443fc0286424621c406b0061d6901847c6f087448c83067b0ccf9d35843c9883616b54d11bf691a3700d21090434a42acaad22ea56530134b99d3580a65011e56e38b8eea51d4a19ea60028544888e31e081b53176e7e86043686e8cf4012542e4ef033d72520c69528af4440d25a03449aaf549125214214ad911192ef1a49bd02119caf05b024953b24819765bd7cf71395094327ca4ceb44452867f8223c33f713b2e79a9432da1468a0aaa5351515151314148f32d7194e13bbc350d3a14818c6e408794a0f919d18d204d7f3c5a6aaf1d8eec4bb96951f6264ee4affa83fce5c810be1b59ec469c08639be8e30ce50fe3596aafbfa3c078b4a1362333b2ed4d98f5bd7a3b6f75f556d7189f74bde442d912228fc8f3883c22cf7dd8e8eefb6a6594a10e1aa0321853b13b0ca8a34c9a0ef554a2403008fdfe19a55f59123ae44074c881e89003d12107a2430e44871c28e3a14f8086a6156de43d30887cff3ea35fd55bfd9d1aab270fc5fb6cfc26378644b963f5d77cb2e446898d07c747995072fbb84f7bbdc491da6bcc8a0f334b27c7187fdca72691a07387b24daadc1f13f9464833bf274b864f7fe80ffd69afe9cfaa639b1cd339996c46434cda6b261042082184d29bf890531ef7b9247f2e29d38caffab04728d79b9de199d196653e19110c827d7fb6a45f1b15991125ca8c285166448932234a94196546b91d6f4099514ba7444399cf134ab4194519cafdb6ebbacbfdde10babbbbc4ab968df4d3e59e138e2849261c4a9264489728c9904e91fb3fba244387114f770cc396b1a81d486795a7527c0294fb87862c94f932a01c638c104618a1976344ea5c9464970c5da6faa53df41fed522aba4581c4e8607b3d93da45bf9ffec020d9f74f28fdaa51bad5af861a4f9e4081d251a2e4cf7f1a8e8623535c95da6b0a949b564c31f4291ca8bdf69ff6b0ff64f20d6ba31b1d6ca0a874effddaa8819488a20f448a6e74f0b15a4dac21cd8685321fe52152e21972241f22373adb92568dc59d502a2b77d5e202c3e3ead8e1c3f3415363f3637ba161e369a016eaa16ed2445da454647484e4433c6dc4c3c3c3c3d34748494a4b2eac961c5e1ad0a5b9a115e5c6300dc95fda92b794da657b3437a0cb6a9ab5da92bfaced6997b523802e6b356bb1c8fd76a86be8b73efefac15a0bd1b03737d65a6b6d107c7936ffabaede4c229964897e708a41e4af74acecd9dd5cceed3c6bb5f1464d48ca2bb3a55be4268e57e61e4d482726674658113aff6f027584549a249783cd2cb51d68423007f055bfe295ffa7f520fbaa892e4e7a1a1a2a2a2a8241609c3e7c59347f7e889161e4a970d57991fb2f7342eeff7ee4fe966f0e39ce9086720fc9ee26b15d4e8ad54cb31b673a75a81495d48a8a6595a385e5f28204c423875c582d39562c30312fee03348d90542b29951454ccbb00b90faa3b99feb2a20f55e2364b9572bf76714bf4c18894b40cc33a72c487df121ffbe4feae3e3a6456b9226538f4654348b91fcb86b221968cfae920843460d8a1924330084c869f693c2b3d96a77b52ab6f969165f8333287b27b43d1f90e72fd6f9681658abffe1c9a4396c7d1882d81d8d8e07073d3ee32ff339ee735c7ae7359c9198b66866f27910bc1235b86163ff04809366a9d7995153695de9ab5deb7149079963d534ae92de2667f21bd59ab59d3944f4495ab542b365eebefeabbc9fddd643a681ff107a760ff836c6cff413432f71f3c42eeff6018b971e570b7e195c5d8b3f9084813c3306987822eec75b88137c09796caf057e00df4e97f2c193e3ee23ff8c5cc47b4c7d3c52332005d8e81b4d74518c60d91b9bead5a9d5c0e854154e097634ef897c8cc36fbf0ef2aafecb6c1aff5c6a67573642923a9ad95e57f3619fe8dbfb4af9956313aa5dbdc9c69836ff37937072acbf0237c45207740f6cf40feaab5abf8eb5658048a403df207957ae42f02dd23fc65036cf57721064f197009b921d20a6c96f8c666d82ecf4ca7ed4a08611095d54cf38d2692daa93490824cedbfee85437f363d78ab5d42b4075d4440afbf077f39c05b42b4eb882602ba32008b320eb93304228946f37c2dfb272a8ef60ef097127e44bb624f6700bae208a0d71ff1573b08c61dc01ffd4af82bf6b42b02b53702e88a34805e7f2fc148c31799e4fe276c70b0c8fd71a86b8868c056ef009e84b08e6c44a2dc9848f68f581cf2990ab996a5bf1ab664ca059c1bd2650ae42fed5bd380765b0279f22737446edac71dc057107cbdb73a68f5adb0f9cd448cdaeda93819ae1e044be011b6292291d1230e3c00b18948b4b1305828c36575eb6010bb5d971596c97886ffabcdd84d75407276b5bc75b6316adf0f040718846e13c3d53fd05c4e7d4be967d9a973d9c64df68b7bb86dd9f31787814420b9bd0c244601c2d99e65acda9539c959cd5e3c64f57d855d1b2fe21e280eedb5e39bf61a3a92d9ed020b652cbd598647d0285b8fd0081e2511a1911050b6b2818480008a4b5129dbe951292e01c9202a755113654b65137551546aa21f9f6cb1e9f3d3443e9ee448d956ea489ee4238523c9267228db0c9343b28923c9a19ec993adb6d1cb929fe59a2d4fa6ff55efc943525e9125b783e404f771299aa8bb508a6d0045190051063d42c67012914a0c214d3f18264f96b8c2d82e27c5b2cc445f15d42d67cfec421c79638eafcc1f567fece9578cd179513e9d63120772fefeb17a4737d129bd934d7839c89002134fbe3dc97eb5ab1ffbf8f2a27cba7ee81d63d0d6f92b49fd0cdb566eedbc3db28d3b64b45be38aebd6b0d3528bd96a33ab596bb76d5e56b6dc366f4bb6a66dde1cd99e6cb7cdcb922dcaaad4ebc411a624f2a5b0257f851ba2b2cd9bca369582ca5d3e6553b62ddbbc5cb62ceba2e52c578c666c755819bbc3f2b03e5a9e693e0ea5f8eb40f60969a607b2d720bd6e79f7cf9e70c4ff6ef5434c8ceeab75ebd7aa9bcb719f37255d3e202f21bcd56ffaaf3bfdb7eafe7bd47ba8db5de8adec4f177a4b7bd385deb20ffd6584b7faa653abf65a08ef37c25fcdc1a3fadd4ac3df2a834959aeb807383a214e3f48466ae512f1bcc93ea472ffd6b38c1b6b6e6feb76644e2a87db89b9a39252ef48ab893524cbfd31378643b85b7482b5f1768c31c69b1c3f2a757db794d3366dedc1a634d2195f01b9b607df0416c676394fd4a7c3b89d58ab091ad91a633bc7e544daa63929c5726aad59d65591a309d96de36a6ad5994c768a0c1ffe9cb6d82dc9f991b9835d3f2a856d4a8aca144aa556565856585858522a292c2ca88e8585e5c462e25858587a98b037acb55d65bbbca114629d4b7bfe9d522733ce723916c6ad4d5227cbdbc66d9c69eb4ea7aeab2998922a2a5b5795bacf4625955a59e17252ddca25d5a9545c8ecba4ba954baa63592975f3adb7d3f74cf1b781b875144bbbfa158bc5e5b84bf7f212dbe83e0f2626e69fcb894a1dfdbcacd4ddc718c7c0bcb8b0306ec9b162c1aa9514c65805a7a0708731c6352608693c250716ca7c73287bc442577f4a255209754ea75fe6a69ec755bd8ebbf2f7628f2f7db9e4e54718e45f7ec31b76bc7c095d2c2fbfc20dba502fbf8329e88a79f92be84a79f92ed005f3f21fbe5a2fdf832f1f2fdf06be6278f937f0e5bd7c21d0f5f2f279803dc017cdcb0702be6478893f23f028d7974aea954be2e8ea7f5249761fb9047593385273ea536e12481ca959f5ad9b24c9138f43ff090fc70aec59ff44c571028b238e3870ac58796bb36d5ea96489bcd247486eaacbe3ab52777a6bb7544d8ee9f17566e66d8f9bc40a7fd2e3354e47cb2caf399223f5d0eca4f2c6dcbaae14e4499e247934ce977cc9e6c841332e67cae06ad8233fa296cb99279867f2efb80d6b529ee54ae8a5fcea56e8a57c8edb412fe5636e0a7a290f735da097f2acfb902665835eca0a7a297f8bd8b82137a3de7676de18b229e525ea65ca9bb81c95b727151f6718199dba548b8ca2a20eb5e2392122cafe1505478a6a4b5d999fb747ce71651294289367f64c9ff933a758f2d616dea449f6af292a1b0f20169797f777b9cea43d7f9517ec432d5702c1b4869aa8703a360cf3ee6842e4ada22b8dae3ce3caa32b91bc95923f90c657dbbc3a8456dee872bc8acb89791b3b1816ce2d34a8c79b71250f39eff11e5fe23eed79d08ccf4ce486c0bc8acb818181813e85ffc41475739523874b0e15152ace815cc5b990100b0b6b9bf7e61c57fe4c41851cc252c85b1edfe85a39585e85cb6179695d88c3c2e2495838e7e1c9fe2b96189d56ce8125d016e685a9f95af3b6e626b1a2e1683dab97965a2c97d9c2e550976dde17d6bc2e2e517e9b7998991eb88d82bac85bfe33b7918edaf37ef11c412ddc4441dd242666d54c7a6888ce98bbcdabfa795732bd5cce184a5da6925d2e4c528a028777e78fb7268fb7a0b4b7f4726396e1f64f50fb78cbfd696e0b7903b5e72f2fff9e67638389e09837257b77f64c1e6f2d399429a8106a4fc95b493a5c66c1f2e70bb576dd6af559c71b32a6b79107e4b163470ba5a4a7a7caece0dec61eb0070f1e3eba4ed23ccdb383c7f6367ad0ebd1039e720c7ccc9a139b186589c2a3476cc196e74d2a4cd947941820b9c43285aa80412a1c14c7a5a5dac3dba252a7bd8d3ea00f97b2c5e548a5f63cc619a53d9712eb78ecdea75c66b932a93dffd59550a22c29c5282d382a29b1e89449fe923f491ea7c365f9f385996dde2dafaefcc911732515b28a2b9b786bc85b422d4e27cb72e80d9a2d7561b6994628edf9fb884949ad6ddeec0c2323358e8e9eb4e71f0317912acb8d64c4227f1bc3362f9623138f5b7874e2d8bd3f2f85b94133bfba412dd6caccd7d4db995ff9fa2b9462289f4e3ecc2ddf920f84130092990b715a64e086481c95c8c0c59e22ff1e37fe04451f6ff9c7355a327011a83d19381f3cffcb50531395ba4f26cd1cd36ab5b084d2ad57b5e41843c2609f0406471eacc6668b1dcbdb70392ba54e7e5e66b135dbbc327fcc5d220756c2650b9553ca296cb81c9636ba4f266df37a5edda099cf71837abc8f2b9362b852c95bfe75e6637a3c8c8fa7313c76837a3c9c185e753550730b0ef2f12b3828867fb941ad77b976e626b1e289c799f9c8e9649905572f7471be9cb911fe9818cbcdb28c4176def2713dfff67cf2f8abf5fe32094abb94da15452ef9cb93818aaec17f064ec733c5f26789267b770a75cb9f861c1fdf56d1ae89552b2d548ab76a6161d9796715ed7917baf9dfa422bb507bceba40a0756d524a29e5a55f0397339fde49457bae5a41a5d8e0d09e3b0f42526e90e7a104d0c3ca0d6ab55412ae2e035a88f6dc619e6152d12e3aabf01c73fe9434609886a97ab922550f6445fec8292415edf97b57b6ae1cf2967f0d9c4e2bcfeb237b574ed12d7f1797435faba99abfba10d2a8708f7b84b7fc7f70392b18ca2c7f7046d0b0cddb3300d9e68d99d2e0dae8ca3f75355073c512a83d7f205c0e0b9651bae86f6b88a175e3ddc4dcb0a8566e522a3737f3615e8129a8972918b687657b127717e6d335719bd592a64fee9752c9127894a52d438b156439253cca73283f6010d4db87120b33c41b68ace9b7df5249297fb4a5a661960ffedaeff86b8f24dbfb2d91ed6bd7f6b6ddd343cebe905ee14f66fadb4592ed9558883534c7c7db728598fd36e5c66c5ffb9f9c7d52b6a7cd5a95db3de8ecc3afb77bd061391ef9abababa3fa9f97bf78947229ea6690a63fe5ce6c53dbca66f1b7ca36d3b44b3fd380e74f897cc4b3ca2aab3c7d152ea762a892ba3247952ee57aae5ecaed5ced757b9b85d339fd8663976a4fd37eb342dacb425a8359c5e9c4cf3e55dffee95e402617899fe16f753f999c6393c99a8e1c2e0e3d8f731fa63cecce9e325386fa2c0567d59eee7549e50d6b5f61bef5e3ad7833229353f8ab2951e5462a221013ba2f1ec523352252bbecf7c727edfa8cdc64edaded4e167f2fb5ffeaf6df96e35146f2d7fdfe98148ffc55fbc2c6abf6ecdb8f5c8e76faec72f24fcf597c44a66cbd61120b69af5fb5028d04d0a8ae3dcc5d99eb6909fed672dceb7899dfb086bfd89db89deee777f223d206b3956fdfc4e5589b616a912cb1d9ec377a8b9c9e899cdd0d7f48f22673669f6a4fb110cf5436fada0b699b15a97f42fd707a14fe3ad78f49d9be0ab67fdaaa56fff471cbb287dc004e1a16d24730ebf4db63d95bfc0dc9de7ef676a3f64b3db67d774fdc8ef6d6946d29acb269dba6c269f88bdb66fba79e4e17e66aed5f6bf1866409249b21d92f46c91ff647ba087d26b2cd5ed6b87d448a3764bf61216eef17a168d9f6d86bf88b49197beeb56f41b5a0abf8487358fb4f62cd3e7ded3f0c55fdb5e3b587fee2f1dadbdfee776d6fd67ee47e98d9fe89e22c22c51aec532ef7a86b7a1e57c7efb8322fc4bbdb65380eb587d99afd97d92cabdb67d43e21de8031b1ffd90d17c9f017b39665df9c0fda6ff6b3fb1dc12cfaa7c7ec63df927dfd2f32c9278cfac9b6c79e7b99d3c93ef6a61b9964ec376e27fb221bae59669fe35ee372386d5eaadd8f03597b2b37e77cd0bebebddf114d7b7b65a6f5bb2edfb7bf316997bffd38d42e98edc727c41b62c66f7f723916c32e26c524edb19e5c8edd308b5580fb321f047e1d6f0088932404f7657008f0eb7824d9deafcb36bbdf1139fbedeaa8d86b1749ceee11992b8e4f8835d80b716ce27b2ff456532431ad83c6c96b46e516447128c7c8244728178049f943f2938b989e7bc8e97c3029c7df4cf88349d9f4dc67d7deef26dbf8d595ffb6d47f9dca7fa99447fde792e3bb5afe93c901e63f8ff5dd7f40f2ea23fe72b06ef7a073d6bffffb2be6dd5ddebff33f5d971b9f75617b7f61b7626c72cc2db77bd07dabf75792271ee7e5fd570e93e3d4027361b75e2eec1a72dcd58dcf72e3abeeca4da9dcf82917b687ea2e924ee713fe4c2fb9bbddcf084cca55c3b08b171bb9c9f523e7430a15629c40e6ec529b96a65d38a3f317d2357627833032990516389863582105192020c115a46053041dc0400a2f9220051a69cc00210c2cca905f7cc18c544a0fe81545531c91e18532d2a8a940118c965821045d2c6d81240910d858a38b1ff4e00855c810c7146cb0c408418002c6c4e8133c0a599eb2945262f3076060d6941aaab22be38aecfeabfaa9d52ac32fbe00841f9091bf141324424a442842146db4800c10d0644ae913805e60451661d0c2046bcc208162063ab8228a272298420f742284a2222908b1800b2f5001922652c0022fa054e1032d92100306d678c32705638c000d38280085102c010c3e70428c3454a0833c4bd004e563e98d2564618a204cc10b27aa0cc328c14fde320ca3044a7870aaffe190b790e77449318ad12235723021ae4c8c62188629c933528cd229461379ce39e79c73d229bbfcdd64ffbcec364c58c9fe9f46f6affeb04b752bb2e4afc36880e4066f2ca10655a0a209152b7843250b12b45a4a4b6f20418c183ca1046ed0e084c70926446902859011d8607963b461822c0425a9a209a103a42184285c117484262d6822846a92c54a8f0e80a00a1e1af014410449ad4412d07842d1154a50a468c282d317455fb0f0f0800ac200062d1801080a2c766448f48328792543274d7841b6a7c6648c3146ec73e6ab8abfac7ef6125720393e9d32bdb52bebcf1e7b9bddacb3ff2ec35947b386137fabec2f89d30f2512ec8c5d3fee2e8915f39f781c2bbe7e59fbe5530c6f4822cadb1906911942576ff27ed2d5ff49efa457f72d7f1287ce4d4a77344c1982418410a40007988e9a2118629cf1ed922b1799a8655564f9f2a594f3b58c28db2131fcab95642294a594524ebcea9794388637a4e809a3080a3c4fe07c9d1458ecc8ce86124ab0851940f18612173ccd300c2986a81443390a012261074f480118a4d0061c6cc8900104a51b9c200a32bc6803073eacc0038e60052b7e94602145131d108c104c710537a4001a9ac2a43380418b194001470eccb8c20f70908121c619151fe1048b2df860e88da325275b606122fac1095658748195460c7ed4100a4113204801165d9ca1e3d260c61551888146141de8400d33a4d0841751c0d185164dde50b9c1ea8150818b134cd10535a0b002025160c38b2994600a30d0c0a2e74484c50a52626c60030a39f002880963f07ce10736d30758c068cf393de98e67b0ccd0cccabf68410b9ef0e2c4f5feca65e52f99309a0c25f12294e9979491f1887c804617f993b1992ed0029327262666a04e1912317152853a0140a1ff40cb79e204651c299d91021b00592fa230729836788aa068030c5564714406231862820c4c90e407075c184e74215f7a00c71b58346185132dc280e40921b471f402378848a0051f8060fa000ace450933d0988209d800c3164ed05d0c010b52765d4ab5247f1d36038c4e2fbe088a4286a80b1c0481408648e6c8f08b2f4c21731912f9000a1f87b0a31b327acb8e328bb531a75b2ac37884ce259555089b4a994aa9a4a41ba155b0fa5641173fc2983928367e104218a55137bf4e77e7813470361736ab189dd21b9f20a4995e58e9de10b634390c96a8a0220987261ce548c484496e424fc6c186fee7eeee94fee7eeeef47377772a45b77279191610f5614640f3e0507c83b6affed27092276e70ea6fb8a7e2d8efef3078b5af370bd2b27b4496ef94523a25cb001027fb2520110e07ea73207b1a72b3fc6166390622c336b42512acc01e7e16376bc57cec263144e6393de0c94d4b02019187878707cb309c611a86b0f56559a23090fd232a3bab00f6b50fc262ed8380a81314814919090e129cfe29f1179364df25d1de2f4a8a0e09b89471ec47f8e313e2f44aa7213a67aa38eb29a574b7c229752e875a91b19e66c89652ca295dbaaa8d9c070639a35ffd24c62e76b18b9dc48d14db62aa16c4d89dffe492c8a12fb79c61a9958b96eb8d497894c41ecff51e39426909253ad72b01071831820142cc69ca3ec6cfa29d37cb35dbb6becd4bb3959356bf718af8f3e37149f4d14cf3a9cd90d3a2504400105b9609b9b9c938a86932a90ecbf065dd524652406c6cecc62591135fa65639de204dfa8ce7c92472b0e77ed31ebe0b734090f6d6469f320a75ab7fe372248e54a42215b97f2be23a42192b6792a658dbd485c79350f7d57cd42e556ef9014092b760927d87d2ad7f67e6aedb917593b5723b9ebbb7d936b91ea05f91fdb99dcedd5bed77b4ef1e7243b4ef10a082a123007aebf326d977b0ac3dea6da761ed23a7f356bb3b306baf6156ad986663f616fb81cbdadbeeeeee76777797524a39e79c94520cd37057830efbcaed6c1b8759356f18b793f25c0ac77119e0de6e0f75302ca7bce96239e52211e340e11d2c7710d29cb0e93b56f7454e6ffa0ea35ed0b1869cdef4278ce4df5efdc8edac64cdf4367bbb549494d4a449ec8171297b8c31c6d845d9fdbbbbdbe74f76777729a59c4db2cf499d9ab0c974bb2a3aecabe9d461d6909abbafb9c35f06f2f6ac21359fbee613fe3290b56f6ee7f4a6776ec8091f657f1316d259e1b0ce4ade306ccf622ae4f991fc9630ca467cc8b3e8e23b769f0c753cf1de011314387683c34dcf52bb5437d428374d83d223da051a07fcd14f8bfc4591bc75d42eaad45e1ad045dd805e11ed828791db89a07f015fd89207cad8923132b60408b624f73b96047b22f7633c14c95f4ee3a04b4e91dce512559abe5125aa84511a07ed42d02ac34c9813511f12604348b0f614bbf8cda1ec9c9bb8c86df369876d12aba6b7759b950b00928c7a4127f337af68d3db6c9a3e243bd99bbeb921d99bded2cdb91c2428c72a40ea557e881426cafd2a43406f7db3c90ecdd96f54879eb8ec23a713e3c859c718638cb1b91f54b97bdbddddddeeeeee524a29e79c93528a6119ee74c0bdad5b763b1d706f35ee85340a85b9afdc4ecaa3525018f55c06746072f728ac63b90e2311b9b712e374684622c64133e436bc43b369881bb23dd603ccd96b1fb99d9d1887b55f218410421bb326b9fb638c31c6bc257993a4fe598a452db91d9ab7b7be61b7fe24b9fbe476a6c48aa49494db9173694e8cdb71fa5121242ab7d379fb8e075df6da67dc4eccdb5b6dc3381fb0ccbd357d483286b1af19c39efb9ab91deeb7776e08a71df5fbb4f8d37abcdc479f3cca8d3f3a5f88538961078cb2918a832baa5360985c7421841c5f23824ef8020a8d880c4b34893423ad483bd2d2d08afca52179eba85d9a52075c64610d99552e9c9069097028a5943a96557291844c95e0504a29addfaddaabff75b9d230327d497fa394d2879576f1e96f94523a65b665d84512bc9067865d28818ce904181946318a9d61293502bde95c6a14e10d2f6e300436ceb8c9be041e0415818b29d698010d8ae88c22053ce0c209b4b0021a5cbc20e3c206f72524094c8c200223043dd9019d74d225191722d0a670c58f1fd9bf06613af542a80a958b2632b8060d7ab20004161441698a2048810b821b26578a1b5318630b1a5441033004e128086260128c4c6267582f5460043ae9945dec32f4420530984e7c64010b4159f04116de28726203339c28084c566ac8cab0c21a50ae808617521912050128db0cbb98c214aef057e3c0af50e6e5c37f7ff9c3f7fca5e978fcba0fbf077ffdc307c25f310f5f087fc1bc3c7c23fce5f2f08f70253cf2f8abc75fac872d0f3ffef82bc7c3d5c38f42fe6279f871c85faa871f9bf8ab47ebe1c7a268b43d547998827af871c95fddc36f9eeef197e9e1b78ff78fbfb299ec372482a8a7e78458a27bd3cacaa3e2a9d5f568f5f81915cda73c129c5327c36332fcf64870682e102a1feda42c2b96550e1697d58bcb0b4c4b1233299615cd4f9ab7ac9fb949c44f028920b2d77ee6934022887eff19bc037390fc24845822e6b9cf5e8825fe4d49c45f59f99abf8f04c7c69bc4cc23914410ac20bc4f7d0a7f20e6bd8738321f042b88d4fb781ff803383bde0010c7c7dbc80121f391036207e480f0819d38f158b9ac9ac78f04c7ce5c03409c24dea7de462e8898f77e4688ffd4434e08eebd879c10a64f61d6ccfb23c111d242dabbac99d71e094ecd0542c7dbd64d7d8fbb12717a5c56105ef71e660581bdf71ed6baa72d86df1ee2a8546f5bd7c5e55df00758ac7d59cd0973230ee47282e8bbdcd6bfdc1e0f73210ecc0b69dbba32981544eb655e067f20e65b98158416c36b3dee0ecc0aa2c7b7be853ff0df03b382f0eff13df007bcf787381087c78d38366e3c82640e103c5e487bbd841541442cf880083c383ebef54b30e17d8ff7d1c24c7818760d5f5791e37f80891e98c7d5b0c2121e9cec33211e3b6ef5567c99abe3da782b3ebe3742bc15ff6f0fde8a1f7381f0567c982b84b7e2bf5c07782bbecb35827563cb8d3e396e5cdd08e4adf82cf155370e792bfeca8d4dbc153f752391b7e2abc44fb931c95bf151372a792b7e77e392b7e29f6e9b6ef7782b3e77dbe7b264d8703ca2c1918735f3ac20b2c79eb7e267b8812e4b060c44c5b108c3d188060341f111132bc19ac14048cc0aa21fbfb7e237ee1f6fc5472299f02191726ca1fcd51cb700ca9008083cf9eba11c9f26432220b8917b0806e9204d3440e3546f15a1fb7a481ef96bbeb104c4c3c3c3d30451137f452d626005d190d011528eef4042fe1af217129cf8de04a3c10d6ad053e46eb4e433e42f5864e4af152a7c210b3f3c38118910e240f257c489df4bfebae106464338f19da7e847f27827f90be2788f1190ecc9b195249257312bd5e20b21908ebb558aa89b6d689ee1634ec3088115462033b1165580c28b28a67422e931191269314656c9f08b2708e5afa35db0b11ac071200cbcf0c2093d5a7091444786445ab8408b1244d1b4242c246191461a2100230c1340a9370072c40971aca0c9132ba8810856320cc30468649a61182720816441193f613401c50a425a3c51b34892340431a982073ad801d29227154002139468a102276c2086d015d3891016dc0c4998c247054d28420d4630011c3cd182163150020ac0f0828a13d0139080fee041054544c0c1185ab0c2892dc32e965ef075fe62acde82b7887f96a17f3b131149777c823a18a2905286886a61043259407942460a61e15f300304591839e1850a74906586445924c1d77cd117f6b5622e3f76b0d53fef6442c6222c9471d48e1a49edc12c73d7ae0f096a470d2736c26e9343e8c547d5f6baf61a07758e61b76044eda871467b30ab6448944512327c28032313fc6127ebd6bd572901198431a86830c810cadf0a0c22fce47e979691996e5ddaf8b27ac445fcebfba7c59fee5f679ab30c7ff1e5db17e2118925327d1b3f0345e447b911755936b921f333fccdf9f18bf8d7b8b517313aa9a4dc90223e8b78e4fce72d225f6efd8a38fd91b3b191b2d142e8e06aeb52f1572eb17749ac88dd80d7b44ccb322dcbb44cd328a5af515a5d56353ea59452ba1d993589b5b1ebbe914ac82d95658c2eb03676b0dff117bdf6a49432cbaca536cbb08b61987c2b5b4a4823df45769d90761c743219a3f5932ee91dfb064aa94631a554a39452ade28a39a594522cb365918ac052ec78560b638430c28f30460961062184f57e479cce643a7f66eb5bcbb9c9c9e9481d8973c5eec54f26d387f8fd25104843e9f73bad9fbb3b9c360b0bf17793a3cdbc5e7bf06d47b7be2d91e76358c5b08a61159b55ba497273a316d36a96550db3749b9c34f9a9bbd8f0648a9006fea4b13b3ae9b0d8bd63b748ff8b31628f61ee2becc69c6a1774c1307c24c6ffa17e91f8186e0cab185631acd65ae7c4a27449efc6b05a6bc5f2218df6b53d6d62188661988c31da98137fd36e0c42d75b8c31c27a84cbce19e3fc2fc6d83dbf678cf1e3cbe972ce19638d3fe79c73ce39e79c73ce39e79c73ce39e79c73ce39e7acf588ccb1b66036abb8ca2cf60d59fdac1ee9af5f5fb6576b7d586fad5f718d314eecf08ddce4e8ef238a8532b2c77dcefaf256af9b1b9d7112b1ae9e496ddacbe5f85b6bda22e672debd2d97c355a2d46aebea9169e3a7289d696f4e19249f4cf625fc886f95b1f9edcdef2dbaef264f4cbf6640e8b06d9b73ce59dba31ba5f4e71769a798ce774d4aaa517a7db2bfed12f8953f6f2b8935fe14774f9720d6f8cff75bdba73dafb5baffbcb57ed6671891b15917cb7d86d55adfbf564a29a5544a39a7f6a96f4ffb6fef48f62d4f29a59452e2af72394af0f0f0349169bb28a5e9fc338f6e3359cdfe357bffece96bdc10ffcc9f62f78ed5c896a5fc285dd2bbdb9dfa26ff73770e4af993524a29d5b417e2dcd56a7b765a7b04876c629a922ee99d63df50dbeb1f69e9d1df81ccb49775028034d95b779cb9ccfedbcbb6eaee9eb9bcc9d967abf632235976c2de717452293dd2ee1e9d74df16a19396ffd953126be19b93ce5b7eaa5d2d535d1633d93fd5aec6fe9b734e6a043af16ed2999af34ddaa9d10cdb52edfa5c3ae96472bf4cbb646feda5daeb4ee6944ba0bdf82ea41db3867c31cf23324ba46fbe4492ed9cf42546e99029bf2333cf9f1fa514c87cecfdb2e8d75a6d3ef9f3e91d2265c430ec33028de8cb09b921ac21f393382233123bb3cc901b12e7ed4c718cd9e57f8e9390d9c88d11e82423c9b65d4e8a6d4ae42d2620ca1659860cc3b88192aef02de4768cc87362f3b18fde5cc9df6ecc5cf6106bcde93f9fa57d91eceb6bd9d7cfb0afd8883c8dac3210f9836f6495fb3bbe6bed4016b66bca0dc3b0ee0ca317e69ef32127ff0664dcd9ef8dbfbf5db55f1027be77dff93de777fbcb9ff690e4e912238165dfdaabdf5e84d215ebeebec95f0fb9c8e9edf7d54ef8bbc9a7b78f5d999cb9e47eb134fe3216fcd5bc72bb07ddf6f151d7a5bdf7bff1178b0bf5fe3cb42be5fd7b6897cafb0ba05d9b296572317daa3fe5f6a33afc9d5ebe10cfa72424b7d26ecd2e362293e947ce0797266d4021d3c7aa8ca75a86c1fa43990994b557ca76db4e68745fd5a9b97ea470d3b2d30943c7906805f1078b7ec31f34d23044fa6c2cb41fb78ff6b32ccbb22c833088cb7f3639c39f1120f88b1cf783cd9afd8ddb49f9967769177c98e325941cbfcaf1f62d976353d7e5e9ad2a2915cbea21647d63f8eb561afe3ec39f67f157933f98846ddbb61d69ec16a110b56d1816f31a0af5d90b69ede507147ec15f67eca552d658f8ab415ae1cf5b020bfebe0c15fe5662a480ac0ab6d6e2efb336597b5c047bbaa90c806a9fc5fc863f9935ccaa2c2fb9d38c79d37f17b74df5357e4aca6f3676fff8ab89c12f98b5c22cd87e6551e1cce56adc8ea6fa2ccbbecbde94fdccfe943d97b14855ad1308c330244b682fa14838f25751d8f6128a8c523114ea33a9545f62a14aa55c9fbe4debe640016559fba83df636b9aac822f651311e01a9680944653411a38b6883f69f4dd6ec57d4db2dbb5ffc28ae1845550925d6509757b930bf72e3a77c9fbf9ad24674ab677931ffd554973722067f35de0bfebcff15fe56f9834927fc7547d9293b695a26738659ac8f4fbdd535b9e6bfab99112059fbcf08907cfa97ff6c72d44ebffa4f7aab77f9c9ed685fe4e4f292fb61cb9acdab6573b3fdcfcb81b2f87bc19f4da62fb1e0b2cdccba30d3cce280c442bc81fe7f3fb27df8cd600448cefeb3c9d6e2cf0890bcd90c17d9fef4f63fe9c3f6a7df64669d1e48b637d9e290adb5169221adfda01af657d206064979fb01a53ba8348b180ba39a748a21910100000000d315003020140e8904e3e1384d43d10f14800e84a8544e481ec9c2308851144429660c31840000081063666868260e9508ba105d5b444b511b30e76e69b6b60c4aba29bddb069816740e87e2b6d666fbf09bbc3e512a3e617b35f85c424980e76f56574341f1817986610a2129875f0e782cf4715a41e18c202ad9c5aaface8c912cff8af99a4be08a2457f4de02dee98736f7a98bc33f6a7dbbbcca75e5a70922a3b544af81b28be3a41ba797450a3dc58dffe5866a449f069ebf8aafdffa2506bb8e8f391c063eb86093dff15088fedc24ea87a4a9bf6cb869d0c3cb8529d89ae4463e8f51916d4ad5c3bf2f288338327b69a3e2288352d7d132cb1a81db96dfed08adf8b5a06b739e2910c0c02f7f3b5a3549e0a13275d6e99220d754618479912d76ff7dc166bdc22f6353a722db7cd3592ff5b1d1e93c9ad325b6e5f732eca0f5d241f02a94daad816a0a0fba28536c7c356be3ce1d90c7c7beaee5c83deed1c91646892c2542e7194f1837e8e199c2791ff257f23f3b474c6c22310ebc8fb0ca91549df388568bff86151808656215056c1afeca2ffc455c88885537b4cdb84ca8cc3e55f03c091996c388f94c130ede3212dc7f24b05a0d5871095cd3ccb4dd9049b3b73b03dc3ed3f874c9243014e567326b25b7dac6f1df0dfd69dcaeddb6341f6ce0921a3ddf11f2e66fdd9400cd9d63e03e8cd6a1ff0e00a69366c442e35b9c4a648248a4d3ebe1e29b33d9671f5f5a3d8aa23425192269e5497591d8bbf71f02ae40b74c626d9e0f6a0134ba5432e9ccb10161ef224a053c7c5230a8febd860b849a2817567d6c466d71c40ac7313e1220842bd2b09546f8b7faf1b10534a214efaaa555eba56ba7ae29ac6ebbeefeb6a5c7e857083b11c65b9eb07d54c51fb0c881055997f8e0f1d3ad5ff512a71e1ff040527d25f7df4e9c1e5948b18b83b13f9497a67beb40c63af1161485fe92b570cfa8a54b65b64b9884274e589fe111666bdb4089f126809eb1a547b0de9fc49c4ac23b95d34d4410ae3cd7d8bc87f0d7a05795c7a883596ad6235afe6836e5f0775f073f3c8d363ed4f37b5845eb41e28df1f358f610c004d5bffe8130a8c5bdb55ec5a1352fa4ce9535b7deead8f8c67d2027d20cbe8bf612a28794e1abf25137cee01c6b35491cbb6af806720c83f537c02683ab2e652aa5fe81326af15c7507653566a4ee0151522059a4ba95b59c7ebb3cd8b5ca9b713980c161dfc754ccbebc191a902d8f3c81dfda2a94f793517bd8ae4232d5baa87b59fce61f381ba77aa50c84d96cc20412289af4b9d0048fe40104e102f50057de63f9dd8964a764c0f70126c59e44de43a0d9fc17798a5ae2fa451806f10bc4fbe98c4bd916ea0610d25fd7e78840b8abbb29a3feeda5041c594506e2e7758999d0c10a6587d972fa0e34f1033b1887785268d6355265eadcf6e822533ca1ccbe1f8ba3ad92185e4b9c5784ee56c4c5c0519b5ec5cc95911b1ef65fee57bfa8ba520d37392d10c3f065b62d352d81bf8040bc05d4e44ef07b483a3ee815e362ff3dd7aa65ca4ad0407fdfc82e0f30fdb09b71b94d98bd3df2f5b598055a620a159ad7a21a03e3fee4863cb3dc0952c698fc94d75a00cc03260b651435fe44f6d78c2a5b9fefe0c9e177ebccf420e82c00c2da993d5ca3fdff083fca128f1b2106b8abf081ded1c4e5f30ce92bcb7ae2026b671ac8bd775841dc10bf28fa2a02d065f6a6908e15afa95abcc09873808900843762343094e0c0601ee82ec33406bbad75c0c5f3b909023e8c5faac3b2ab55b883587ae43118f419162d596c6f087f208ecb403942fba9d224982dae763bd1577b10ee0cd825224652a751a133d4586144500ec3eed30d312ca22e620c02892e606117d15876d7153644962fb0f998b0af5efb5640b4d9adc25efffca46cb9b08f8be767d481e4365dfbc97e319a67e15f7133be9312d9c9e055c0939f8a2ec13cdc00787193764add653411445553cb202ad8ba928d8eff4fd1dd45ea00d3bca50dc843f05a8874a2a34fb627875101481cecffc41e201c25336455e7f8812e20c6ba75a7f26bb465d73b1febbc03a00bb4c41e2bc1f358891d04f0d46705dcf318d6049088f60cadcb32032ac870b93ea23786d701f3337a0dcd7af079d451d7474c4a9ddc2a18834be662b224377258b0e99ad92df71630199384b60f727e0360e243c936849ddb1061a3b81cae9bbd545177a18aab38fa6c65dc70f71e74042de4b2f3ad3e0b7cee50637fc8e44a08b112d1088872e2fae115deb44ed3d31ecae688580f49f8a84f3729135319ebe03b4038b2e367c3f252b6e2588cf318a11785409fc6191dab054f2b52dba7314c27fd6777ce3752077c06c46c58cf65e933589323a390b000d6ff926db87c3f90197e902aa44f19b31e8b55b330b1be7a34a1dc59fe16cad36249fcea235b3e3a88f1949b396854055a1e2805b1cc0c83b33c951c9417b326960a2d3a2c4403f5f2f3c8a4a37a05956a789ac7dd6099ce43463ba0973ac151dcb7f50fabce96a96d7d534d3b4cadeaf8d570f61b681a17beba232895218f9751387b250789b58480960f9bd88eefa86fd5db97b4656887fe401ceec1912aa6e4dce56e4be179d655c21dfce2ca9064231d605f112152b5bc032f1714804980e531544b33a6b8cc0fefd9fdf58db5a24dacf4c49dbbefdb3086fc8dbbe7b78a52468292619cc5c30d9eba048cfbc6a634980d8d0b5ccd08e59a0bc3b7436efb253d221842580d5be499d1e29b0a1bc5b06a9463f1c0595cf3fa2b0d46994628187917f5911b9762cd3b58de7b69c072c938f3b1385d8be6fb069a2de93a2f490da6547d0350351c8023c5274f5e3b560951b85133e8f8a930ca11f860b9f04ecc6a8225c3db0cfc9807ed005c724b4a08f90c178ac9097d1cc004d6267ea654e1038ccc45b3f1f0a1d08120c549f9e6204ff62f89035233aefe4312b5a5ed5d17c3a838ac73fe01b33af941cb423230697880f82b48777fc45a697a0810053475d5ecb408c8412436e4087469417edf32894c7f8b796bbd9f5e92c8a94bb0c99f886c3b2323b2c394d7499d4846d2fe3920704989aaec86d7780b2cb0e2ab42eddcb5d1f1bb1e83f93b6a40d58eb7f9bcd1690b6ef1ea5fa30f272390debbbdfbe938a6cc9aca7c5787fe47095f0ab2b15dd9a1e5f2fc2b1cdc119885b7dfe9a9a58615c2434f60ab26341f0cfa7cb6f4bc9a4f9114ba7fbd58469728150a3a33239949038c927de048015c5a9c3a2f8fc1600630783fa9c952d5678479c6fb5eb4ac4a8bf6ac4a0a989e8c03e7c131604eec70723965df30dab3969d3f6951e35ed0ba0fc33ff2115cb4cadab2fbb4c17640cd5179e15190ea635e2634f1ba9d57e396c3c9a5532175124ab1d024e49b8e1bf0565f5ef17f5a297a27c1ef13bc3d02dd41307b09bc9bc0f711685702ed43f05d82be4bc0f608769f23304fe2731a5e529b597f92574ed3b8ae805e29daf5357738d71e10ccdd22b5306592ea2a287cdc45fe6e154109b83711da721c7d853f60734be34edc01648b89db78f1c94e5dd50b4c2e8890dc2d11690926acabf8322f5202e5e4c21c3813f705946f87b6e038f0cfc8ec84bc1530f9f49b8e3a02ca0e2cce22e316270808b4ccf8695a655fb3538d236aa05ae7ff9a32f36f0aecdb85dbaba51ff7621f43ef448a2fe9f220b41f41480421cbcb6d91005a53278aeee5c877d2bec72082c5a0f4189393a0f6e0ae768e2d1958584de3c19dc2284eb446307ed5c47b84a328fd452b571e7e81a213f928b27628f4c084cfa7945b24658a7a8768ca949b85e0a261804bed03f85e956d7c50b10061a80888e3cbb51ee3c1dba943871fda668675426d78b17682ffd88ff9b0db44e4f082605857f0103dbaee2104d85b5ff13fdd8719b04867b9c17e1f215e6de60cc80830ee76bdebf20119c5400100d22b26e748323d99923feebd7031cfbd061ca2b9b74325a9da394f8d4cd2bc387b75fa46d05b322fef2bea0fc968a61d5241ccd3df269ba1dc579f8f2b4a244283f9a69e5d0b643392f35e7d9e9e35bf71f7d15a79897d87c734a46cd6bae38e0c57c42a1116c10d67c5ba5069644da9b468d046666f6e221a9739b43b9060071bff2aa6e80f8cd3c08f913d9c5972a5fa628f17fab01bf925347439a4522c8340a36ff12c21e837b59f0c6d761719df830856a67689f0e2c546c6edcdfdda0e0ee4249deebbd9957a148b615b6429385025f97860d738dfeb792583d34d871cc949269312a1f325c700326f7981676ea4568d3b67e249c310d026bd487ba3d2a8e1b9f6ce9ffdc5bd7621203dfa1ee835088479569f1e183bbd4ecd463c46e469194d6cff96711de2d3748a4a2310f14d006b1cf71a14b8515faafad92f321d5cc686128a4445172f8db1624e522d20563faa6cc0f5e640862e84e171139caa22000199c886b65a951c7a0eebd3a9c8c93d92eeb29147b6d705f6e540c88bc6c847465d8059da590e0dbdf6acd171787a7800a0e13f73df78540898c7561479a0e363ee692a623cfa1f0ba3b1bd046d97bbab28f120a67f27282e21ead4fcabacb84df934b6e2733fb6b50e56936a285cef6b7c617d90ef5ccaa312141d0d8dfc2cb04af483491e875e6f5ebcf7c69257db1f8fae398519807c856cfc3efc5a5a4081187249bf9b7dc3004c6c447e14e1f0209d297ba732b93c053c3085ddd9e8cea7d00ec9612fbb157bf158786732c3c8e3222a202678d0667c96a1e3777278004330b1230536c69e5106d681f349399db18eb9b1a7b8e9ff7ca00287a7c3349ee0d0c779457f63afcdda87557af9e27c7a9a7ed06a362980be999da3c752ff5fb58c22164f607a11d8df7d930190f7c1170d38b3235bfb7c0d9b0e37b3eef0ec5760fbbb80063b50b9a28adf0e5d73130177ecc7507c89ab5b9817dc77e51c57d1743dbb1b2f025eed59e09b190b65bd5ff6aa086e1ca6ea573fd532fe33778ded4a182b2b0aca8b1e3e4dac6aeba0fc56a97154968d0e46ae8c8c015817ca9414bac38bf588cc7221255b6800004ca58a6d2daee6b1856062e7fe426b3f81da51dc34d08e8be33171da4fdeb656cff88fdbd4e1837ebbae4fdc62f032ded2624c44ae98d51e0b445a6164968daabf745796db2d101a9c7f2bd5094a97223fb3200eb09d8432b1c9e1628bcb86f537d9cd953e6a7a8c93917a08e121116ef6bfea23eb495b6a81fa9d53445aab4ffd88ba5be205d9aeadc2de57062797a5211b556f83b0a7ff6af1dd93a77106870ddaaeb0918716fa95f457b2f605e5edca05366babad6232d122b58688d27802df0488ec4dd5cbbdd93147f25a030f9edb2ebee7f72b21e28407e09719c0ab65ca00204782a00f6dfa118a06cf35bed338a6fc7bad734db69d4e8b5cab7a5b627483eb4d0627d8c95dc3384f34f613bd03f8efeb230d3e5aac1461070801372e8d5174f4029340b6425986b312a3c5a9279070588329a888e0cef1fb7fd45915b8f87a06b8a22a22e9f4997d50698d352ad2bad9368650ee7e2fcccae464dc146e9efcc02a2293be575f4024fb2f31a5af8036e7b03d9c99c22564f50bedb3ffe796983e80aa8a69f1808dd858e8941387867d9c61a6db7ecdb28886bdefd02ce6da312647ae82ec5d14a93e0ec47b267b77b4326cc8e25e6947470822d13e7710b2fb429cc9c3a40d91439995d0052a82c0ddfc5259765d43f916f48da4a878c13cc385002410148b71cb781a23c19137926f814e718592fa3174b79d9acb9220ca501626460bf9b7e0c1247fb71a53c6bf2e6113c1adc10127c2f75748b3e1f0d586e648575543a8908e3f1c50a967a888b18b0c81f8c5273379f9a5c34cbfe85c0fcb72f379443621b1595daa34ac490902492d6e9194a23db040c46a945875dfbdc1fc435fb998ec497b88d7c7655261dc0b38e80d80cc16afc79a1deb1d8da07f63d57a0881dcc9b496e18c473ec7a3e1b7f20937c26f9eb7bc78f869d95697d03356589185f87cfcb1f86191c627166d7c624bc337961bbf63b9e1855888240a807d9ad811314aad1a4be2c4f4e00a973e5fe9819a1145d34e351c97931b74aa48b04de58f8bfdf496c0fd8dc87bf3f6c5f24071d189cc88e35148c1fb63f88522ebf8dc8f8f52da880decb6b1533579f04a179964ee9f4c16f8d9073abbc48ff409395ff38a912d0f1895fae4930dd3379d00d479ac751fa489e4566e3f8e8c41e8255f10f5e15854a1a95e45f087f13250926d5e3fbdff8bb75128f391dda108a9e60bc5ef39a38a35dc06e948a915222b3b9e6875998ae54771658a3270f5212c7c0542d6e09d55c277316a4aea5d2b2adf6c0cdd3eccbec41966af3acfdee276db12c00e5bfdfce86b02f6a956a5181387c286589e32a016140e8d0b8bbcbf089e0f09f541b90c7918c819e98f8c6c034a3203b2d5b5610a03736095de9ab2e2e2506c570e007468927cde88f1a8f78adf51bcad7e009ed9d0dc2c3f361f8c046dfa4356761d00bff319e1a41847c92ab81de5c20e21932107b3e679eb2144756cc6f24737748a643a39dd150cd4f1a727ed749a7119ff0a993ac45bed090fb18f5d2aa2bb7ad610cc73502aedd77d7b6c9afc32ad990956531f96cf0a906c0b4af9baaf8f7acc019df8c1acfff89944553b2cc41f0495e2356b1217c7acabae2c4a7724e539d30c0ae6a2957516bbc3f60c7c17d0ce122605c0f43468714102985acf84812f1f8a20029ea7a8a0ff5a9da1478da8cda99d54b5404dc0dee8a0f17005aca3c7825d6a73bb226855d4a9ca245bd2f5cb61e0ac011a54e42764ca600fd1ff20090f2770e9e02d1ef39f757407688c0a7c9a49007854d15282fdb756f4c2f29e37a919242b5735281f57492a0d6cb746389b6e5d261c594f044fb01965b74a11b9aed63d2dd8bc02f47fbae03354bed7b305ffc178853082a9080e6f56167b12ee780b6aa267ff26b94b0bb5387262c1f95eaa0fb284982d4e577b45bcd6085a07d830cced2cd73b6ccb030b0350f0971049e6d3fb916a43bb1ad761ce409df64d54ca591499aef62a79950284991febc6e7f5d386f02c2c81b3e00371e5491a226dfc77c502f5215cadba7ef70ada961a5ddc64080535a03db85fd7eb581f4939076a8756be6fcd3e19697ccb8bf1c9533acf9d487aeae009d1984327176d63edbd5d518cd34011a6b02cbc1170544e2a40d894738d2911d8e6ceb0c6681bab60ccf11043dffa61ad3ea9a11e6ac9556b0d62e0e79388cf89ed70bf98fec949fecc169fead8abc693e5dce6c88e13fb24907ef7ef8197f18301128490680897481138d11164f2bae3f6f53b7683040ccaabbfec3f56a4b439aa2be8ab1f87ce7ab2fbb39d19900138567db5a5ea0de8e7ada9cf6d18e923974783314b51e53347e2c9ca207f78577ab430e2d1038f3c0a205a54625d3bbd17c493d00d4c78dda67c56828da33ae8a0b4836b27bbc31dd9ce49bcf545cc9820baec479a6ec848102c47240e7f1201e4064743533fe44ea68edbf8d1c59b1fc2a9da1809f468ef060a313ed94585d4b1a5cbdf232bee78d6f3b594637b5369cd76eacc7f0dd38cd20ced90819c37736c6c8484af89fca0b330ede4263e365034d25e3fdb37d2fcb5a3a52643116ea43197400c930586ff5ae071a1312b64082433f619d75657bdc372d62ee768aa951b56fe8b3213074e595b3e51944cf9f1eb118b0d99649b36341ba83043adeb65966a1b79960bce3afbd64cfeac47298e4d03655f15e7d11552e39036e71b75ade24b5525fa216fb936a3d074edefad0af62c4edad0b05ab08ebbb7b0f620a7e5814c28cc39032627e3daf911f4db4026ac5331e4e5e4ba4c933ce0b806d97ae09fd99084ba5d34aa4c171f9abc96f832029283680c917154ee08313efbcea05b17a237f46845a774bea6bd91221003e1871d414d502fdf1a65d5a1766c8972c24e831959dd4e67d200d37de99d12ed5633140a100a787a06f10f23bc603b8478f2e3a70e4ae505bae7b0533c3d57a21a17d59d51e93aaa01a49aa492b47c20bf5195938a5b72afc1501b231fa44b4a2baa40206ff5902d7a0ad0ddfab3663e7c99a9e4a63a67214248f79bc827cf6c40286ee16b8807feccd869883488a939840cb5a171cb8b390f234a021f0c69fd6403b1452db3d3c0b381b82261c91c25bd10903f11184af1afb86ee4dd5f4524db05943acc836ef458ceb8c7a34992ea616c106783fdf0bc9da4d1a531b55cc7aa34ea5cfe086c90d10b2340c993574406f9b9ff0f9091c6a64c95a536c5793d9c411dbb4aee6aed04c3e76f4bdb1757ffa9aafb524c10b42fa994b974bb6c008524a1ecf05765fab6285b6d33c92c4fb5584a46d655a5bbac0f7bb03d9cd3ecbe1b4bc5c2496dd54c83daa7d846bbdad26c8d1580b80e6b6b3d6c8e5aab3a4d025fcb5b8be58e955c08991b04c34f610686018b95219e31a2cd0f76aef313fc3ae9391c75c93ef2104d9725940578b4ddf8afbc1ec81804615bd3d2d1122199d409214bed1e4216531b1ceb69f17ef3b15d11108d808f25e0b9721da4cb0a37e2d64d76d995f0a69ecda9047f365381c892c68b52d39c3ff1231fe39cd9be1c08a7d15ca2f79ff9553c8c3c8acaf8a9c58cfec3aa5458c6786faae3905d7689b4c37f2285dbc9e05d06f31ed4f556c541e72ecbe2c34594960517c9781d0e228a32f0e8aa9e0681fb0e1f0d2c19fec2577d5a6a84a5228043bd0e57d5628fbb571203180b587e90998f6f38bdbee3f62f7126d260bf671d8613ac7f9a0db80c7a21430b890d8104c86fc6826d99c7e539cefd9457276221e82d2f25edc371851280d2242fa2d35d28f24858f9bd4af63fbbe179144ec1939be53830d58e99c450f8b4f1322edd9b836c3bcdebca157a74c1b3fb0f06fc51307e80ea4534189e485faf07e9c0dd3485beaeda9ca6d93e5d4e7ff1f2169246fa8ff22c5ead1ba6584f5be392234d66bd186e9f590b80ad0e03b90b3e7136d0302810b895a491ca00e3c94102142408143154de301d362a29e06cd38e09de61fe3ca7d5e121681fea7e43190232f105f739091165b23ae7dec42d373704bd61516e1e9ba173a61b222adbad50c5889ce9c865a51efdffebd06827213aea5e3c5668a4a2f7721d2b34e3dd688e20edd0cf4b48b7e51e7491a1bda9c4d15b4d1aef3b9534c876efeab7a08b9ec22897f691cad2349cd541599a203ad45dfa8ad4a834a41a35876876159ceb1a7c7cac390fa908fec44d86c7864064518211f9971eb0c124a69d96c967840ccc1c61eb2b7e39a95947ec40813ca995a601c3ae7fc1875c72fdcea1e99ae1e6e81799f6d56793f58201e0d895c42b6148477eb89f1f2177dd1951208be963bc308db5e6ecc5462ca68442c40df9e54d6610cab2352e8f987a1962e00e851c4f8b90ad9ec7e834dbafc123bccb56341e4702f20e6aa6d4d189f60520cf020a88a6844d50782cb20f5fea7be0024e004b991b6a564ad6d36961c4080842e607043b8dcf8e7f2e4a9de434a2cf85b8cbd655660adffaa0ca1888ed4c07baf99d163ca27b83f814112a2a2da6e85be7b737bd3448dafae2873176c730ee863169e5e2045d6a60d6d7a7b9bc65ff79b535bd09122f893e2de938d6afd0f9348a9abd08b42ad904b5d55487831ce68c6f471af11490930f7d4d52e53b19c4c4c6864a47533d34ed34b846676ae43d0cf1132a2e97c0212f3dc07857ad972a84dc404dd35cc55e1692fd6c55f5fc469c1c909169124085e063b98d09d997aa0bb93a8edb62f140a2678a230e490b3611d09096a8adbc01fc48c83918d2f5dd6a7dd38101fd19111be9dea5514004a80336541950232d1c02221e935dd79b207d44deea3b40b86b5be430304cfab580fd5c3d921f74d17a6f7c964b4e8d55189f45fd3c5700c5237b90981e9f6902efa6a31981fda143af62f8dccce30e638c094d76898db93d5769e7a49a03d9dd4b97cfde2975c6463e9a63218d117573cec9e58ca8a265e34370f6ecd6278118068a88317aba89277e66e0b98f337448b69c19f3241d359925d39716252536c1a7d40cd9d9cd7ec907e8abf4e66cd74a3770c2a7f0f5a276e7de29c8e16e987b13e4fdcb46bc28290e9c1db52da19b720a8ac0a1b9ee3696a4e9ba19b8be793a64da80b25c898d6397fb658b279181351f27855a4d71504e65d1e04b2a28b1ba8435cad4ac11fe44af55ade14dbdf855cc2d79c165995a7f3bce9a4cab96a38759dd72244100c38d14906fb8702fa399724167f627b979931c8e26d96a4be094656e9fc9c44d9f7cf9583bd7712ad55fdabab735290096e4dd93e47abb0c0efee592a4776306043b81b42d417c659a68479196c8e2d65899aa371a43e65bf6328578ee9e470f55fea5ce8f3900c65cb4d3b3de071fc64b44384aa82445b3a1115150086b1c254dd5e9d52705cd965dc7cfd16cbd7bd34012358efbd2ccf8efc7b5d8fa164fa46a7c1e5a0af4ee447fdc7ff0f6ca83283ce1d891bb820fa4c1ebd9f6b6339b36cbf328567b3459c3f65675e55d8ca3e08560d7aedd34928eb9eb7b4426fd57f7f8b6ee8b6aab3b0faeb25e24795b079cb1e77c2d1b1136891329f4e9bda4f1a26dc2c981870d2827e4369c56609d9580c05a9df2ad88e018d245e9e0510e1ed06b4344b71196b53a34a9e2f82424294f5ae4e95b72f3edfe6452b3769073ccbbcce0ec61e160a49eaf0c547d5ddef166755ef8258dc8d3b98a6cf5ebb5baee886e079a00d16382d99e152a86a874da750ab32bed00cb8506620afaed7411eb8ccea895c875a7dc7db40635cb68e532e8a1a305f706ca86249752251429a7cc174f19ab52a36475bd3435fdeb4c31eb432475a541c7f1d9c354dd0a5ae81ef04ee3d34db782c9d3a18e1ac957925be17fbfc030e40dd7a6d0fedae701621a0801749a074e0c4046739b83bd10ea14d6a8d30b61ff3d4a1c7393d4dc17fe600293881908e5441f8422f4e09e8af763e2cd9e3d8349cf8064de08f009a06e4fffe8212f9adc175beede54bbb1f28e99f13f04ff60ac1a4c447381ac068c018a60159ba57614c357b62b2b8ef1cb9b84e056ffa18bc461a8ce52352f8014d5e63032fad3f43d0cc114acb8d62c242f5a6635da1bb71eb792bf2a0ba957b609274c1d283a6efcb9b9adddd826287dceb589d39b4c8cc41b4cc667a8f18986b96c210895f4bfb80486a67c7e3f80d109a8f6fc5730b418d1cc64caf04a4a988c234edb0fd0b56cad3265e57c2d2b68c482810087d78802681d88c5868b9f2768c13307945933a7b652000b23f2deca0a8fe762f64b266fed6a7e15cf1ba1719e4ec95949cf85d46665c2ad3296ea7b702d260ae491490f6c728e1bc73d8b43b98e41a239d76ed9dd2a31cf61a5aa8e260043a8f2c7acc18d65204b5a40bdf4207c9fb068647b563cfc23c5e2365586227f21b0b34a8223b41d3d0e20130b8529de01ca6f3aa66b07e91f48df14dd50f5fa65feae455d38a65ff490ca764fb6ddaf55f212f5526368247242446e41ddedb27268a30d6363645423e8709383ea4a8fee3b0b3914423ebdd295cd1394a0dcc744ad15116935b1524fc79b89f628a70015717417be5d57ab90fec58d5bd50a90e4fefe261ed75023928087980a603318ac1f5ff6891be900505e194e23da27a32e81188077b1b18662a56649f0647534d9a938fa062cf83a407bae595ed517fe8a5df2378680425a702007226927916ad26651fa88a51f0d76959c93b659b554c25c25715996342838b580d4a262a184b713db29fbc4097e0810f46345b829d550660505c9431c66efc60b718a9ea6ce88225ac311caa43b3a8f81c2b65c68296bfc06fbdc846470a62ed89ef1c177f4e1ca3251f0d208ec880dd8d687afa3d7e6fc7b987c8559902c8195eae1e564a5825bb037592ea9084e798f1f07c0b1b3b702b8a6843b1f2fc7b4edce7b11208fe11d4a146a0e19ee0ce98127bb92282f108ec2dfc77299665c01216d29ab8843c130f42f92bf1b0abc529e419bbc01f5fe0a0b1d0ce60480abcde2d929a4a366346b92880358404a02b85094400c1296361849b67eb4acc4effac0540d621632b53a457340724f7025a3018cf28deb72662f13cd1a9eb977e570fb0a93055e8230c700efeeae40022179cf825eeb5dc03d78fe56ee77107cbfd26675d621cfb41f55e0d35160a12a84eac5823fb1eda80a0e37c4586f1ef65ed876e7924aba0877663182fbf6f9038fcd7d82eaef7fa2035bdddf83839af987fbba676b628938fb5159e219800bb050370b3bf2afc8f2c258235b1dc4d99e60428ac62facc987b6a412766d4f3c5edcbe6ad67e0bc8528511fc504172293d75269cf84435fef814e85e2d93215a01eae9af0cec2d409e336845126482bffffa4451188882fc75a08c59cddcc1cfb15019d34d0d76a76cbe5c02905f391799432b610a7e6259a373acd20a6e36eb85f4db9f8c526bd3645a988a8025a856fec51ead03fe40638d44ea134c0a5dbf57b8332215ba20008585344d81047e4ca0b1d3b132b996e8fec44a55ba8c28b9f412436d63b73d99b8b5c167efd6000edf1a58cb4258ef3f1de22e6a30da3c0d7c7a5841a5ec4e240474b8808dd3f51c00c567dbfccaeacce29147bd1ff433a3e40472bfcf9c1cf8574148f3bffd4386e62fdae7f86c1913c481686784d88ac9107ffe228e7af71e63bfff2730c74389faa81d6d7e1308a5fd7f88b432a6f9508808ac799dfd2390d1a785b0791ce737b6b5c1ad4137b0acdd39f5f9e224583199efa1d37ff1b69da75e2b36b943c160aec6a4794207bf8ac8b44be8146b7048aee2f884c40567162e6144c9d7604593730385a803179f8324398b1f4c3837a535ff9afd16a69ee490f1becb66d1d045fa992d0ffcfe5451fecbff4527c89ed25531b94df33c1a297f0c314e467e02e8cc1c08dbbccb394b17eebc4c40b0e07b670f38ecf59ccdab43efec73d674b0cce9dcd614168980c610a6d33b924f029c027427bd8fe5df703bbecefbc875bc49aa24110fef0b90adf863ccded091d0bd929f314378d3bbc6fbd05589ae7f472b6333b337fcf0dc83de819c32d14f6bc9b8aa048f79d019b232013522bd2f49ad6d67e56b7148239db1bf8896c675bd1f12256b70cde5804ae9f60d13d217a8d717a56da5d00f97616942047719aa98b1bb94bad9d7fa8b980a3bd574dfcc94fef0f804b63a0aae64c4c6f74b504985ceefd5f374fbc29a7b3bc0b7048b40d4e8fd2b52de68a91f73ca0daade64de49361f9bac093a42ffca83398aa3d6c8b2eb5c3e33ff70dccc65ae6f90424874d54a89794b644e11c64a9e07df7b446e2e919efd3d4a185807425763d93f7f416d54748e2c56b42dc5efc035d300cf965ada12dc62e6ce1f3e38f0a413ac8d0a6219695c3b554e243c1a2152a2aa59aa38c7d0067a890ab2632802d8d234d6dba718f38bbd29d3d9a67a7c9c5ace806c2a3541725762f5ef60753d34c7fc407528622bd61dcc16042838dc03fdb6f691df14755b75c6f744f84c54a7f1daf7975a1c45ce397444dfa7b9d4a2ededd5d2d2c4f8ac1e35dfc1ffa25aea129aa61295d9e11325422f6e0aa463ca4a62ddde689ca6d2ae4f1c92e51032b42d6ad499be78436d00b4502b0931e91d421903357f624b8b35652eeb3bec9904094b3f184095b242bf10965d598584fd73168a8b130ef480052763e7572167aa834ce80d8e11f9807ed2cf23b6ab266b1e3aa6746656ba7b4b56eaa8f1ad15969801bcc6b35ffd86d95a0688ecd611cea08a95cc98cf04cd5f0c87d366964346b303d1eb68f4cae75043930172119abd89a5c985ca2ce9d70d08c44e7abaef422f0529c171191d185f0d7321cda7bdf8120cf520544f10cf8f4719ddd68cb1292caedc14f69e4ee9c17f6946d119290c19156e9e057153e4e0caa4d0eb2564694cec93584c097f9d6764334948c8ced4171f7c2c63ee55eb0a605d8d5cabd6c9cfb6a8e80a594076baaca69a061a41051cc1595b2d6c6b7bb031b250208160791738a9b47dac1e7b7d2bb79f3109c0b99e04399320f718290825c43df78b58343fc2ee278069fec5693e6b09c02a4e0aa2dcd77ce9e818ebef8942cd881da6e8f190e6323684236900665d6ae1ab377f67a576f5ee0758e380a5a6512614fc16f63d7833e9681163752d4fcf27aa6abe0ae4152af252875e3042a65ef8e52d44b4fd19f219f3ee29757dc9a15212f7c39ea27a6c9ab3482889f1eb259941274fb22f8eba45d463640674edfdc739192c50734b5e4d132249548eace347a2c406041a25097a73d1d49b3eadb952b9eebd63705997c47f6c306568e19d6d6388eb06534a40da18f2eeb7b9c7ab3ea6c045e79353a84cea4cc65d8a6829526f9db390fae0666badb4ca1ec81fe85bcc4b8a8eaf7c3859d35571346b5eefc8531f559463fc68f0d97f12e117ffc4588153d0f7a9ad069d5d74dd9ddf82891c9f9e39025346270fdaa81310f6bb936c964005532f873feca6130246451c2346c377848652d95249e3329c000ed3b6f2dd3adc6d980eb3c849a9fdfc222b63a4e619cc83240a32cf90d87c2ec2f911e00a2038a5a4c7e426fac4e94c713bb3653a3ae6e35344078b4e62a35166532ab4fd5617e90f8f85240ae23fa7f722765dc665585b85a4120beee51956a116b7bb178dafc7cf46b39fb76fcabacb7534a3ad0e05bbf134db383cfb202a4088e8784fc9745e8874719357d9c14b94ea1f4a8c6748e007747eca808bdc69c48cd3905436a92d032ecce9863dfc8bc90aff3a4368adc203a981da864aba7ac830a68b83bb14317c3281e631c7c713d9600e7cd54de728cef31214912bc2e28f3846f999457cca441c004d850842067e8c1d0878fcbec2e41b56416f45898a922fa9abf4b0f8142ae2ee69d717e6c6a22490628cfe535488928b3651151b6e7fc37cc16c1c02e9bb22771503728ff6760a0c3486c157d339518126194ed31054288245c99608e412f85fd6328e82e82a30d8798dd17a04cba9ac3f2043f5a7fc250a8b09d9e8fc946b6058faed4e64577212b87bc555268fad7d1cca3cc94b00f5df09b8306a19750c6097963d9cbe2a2f8d2dc2cb00614cab48d3ff2a3d4a0058a01ee949e63193b86662c7c642a2e61545fa7d39ba92b306202624529bedfd38f292a2d2abdb117ca0397624f172f49a70a8f6f9280c6182461d9a01d48eb99d30a898a29d0a5c8818eaae1aec4b58607c37133b495750b1480e77d15533f99768306d5961940b2237dda5ca6d73f8a46a5807b5dba817dfcddc79336710c5ca0879119f967cb84b6cb399c01db1815170fb00be2dfea844bca0ce23d7bceb876d343f622e6b1bf929b949b719de1782780f32fca8b1a49953cb04ccb3c73898de20203599fb47c6e9b873d32dd3a58b6173df24d1e8683a4f2ee346184ce95cae5aa99d67ea87b84f21ff86bace154862b975a4e495eba98149b55f31268fdaf65de0a7fe490920d465a3defb33b643b48c4debffdff838290d6c337e20fae8bf202687259e75b365900962052ef404c22ef1d34af8fb119bc1b25c601321def3fe43ba807509c5fd1e3acbce952c7737ecfe9acdf4ee0699c75152ef6d8cc4e5bd8bc8cb42dca8647469cfa5d72f01b62173e7c354af5d350b66665c82c19dd29ff743143e7c724ce31d5c6f6d127c0965a6e52bfca53a5a037c731684969f4dfd8395f739922535cc05114e4db285dbd1f5f14e7290b5e4335cbef5b7c86124317970a9d1635675e0736e6edbc913c297059ac88c0393770cb1b84743ffc178c2a7af37a64fee208518186c0b2ebdb62b26cc42204638110aab27c8447c5a8fb1ccf9a151d4514d6ee0b857db11e51708260f8ae84f8827e7d88bf487366e6cd310a82882a53a84f2018733403c9771993302eb3c1ccaf6363932348152142702967238c85d36b4eab09ca2284ec4156f6710876c36cfcaddb86f5f100ea42242c3266cd8cdbc95538b7c1c1a6e13dc24448add992ed8dde8493e31a432f5a80e226f0b63b364c34e34f82f044414e1b381c21c914718e14d69c7b9f52ab1d3b1908c85c265aa80edef45d005923b5042f9b95b281cc036f7d972d12a04b7197ba12da828a25af6835341f491cb4117e876a21c155434c889aee98b5a3533f1693071d9ce895792f7af21987987d6a8097fec47d91d6f130ec552b8478ea34ceb6eda96c93564a27b4d3813ae8b47fc588a43ccdd32aaa48f5aa2cd3383c6d4c00918fce703467f6f4825334c68ba74ae604566365840b483978049090034ce41134c89e324fb646a80dc30b57ace856ba2b8f6c15a071533ba3a584fbef62b0f7f6459fc3685ff7ec55a2d511347a9f43c5cef678eac4583e865831bb819d5ee9029e628ed2ac988e58f22d2fece9bc67c7b000cdc1598d9b592622bb86e4e78d10e637e1a06f6300cfef8850179f2cbf96a61150cebba8525d98886f1dbfe2674e86f84fa5d5fc2902e481f86f93eb01ac2e830fa28076a2e250c245361b063e4e503b511663c99942a77c8bf5c182d1e2207220cb4aa88638c42d659d9727a02bc88778735003b3a1a96fcb0f1fd71a91ffd48fc8b376eb3eba4572d866497545e1190c23c6c8ca322d3efb051b4ee4af4518cadac5dcbec091c64de6da0284fd5c14571a9dcee7cd8272a564d0bcc92ac55c1bfe763f1fdac117a47d8007c15e01f9e2b2f2e6cc8de76e1bed95dac25459d69da0359dd0b366dcdb16ae9825ff88678f4b4d5ead5f6f4259efe493962219018ae29d0748d092d3b2822e0ce353e56b153bc158a10ab20996b986ce07cf5a2da3f02db5fefe1dd468129c742d303461b6c35d4fe06ed5445e779df6bd681bf3f83a19e75da77ed19e107166b4cbfd71ba648a44693316f421fc730a473f3c080518e8ff9edcc589a01714a91bee251956d7acef265c883c1e560989bc33c4666498c44bf46d5ae229385fd66de5a14c318cf64d070d705578bae3c38c388395b592f57d993fa87cc25e41aab8f7ca88fdc67ec3eadc000ab832be4a28fcdae75f1ca884ab9a7b6d01628813d81730ebcfe0c39215546232d2e7af110381798bd9cfaa57dfa1bdda7cb67b03ecea6cc51c359217fc3bbd6cf1869a3660177ad9af53df44de0240311c95ac1a163afc831ef1b83cc2ca04793f847444fa1797d26d9bba440a0f33b8eba8b680fae0135e6b6b6c5f75641fd3f49d003f106827b02a70d01d0b0ae1dd597e8f0bb1097596edca783e24130a72141e33310ccaf3f7092c68a86c8601ffe0e1f9234697bc1a6e8d59f406adc187a5b5cff18c6070f8a449f4b3df755107021408401d57715d51c5242938f22b1876722d9b127d3d3cead6c850036f11770b4ad0564e8ff829b85a6a31f05961e82a3d57af4ab5a93ff540b2620e0e75868e205eaf2bc9af647c645d905c7972bdb5b9badecc83d088fe625eb1169d3b92d93900f92537fb7c038f1cf1b85124e99123eecd2ea1a16ee7c1ba8713c72655cb50de4b1547a1fb396e6ef57973af2edbe8cb1f635003d7b375a0213f87ca5910adfaa709561bde8af809fcbc95407a8cc0a22df3422e8392e5ea9f14d38ff3dd1e80fb6387356e8d75f894575074985b0295f63960ed61ea908ba8ca4af139cd5cf1623523737b14bf384045f1771dd46d00520bf6c2ee053e4809c59b2fd66eb5a7124264bf1cfe09902607a75be0c346a1d1cb3b91ec4bbc853366fbeb6c43b53d2dce198c6674e880087e836515256146be82d3b8cd8e2717431bd3fa9523092b3423eb89317b437fe145b158f49b7fbdd2079db55081776561363ae446b9e85d02554f19161081c4157fa39fdaf901e99ac7ef4733fed5651523a7a3115a92c7ab3de422fb3ca3ffc4d954f7c04d02b14a191df5448f4915d2b76c3138c54ede8decda9f4d6f9d444759e4485847b602ea3ed5467103a4cc86cd923413ea37f5a5d98386d7e9b83fc8dbad4562db3a4b9b6a823be89e0d39a14a4c706b204d14f215a53236a9d43e48b70203c61a26adf6a7223d6c7b683e214bfc6f865d1006836a229a2fd7f3ad4399cd9845b3cd0317ed86858b54197efad92550ffed3801e98b3558f69d48a7f6b9bafa6b0ca4c343cbd3efbafb25917414481cae973f77be92fcff46faea09834bf12e597096a6bb533f1027a5de8822eb02ebf6a93e80350ca4aa18aa11b5f1544002377f2fc4d02d76bfad43609a96e5f160c2701f0350969d4d63b54a0fc4c46de6c150c5453333d6cbfdcceb7894e3dfeab04a179717b59ecbe29c1926dde869cc592b59689104adb5c275c742094cda372741ee7de156bb4038197499fe44f8ea32a03d78edb6aab0a3e0223883a7a80b9b66c036070f85ba60c233c6cc61e649ae13cb37bfce256266fca18734c482ec9ce931ae5dac988d82360ec3a966a53216bfa5a9bb2fff54103501f92337111edb838af7dabdaf9e545fde8e829d36c4106e07987ec0ddad039b48824d5071578196c0845c5bc223dfb5dcb2c2101caf8435812b420bec73ca0270d8f9b8c0a1540392a6a47bb5ded2687524787501a52b8813b41f267413dc05b1d6e91c3de5678448dbfe0a53e751e0507e7859eedb95945f1ec9a93130a326075c48ddc683268b0c0b301748df4987c9a62d4d32dac517c4ee5ca0d21769d2d996fa70605569b84d07ed235871686a7b0005fa950985597356f3df95373348b8dd42c3de40c363c7bb1f3a5e93688dd8da604709c7a761db935940e8cca99dee0d2cebefe2a477416dd71344f46f15381915c406099b63b7e87520b5eaadc1392e8cbfa55b0952bcde31fe278df9001116faad5082a667736c2c7987f09b02571c80a07c83d0de79b7f7327252f11bd0c8e1aad2cf6561b8bc0f3dc226b9cb285f31df0e27f435a03bd054c9468de0e285571736e3abcd43ccf0935dd9723ac192a5340fa32cf358116b58dd698319aa62d6c689b4172f58fbf7250a86bd4d28a722f5e47fded680d3bd93446a8611d66a228433f2a84d193eec946a2b61abc8b7f2ffee6014ef1e36ab8d300f1f03b668a06bf3b36304fe187202b9629acedc0aab57159ca4ac1044d189ee109b22d05e53b50713f1879ba22a9467ebbc0adca3c9c83a380a76120f83e29e0acbc366fd5e6fe9538dd46707f98ef13f9112c067656938f8d233a2582640a0dd73a0fd727607cae3e058d05ecdf3ba9c0655e084a580efe60166efddef4dfba01644760b21984cd922dd9f9f8bfa8468ad11244731ab770e44d18c75ea4ce32f8e9be5a88dee24288d0f3f37c12e6e5580f79a1214878ecfdd44d72de35626acbac158f08026af40269a605eae34c9d2b5279e736c462bdfc5b9f747968d8835f620e967b2f8fc8f01b690920cd22fa5f2f4c9162b87db3732b12bbd7c5a281c6e45a451c051f44d0c208c856703efd00976ca68e824ea73a42b79f2660c93d8f1f7bc9079723eece362aa26bc99898800704371b2db32738c83acbb0c612ff5c0de39a3d3bd7faa0355f98f7879310415e388961f0fc5e0d414086e934dc84f6ef2b2c72d7125370e0a00929c64b9cdd3459001e0a706b28a492a9db44f8a98e9efdc20871443c9c7b6276841f8bb430fb3a08b6de7797550f6a018fb56d60a3b6e2808090ac3e27583f773e802a5bfab854706b29d151e69885a1c29708ceccd5e37c0852dcb322f1cb1cfdbab45138f680ec6b83e08358b1eddd0b8bc202d2628c1912b40de274ab98d802de870042d103fa8c4d7ab32cf1ba04acc8fcf385abb7000b8715808049743416f66a8601166c4fa64e4174712913a655f8d23d0b3086711eb192c0ae4cd437bf560cf9acc39a0c35cc148446a217ce0bc241ffa8547e323ebf4232d08d6638946a2287b69abe598b5fa17ded452a8fe72528a915bbc2bdceb4b74495161f831e2cd3c18603a1c214cc585447795164261b685070371c211ed0e6db53d6b723c064a93493099ae20b321953a804d80c803ff4f42096c9485ecf58ed0bac831e1ec69a65427b140fcef03ac33175852ec213110aae3e8817a230af42aef8319b3ccd9e4759d57302ce27c16a373de9e0ea637cc363621739870c3b1003494ab02d692b5ed101a4674e46f4a2fa43312dc155e6dd037842a51b4258d1d3282ebf33a1448a94b536ed30166979540b6194eaa60ed5feab43479d7240ea233e755dea98c0488f7c28c2e80594cb1a35478c1010514cbbe810768c4669f9a699bf21ee229cce1823d0d080ac4b25a0341416ae5631be9ef3da91b62bf21d2fb60a9a5f1c988633aee74cb614c4ddd1fb69801bc641c8579b724854f72417739a365d8d4a2c6abd516bc7a29af443b2bbcbed8178666de69c7f24b1bfca939d9f6051322ad9405c79639977096bec8c4a01242c07267cf127d132c8321437f64af53a2f542156facbe284c2f481aff9089f2a3e82e109ddb94e354aecd7ddf0d33c697e6276e6a108db7a5b7aaac1c43c87acbf92543dd56a9ac113828538559ab3df17f8eabdf33800e6b9e2bf1ce84a2df838c6281e5610795f059d67ab41c111aeffe373509743010eea07696becfd26460f42e9e2da9343e8b6a380488f0150922990bc831c34442e2dbf214b3a31d587a6bea41d37f253eaa84eea3cea8866a22d476b20253302027ae986f0ace9cb15fb50c915e2f01e0851e3f42569490da0adbe6f72b434bedea86d3970f28ab85682592a066e750d4fc6ff5542e10749952abd66e10efecf42d8eccc24759685bd6dc5354a00c90852554bba59cae05fa4b6d7dea32edd57d03ad9c2b61e090dfe4090159d21df2d03fabdf7d6d6e4d5c322621f305fe36a2cdeb01f55957025b1040868005e2e9345d12740b50c5b93d77d19f159a4570450fe2cc09032a97e65bfc00fbfa439c1b08695c7fd8205eba6e300888e400f8e6aa0536b7aba8857c467783fef891d8dfbf591693bd0108d118899574ec6997a69e1597e72db349161b4ea59b2969b16317c5f0e991bb0e3f641234652455e79a94d33e900dc62be124f6595c0cf135aef43bfb683b5b2086aca602ec082adb2eea7e027c483f19e139f3c8c68556a47e86071e2a04a4d97a70f4619a92e214f34995eaca3a03c97d0f2f79348c18f22ce59d92a49e7850c90e4d5b2d88a21e9cf685e4ab30f90c2066d420165cd8ec320237c3cf753c85e9d23daa7a89eac386f0180d1f4c959c8ac4b35941032aad8f882319ff4922cfa9351739ea35f62211db0e4b88c993303804fd818319050e8378258b88fdf6a15fdfb62ca490500f8f8af3f823c5628ebfabc27c3137f8c963093adc60ab406e850bb61dfae32638de7666deb7b66742f1206b03cdf2c21b7546092363c7cfb7c78101ac8f9ae172fbf36e889faf0cbbd7839fa903b44a9bd74fbdf9d9d0db2275589ffa6029f52409b29af38795650462379c668ff0b9824067c0d0cfb087831effc9a5c329821844d9a2ad09f510822d8898ce67752ed152a884099189d33d4174fd3d567076d3ffcd24b37a9a6e9e2f29ee31b37fdff5ef593967b346b8e550bdb1a283bd2ed13d8d7dda7b9bb5286ea376e015b317b1cf74b3fb08c6691e9dfcbb7dc1321593eabbff44c0eb1040c227bff9ac3d0336a74960f6fc601a6d27bb74ecf7bd63bcb6299ecbc202838df700548b00dfb0153273e218ae3c2950cfc58730b32c53ed00470b6ce07188ccab335eaefe4ba152b729cf6a7050a0463d1c90ebfa2538066abc97ac40071331052c88364130659b884508df371380adedc4d8e5124e6a42ba65253af0644cfa517acb2b9470ea8cfa131410d57dd722d5a8c887ee08a557e4308217c182a36a1e43a31f600e6991812b28396b905b92b79cb1aeb7c8b73da211b8f99f03554d3f6acec3dfd8af1dfab6993977432bea976c182f8b9bb16b09ca41f57904d4a1d13ba567ae79f0981e89a78d629421a2d07bf4fca5537ea1a6df773618f894349585764cb0f845a9564c509390e2524a0b34ca91d90bdfc963e0f69e7de8a6920caf0abb05c0d9af6f2cbbeeb668eace0a9f358ca0418be0532029c284ad0310a85b0e7b8e4e006621b5b6a0f0d9ece44128fb4229f2f3f9d4c4b2ef291963ec81d2522bbedf0599da691ffb3c1fb6090d845a921806752ea80cc7d4a8fd41b95c68dd20aaa464b9a51d9d2e1892400ac86f2250b65f8db81c1e719602deeb239f1360d47b25c3e8f4d35e963a45f2d1d6e0d36fb6b0eae9aec17c254967cb81ae1152cf85fb0e2c856adfdd5c03380577788132f832df60aae1b31825af8b02101ec2c33125fed6d2db157ce1612de86aa9bb92b268eb0acc2df1cb0ae965930bed610693bf3707c12d41a2d04188f280a71292b78724f01f4fd06e77c4ccf66869ccab42b8130ac0121d4c690477fe0021bdb0a181fde0dc7701c65d31b4c8a0109aebe128d73a052776cbb3159a1152bbf51986c755b6afda974d1008a8d8e426e12cc14f260e1303084025567537d417a45eaf83111660d382bcc91e61b41eb07f9a43a583fb97a12fe95225e38e73af7b2886c55de1f3efc45762bf5a365239be6337c77dcb94086885abdad7362494edaf4b0eab553ebf4401016c1ba86f3b16e8a3af012b777003d8b7bcf6b28f1745a516c413ca8824f9bbdff5d26685243870573eb05aeea8d3a187d82a3da46ad6e789351636e4d6e34adb1202a5b52b86fb48609da1980bf621045f33610883659914a1653dc12b3c70e6cd302bcf52e127b9b3599a8645447a24d1955b87561e82e4c410bb6c522b2bdbe756fd48ca15ca0aa938a1389282de6426d4c77f581bed84c387221e5f055141e744389c72eaac24aedc37eaf6e66156d924c02d2298e585bb9d134ad77933614be395154ae9835f2ff90a47a601014164ee29db285ea6aeea90c18cf56d998f165447d0b5c34e798042de784ccb1f411f8f2376caf19bf4fb111ea79e978cac40a5cf58449e22270ac226660a3804b4c988229512ef412939c338836949271d6c2c5f2c267dd355e5a40d9d416b9ca8409e56ff92244200e44a6bcf238f340dc4fa6bccc31d9478c67693205f48df64408070a8b4ea9faa097ae07878b7b025fcbbf02655938e59e31563ff466d0db889cf2625413b602940e47768d161d5130cbef7a98f37a4200691188557ff17a40192d1057f5e421b7e5894cdb8b3495bf2d81ac8b86bdac0bf8bfe9b8a9680451d635a9a0ca9893d616a09b9dd51d97e7d26d3aa2577918085af0b9d007360aec434411e562c29744a55bda82253d4a29030de460cdb7111c47884585f9d219857c2a2b0fa20d36a59d9e5f81a0ecbb5c6e30c4ac358ed15f32e0a5018def5886b4b2408f0fe39faf08d6ddb9cef2fd81eda374f27a9ebeab53d9454e43322fb3df87f5988a4f5c92cf34c723fd3603800d4d2a9b5148a8f8681793cd15feef7cf824e8f5c27cf1515c578927dd1e3481401b79ac7e67ab99cc53cdfedb0736e8e1e3eec069de6fc98014751c7ad952c0e4fcf1e1e3aab481b1ee67b2bb7bc9a5f38e3ad908071a3c49f6d9ebb926d6d192017ca3c367889cf6f54193bdc2f07de98f01e19f70080b2ab96589a65e1d01e65a24459b79483daf6a3bb9a66324a141e163f6d37f9f477551fd7615d4a6b01ccfd41f1265e4fe72de882042153e29a48f5ecb4418c56c854f1f36579eb8bb0a1ffc94bb5c62c1adbb42df4c854f52d59d81645ac5b95d5a950ba30011dc22a61d4c66d4769b646154f85099f115282ce721362c995a6bfe6d7d45b14060e15f213d967548d668ce7206da093986c9bd746574d0969a6915b1490f3afd7bc685b8debd5f84af02350cf2e83dcd23c28b59bf9fe549543af91173fd1bda7242af2e073265e6b300f4197f157b3dc634f14afe40b8925c0619e19ad32ba0fc98cfcb717908e7b7026e20136142c651c6146abdc5387e6a46f9e4e2bab6772f4f970a0a3ea10be2f911946e1eb30a007885932b72018dac7b9cbdb50b115af7f481974956882c334bd1e22d2872de287609ea9e38b1c979ffb256ef097dd3e419fe142357118a61e491d2cc5711e7eb12bf85168c619816b3e6b3fde23b67da186ef283b09e6cbf8de394a5c564225e1753d1ab633a0fbeba8008c77af937bd393b2f253f0cdb880176331983e72ee2e43ec0e3de3522e57d75aebb30c9ebe48e8a9576dc5597e56322596e6071c41894f2208982f4783f883895a502b8a8825bad08f4a9405bdbb1609326260f6a1268276da28986199a55bd331351b1cbbe657fbeb868dc2e73980c3f5fa217811cd0bf76b1789808f6ae78555417c17bf4a00e022031d03cd543f188385eaaff8e2679044b6913d0a9cf3ae2870f32a540c602fd46672543c803753538dfea1e9b569856774e2dcd1dc38a8a0f2e802f7c9dcc3e23b1615fdca45358320543015a7f4b9975c6be2e0003416505f29aa9908080efa3841f1e8519ed31638b66ebcc7c1c53e792b7c035bfe287b3af524d17edc59b8a90cfd90dd6cb53827c423749a40effcf22d07f31b78221c1915bb852f783b3891a8f1f13c91f32bcad91f728fddd8cfa624960e87748a6a6c70701041fe62f6775517115211c21fd5eadbe7c2c66eddb40b6a79562106c2cb28eb9906b0a7d76c96b795ade983bdf834e3ae4f23dcb5073884a292048322b82faf4e4e569eeb2f73168845e143d3773e346ec1289541f40217ba5d87b998c3796ae8c98fd29392bb176110d6b4b950e93c37832435933366b434e5693ecf84aca9e9fc9c80d2380c111fab4b5f67425c32384137a48e08ac8684874c3f62c6eee8dc8547a484e68b1469dd215811e905c33caad34e44d0c21eeec26ab94f3e65d5c469dc4c6a293ef97b710082dfb0ba3e902a583ec4b0ccb49545b02414acd68b90026b71b94c56aa510b7b4d9041a0c3077a5d693841cfeffc1ccaf39f24e7a4166278df813dddf5fc28b64ad1fec3b3f37df795810adf4f6db5e3a1fee12004133791b1ba38a7c8eb47ac8e271c4ce40b39252fe72eeca65659a7cf7f290da196240dc9b12d93f8c5d0f5c477187d6214843d25c9c68a30394f30655ff2835550ab149251e0950a3574916da5d1873e49be21785014f88d05d2602e23942aae9a40b71055f56999f2410eda0ce080b5c246258e19d00ef773a621f3bc25ac8f856b5e7c3981c5933c7adc7517a034173eb580e864d3e25a54b5bab2ecbc2443efc3593f2b02554c44cd3865fad6d04b6b3ee903024a60a682e91ab282367d63b2607121fffff2e86621a8d810f2779d09ada14860cf5c7e29ebff28ab9490a3a791dbd67121df86e4dda36396dd332259d3b4d1e7e3e362ef05a4ae44e19a959030fde889512e00a97ebceefc1ce519737210dc31673201bb3d759f97cf7a9bb269e7f95b0bf5bca11a268f55c51466d1e2938893baa4d169202e3ee232ab06b4646345d0302570fb9b11a68b9c0225b8ba683c21581a31898b153dfb465606869ac06a0794c6152a2c15ade1fd9d280ca1cb0378f49a8d70c25fa4c3aa46afc1c51f02225045edce0bcd6df3c10a345bffa69a33ec46876ab936c75ad65ea939e85acd901f3a800e8d75294df785b134b4807eb79f115c40d8d543c74790a34e80f427136c3c1a021a7237e88a35e119e3a3d4e90691169a4e8f7125e2fe5ab07dcee4deb7caf759fb6ea675afe6de164256018f35b3fcbc05b51f691f6b1e75bb3c782f09954f212196df7578d6d91bff70a58cfb755c135dfabdd025e48773e6c6915f74d92e851cd80f715e316ac51e73cff86308be14b7fb76f3f7b31556fc27809455c3e7585917cebdfe172daa97936a22ced0f9c41c323708c055c9200e2c84afedb3b741f38f8c158baac84c980ade4b79d76cbe278a48430f792dc871506192c97d84df9e0a13b78f083071a0c4aa5957018f0d57fb7db2ed8d6eaa824783855d8dfa8cd0b7156a673220ae56259c6b6ffd0056b3179135a86d9c46a71ae7e1d5e3445dfcc7077d1b47d3fabb03669fa00a1e60ee80cf781a7137481ce3606d7a0d371c8ab1c6ac0d24a409b9843277bf80d475085a7d1ef53085e5971a96d614438abe7ecb462ab586b4e405bf771bc55df645cf97b46372dcc0a386049b4d915d9a8c94c80f4675b86b5df9c78c46d4cd6f204990d03b88507fc64a390fdc8031e3c280caca9a4a9f8f940383337d0bb839740f02c0d26b9100b0501b6f39dd0239bd02cdae1368a6f86129c48a80741e692910365cb17063aae02145899e91b008108565cff0cb8df621448c01a8d8f078b814a5cbac08b492a21c2bd4802cc1e9227c7430713216dd0b9811008ca1a745ce8008751b54a05fb4bf408c9dd2ad0d6077a01aeff6ae5fcf01546776fccc3ca1198d98b3011585b6d985820fae62f24c9813dadf305a53f1746714c80a120de4fbae4eb4d04db7493d64d8ae6149108c1cc2bdde10eb809208e9105f492c7eb6968e8a61b81ea7c879174e7f3c28b5252b9972f178c5c033c2ab5602b57e8072cee15c9fe92a8eaa35afc4a18b1c6b587c9b072fb5f0c72be93920919f221929b2d60b25680fa3b5140fb44d6ef4bcccb532ecde144ae719a41591020ae4152808294eaf134444d93af4546d161e7766b85f10593b80bbf2aab6959342f2f31aa3a49405a2376d66ff00874585669878096783ebec16a29a481f3affb5e642cf0dd0d7c7d2e4018401781bc9d5959895801ea33544e157d924938fa803008a93095518681a4f151ab898aa80be7f80b19b6f8544c2721cd9c8b58cb16ad2e42edc28c76b1390a76005eb458123bf3f00bdca7d449fca167f77fd1b3c9d5cd68c3a8dd368fb7e3343ecdf510c264e38a3099280b8da39f683808fe7ca3b85237955e6d334a7336d9b7f59abc48425bc6591efabb74deee630c1b4a36b5eb2e019a5ac090a96b4c38dbd1c90fcf8eea7430ed3256055d479340a05813b6cd6249dd8b0347af1263902bac43ad9108e6e0f327906f3c6f75443894ff24e7113554b29baacd4fe4319e0e3f61666b7b7e2428b91e7f672650a255a21e357f4f66817ece1defcdb7a04fe00ed05f264cc6edf428e3c7f65b86d93398efe41c14dc45b35675940d59ebb14c04152ebfffa193d5ed95c961965d49d61bd083cecaff3b3c3165a959704b7ed90792a8fa7f278a48e4dcafa81f2f6759f698899b841a94a3a899e3503adf7b903221d5f6ee0901523971d7b962b860f41eacca25cad025aa4e50addfab7537879671fa6d7b8c646184fe81a0dacf4c291336e3ca5804436a009fa472e999ba8798dfee64e6f9ae29597300161903c8043446338523cb80a212a05a0d435e33e04084fd5d7d0ad882de7b90f2050a9d5b7e994011476abc1680a1cd41197fe0a1aec03f80ae08889a9736d9024d694e977a79bb8eb28847e6eb37f10c07932d788a6f38323d10ae4a3a2935090a85522a13a3439db5f0ecf86eae0110dc064faed1bc8ddd6b984798fbca2e48187f8b07970ebc4b52d4f420b33d5cf80a91fb526ca2571e3648ab41a8c8145099cef99e64c4e739b123a8ce62eb202a9d804574045af38a382161de4c45aa71bbbc40ffc32c89d3286227fa654f214112d5390231cf346a331c28ce7231b3a000f0d58e78c5c07cdb5f9cf1b41c9fba3518db8f4d2ee4abe126c6d276b90f89a383cb392603b9dacbb3ccd9b6c27f1af912e125759922ad0f342a98950565992222b58e3b1f58c87557ab7e1ec91b96482f42f22213d2c0cbc089864c38d0c33fb036767a03a4d662dd42403f3f96ee0ec81d03d4898f158a6936a1d24960d08e1cc88fe93926eae19ce5b512184acc26b512ab52f10bc0dd69c42a8dec248ada0c57bb71aa368cc0a37316aaee69da617f12d572cedc53b722defc09ba91cf9faaffcd538d4675f73387c6b2f79987bb31f6573da9f094decd376e205799ed5f4462e8be09f0da3fa19094857c9b1f37f63f7726cffdf59228f11ef9aafe775b66f1fd7be33a323b8bd5f941d8f7f9505eaee7e178db4556c215675400e3f1a9fddf5f074027cbc3d82dc4c3900c65337304a162212e7240526552603e174ecd54e025ce172ff9a6cb3c5ce48204b27e3f6c2bff0d56c8549e37b8e44d5c49bc7c95056b94cc57a5e431a4a032a0314213657ec3b5ee75961168c29a03ae884d7f47454a5c1540da39f9ad8f930042fee2a3eed80773a02cb58424770ac5356d7c2088a09ac9bff3949eea89120590a791db23a6c578338920bf5f9f6309dae02e5aca91b9154582992fbbd917ecf49d78e2cbc51bf6a1cbb69a7b6fbba1840deab557633df00afa3c6664307125f610c26a13335649e06cd5dfdbe7f692fd3b0f75cbd5f7d4ff6755da2250cdaadd731b38074c8abe02e46ff5f8d57fa5d880b22826402653e2bec162fcaa61df39d6c487af5083c142463a5deb4c553e676df935516085a7dfadc97c05df6fffa3a8ff6a2d7b2fe2372e362f0c6a4052043329a153fa61b44b6f2d6dd3b7075fe2e382e0b5d5b00bf564690ad76d5de314992387471b792a7d1d5e1fb6ca961e5f1744b5932f64379f01fbf7e53badd7625e517ac38d4a58a7666f19f9bb57565976855ed07e416868e45afac2b2d527b664a1a15b6ee98f06855ee8a091e54f3105f64b360ce8f40b9f0803a1007ab56d39f07263ccf82a341fc16cbc9f943408b74c13b29408566710d9ea459b0ffee7ca98b577d9df6bf5e812a94f585515fed466a49aec5e8416464efa66528c95c9a21b9ea0f1f134158b188dd70d1740a4d47d20d783dd43e02e5d04921aadc05e8bc54e52533b653779d374084412f42979b95338d5d08290eadb04c8fe9293de7234dabf3ed32873860f0dbc4649355572e63673d65447771de4e3810b267c64545184c76c0d04c429a05c90bb1ec9a8c43bf86fa8fa5f1018bc6075250b188180bf8b6a0a8e53c50ef5067539e0e2b1d2cb4d1ccb52683e6abfb1319febbcf4623101565a8fb0552dc5076b78d341812dae1ce4cc0f27a5ca48c59683ffe3add4e6a2cd23f1578049bf3ef40b8ed35ce9e107a95732f26e81b14f36c925dfa59c65e401da388f606503c651b332ce43230834ee7418d6fc82d87e3f291210dc98c6219ae31bf8873c28cad26133eb90fd217bd24c4919ca5afe346452ff2be02444e776ec86b19cc38d80962eab9270922b6c0ab1d01c6977352856aebae76e443abfe65edffb82c5100bf429d41d583e4670f64e41dfdc603ff4bb0051227f5566e13ed0335c04e94f125fadf4d6c10101a64181e4398cc14b8169c6cb5170a244536c89beb888b0bb8f447f543dfb48378ebe50f0cb3db3c9f5ce3ee7c1bc15e5de6897d94c4a0e848e591e11a8b647df2e9046f4e7e8f876dcecb71008795d6bb6aa373bb842b9de7832571bc3111c6cce931f03575faa8f1cbc0812e5adfb470ffb483b8950cc4406ace851c2b9c000b813c93da86d76f3c6e6c00d9bad09eeb14ada9e040ff59888b4467bc114e50b636b0e82f56f6affa631890b0031100c2070b5f065fa2428b74765991e0484b8591fb0fa3e5498c61b3cd353749b60723a0981b8ef4c88ac6d9140ed739a0a50ad8ffc67e3a6b1acd28d33333252c8a9107371d32d92bec81b7ff190ed1376727c3d8668d763400fc192d38778e39c57af49f15190ee0e4b45784f8fe3dca9c10ca30f6a3fbe4b48fd570998f4037a9b25e836d66802e47cada3939158104ae21dbca078444080b37b78479a891c902f02f95b555ba54c1ef65b598b500ce1358b77e559a209c3947fe04e3bdfa6809865f4b1d742ac393aa4b2202273b9a1ca8c0f0d861521d97baf901eaeea287650247378842e53de396d36e2efb19da8ff8c80ccd20fba3dbcaf7c8bfe306cbdc9dd5b8d221a2bf97e4690c64785ef3ce12cbacbb814fd6bf242226f0812d9be6e7e09abf7ec0648ef96328d1bd46f025ae379665a30ccd1930e1760d41a9dea165ebca8856b9d3bf1cb8774236ffe887f57c059c423e831345335c05bcf5b15ee28eef4c0fd749df4b4a91a6d8ae06dd2d42de4ee9d50db298e7b32cbf7a42a330880901a227b93bdf796322599021e0706067e06953c43908b38b654501de44eabdb298bf3d3dc912707a62c950f15e1ea20c76e1fc7c555aede00e36cab5074112fcee78782b60ef9aee6795ead62de8745cfc3d5873ccff3b0e825fdb0e761a1eb7596a88a2d56850799981d3024890283508bc98f7190fc61bc647879a18162c5ca0629a94c71f5700881349e986c386e88381936c236356a33ccd8fef3c01f4f0450427c314912b6b4b435638b44981c347268b2b1c393dc1bfb1d55fbfaab3d54d2a4a23c715d35dda033565eb9b9c2820a6c72f8c1c35aef7633d070720347e9e90c8fa4a91a18142c68f1d2c5c90e585b762b89465347bab96131eede8270a1626bc77417df7efe5ff8ba31240d0818b219a6845f30d0a5883740c8b03411523e69a981bb0e6fc141b5c4d440035ffce34014d7726f2961c9b6dc5a71829030f3095931f42c22a207d6f067c3dcb735561b6d2c3eb0d9c82863c42a0d9b266dac8638755b523a72bc904a5e96aa3cf14812b35e79b37e7c1dae17776fb8addc0375b6d6c6c27a235992d8cb32cba9058b6b2dd11ea82f1c28ec17776f382da97f2c2198282ef14f59f6409d3fec1f7ea276ac2f59acb5925e42918242a5811a5133b0c421e284069016b4e2041143eae1c5c9901d55536ace588b773cb6b5e20fffc88085729ab6804891810556232bc899fce5ce6179fd5c70bf9a8a295905b00bc1af80d4beae735723c96f857b7e994e3950e71558451ca8f3f9b1f8705e7658497297c3b2126da5f8661b550fd4f9ff36e21c88e21c98251b4b5546e764937c6846a863bfc79d87a9bb87bb9166f748e0a5c55e1d8d7ce84fa34cc7185eda2f2f6d96ecf9f1d9449080923a57aec5621ecb3148e044d776b8bb51f4d2d6f3668b4310c1e2112c2ec1e20e58fcc2deb1ba02b60000287c7a2a3881a3c044891b0f899dab936313c31af8799dadeff43f103e48bb0a8e0e70204a7ae0a5d23591fbaa4a935c735f0901c41554683f4f00b968850aaae23fefdfe6007f4aa1324557ffaa46f7b606a05c51a4c2d65a1f67754448e2bcc7381f9c551b3be2dc9d085c54ae28524182121718845c9191c1d22503271d6c901cd141e5031a0bca22a13205ae062a385992aae030fb0189062fa517a6aaac39e38219008aca15452a7c509283529a219a8a28e392002e4959c868ddf01203191426f09291f4c40633322e6140b6a608013bb3826535e613822b3668d5e0c44d171f5b38f801268d15580f30585d7a58900136841492334268d042a6f9910363650b48105a2a1840171bc218098286386760512b78d95216430d60aaac9cf0244f42665471f151240b093a0c79a10c91ae315553704ee25c2909c205ca161fb060c02a2d07e56b0995285b149011b9c1cc6ceb4985a62b1b6cd94156c64c5754d795099d2439ca5c21311b228395dc1b314590f16afab2e4a444592454a6d8e005238820691a32b5e56b4a882d36746c45bd61721bc1865298d4139c208ea812012c6b78247d89b2c20e243c5d5b47ae5899a98036844a5fc182b6c385b11e6580b8814451b9a248050f0f4772c86066d5420d5e686e507541e5e801063664a72c122a537c515283982a334ca5f161ca09a91b725fd05ced30c3d48d03844bd78c16645819919281315031b4f0e3a9096d061dd10b9623549824c1398b622343e543871168c8be44d91ca41a4f528cc8305345cb4b9706494d88f4d001864b101eb6b248a84c419968d05033a38735655c0330020cca08244a6c38b16ab262d8560d626280f0b271646b0246824499c1e14c0d1f56376c7894068d170d625a6c98a295c3105da0c29cb4a12a82855a51b9a248051141ac783942f575230a8a892438f4e82149080e5a564a60592454a620e343d753d70f35b6b0b22e50066acacb112c6caac4f9ac7618d321cd8d1f92c860810102366406115770c8bcf1ca22a1324550950b5d6e2083a56ac8959219a8194762d0d221049baea85c51a4c2485999233b96700411c7aaa11459218c8f1b58e8414b8d152a5320d110d565ab8a87ac3347780c5e32e8a0850c0f4e5368ea8a221557ba647893a50d0c5d593a387184694d0b5e6ac0a9519e7d592454a6a8c0492aeb8a882366aa1890002d30cce0238d1522ca272a02c2bd6845918a114059b29444cc531394056477cf31b6428d194f4bb69c01a1e889be31d971fdc4ebfe913e5e77406fc92ae2858d920ea529f35391ddfd035eb9afa535b9372f980e82072078e0ee58c439f6c03d00a10c04c15aadb57eb58f821da53915af700a76508bcef5eba0b635d01ceafcfc942928071d85e2703e9872d05c2af8d83dc52cde1be5a0b554c83e761d37ee4a39e82c15f2fff7b8c84fd2a6b93b88ba8fc975c96159e2c97dd543989c5b3b6bdfbcf90202e643180b4138550e4c0003151d3650c951464c2df71595d8d60b514ab92a33725394aea892642ff7d5901917dcc6ede5723de4fb951b8b7deba07639b5db0a8204082567babad0309181502736682c5c5cc6d0f8f0a58822612a84b9a20ae366069a93f884068f02908624a9e2654d5a8d2b190196143dc4b2e5d0455bf67c7eb98592a70eeaa1164a76b4d921861b96dce04196c5b4e5158ecb5f0751b2dabe0ea2fd64d32a4c32d537d674ddfbb1cae471d734565696fdf15bcf3dd4e3af14cd73cef5f8a9145a5ada3b957a4fec6a15edb00eabe4277ab60f32f851fc8d894d0a506fb7db915b15c6a68fb844ea5b02f558277fd4db438f16a000a65b7c0620538bcf9e4c2d3e7932c5a1c554899b2e3b9f5e0b256a1aa800d96b8cb076f59cdae110148970372f6fb78e831653701a83ce2da6d2ba6c16b5c745e7bc5cc16cb14fa5b5b8f94381c6691ac7a2855d69574a7d6786918a954e384f640fbbc6c4569e4ce2ea30a17f4318d1871d9fd01bf48b07eabc0fac85a2677b400bdce5d013ad8d85102fec050c07aaf8cb862a0e735f3d51c92f688735f1041631bc743c650412aa8465c71df0a1f184aceb9856b9621e8184127ca8736c2020d193f694c8b7dc2472c5997e18860fd5be7abacaeeb8be98220208fe389c5d767748f0dc4a98b0943c7572f548180ee42f6eb867879540820f5d7187e756c204053610906c166cea393d15b7b5d65a6b714842a439902b537cee64da441e3877da036dc9133c7728e9979a953c4f8896fe8339e7096c2d280440f28c913bf2eba07e9bc5a189176f5fbc254f9ad46935aea8c914d7d6b1b1a075b4b61662a6b616b4dfbd4cc19d8e5eea408ebdebb20b024ad4e6d9651c743ee90a4764c74d8b187ab20151515d76a66403a264680c3ad32e7710a539133742da5dba9097ade2492135032f31596e1bc6b961d8ca0ab3b184ca0cb3032f5c662d18d1611566369c1c96c4e460849816cc0b7a28d2a5c392286640989d3ba3b92b0a2d7232c52e6ea61ec87d42e7c7877ce79ffcf1f27e5064c892e945aa94fef8fa9e60ebf57765de5789e9ba785aac0530b4c932c62acd0a960e3a5ab70c88354ab93032472ccdc8c116e9867c37658baa6c4d437c114249cb143750a262f0ae840002885c6b5531b643141b1f2f6cc962d66aebdf7b43911b4a545216735f7d05c9e7b5517df729c6659cc289daec9292a78ada8d71e1cb99fc626edb9f85b5c44542424d666277bc8267ba05e8e3153cf33192496d2c421f210407acc8d52f129cf0a284b16ca4c74593658a9b2c5352f4b2d19afa5bfcd9e2ee8f3d1468f37ba08a914cdce6e3da91ed1ab4e9b89226d024f7df2285aa9270d24cb1adb931f5a1b78e2d769b0bc72658f256f2bf37e8da41ce42d824a551a4b263f7c9eeb9ae24d9cbe453aca735c16207f24a9e1fc5b56d1f58dc59132a7651f1936477795adce15bf1db2060826c73cd2658fcd8baa8b676b608f8500c1c77b697ba9e4f9fec8e69062dfe15fe41adc0e32e27054ac776b5c3d58563132a795f841f88b975ba7a0ea97fb59d27d2e60157af3b8bc4a38c8c216f86f0c23253e37b412cff93393bc24508d4114f68b67490e12571a12d1ab8e42ff7d61237425ffbaa8f1ab9c3f5ebaef8895ff936056e2beacbe3c83ebf5c7a367af0c0d5a5668b889bdc7564482e309112e603c9952c33a4f8f94981c32100b81b80fcf81302b9c0443d2e7ff00fe69272ebb3fcfef1aa961f8e902192a58c9329cfd526ff8f6992262aeb4b121a2f51e657ae244fb7d6cf71c590ffc9fcfffffa5a66e412b9735c4b9d8d6ea2ae4bd5ecb01d45b866d742ba4a9e4dfe77633f50d656d956da5278f6577ea70f741dd7f18eebf813bd5abff331d76e87fdf2e743f576e329eaacf71ed5711ddba25c6bedba0e7787bb5a71d839aed8ebba0eecf0576bed6a31b2254f8a1b531848968a65fee95fa0f48a768548b9cbf0fb3cafebacadf5df9dc7f9e5a75e363e1f5bb2bf0eb256c277fa1dafe39d5ec73bfd8ed771d2b15651ff6acffb75efd76dfc45714f63a4dce4f9455dcad13e576993ed318a698f0bf2bc3e5c1229879ee8e3f5e1360e3f30c7490e644a8268bebf167fd705132cce4bc774f4c9f1b892297886d15fd7872cd9a2f3a56aaec5bf642915135f0aa35469ade69e38b0f69db86a6dd779def78160adf64dd7c7d682f4f1d2c52f07e7a5634bdd92270772e5b2530ee4762a4765622a63aa5c654cde335dc74c654c1d933395315926a6322626ca84a98c89a98c89097cdb75a79779b5b3b6abde7ffe2d5c6a8bf850c55f0e626e2fc54a7b5c3452862156918e29d40c03676f74fc72f889e007828d3be7e4274f0f8c63368096af2260e0c1f1517f51b9329d4ce1535d421cb1c48a0b074d4f54461a1c514ca32321aa29263b5247945f606c9c9946471c78e590331d1f511ed6bc313d032cf3e8164302a8121a19444ca3a39c1f229a1a584e5f5570a098ba761081328d8e6a63a611c747df8f1ea611aa810fb3715fe09852fa56e87bddc636bc22751a2efbf74f2af6d1622761e072c520e8b46c02c552dc49052453cca31d22a628152e5d889846473b4952cc8a8f4a50214203012880ce10a6898d79747367a61f0d994e6919f61319b59422c6922a36323a7a7ce4498c2063567ce4545658321f1b1d20876974e4d1302b69c4f19147c37cd208c58d8f9c4a20fcbad6b133f88167da41140f60488db42626dd5ae2052d03ac9f7225b544ab2871fa72373b7ca9b2410acaac8d23fdb24549ae032f255c666dec718280275bb83c1d39b031e2e3f142113c805f30d4685313c1913a919501316b630658661836414969b252268d1b9b088e1dd89096668639223876b044881e66a823826307467a6499e1dd5263666a07ac86ab1d244470a4497429ca6db27ccb274dbaa00a489392099227648065822409ba2e383614245a4cccda385631c3122672725942beccda78bb32c34abf78d08224c595dd72e149a714c54c088fea1853234d8aab4f8cec0c788499a69a1122e284508e6822236ab1d08211668b319f884a0f205f7ec498358c647e60cd6ae0c3a446dde554439a79e45ddd7035f02144415c7b22438979f4edb061825c34b46e98479fd50f13ec9c7f0f4457845042addf013d1618e1c50371fdd67dadfbe443b9e048a548a3beaa5a6a631e552ed3c843b9142399ffe452f296f392947ba0523ed4b9afaaec984ed122d9718f8bdab9580f6343d4ccf079103b7c5db0c79a702939e2c8027c00a332418c64d2aa0e722af5e4eed029168fc3ee205cbef9457e4c3b5c4718b8ec613f02d6c63402f1111d62c68669c4622433ac8de0587117d2d373ad91357014016c8c6422992bbe36b649c70ea3708402cd1eae1e49a9a4b2ee09a3d3b22549f77a44208d68940d696566ad2e6183a336d870a199e05897b031bfafa57881c2c4ac8d3d634c00655219f3f52238d2ab277172666deca962ba8e3317c2ccda8862c9a7a8094313fa62210c015c34d0ccdad8a60820aee11a696402281324fb8190ccd0b3a08d02c97549326b630f0e6608d2053889536582a3d8c30c29065bae926a623f510fc58db6468725b3e3ccd8e2eaa1248a1f260a246608d66a637f58b7c9b27ff1e16988a6a2c4062b2fd646a1a2abdb649927d326ae215226381e2087195ab136e2d2ea36593e716dbc0ff4b9db64b9c9f279c129f388e74d02ae8e789934eb879509925f8307d8a24399287e4f54c38d7bcce922a3326b63e8c5ecac2761989846de17f3e846c4ac617034f292e0e46a357cd459914a326b585b33a8cc2f1c9892cc9ef27425cda438cad4e4ccda2894c40cbdef6b8a1834b336fad430435b941d69632698d9f8520e72c49ddea089443166e3fb4444539a487599d926cd5ff61329d70ea2b5f18368d16001cd0447510cd1942652a18e581b8d9cc70f68e6514e1073470447a3f6328f5acb887629313a0ad7a0e54c101fb5942a6826481ae9a1182953f2a499441835520190f2c504491e11346a303f249946203e32409a3013243f8a86539a25131cc5296678136ba3518f1521651efd0eb35d83f3464d74987322e5afcd6419f2658263e865861dd2ee777a736ecec9953c3d909fec1f2b3e25b2d326b23590534a29a594d2dbb808c59df8c09f5b6dadb5fe9bc9a798ddf1e74e43bb09c2f07bb8dfc337a157a71675777d6c2cc29a8d45b7ed03308bb6ab736f7deb6f9e5b097713dfcfede27c6eb7fbf1e7af54147157d0737b1d703e1405937b96190016508cdda977f35c85edd4bf36b90e52c7b57b13ebef70cf6afbd0ce32db6c1f80f9c6e4a2ddfbf8da58b40e97a2ddc6e14efd9d9d9d1da76d22e744ca389dece4b9814cc9caa4831a7b5c2cfd4e69e92797c6859a335bfac981811243961b5161947e7215cc6dd5062a0b120e15c6ba9eccb06e7cd10ae341c70c0130d0e0e406315e57d00c20b7569853ee726b7dd941658fc8b852a2c29a264e564bc6648bab0fab6c0f906d1048525b9c94e01055a64a1c283e8ae45026898f0fc5a831aa55ad95be57bf51b18a14a49f7bdf555bbf2afa50edbe7e9566ddb366b763f889a20f9de8926277a7a028d6af665c075197e2c297ab5cfbacf952b93974dafe27c8014e6ad408e082019440506cd2a4a9b469290f79b1dff25b7ecb1ff1622ff6623fc4bfb156e85ab04302003c2450dcc470603fc41b61ed1b2196e2e2de08b1f269f98989f9fc888905611c1c3005e4f8b307fbb33f7bb47ff36bbace769ef53afb605d67adfdff7f379f28ee88e279ffecc1feecc11eeddb749dfd3667d6fed9b77930b03feb3afb67d65a0bf667d6fed99fa515a579b0077bb0377b30517c340ff66cdeccecd93c9b377b360ff6666ff660a2288aa2288a6ff6665fbf56fc45e0ecff5f3c15fe9a5ff36bd67c9c8ff3713e4e569aa6ac21beacf25be5c6e7bf55fece6513be7eadb5d2efbb1787fbb33c8572b976ae83cf428561f7069dadefb8c35f1339f6bee27f4beafcffff0b695c6774dd9d4b51386149f2cdd67a3a94dc98769ed5418d699399e6aaefd6e2c7d5e26a49b1d6c6200f1d7a9d3aa6feb82bc4ffb6be5314681c2be18fb9b445e7942e859d5b570aaded1e6afbd6bdbda9845c718f1fce945afbc5b05961d8b4b11875ffaff576505be04e2be98d9df6bbe327ddddfb21fca54cd31c378c4ecb7402e1aff935bfe6688c4a1141a5d494a04bd325f9212a9aad7aa347f3474221bafa9ff93783ff93842f76bf7a66dfcc7175af6ea97badeaa0af12c4bddd782a7d6badb5d65a6b9fd66acfcef667bb1f653ee4b562a17cbee8d65a6b29131b7e128a8163bb8462e0b8561f29134b9978e96fb1b5d6d6a755071feabaae13bbc11e298eef287bf844ca5edbae7187ebd8b81bbdd1c6a26bc55db514c77822e5c62b1e052f37f6c68a3b16b693e08e0addafc31e0e3bfa752d7313dd066a5cab872dedba7f526bf5f0a3ed94a67925be1bc853038252ea8197fdb5a3e5da6e3a39d576efce8e8d85e8a5b783b95ac2d7c2c393a2cca53884076a0c7efebd16cf0405b69ee8b17df0933b12ccedc813e7dadddd59fe642a0a04b49008d6bed023bb149759d776f5afef7c635ecca5988700359f0ff3e15856aee8fe18ce29983267ac64adb5d65aad5c6ac52f977e8e530cce1af57229ae653e6bad95d65a1f8b1daede915fadb57ed80f628e4ea853bb3be08ed0f7f5039df87e24bc0feb6e3d96b025c46a0755d2c1fe76119f82dbf5ff0177a3cfe5521c7629fe3e31ac59906375ee7badb556f1f3215a6badf5ffff9b45576badf8dbf148505bdf443b05f404ee036badb5fe96efa3df0792282177b88edd6d4136e1ed4deceedf7e205bc2ab89ff2dd77f8b16f1c4576badf5c1b2f3dcef6fd4bf5aefbe1fb5b1e8c8f384dce1c6d53e1daadf1eae5d69e3a7fd5fbf63d4dc4f411611932d3ae3fe13b2ed3c7c765dd7d50e7f316a7efc58fe0a05b4d61a962851b1091b0b17bdc4f9fcae8d450529a0551e77bb0ac4133616fd7d2d705db58d2baec0c6a26bcffb380a4a2da8819fd7853a392f01b1b0a7e62e873a29d49e0f68f64ce60e6a0684ee1e42438527a5ad1452ffe07363927650e3c6ca7d9569c634840eeabc0fa498524c6fde07de5af84ec3b639f5036ba1f84e45b0166620dadea9ad6d4e590b455bce3bcd097b2640cd10f24eb665318bb52c8e600e6dffb7ff688e8e48c79ac34be9adeee14e67653af6785607e51239e4b995b8262878a714b4cda91d74bb5192fa57eb5f6df74ebb17abcda0f3dea957bb9b14bd7c77c74e9eef73bd1c769ecd147f62cf075df64c33059d76cd5330406e3286cd3785ee824cc91462f4fcf7d3e51462d85c82192923f5b8a8f9492fea75bfde7393ef753badf149f1d75a7b1cdb3298c30773db5cb8e75aee32b55cd8ebe1ab02abdca9ff1a8edb43b3cda12d852e87ca3d6f0a36c380ca315c07c76d4c71935192300ec7bdeda460330c22720c271fc7b56d7589e5189e49a4ea658f07c821580b453aeee45014e9687368b339b6fee7e4386d102481a31ec3e65b456abb1efb57f1de8f26d88a4b60f1cef7d0ef6932044bf60375ee072a91478b1b736d9b137e5f4dacb8966b36d72aa6e3e75aa5a3e7306cdc62316aa662a61746973aa8c4ad972431e990492400000000531640002014108b856251926579ae7c14800c66943c504a36924702a1501890e34008e21006421888011086818c81cc31a9900354c13f840fe23e407181ff6075ad623fe9745c2fd3f647daf80fd40da5a656f4719933075cab2f700fc3a8418e75a85acd35fd25d0bf40de882969b5f47334f9839e01332c8171d9b598f723025c6dec10ee44e8b3dadf0fe7b9ce5d5cd730af7df9909d7a5618007e4db814d15387702588839ef301de6073fc83ea4d235b7b2e3084f94d7b79ccbeb89fef4d4f3c2b9db86725ce09e0fd3f3110ffa2e7f6c20bb64df704d9344f34e96fd195472b07fbe3fa5b0202f895a05fa2e05f6bdff0317a04d81594e9f824f925300fbd10e5cc0375901020d7ae2c06291e597fed4a4fd183e031d40ff7c53dea00f25f413dada77e20d274b708b9c004121d3d0bee9bd9d69cdc3d4571ef3d9ecef266044c72bb2a31377f8859ce71e90aee3011dc78634a807b9b3848617c8c65ed5d0a9493408d0022bcb1b9dde9102792e3e6f6938ad68fddd1c076a14fa10ab5adb06d4217c37cc7667d0edf1a52ed1f3669fdf3c609fa732df964b54555e38db9a5344d69eac720b68f378e7b7e1d7d815e3fe1cfb573f9eca6145ba610a466f52d886cb75ecfc027c120b8e3ba23cc62cd6fc837fb48be279a827d7102603f34a60cf7614441f8954ff675d7afe36eeb154de2cd3c52d69c68338a2c0938900f4463b5861b2c5ebc641ee487be13f471d36e56552889b3c1beff9396ec2d9a01f71339f465d30224cd92914ed75b4d1d4544e264192010f08e02b70865f74add1d721acd8104fb6045b9540225ea2548c5926add21ca5a2a2b180fa721e67d4d727a9022f97151f75fbf5ee42b079294cc2dfac98514a5edf2a6fc9f6fae39e2719ae422499909e16d78560dfa433fd8a1e1ff8761ec07c1e2d78be3e34837d7a18f8de15f05b9814bdd0a2db2a776de8187785bc575b95e9a9f90ecd82ac29ca033dfa13fb81272cf762bfeb246cb1171adad0da25a07aac1a75014f1ca9f150c117801bb4468a443a34dbc950d1971c80f4e89bbda9e7ff5106f6b87602130abb854434042cf8fc9496232a1bde643e39abb89edc8486e7dab0742a2b82aa9bff510f076eb8a7f733274b428f59e4427139e617f663e2cebb10e308fee40e7308d125928baeb341da089cc7d0b8214ec9d619f2d11e1094e8bba308594809282792dd4b05aeb9102dd13c91075fb659ac5476a3453b2abb08a120151c71a0fae8ee0fd9f88773fcd29214e623f00017c262e5c701d737b1c768e8845b2e1d02ffa217d1771bc33ff6e87a2861555b3a18597d48b329f7aed52614043fc48ae25d45c561160d5a7a1eca141f0344ca9a600b13ea5518e58fc8dadb13a9093e7b4366b913372158ab2dcc134136c9a152aed47cac1ecdae9efcea4c3eaa3ec0f4a8088116c82bfcd34df46b94a03233a3b309a3ea388fd5f3435d587883feb8d00331a6d1a3e217880ca7bb53c12fe134514c60eeb6b0efb80e5b59ecf0661b739f753dedaa0c8a168fd975859e3503ea739892232e4df7d82095e58974b8ddd3f81f4e7a66e893d3d6db9502ae693d3ddffc561d768f9549004c5e1c705e552ba5cce9430c4a2ef25ab7902119cfd5191a0221db9f9dad1b6d2e86c0252cbe64480de8692306baa70ace83e87668124b08395d3b86fa9fd3eca38005ad8e1c29696961e7eeb36d69f14821a1fbb1682028db0a2e05e6eddb34293650e56a61c16a3607486e77b40557c22e80abad1918414fedda809049375bb0a535342e67006c3f00dda8ce368eb260798444af8c6a991f09bb1aa8f2a7ea675943274b668d5a56c305ad75e426341cd81677cfdb97011e44f1945da5740cea9c204273963ad7234c09af88f7cf08bf151c055ac41ac261638c521ad30172308a38e49a677de392ee09e9df53ca3565ec6aa2b8c236ceb2d7467b7d37ca4f214b4a356c5f1f31a29e94736c13253e09e75b0677183946b6cbfab701c45d529aaa32d7293988bbfb4032dcf79c0c13b9e9c5fb8a09692d6064f73873ec7c29a43daa856435aaa5f23fd918b832877005570d72fd608990dcfe294776c1252b9cf3fcd4e8503f4b12c069cd3ec422f608bf732ff2f44b645343b2a7268f2ea9ec25d3009baea3aa8dbff53851aeff0d6d4a933dba777bdc1ee8364aca06ae0aed88ac8874a26eaf051be33f7523eb59e237047c39ef294f6f4d7e97c55bdb0a341b3d1a133c0e7286ff69af946f68c33ec64d477fc32ccb1bc5e6c1c2d233387af6dd9a34f966d5010d24dc20aacb81f957a6dff1f328b492b1925d9d6c751a73d0a9aebe1896abc051a7575d0d06d951879e708fb555df57ee57ba4629cd766536d71ffac304f871e90412cf6e313ba2cc5bc31f45e5a1e616270dbf82cd1616c25b8dc1946d16a52367d8683181d07abad3e3720d96659900a99d6f76ed7ac61b50e0c9da5d352d83d86f8c50af936ccfc5689e30231959f56505f34474604833d642f6a615a4cbf1304f85ea0056b497f56fccd1fbc84cfd439dcc08b4a33f1046eddc609df7ef6eff607f1f35c0d3735df51e61f1c2570275dd307f997b4f8879b75837697981111c0ebafa2646c372556c49ca89adf0a8dc1715b06a234400efe287c4718c6d578e5234eb584d09608e79a3164e6b2713c22b847ae0cde351d59ba5e884ab02209810c4574833d01e3adae2bfc941b6ff9f8d804176f705153dc1cc82f4e426270880608192513e39c0f6c7f8e732de084974d3dc306f659cccdc438da7c7d385a9275884387a1837016e40d0c121846ac0b650c6bd0e5c6fec840763038d8dd317f6fbd8a8b62ce57375ac0a0167acded643a8802d785e112167bdb466fee68986ded3fec81fa23b7e309af20abfcef73f8d2207ec9b47197f367563ff208b40d6efe600eb2227bc66b00155b4b90d05e16cfb9d89a7211bd09a073f7308490c390e5c5c61bd1ed23d3796b8eb194427c2d9051e1b844a1df755d9e112c7c7b3f4ddc4141601a7e49dad11faf099e586a46f0be15fa1924c0d7e7b101f054280f88b804264ee1c73987a6637118a8811ebae920e2386ec4fac6335ccef3cf014de609f8a171094be6e15335fede024b6a2e7a0581aa82a4f65f41433fe6a18b185e56e1f104052210daccf802837e6687ea9d0033f35af737bdf823fb7fc45047de5ae003f72ee6ed19f290c83353065e720c031cf9b708be3e497e03ccbf33a8029406813b323c4ea8e91eeba291777a1140099eb2369917bdc63bdec43a8488f07967c31cb721bb2cf180032b1ae0c7047d09f549ceddd2711649d9e578ad5ba80cfaa7d44513c6dd6ba187fb12535bd860120acc6096d4fdd35bc20f260c1797427bf2b8c4a426c09bb7e530c95d487c54135dfa30318b83f51f9453752951647dd4b96ea0a2b9f2c28d2cc65b566857b696ca659b3baf7737bc7807195838c1a1b88bcefc9161044ebadff97a1b83e1c3b3c7e3a7ba81d1ef80081cf9bf383af080af35cbcf4b6f4aeec1bace55384ad1d1ce5d23a37fe550b82ed6d98cfe3a601f82ea12a595af984737740440b66efc8a0c1d03d28c55998607da6a9891e1f661d80c2ab5579258cb9a4ae7d5ecfbdfd679086c8b7a2415bfe63ba8c8f47f8aa7ca3fe8ee7b71ba8a0218ece725d7af8b5bcc338f067c1f1331575e6c3256540e80b3585e7d8ddd2801a7fdf2fc62c87f44f6595d7dd573559a70e3fc7bcfc6ec7d781e74f405fde2b9aa70ee9bb1f56cfc01181df6aabb673e332f869b04baa9cdee6eb850b3963ce4004dbe828f0a7bf72da231b767d22b79b9fc93552f11b2c0092b3ad9d1150c1618301898ffe2845619aca1224908134fc704121124ecb766e111460761385c360914ed1a5c62c608a040affced5a4fbfa761fe5365885dae27f88dd757a79b97dc9016f3c2741f7d7718e610a6610b331a161a16d5ea3825b196017b78b0376d191298cd1b0e62d5862990aaa436c9ff427eade34ab35eafa54f675467537eccc14bedc90b6e9f66bdcf42c8ed1a8b062122153c7288f048852e350e14d4ae6d520abd0783de3b136f64c205237581e81f9308cca0f24185fd0cabe3de96de115072af2c10c13b5bb7ff85137c234a05461c111b0206c245b826d700bf30ed9d2d12890748119a34a072bee1aaa225eda445f218210606a80f0e9fbb4ab18d9b3bb2e902d55689a501940f14a60b8da3e9706683ef63f77bd86e46fa75c821cf2c0aac787a5c37094b63c4a914c3118befc3108647fb2616178c7227309db2eeb533648018bd16f3939059033b78fefe5e28ed802edc94b22dc19f61a823a2e5450f5f104247a18ee68f418833dfbcecfae38b2aec42e0045dd286574a796d9df7314fe43cd40518feca4cfcd3b0ba681447742a6a85ff2c3c004ecfab77c26238fffd1462fc5578879f29e271b09c6182ac9ce715cd068fe4a31cf4465691988d47f16f8a7f2117b5d1b1b0b14e76ce191d41e433e0aa548cd1fc3eb91233714414b0064b255f81cde2970d6775ca4cb09ee77a434c11b574a9fc04b742cff8c063ca5146a5c9d7e257c2d2bdfcbfcab4d41cb9ddd389cdf9d408c39fb6ff66798bfba5da5a5b0b6726f5881c383045d39bcabf39a3860277e4946340c135d58c6262585844f2197ab82f95d503fdfcaa066ce0d7ac77a2cd20bd1cba7bf2e2bb0bf8fb4e991a3008c9805926feba3fd44b0710277a7107e16b1ba0096fae7a06696396de606027de91a2ee4bc08d551b3fd088be1fba0668bf8f3aafe750149e01d98056024c40cfb304c0a408b3c9d32f1b680fa149cb1cc1b9ae80505d81240990958ba48186c3b0be2c43e4a03d6001c4f667b3de65540d1f00ecd39be286acdbbc15e48a80b69db4378b743a8a373788e0186b415c09e659d43b990f3c51919c3bbb1fd0c3a9b762b9878cb8922f31d97c05fdf715569b9158ab51e598f7e5ab8ad80a0d6f03ff94978baf97afb8e4114abf6d610b24eaba83ba07b2331712c86dc652d059f8e6022ce1d2b419b34d556c3faba78a45eeab9f812efcdb9ae2d7bbbac581717520aab41625a9ab876088a2e9eba68ac6e22e17536b31765751eb820e48d9e936b3f5323ae4634d8d0cfe6f6a21fd64c4564f8e0937d4fe712c2256b37c4cfe9cc77b9d4ad68d55a9f2b649c162d6640382134c15699d516dd7f24369aa1e8eea2dc0a3b25fa9e216b70e8c904e542bbc113b9dfade8ef09efc914dd0090e87830bfe6410062b929fceebabbded55bee1a36d2813ef149c07b38981893ee7e14fde64b18d5e9f44bc4b583ea21ee856aae520e0c85ab8541586a8518ba2b41d7fb3e0ede484e8754111e17626c36ba6a66025558f53a870797cc59ea296f438282bf6f9f3024e75ef787a0185b51b8aacdedb76684ed5a73510f313e71b0d43622882d87e65a4becaeee900b08b551059f2afea19d42ae231f69ac172bde033a3895d2af0527d18bbdd09dda4699ff41b251080b73611924e7642c4d5c91f48eabeb2f32a7ee5411a009ec50776c8fba93f98fddf524301f5fa15763c746c74aee52823fcc6ca69fa12cf19e5101c418cd623eb6fc01da31327883c387df523dd3f601a9f1eca44588b403873571c0c2f5c91e316d29ebdcad85279ff6b768fefca6970b07da6b008ecc4920298fdf5c61bb01bbda14a6c5d1d5565aadc1a9b40f947633e0766843f3f86fc8700ae38ecadb113357a050184d06d9410e9f44d03341f6ad316fcf06c192311340b77e10a7df6bd71722f055e0430fc681963935e1ffcd17a311f0a42a656649a314744afba9ffff6021bb53a9705d052240bc34e307b04b83a7f43fca1cd5142c77074dbb1f248015b345a19a3b2677253ef80dbd66081ad41826f122d9b5c51bc46f2d3786edf2ec6f44dc1cbbfbf6f5599bc98e0fe0493e7cde17878001ce9ddcfaca5ea7fc1406922416defef86ca7821edfaf0b81683898557282c4895f479aec3a358b5be3bead4b8daa14d5ddc6a5269c7bf9445b84ddfc5962962457bb5aa50acd634084a07edb32513890cab74c13d9ba1957e0f8072ee373a677cb8c4a60e336eb3c75e971a18ae8968671e1315da11a8102dfd8377a9248fdb5d93f5c58287cd3e3d90fe934f2d6801fa59c4344bb421f2d0cfa2089805ea0597d062bc9017e5e553f767df52f81e40230d8ee18a2133a7b6c576dcef9c1d58bdee9328eacaa663c82f865208ba650aef1a82f36440b614766e461199db490106a30b483469239230ba48e0f81fe311224889d5261ebda6b48e01b79522aa93571e2ed09841e141f9179e27cdc2dce2489db674ffe970028b0a8f579af7a1395bf084f81e6020ac161b149b41a185a4fa964dcbcabe9cd160e7d7d5b4342837875763530fe9b473cef967fb6c30918607a869b0a1f24d3b5814a1c5eeb760ace511089322659e1d3bb28bec8653d53d34ff7832636bdf86b94c65d4e1f749ec9e729318716a76e7dd964a8b4964cefbd3b212f0497c07878a5d2bca0bbb5c3526e1dc95f46951138d70be8794457cb3424f1704fdca125debd942d315720532efbbdb02fa6e8c49834a166b5e0cb88cdf89ec9933b867bf35707daa5be9a99830512404a1501c720ecea77306f2e827adccc1eb519aa53be78a54fe2ee4c457b101ba03d1b3ae654303cde2e3605a8c9668eeb322868c35711c387fbdcf432ada6bfd57160d2f1742bb8b5c1e81cd55e34675cc8152e0a1a77d914838d3ce88a2a59121f8162cc576f72cfcef7dc5102d51aa6685f5e95a8f75ccb924f54d850e2bfd110b2d3a7e0df48aeea61a3f9025a15885c225fa76c26e180103a6157172215ccde24a5200772aa2c7cff255e72b2a7c4b6042c0470e2c02dfa74d9a4d705c7af18756345da8aa0e43274ba8b71de50e7d0e2c057c7584e03c65e37e1b28425514d2550f8fda4fa70bff56c801f8767fd19b11ac5a507a0b00cc472c63b4ffc826864f797e6cd5b207716da38ad82acfe2d6f8843ea68867d011bca08f95f8b668bbb86a25027688702d8d43454c7bdfd34cb92a14462e27181cbff678a31dff7a76b37d6229f25da5dd5a107a27ed4f15b33445e05a6a960753c6292f9628b2924b5f0d9f2733b197f2be5f9840e56f4488d7a14a2aea49ab6c604bfec932e998291fa25290ac883ea0c313b8373d68acc6c4787b5c3246be061969ca4f182d4f01c487c80b16414911b9ff3a45444b17fba077dbf96629aee584be9fe8dfba131fc7f0b08d9930f201fa31c7851353da2f7a2af68b750529e70118ee0d39f5577b31a01ac421d89d21696890390afdc3c35ca958464977f82539abc2aa391a32cc11d743000ebad6186cada0472af6d47f67b7c00b2de43afaf64789c31f56a9b009b4bc589cb550a5cc4f24f5ea10209aae601b6e237c0a54ba38107c7d3ca505a2c3a9b09f4e00832187ef119c54553d86a22dad593a5958042c736ac344f8e140a966ef8960978268f2383ea10c714b6a3cf3a251047dbefb4dec77f2c30d1ddb594939fa9719cff248741d82d362c026fd377749d16dcc94a2e1f6ed51d00fa10bb1be2ee584a5424d36362d187f79096eceac551796f2a3bcd78514f42e55c2a291a4b05178d0cc17e1ae95f5b407aacb6cb2f9f31c12c0ebdbd0392e7e8b8e768a732921ff6c2cb28a3cd5a6c9c728a5403b63054316b7897c7cf4968a13805e5b84c4d7d74fc3d5ab486fc7a860839bb64df0c07e533a61488727e02931e5670dfc55f53dc2d99ca4f6534917f134500b5d9ce0db186e96ee7bb1ccb457e123d063da449de0bb62f090f430ac3f7268d9d4ccaf0ae97b311ee817bd12cff9b35ca5df207c4d0a6cfd4a6bb4e6567b79740a53a06882aef88d1ba4fcb76fcdb11da1c3141ec5bd718c0d55925a9325e61b2e491ca4e61d50e43bc3cdb4fb7ed9d1d90d3915617cc9e781df1d7d19b327aff406a413f7ab4a0ff361aeb7734a2032e2c03d21370df5f163215697bbccc12f488c6ec7dbc8bfff529052296ca0979aa322c824a8fe5561ba80864306f8f10eb756244c7091f074574c9dd247345d724c59e0dab2f83e088ab29fbf0654e6d55994640f1caf3307de84a1f05504dcb26a33ce9e4609939a45cdbe4ef016e5ffa53948b88316859bda1000f592c4be967eeaa7df50d1ddf5700d45814091d0ebd2e3888263f80abd63e4f41dc10ca87a460f8df0ea773701b3adf69f831ba915eb1e057b488ec73aef1068728aa4e4e0a1088fb64c3e3a5ef65dc9c67c38e3efd6fbaef16224ae9f42ce79df28e874ca59661d6f6bad5ff570ee2a8a6603ff3b106c6145816b91428c6fde2339eadd69937d7200144310a97ffd2506420557d65ad9a4e50061f6efbbb75d4c0f9a7405b98ecdd681bbe4d85557394194b6bf863126fc39868f32a863a344c13b08a8c6cfa2da4ba05c9c4a6310df6b54943b626d0a0747858bc30351e3edb0720f0a3044a5d428cb0fa5d5dec12082e6370076ff105992ba59485ac502c57d02ce9fa8738102d3702ddcc3df91fb0c5ab56441e918d97d9e274f68d4e20ef791507f249e4e32ab51e41a570da798e5d500a1a5e4a5ec0cf7cd6bfe08193a2dc642f0e859d72a5ada3ace12cd5741d7d0734ac463b0786b26b6e4a1ee51ba7ab6c742c29465267ce7979ae67bd7680a2cde15289f8f38a265a0f48313e0b28155fe619469322162c39cacf242b08256de3e21373746fbd714b874914e40da86d26927d9b1b6a6efd7b1cd0c1c834f048556d0aa1c208e30768811928894a308b44f2df6af50b9927c0f10637948ba2df5434278d306c54115e79833278a317029178eca246de0549e669fd2a8a4079e8894e67244ff8c0159771f3c7dc78b9cca0223b3791e1cf89f405fa490b1aed98d5c8ca1f875fa7b6f846de3d980d64887a1899dc686a72943592b66698ff36180485d83eff5bfe244fec19738387d2663710f101bc4f712e8917b43fd90971d3cc7e62f77fdd605e9d7196c48222c5202fe0e9014de201db19ccf88de4402e25df478eb21e858879899230bf8584ac12968a35cd3233a2f205abc34af5651831f0086cadac7625401fe292b279b9dd730c61446130c05195c77008ab01753099156143b93c0d667bae9964f079454c6caac1800fb48009dc49ea336fb6a0d32b5938c2ce5d19915eb8600801dba143c5ce9aeb7834d44821ea0375cebe9be7483a92ac42825dfc0bcaa234921ae0a5f6bf1c2d313bab3daa1c24410a91f1b83574e963a9755a9adfca807e3f553c607ec20b2d897c3cd57256cea35885fb6e90bed760b4363ddf2b745a6b4261624ea9040525a7be455ccb61a121774922919195c21f07490148737b4b34798d25a9d0694aea62f402902dc05d1ee19d5009554f2a9f42d38d74263175b09f75b84060f7599576c1c161e912da3212aece720655ae34d4bde39c637ba7128b6cdb4c1d821a1915793e5c207ad6fc615d89627e8bab240348be67d6ee275609c0d0cb105cab03e04a2a29c2c498b211f36d3880772f1f9ca10c059b3ef3348aa8c464c428bd247ddc46a878f275436ad30641206465afc26b46e50ad972f615cce2a5ffdf7945c0e900b11975a4e04274c2e67e44dfb65546a61c1d2425cb976817aa6c1c4e260c48c407093003afeadf045be415132670426b68999da575b0065025b75ad3e79ec8ee50124f681f3abb6839112d20a84725a214b4a17275a88525b75d3303e600af45649dceae0cb5f1a44693933dc4694fdda6642ac879cc019a9c90e43b2621597f7ca45250acd99bc6221ea7345ff8928f9e81314c5815e7627a8611f6a3b299024ea26ad9252e7368fc20bb905f64d06e7b25be40bb69bafd433a155b15a18498b708e3008a9168276d8dcdca7c10ac55c79370530087d12e3cee626974eee7f4eb14b29960ffdcd80866e80534245795fb48c7ee8f9b441ea063470466cc009b28184157edd45f805c062a7ee8a39e6cff6946802c105c68c6c63e6584c8b8a1292c40c022dabd48a94863f2d6d5245b8a3228ea9dde8bd3cc97087b1df75851808264bc79fde69f33be39c010126b1d2641b1a1b214d9787f5e0726f9aae53e3fd1484a8ee2b737de089e278fa6b403d4700da19d3f2635929e2c6c4b260b1e16d4ea389b7842b4d980ef0e6f4943626cac4d80255593926ca62561136eea9a9872216bc4417e9a641aebbcfaf1de9b9c4c859546434fae7310906c19e9f3e573810b0ee45f01a2a6e9cb30d84ba81dc325f51e4b829e6a77e9832941a508daf123a6b068002c593ab869d5e6ca7ec003c81ac2fe47ccce1961f78d9671afc38243c4ec331cdd4e365a7532a330c0dc27487ae88ca0a6db396cacd913d19e7239fdeb91d481aeb9189ed82fc4d7868a224b2e2330e5a3cf92caef001b9e6d278a84252f8dadd0e7153a9e1bbbd4f012ddceee9a9dbd22cdcf430eee981fa9607bcfc73ed4a1c1abe9d4a5f0662121cbc46f7f891640c9a624489cfb85ddb05ed4d9fb1c3075cfd803edcb76dc4a0e2be895e18616eafd8c25cf8bdb6c1b6fef33749cd709ba2ecc7850608bd444bdd037c7494b63e6daf48b986286671216f46597c36fd5045fe146778a3f3ccc5e6160106c91531a2e7825d1995ffa69e329123d20bd79b43e069e504af3a5e40e83a93663f014f18026c22fe6f81a97f1c3b3f751bb0a5d0cfa5f2d5969849100ebb10baef0013f6b75fd7217e96e6190ddd0b521302f0ed12bf3cc84a216e00b5337e2e90d200282a818574e7b682dd7efbdcc28e80b57675d95f1f70fc6164741b5bf3538770985bb735b4937e6e0638daadfcfa1042218e59dbd899ee41cad2cc02b8ce6c6d6918093a67664d08124eb32cb5106ae896cc537cb5b559c97f8f44c9376ef4d3ec00fb27b08c2b36f9603cac389a5bd4fb4e91fbc361c1de8b747e30eba3b619fee8e5330ce64bbb9be594298d0c8678a91e58533006f2db0b715adb13aef329ecfd93acbf77dc5e5d40e7e11a5bbb5104b4df6a32d67ad74fe4d2394a5a81a5e3eaea4c8f4a7b11a6b9854250c4ca908bbf01759165f7c42436e68de98936b3a5f36cd2e545b96946440947634d9c8baa37c0d3c161f5095efae9c10c8aa55beb6d7bdde2cf262a5df2b9428763c6e061178fc45401616d1269a985965d1e6780c6e0aea2906760c03efa56632f7354ede700120e0f811a4506be1a0b8a6ee54d22029e7d0afe4aedf9ae5e29e04a0097986d6d29d88c8ca989a5e3b34cc6621bc9e94a3e0a54c9e7da13673a21beb75faa533bffa921367420fbd77c10973cfdcc8bf7f39d9f9be1e080f978c360babcc92949b4f6786518d1f6fa23fbb42194c86cc2cc815964fff2073adc9f34434a5d53cfb2f9cc49bb2a047d30a8d36217bad310e4fef9cc81ea89e750c7e0acdc9e87c81300d09d44541c49449e8775513c087a6d474ebd1a1105d4038d27665a30138f08605b2742ca95d59229592e9c048ac37033e68254f6808a7030300bebfa1254497d2e68d7e3c70aaf990265b6ce2667933346584fa32c966ddba8813c131a7974b06754c64f8e35475d907782e9ecd0c1d0dd2fe1d3f6517c58a1d16ac7a841daf595cc35c6da2ddc52f25dc66225cd6356120b47d99f27a201ff363ed9745edd4857a5b2a98699f680949fe0267578b94241c765527fc76d868874d9eb049683b7978658d780aeab81f593d9295d7ae665f9c2b51c01c0c58206cecec74332301ecc68b9193bed4d3dcbd2a9907266bd25662496f2227ce8ca2f078f6b5eff424c8f975a21d820465ea2da6f0cf612ea7719df0580e9b7bfe445ebdca5e320bb87adabee6f9ad1c9a6f8f5dc5c55ca22d6038b242047844335be682fe25e60c0dd921919242fc620ba5b0a10a25182ff680c62b3d821befe9bda7778931ca0fd5141b8dedb8b25738ec6c7991df71562c08911e4ae89f82f5831e01d236fb9eade10f009994dc2c655e2104bce4d4d503173e00d17a7c9bc5b05e384523bad6c77c5dd8ae5d15560e68bfc34c37979272382111aa2f6227b5119262865afdfbac2737b69eebf00c446b8746b29d5801ea36e9d020e452cce76a7211d9b8112feeca7b6c3c91f8d011a5238d3d862cdbd7118e547c6dec1497fc237bf15f293bff00dbc7c0f0ef18d932535ebd9015c02f2145e4d08b91baa902ac35014284e6e843329c605fc59323c5118bdbad744c289dd2d4f13d5a1384a987462e24af458be445c4401e59594e5e7bc251500c2366b5b0fd50965841ad7d180ce024ce35a178bb147ede76a1ad791e3b6a84c38f7a247d0e7102ed7e1eafb4c1e71d5582576bf8fa10703c925c3ddd040553acf562c2afc6d0df5db197e80c8a4a05b491048ce6abe6583ed5d551553fa5bc3f02633a0b5b4d880649fffb2c7ba1dde4ecf267c0057fc0fb5ecb09ddbdf6ae157294a6e698b84bd1edc89b7608f6aed7b7165212061be0e582e343a2e1d112643584b5c8353e811e97f208c83210acf5e830f283c695a829f4dfbe9d0660ff31724c60232c1de8483e4e08c194a4ff46ec1468f9e9814754c5de6c4bde9e47964da060b2e36e71e282b269cf99f9becf36c24985cf1ced93c5d69713331e903103d30d051b8143d884e3a1bf6a2b8fca18cae644daedaa94a297b9e096655f4b3f6a1f26533c28ec6fef5f2e5981e6e5980ca8311ad6a620988e0f6e20c0b925885baf62c546c27d7d6e9b6d8ecc444a3c9b68c19b050663b0a8f44f38240955f2c8b7795c9b81cece8be9251d0e87e11898ed1e129062375fcf91fb52d1a3a410dcae334cd70f27d81318396611a43ba507a23ec4db0134be080b63360f4f90c6cae5b76c0b3e888d9f9b0052d3c81f5dc07c91815f55679fec375f67248fb1a1666f6528832b1bc7d320c6661e321a397dce728710790a790fee04cd1b4ceb15796628a5d6a6097596f9035ac0485a7586d453f449fd4966be12cfd35f1e058458ccef64120bd4017f607f7a406fd06e3ce84d468a9a273bf854c5aa3041ae50182614adb71e7934b781d8466bab04aa617393f0664c48ecb20465911903fde2d8a0ee5899e27f6fba24c544cab1b03b7d6be7fff468b0c78385b52fdb5cd23f53aed46656cf2b2992fcde2e16272cbee85b5119c91518447292e42fc6422a833caf29a3c8b017ec5ff2384f690df1e5ee383a631e868d7da16c30a4f09ad055cb20d515aa306eaf10b025ffba39eff9cd0089cc234ffd3d7b147caa3dc2bc770b494d3c47a1b8ca07d9b00c296526a66d08d5a5d8fbd498418f8497706866d39e241dc1623e167f84d39d73a62de3f8b6c5c01e0c8296032a301a7525039d281deeca04bce89c1507c01a4f45100316061706c54e54db34f0efd642ffa8b1df7ca9d9d485fee7639a491b35002227783499f727de22450d7479c4a42d8a92ff756004206993ed1d12aaa031934fb3269b075edd82c59fefd459f90db546888768df2ee5acd3bae957174e984c9409f1f8b1c8c81e4e1b3b0828e2347965992777554d697a1f75b8117bbe3e034f437b2c249c30d7d919c792ee116aa59b5fc791e2f2e553c4e4aa571c0deec798e503cd5c58c538c842e95789490b640c36fa8be39ec769412623ecb04b7fca8186101449f0fdf518f7d4950c8d01e6596c529353dc8a88095cb5c3364fa0d1fb6cbea53993457204f00e3c8eca4094b863ecdd74b6c2b122e03fd0531d4685b391bce4b7ce8dfbbe46e5bf087d9a851a77efa97ea9d2f67e92e691fe5fa33199434afe14510b71d45cfb395af0c1039b743306c317c65a7d6323db7d69b93683c6bb1451df9ef9868d076748b197d7ddb745b0934e2f568b6738dcd680e159ab52fed9618383aefa45c33868081fd529584d59733ba74b090785362393ec6ce080ee87f00eb4dbba0e9c7c041828e78906aaca0480711f4ae6710189f1036108ad0cadaf867d7845dbfe627dd4d3ae794a259a37cef68b8f8775cd0808242689632e5dfd9248b617b8c895a5cb2481fdecdc30d26502b08b3507743462288affbfe24684b04614be4da9c32f3a0c30e1812af4f5047d281466fb6e6652a3a2d8c06a2c8836756c53c96080aba7f25ad12bff403276ec069962dc53dae28808988072128503b140125f89da967093f3c035cfae75895499cbd8e12375e05c06a8fb9ff35d7eb05c3db5b4af19602a58ef65fb709284a49777f1486971a645a2814bc94b1a239525181faffcce531ae214dfa237a1ad1aebdb7200ff5c9832d4b4caba4a08adf772e8048cfe61244738d5f9cfc1988080d4352b95f1b2758585f75c4d041c1dbd47ed88f543bf13d07c8872fed70f8698af46775abcdbd45ba020a6b672dec4912ec4897386361501c0391f9a98014a786d06ab240a3f8853e313c81b2aec28fdb0edbbac9f0f4a32b58a41f6efa0bf1c97e993a49aa1e9a6621ab3e5e3d59461bf48dc3c57f8a920c23071ad305ec773e3d785bc597e3b4f4472d6fc819a9ed9db663653849933a76c588a6e6ed867fb3791dd6d8bd9fae18e7ca4e2a3d5617b2d759693ed9374131ecb4047a1e1aeb15363a90a037c74edb7583a507821f0f4720b0948a7fc9d04214a04583c3cefa72cd008450ab4b75cd27be74d120aadc568a9f3be674103e5eeb613866048cc6206129a0c915e26fc4540a63ef8d013d153cd06f28ebf56e02d023d4cc4abdcb9eff9f410f1ed99d8c665f7272f60dd32523ddff895d500d947f39ea20578e97305a7f49983028406809596055c0ddfb77e051a5779057dc82aa9ddaed95274fa51f020fe1e354a2c53d2b7664419bca25aa7bde8d7c9a700cb60baa224c3c8048714b6e8a572a597a184921d11cf0725b8d4ab72f36b1edc449b6314033bc779cd3d6a3396d1b6fbebb067a90883c1956e569bf513dac51bac5e2ba7fe8b1d0e9dea9b0b088296a630351083753bb3c1f12e8dab2a66afecfa7b2ceefe45405e93c97776c61f8a1d577ff94583d96c20bebedf0cb496b11ac4331421dc2529968415472235b69c2d8dc12b9ca5787a9c3a6992fa7722d781a63e5a3c224dc222bccebc21acb227a0b84bb1f5a6e28e47ae8e7c5d0f1421cd6e6afe326cc521eb500c384dc07e423ffe2e5ca6463b85a2ff642c99a28a1c0982571111a8c367e428d5b2caf527ddfb69ace2ff0986b9a1a736b2669ac5c5cf0dc901218e50fe24ec27854e707278767476577f026386fd490caac333bfa90aeb25f6d8bc7065a2601a34c62720368e00d90729e72c36cf6fbfd20390804ac4bd84e8ff9fc78671304d89fea637cc8483b0951083c7f18916f9a01c1ee2261df34fc714f6594b7167ac926861da83737bd682e80ff6ab6036a674c5cba8dcff52f1744e5d901979006bf858ac19f67fc0ac1c78e9b7a049751629d0d45eb4611b906be439f1af44f3bfb10b96318fa633fc09181c7a8ca956763eb8e748d275103871ba4b55b090c8efe11089907540ef2db146634996a695aadd0144564c02e8ca82ea28ec0ca7558869b68ca3a364bf024dee8289b06df76534efd204b42c8427091667a903848d87d693f17be16e4659cedcce271191cb14f90c474d114105b36b5b263d55a93bf1db19f15872cabcdc4557bd529a6f844cb2afe295eb04b62113cbc847841fc8d0a9a874ec2e2a05e0cb8d9e1bfcee0b14f001e56a094f1ce69c1db660244e1014f67954d11e49460a13f1957e31bf38ceb7336fbaad8b2b13b0734581fc3928ac8291a431988aabf51ec1fd24cd49150392674a801e99fcfc89b73e195691e27c0df48828ccd1c4525cc96858b0bcc1affddac86cd903c73df46afd70a5b175705bac486e44392075c6e8e824d4c70de287f962c4d03d23ccfe37d19c30543a043bc69c893c5c12b1e4f5ed387da5f7fb473fd555d2feeb628e104f5b1ab3dc221cde761617eb269c6de587f97efc7e19df6d476e0c99e433a691fe983f203b1b7f195cfc40491f54c90e39db7e997493bf19e19f073f4774ebffc0981754b1388b2fe23d226105217680881c8169fb15f1006a1966c7199915f50f07b93a3eefa5c44bf6aa97c2414ab9b972e36a2f8d36a10de95e9ae361b1171971f1cd486d90a2ed794a10b3b8dc01f951a9cf65228223e46dd0421c260f82dbed4fb81506486813d9d715363629c5bd5066f0b65a68be8ed0ba2940a0cb76ef96275157fa8bbb121655d3ed73a07a65d2bb726c1ab438bbf0dcdd0e39c64d9dc8cd4e05e5a905b92fcc7c97391dfe17c1ac65c858ddc1d78a64fd847f618b0624e2afe79caf5b26bcf9580fd1a9e947e9b23e15dc20acd4540f1d71a42809fd5fdd9c5d20f105833ba270307502649eead1c8c690919f4a8176a74c2c514906a1412cfa014595008853b9d15c3079370f7693159cdbef82a0abfb6d3a8c5a5d8d3a19e97ce0a338e1272b6c5f88cd0d95900882daacc287330c5c327b4916ddec2d7992f23692c70ea644a1e88e9b761c717134058c6c4d69e88ae9daf65ecef41b11ae6da3c4483f0e59c2081627d9b6316e909575068a08dc10a901f403b0ac951d8dd25dbe3113d693d9eebcb91c6bb04ea61e1d79f8fe6a8c909f6d3161c70521547c5f31de58c2330ca4d524195efd9c875d92642ab457437328999c994a249f71e64c91499ba051e5e4b6b9496b24a4fb4a8b77ad6f6ef834b0655c9513c2c480c064ab3e6ba244145882c6ef48547d583519cd7cb770341c402bbc81edf4468c2c66b41872d138989b3678a201945b1cb1b32a5813fd2d0791fd4652dcb39398827cefe023a6640258479d58db88998d55a71c43f9451e2c6fc165bc4bc0bf1d716c57276587b01a12eb2c86bb2c2ff9a6c09440c8b467fa0384c02583281c33693306a9848deb229b79fda5cca47d59dd7a7d2f213ef6d053dcd354cbe83ef69b277c38c667e8e28c262693df13c70093f93770214768231d084a7f894f83f6a711eb3dcbb540c802a40b8da5f80fe8d3aee33266f0a4b15dd6c54f686195d3ea0366b54d8c05685564347ec75c8a89e00ddb2fc87d2a6a8652843e1525e38407ec2bd4a96568a8c7430d53df9bb140830b2b7b3a4a32e9e459d16fdfd5be8d0439595ac2d9a683a6620d5c1c9c85e26ff46a0d9fcffb7445f932c6704d632c670c21753a8c6fed988ffeb5e2a3a2f204cac74a880d7bdb7c8c884f800ee37b4006e7fe21bef1071c3418a8e341c2824cd27e5a5f3835538064c4aad456789708b93296072620532013a631d721359e355c6e0dd16bfa58ea7d0687e24257ba3bca014d59120b907dcc24afd31f21fd98182fcbd5fdb95539ce139aaeeaab2c2a5ae1422058df255bba9259543b952c55474e55775574b4a6e75ad8a2ad1d48feaaa2cab1cea4a29a2a2ab9f4a975a56815b719bb9e20886966c9bb20ec12c156a022ea1e77bfc9bc4fadc952b561d2cbb02c416125adf68c08e68342595afc6a2ddc2dc6b2e08fec918e230a06c9ff09e72ae00b225572ae281e90250b1c00dc3ed23f730bc0081f096da6e3c9c5dc16c29fcae5e4e0705ce389ba8a6698430115601de1fa11040312127d1f4d452d8625b42aa04a6e3773ab5e186168ce2fc1d5f1ba6890edf3d7f139281884015c8757679fe624ca70061bdac42d1d5c7b958e2175dec8281e754062c0c72bb343a8d11b888f4104e840b028ffa22cc6e04a8701cc232f156cb2b4cea5c602078d417c26857843003846b24d342bd412f43f48526932dc908e58b93731370516f2046a950a84f8d8b609d76fc9200eb82840446314d285f98949b402e054606252ac76d247383d19f9608a40af5209e08754ccd81179175d2f10b82569070192d02a365b29a09bd13f8cf82c0820b2da46529100170a2b95d27c67c51800948609ce91b1456123831b7001bf53ec20b03a1ab4945f865b22add0245cb10cf8f5260b48c6c73e3ef7aff4f00088e0346aca344ad5b16c01a212ac1e331e98fd61f2d410dad89810b2c42378d3ebbdf8f81205c018f84c07867426b801f965f80f1439a02a3903ea3fce20093c88508bc2c06200c4e24a7eb069817058d892948805353a09b6bf0d489d88eb425469cca0098a857101f9814682f7a0d8c80b046f3ab3c8c8253a35e4494c06948ff97c7612675e406c0080444cbce363f7e8ffe2790a0700f3433d9026e82e86871f6563d04ad06fe2df24c7c9f725dc31b382890674928476d4983641da7bf43d497482a527cf490aef23e432b3f6c750cfa002ce3e3d546a9fdd884ad38561ed7e6f26056ede8dd23b150857a61cb21ccda3d382fede11b90fe8ca9589daf71a7ca69b07fe5a4ebeb3771b546b240bac914dc6c6e98838119dbe5636fc9a8e9881f2c6517ab69c6f41391a9edd60ece905bfcaf34797de59611db9ca7be451d9d0310d53e17fd15e42f0631af5ec87ca038f0d836bcd390e553824fe6693dd68f7c80827984ddbb8195add28490cef413ef9e2bb5dbbbb6e5792473bfcb5703af353dee817cd1efe6f44d50a35a9e14d9e204611e391501497ca361f61ed16ae5858e8a993459768f6214d8c114c34b0fc9c2285abe11025ca622c4bb2a7e5ff2e15324d9b6be075d78a040b823830d49795189c70203211d368a3025c1c809c8a367c0cae38dbd6d3671c8f805578a9c2171c31abf74662610dbb08546a8854101184d08576839b667dd25254e8f0ce0a20dadac9602b0b58491091d77fcfad9387338fdf85b6662dd26e99f13ff0c379b520ced8ce903c8af77e070b329c560b6c1dbf2c1e3518fbe61f03b521585e3b70d67f07119a8c78c10010b86a18ce3b7c945ecca215ee919a912a25d92a63d0f54725096b5e3e8ca75c1351014df031a0ce79b57201ad6a803ea2ff58753f34b3c1c4f61950fa7c6995bda52c00d19d95cc3489e17025c33c3ee522a8b15098c052c7540c075748060799d9aca94adaa58c1c00f8723285b87db07caa51e0eb5269fbbedbdb7945ba69464a809b009c8091e8553e1473c89afe48c573c8459bef295afbc880ff1d58a6918276774532251af9ad52d161b5858586c980d80700039509e84f5c32f46fbf0d3d152fa0dee559b31ce160650b526f4fb3b0cd96248d2f470f49ab161341cfd8be66dfabb6ff3896ce9afa0e7b408a5459c99cae1134d9764e7dce0d8c86a3ab664f44dc07353c06598dc3bd7612b6951e3ee04975c7f4df7e9eeee23ffd1a7a3fb7a397c3d638595577a0ee3c066d80cc621a5cbe42e4892ff77391cbd068ddbfec5edc7c16182ee9e8679899dc851bf17607c86ac8db80dc3912d51587ff912588b38dce7686f18d7b06e983f69d2d83934c859e77889fbfe9ec998f38a082f49f799cf66db56e347ed10088182060a2529d2249230f2a54d5ddcce2145293d202e6d3ceaf73a07bbcd2aacdc428bd9165ae448137dcdd3ea102d9aaa8904376534a184159e547184099e40830613a84803094eb2a0842236f0411a66e488a1830e8c30c28c18385105244cfd3a78898627390599895ffb1d3d0c9063a2af855dac82dc51baba5801b9fd12904b32204d14052db61cf18744864081978000428601326254d88225e40850fc28421a3d583161085e6c0144870dac072fb5008b298ec8aca490a208a6fe0e784962a1a5ca01c2148e30061a98bca0051e2489d2440f689063eaa780972480040c08ab3038c182164cfdfd4d2aecb86928d07264cecbf76fdb76a58f4ede1e8e73d78d7b297c55b90b76cdee79684f9f5ddc8524351aeeee1d28a7af648b8bd5f9537f0d746eabfc92028cdbae98a6d1b40ab20dc7f8c5303424290252eccfd16204b8e63689c160174f50bafbd4660e97e7706d1acb1c39a404648fbeba2b09e36a6ef62f2e7fbb6a10720432c717339dd8366b452297c8cccc342df6ac47fdae9ee5b01d295ded6a57bbbc5d21fb7cdafce247bc885cea3478d4cf5dcfeb683fde40dac22b3f645becf709330b49120e526cb1455efac217ef28ece2236666e79726a26406c95c5d772bd362333b2bf415103bb6ab5d3099b796d83489e6d5a49a58c765b3709edcbe79b9644b7f276c978ffa27d863c81619d831d9d26d05c6616c57339162bfbc73fc88327ad6ae39851da5cbe57231bbe6129e342e2ff9ca572ef695af4e7794ae27fc39bcf4ef6a46d2333e5d7e96090287872820a701724673923597dbe6cae9e1149e44b528a59c53ca293f3cbf18a6a19460a728fd1c5d25b7fc0976107691ccdc29293539e56b20ff94524b82753489d2a47e92f4549aa4a34994e9523e0ff2fde54b9e02f8d37dba6b3da534f1caedce0d57bec8250f87bc7989610e6318bd218a117f73054c1d3caffb6f125309d3bde7fd3d29f68f24696bb1ff46cf2049df4b1edaf3985fbf574d02a25b0a491281f4b6cddb3696609b18f4dcd1fec0b28ffab7cd5a0785d824ed07ce99b9c43617560353d0a38229f0344e1a48a4f31d38d36ad686d3472e5b56c5b04c8b3d418e82ada467dac1168124b116a4d8df382d6aa191dcfeee23526c1fdaf4853dc48eacea956bf4dda9b3b6751d509a1e04b9cb7d3140c880903215ff0136065895a8871d2d6add697f06b9203938b2a5a714b6573426611870fba70f6c0f2d767f47214bbc841cf573dce7234756a9a2b023e3ac524d1a250c87717ac8410130b0b3757248c06a9abbc65dd924972d6a1ddf18a9c9fad16103c4f5900239985dbda4495a8ed6c1f5f97c4039dca8fff976f0fa7e670d5f52e03133d401f4f2f2a2423b2a9ff6dcadc12c52999dab859f0256f962b4506cb17fc9ed806df26a742828bdb091b983d28627f29869d040e96ab1695889aa85dc7eafa38079a97dc0b2b1e0d1d855cc95d57eec95e77238a1b032663a61717cdbacc591891ce2f4aa57acb986c32a2f7dbe7fdc58f5f209ed7f4a285bca5aca3a876bc383220923fbca5a949763762dd4b4a669b11bec482fb56c2eec9227ecc838576ec164892b6509081f4d27ecd8da47870de3f0c0695c661ced478672fb3ded6548a459c52a79fbd5a451ca6ee7fb7bb56dd68a44cebdf26ce8701700df05388dab7daf5aecef225712e9f4901619a73ba1ec114eaf34c669b147c6b99d83285bf8bbd611f386b07ad5a70612c546169b518244b64821379503a5044b6014c8e146d3786ca5942c33063112e0ce85056edaba01795ec18aa17341d1cc90794c04cb9773786c3d897da60128a5d4e1e54a29894829431550f28c83700d240729a3a78c6b32936ba20910134cb02cb1c40d95aac5e53de8eff9f57767f680fd7acc6108502a20542868398007566bc00378603518985a2b034a290d5c2284259823478e1cb30a54a00215983b76ecd831030210800004acb79bc80611441041b452333c3a3c787c313a9ae4f0f8743481c261e95f24e214bf38d682d20e483aec40010a48c001883880901704083180015a70b8a999dd51a9c105382851801c941045020c2047e6bce970c78d5f30001ddcb841076108064085da60e00a4012367c1235d46037966d0625ae1956d2ae17a752a954cbeb31434a44436a65a546a88530106b6daee7a33373607534c96992d364763dee1f13ecd0a7a3c9ac493320fc3a9a4401270eac0e9b53d80131d84a54be79032b81b4289bcc9ae4d826393a9ae4e8b039bdeeac4bedea913781a2d99c98351d36409a446902a5494ecaa7a3494e9327edba4da07c632bb9aea3494e8bf27a2b69d2d8dfad9ef9172ffd8b44bd79c344e08425d0a2ec61cea9896a50912d92d25aebb67d3a588ab245fe36bbaeb3313afa6eb265a321a265102bc32d26455a3badb5d69b6b7898bb3b8718f18bd1348d525a3705e82065a5dae4d8dea8614aabd1e9f119031b588d766a60c7ce16032b434da334b06cc389841d3bde3c42a43251568634b09d49033b8fb05d0ab7559a4229adb5762cc7715dd7790a88d1d1d793d2aae8e8bb75e60caceb06901c2d6da7862639b7c7b05babe279feb64576ce0976becfe349e9c8cfe7c35dd769ddf4ee3a96292f365a770b316657bac41872e512ae745d61c855114998ca729b86dbb3e63a94ebe1107d5720ba2311a7d3e90e21bafcdb8f29578e9fdb3f863c383ed2a5bf2ba597a10c97078f21b6cb633e7dd9e2df7160cb16ff0df4bbc92d1cb5dfdeb550057ef9cabe7c73f40cfdf9762804df7985e03b2b3835d9d2af8114acb245ba8f3f2ef3cc420633069635f9e9ce114d232cbde34bfa5169510b6fb4d865b83c58b6f4f389c3e0623814bc0cb7711b8d8ab4e7d4dc0b4a0870c300babb5b0021f801b0010035b0d03083c84677b74a08f4b1299eafe375dc56a936bda594524a29a50ce1d468736e73ca3943ad04e29db3fa9cd335fa3f27f5cfd1744eed055a8e3639b01dc1d3a03e438b7cb33157b4ad4608f4b1299eafe36d956ad39bbdd65aeb6b359c4c354dd3dcbb60f9a7b74a67ce39e79cf349703db49d169ea321061a5040030a6878012091cf9fbc34537d9a7d9aac169b90a4698514fbe73686156d735933355bfdf2129bb670ce94cfd6e6a3f67cff94a2be36d8d61aeddd44b2d858676ed79a620feafaa75a54a566126c55d59406d3727c8404aba580f468dc44df711b8fe570477a6a8fddb8233db5c76ab8233db5c754ee484fedb1ce1de9e92507f1c6d7201a6bca7634f4457fd2d894ef9ee6d01995511c3ad3a24a755d2a59bc5acadf4ba1e7f784a0d941eb4a9a1dac70b89246881997cabca4a5bc9ebc14fa94466554565125ebcf0345d2059299c9f1206f6ecacb665a6c970d719c22394866558958696612ebf9e1f3a01f543e145225292fbe8ff8a98bba5eaef71d755dc0fb94f7429d0f1c7fdc6f54c18f3bfffbf13d1b1ab092c60c2097fef4ae5d1d933032894db93c66e7dffb0ec8b23ddfce7b1cc842430fd89fef01e923aefef4cb63fa77ef2578b9295fc1713eb929215542912001e5bdf1398862cbb8b0a3d6d25a12464bc99623b2a489449f8fd4521e161f40fff91da0d0473b5e7cd49fa3e716f6eb34bd13fc38c11ed6d410daad2a2da5a9b495c6ea6e9108499764bf5c09cc697cc9079c2e1fc5648b6cba3a779c312c3ea8fce777a8fc27dcf17950a8b57cd463bb3ea0a669d1d42e2f69b01ef5f708046a2dad85f2569346ada5b5b4192f81502847ad784cb6786c0607a52cd193ed78a926e135455197e6e0f6b37c13f0d46e9bdbb6d1707e9f16eb801aac450d76016666817989cabc1f3db75b9d8514dbcf4875169224a58f8147ad26b917e44479ee486533065aeaf67f3a1f2fe2298ff92847b6cc64cbe8b1bf1ef31c0973862c692d1f27eaf634e276a6d6f212dd428e9a7e717b8686a37684db0f7e13f05c0ea94bb668975e4f001dfe78085dfa35358a786021a60e0ac83b5f87bc33fc38615fbb5b38f2b380effcceffb8f499867366b65c769cad71e2dc7ed18d7177f4d97524cc4c5dd4455d335a8bba8860a9114eae8499da49754612777a819ee8a94940bcd9a7b37cddc6c9d9660abc9a121ae8e54c35a99590242d0b996a92d66a1114d2939f68d8a5857c1968d3e7bda67c74a4b62a4bb660c1a3feaaaaae26dc4a841af2837f3d07fb720eee915693a8abc52c24897621c5937bccbba8455c4daa5448f17bf00c7820031a53111e2538c164848587f9fe7e801c98c63a807a44ca9ae4f684b9ee112cdfd151d3c5435a5c69b0268d7dd26a8af4e9f6774fd874cd57aab6e69d5ad81ced282fcd2de4a8ff8b1418b7271394e8f6375d38743669baa1e3e05f06fbc6248cbcd3359358bee394ddfe1bdf0ef2e67a210be1148a53285910f66454d62479fb8e54569390a3fe256a14b04a45aca6d87dfbe9739bae395d3acc391170808fbe8780cecbfdbefbed13f04d603efdb791c58c60c79aba47ece741bf6dd68a44a0301cc5d10b4bf072e76f1f28c47cfadcb743e77bb8fe2f2c3e7c1ef41ef83c28f480ca4b9f14454f4aac4ae713f0b1f8f07995f700e843df0147d0620788986ca4279b12b4023af4444f1488c740dfef9ec7fc26a452e373b48adb4893c7bc444f35e829464f233ddd1f54c4800738489828430b31342e6646c821c3c917370081f403c6623654766514c74b20d08701d37dba37c08534891f35822e38b1c20d1358a0821729d842155f7882939a23c8cc2679697a1e8ecebc99afe9220171b76770fc97f46aca47da7590bea8ab08d67fa4ae4b5353df09df0b6b4a0a3bd6d44bc238e076e747eb75f3ab017908c09d44405f8580428fc562f70b359813c18e8e7294d370dcb64e385aeb85a8ca83ef585363951942e39c2fc6455f0ce8cc2456bb63bb76a871e7e76898ce4c62fb7e3cf8b501896507edf26b97430a48eea3c3c646bba3c76a2a6673fbebca4b320c3970c24c15418270c488a9bfb2bc24a53084295c410b479882164a30c92e94f1c41144b0c291203b30f55795977e00c14110a02c418b9a5912a6e6598beda809705caa422e87353563c759533555533555653e55484d79c9511f544da11c357172a66bbaa66bba7236aeb34a69a662635a3b1fc80b69cf83baf333659087e70eb15dca208f2136114b477e9378d0e7a17d3f80fb3187cba259eabeb9b05a43e9114721c20131429f0b811c614ddc737f84359d9ac4ef9e95f763c7779dffc21e3ebef77ce77bf830c2fd0f1d7498f95e9abaee7fe8fcd7f92ef4e1f9ef3bdfa3878feebd37b2c3f35f07a4808f5afc3bbaf77ec7f79e971f0b873e749e970de3513f90f9408ed8fc8fb0a61a3ee662d80bf562aae18fb02600d4f81ced415a7495cb842ea4c59e43b0e326e432f7393de323951f3de6326fb90bf43f3a8cdb667ac64bd2d42e1a7a0a453f7ef9f5207a4b7d05d20ed8790000a5c9d449fad544e8243417b7bfd333b24508766cd80764790bd2f02170860781a24fe18f7f82443c9bc9f3000051d6e47d0d70066caaf13580408e7831798fb226cfcb2f05f39985822c34f46610ecd8308f42b670a077a0e78ebe5ac0e8555c1afa0a891d1b16808ef412c7bd4898f909b8f20f207168259f8247fd44300e2d7421ece25370e904a10b418388297cc5a3fecf921370ce6dc6c1674897fe2e8347fd3cb83d932d9eeb21e3c81627594c2c2c8c3b6267669c4e9f52f8aac6240c8edbefac19ebf9fe5ebe566438230d29c44889f1e334c50f9c6081c40848b8991f8b0fdf7bff83e73bcfa077616d034a39f29088fd1cedd534cc4b3d6367667ca54494d50f50476882091953bfcf78690347fca00c57e8c29022f8c0d4ef2b2ffd98410eb290c48bd68b095c98dae58a225724e109408082cad4ef792fb9f7fc0fdd7ba18fefbbf7843e8cecf8be7b1f9ee75e9a58f83dffc3f4812c1cb2f8c0fdf73bb8ff9eff0b7b18e17047f79eb0c7f7ddf7f0f47f60e7cc961db70e105ef190268d8ebafd8e92306e6d07725e87bb1ac77d31fe1c9d1f0bbfbc3bb8f758f86a33bce86900a5c9739027c8d243f71990a6ee7f48f982abc6f4ad80d23403284da21fa72fa6072033f8714a7995e7d0837e4a93373b9fa701b43f03187a11087a1b60caaf802a5f03645305e5fd7c9026209fb740baffbe874e0b145291a980d21402a509044ad30794260b4a539702fe38310d1308766c5810dd646ab0be0247e169ce722671824081c8711df8803be5a6bb833cb81125c028c3f5b8233f0fd89311ff228c3c3fcb0482f5e767a1ffe3d20eb4e840681c77342642b6f84acee48c08221808111c8ec77ce5ab0e70290c36df59dde34f67665c2a367808b37835dda7bbcc89081515151bd3ad70299c88243917c982a3f0d50ad8b7035926077a9efb1fbeef421fdd7fcf853e8cece842961eb867f9e153bee08282a90b59e67b2f4ddffbe0429619b2f8d07de77fe0de0b7d78cf7d27f4616487f7dcfbe87cf7d2e479696a25a07b66aebbaebf601e509a3e509a3aa03479a034c5f4e02b1f5d11f64c8bd38815f96816b1f2caf526a603a3a2bcd43da1b382aa93c2003a18e847faba01f435de478d15d0af7ce87f580943610f5b23ac305028b45bf8a4ca9a74d324c6817909f45c98aa3715e6b12096c3b13eb9fd38f5b9ef22aee6dadcdd7d7c7777f7508821b45b997ac61f570385e009f873ef699ba609519f9f32f3160ac1ef31585b522ec4b9fddfab45956f49070b6d97416993fa5a352dd618ac45ed093bd25707861cf533817563c4bc7322eb60b07b83e32aacc26a85354e9366777777f72c4007024c98d0988ad0aa206202a970213b585793829230320997e6d50be8f73a180e1daf51b6539d552835560bd0614bdfc3e18bd11e874f47dffa2d1db695f5c5d4222d6e215bb8009b06d4cfbdf6c56c740985d197e6849dcffd485fb77f2c11462b0a4a78810c694061eaef70bc1443c40857503dc9029299e9c70d6ea2004516b430430a5598fabb98975cb08a410fa040820a638099fabd2fa65db2a5a3c37db9fcf5c74e9af84392449f3f4592b4e7df240e295deab389c371085a592d360d585b459ab0f3c73ac35aa49e711bc8ed19d6568bcd841d2bcb73912eec9e4a469dd528dba9c50ed6c13a586703ea6a3a98971ad41dac7b499d694fb5a7da53ed2977a9d458b1219a8106961a006043001e0c59aec8ae144011db0fdb4d061c78f2c6e8b14b66d504198b12338142239d2f2204c40b93114e015d988ca0486874896fd206b2f1e3cb95b2970195812469a0493d684092b80cb2872671948ed2a49e8114cb4059decd4818e9c58a97549ab69aceb48d3ffd659550e8516f5279693f293347dfe0c8fef31a10ec484f97a268aa49429a64659aa4bdcab7b59f12a24178749ec710dba5464897fe214497caa013d2530d1f355e45e56bbc8f1aefdff91d35583aa10fa00ffd0fa00ffd50e355422b32c30a2ac860922623fca305a99016552dcab4d85f0364aa4153291f67153b29108aa2a7169dc8cadb00516fb2f12010c8116fb2f1a837adbcfcecb436caed6db6c93e9f1332ce5b909f28b123e3c8fbb11ff309a5b5361c59764879fb361c596c4ac843e50ea1dd1f97659b71a76b6d7caf7cbf36bb3ce61d351c8efb68369f508b05b19ff7d8764e8b3db6ccef0aa8e5684fc02712c67ebfb60559a246488a041854eea8d9909e7c80dec6fb08fdcac97dd878d0fb58f9108bfd1da15f79f9b1d8f0075068e38750b812f6106da10950903081c2978f12569a548aecc0244d46b495fd84ec82c2f2741b7d41a03439d137e4e7d0a48ffd09b293325240282d768b34ac956ce927507468329606b15daac5ea7d8e9e472c0bbf8dff6162611bbf03f436c21e46f87ba83c28ec616407e857be478db7f11cee58f9d04ad8634573df3e4fca33385f9a7af430b2c3868d90e5f3d2d4c3c6b37c3a60439619fac044a4a088fbbd074c015fa7a9165b9a401e52d50a58034401717ddee0c8aab0ece010daed684fc0f91ed8505a9cb50a285d5e953bc3ced18c580fb51c0da745ad08567b1ab495edc291ca50d526933063c8928683b339d1c4b0e5c4b6282dce70bcb48de124e7768e18aa7079f01de9899e64cb7ce77093c91628ec0cbb6b5ad48860b5706c24b7c6c9b0a38c75107aa2277aa241409fa35bd6b296c95807f8e43216ebd886e294483581f652b6c12dc81148182e01145ec872cc50c28c3270102389923492a0055512afa9f642e2560d2f242edd5043ab4d59dc6e915e3a76dbf8d4a346d5c038640dd2df433e318a4f23903723706d042d7610b343b5cd138ad8a53d5cba41321046f1a9457e82cdc1260b222811860fb8e0041305944421238a3190f42088e9c791321c818819496c6ed030f5f38c97a4168ea8f1020b2fd4c089124c7c4b23e8513fe12222c60104bbf4a3e0062eb180a54c24e32c00425a210863803f88f7b00460d851de5cf9d281268d35689d3b6b743ee3a0219ffeb20005ce27c6b1b14b3faf9c055ce229b6137779870e2fb2a55f660a21b7d909e9d28c032882dc0066fb8e1c24663ac172100e526224dc6a821d5f5aad961246d2f21207a9415a415aece7202f2f2f2f22169ea3d117d9e0358c83862aeca2798d8be1353688da733daf9535eab35d9d8419aab04b12b864038f5cc5065f718cbf9802c644bab0129a542258ec76f96b0976de915fd37dbadfbc82d0439ad52b2658204d1ae5ec3689dae08b32c6b87ff9899030f3fb5d204b7df246b111b73b8544f720b56dde2b1b363ced99e5884543b83d3214ea3259e8365e231347b2e447446f89de12b7d00572d6727112edaaa2286e9b0ae3701976713278e4322ab7a9a651aa691678119d9021c365301a4fdcfec938343deaafe92548ecc8afdb5bcc2556b6642b1c79c85c82d5eec8389fcbc2ef48523db4eb0aeb33ad16f9251b60842cf117f54711bffac4af90833179b54b142b11754684eca149e326b6d8e2ddd1e2e5ad47b14771c9153d47d4d15a2976a1476859682d16fb47f03294d7528cc351ec428fe052e5416f9ebb551e704932e36830a40b173cea0fa306b7bf61bd454bad49324df2e76db37614ddfab3e3cf9d7008edced75482f5af5fbfbf18ea94a641fff91ea00f283432bf883a03d32734d2f976a1a4c733dd632005d2627714c974ade55124bd9a9ad393d6a21aa533b4e38d119b9d2d2c693c9d8ce1e46ab19cab55e13691cffbcf2ca4a8cde91e1b658ed62ed06f2db775a64e215335539d99622a93d1312adf8e84f1dcd9ae39c7973b3f47f7c783bcc2ed6ccf3f535bbbbc5da05f4f7e1f27ec7b276c149fe61653c645bb640b12b2d45bc8513b8a9bb3bd1a29a632ef2608e924acf8e439897c1cf46de3968f78c647fe342e97763de425af17d7b408a32e17a5b1e198d6d290704bd0c2891867fce00b5030755f20b2032da860832fb2c032452712ea9a33dbe6fe9e10fcf49d7ee7bd2f2c5fda48bc197cf68935984685a9d56851e051bf334942f6b6848d42562a3af365bfef3c7b2fa98b7178a1d662974d6b51993b0e1332648cc39d481729b016b0b061b2d8a796cac16590279b3419860fb430622ac2638489e923a297a56dadd88b56d30b98ddedfdfcb15d0d04a6d534aa495ef5eab582fc3bcf9df7eff4a9f3639f807c8eb61d4e161d0245c23e27ab4954d643a0489ad4abd652940bf4a60825837da027d918dab4b9d30a938914e74bcb399571f2e6cdc49963481cad62979973c77985db0fa4c5d66a5ad4623d52310e0d0ce9d2afc9ee4c18b2a599b81ed8d1603389edeea8c12e206faef735e5dbf6ee2a2aa0973eeae196e0e57a311d9884613064a9561812ac0f233b420f7a1f2aff791fa107fd11ebc3c8f63e3eaff23e401ffad1639f1dbc67d9c19fbdb0fe3fee4c62edfff07995ff01f47995dff17995dfc21da00f3daa491d2fa4d2ddfed3fb99c44e6f7b0747befec57861a34e3d004739cf5eddb0cd2ea64d4dd9a7d985247513dd380881b08b07398247fdf9e031e859a0b05fdeadd8d5c1ca2dc6307353de7bcf3b1f998419434a270177ac309f5558855598e70136363253110ea50926239ce2dc7cf9375eb256f953164babb5d65aab06d6202dd65a6b65c160158c27b08be7bed4cacc18a8a156514cb631bc3aa9b05a6b0d7d4d8b9e0aa5aaa74e4d02cd40ec62e6020dcb26e7f4e6520ae3e606521cee8e142788f564f5a6f3e7a20a45aec8d9c54be097e498d909d7b504496234e4ab497c6217a6e150e62596d114a3419dc896171d438ab40c1ecdb419fd420f098322450d4c456853586232c20f3ac1a4ddcd6adfdd07ab309c169959f661803ef71e052b8e7f1dec73b52b6c457158719ac4e1ca87ea7bda8ca53f56996c9172cef1b0fd7c1ddca4425ad52bd6eda7d607d6bb1a2c587f0e59b8037edaecee4871bc3bd2af07e923f7670c7431212d361376ec603eb0a9553ee2260e37dd65a312726f9a3452d6ab42ef2fa50deb86b5c2a07e715d962fd80525e370eee54f699226691a037025176a290f25bb88b2b64a9b719795b86664cb9c60074617eb517ff7042ad3c93a980dbeb981c3cba65003403f8a1e80da4c2007a04413e847003400a58309f46300aed486604320edbda62ffe991582953ed28260411f7a2476a4acbbd510c8c27d8dff6102812c5c07eb42a11595ef61e343cfe18e1aaf12f65079d077c00ff62df95ea15028d4f96a28140a854296eda5a947e859362e54bdce7f5ec87b2f04ab0db025612a4cc21c914e9cdcb1c260ac65d1c96877b3026e58d88da349c2bd472565f7f8b3cfb812578bd3a7cfe94b523933477dc2805115c8995286cdd88565f4092e311933c641533c6b56ab98f3b6e7dea6c566cd0eb63df70a698cb2a46449182a58ac5a512bdeca53bdfd3cddd357e87f98583c20fa199e7f0650280aa589431ba16456582364ad8495c5a32134998d6673fb8fd8b18379a95d6dc3d1435d4f387aa7b19b75425418d2b0838d15552bb76d5bdd6aad95f9bb63abf88e94b583bca12f9128a42f0af3eb5bd8a83edd34a9b790e1b839517f4a98526571dbd4884ecdea19770ecb39e7b270966685246d409024ce595e048dd52a0e8552a5b62115dc569b8c6c39b9cd8c477128fee4c68593f344ab2a12a156f5132c93a99cad5051b285d38e784bc270d378387a2c57f2a367118e9e13472e2be5ac94cf782b6f8827d379dd4cb67450ba58cbf6ddee6c675a954573c776a55a465fd485b8ab3c5559340cedfb370f88168edd19a86d7a12be844791aab05917c53b819e4c05bd9537a4c594a73ce5322e2455613058856d325d67be2941d280ad486f437c3bc936946f2a9e3a3c94b68b568dfbf975b0c6d9b69ead3a58076b6de1646e646edb9ee3669df36b976f56f4bfe9703b235455298bb27418e94bdc2c57914259ac0ba5c59eb5d8952561a86075b0ca627530d9127639b2c52a516d2049399024af4d5494aa55acd60cabf48961b093edd4994a453fc1386a12e952aba8457882a865d0a74a45b33cd7764bbcef5e0382bde9709a24c4d63d6952c747e8413e561e87bb1eca4b9e92a3fe5097d3cdbc936865559b97baf60a2b4da190a5879567d9017af76ae539b78fef37818dfb38a1fde46cba9b16719e743050fa485e6eac3577f4d4ade952ec09ecc6e67627f3420aeb42fa2a62474fa53c09982fe11ec5ad02f3cdcb4b9e4af98bbea60e8ada843048aff7b48e36bcb083c996ab59612bcc61fe34ac5b480454835096fc288b7158d6a28cddb99f3eb9e9353434b419b75554c5c18c716c2155b10babe2804bf50a4a99d0645edb73772f6e99c9d28858558bab163b28481cb5b36912cb5aecedbb1a09b381ee485fb4c3b63e83a02bbf1db6dbf51dd4b8e91c7d55589d4569f154574336592ce52f330d183de5a91a9b15f6b97194a5629756b1ea15954563f50a2e49a64ca40b55026dc204a52ffa7277ef782e1e319386f1d886b0773e17c3354857d34141baf4cf4e8ccb33aca98a6a572fa10b49f222b601e930ea19ede2b8d936a81234a50da12f7696311934c538b6905decc26470494b2375bb59b26589341847532199b0828bdbdf2ad9e275cf1f0f3e01b9c1deb83eb70ef7c574cf79dc46a9a02ccaf26ee6a5963961f64e9739ca6a910329cf78d6242770a51b262e94f6c65db5d81eb2ecc0bd2321bbdcffb82f1ef56f9b27c17ab663fbd3c1922d2d636bdc91f23f2009932bbc50028a0a4a4c23bf87544557dbe5e7e7b85771bfaa97fb96c24d4e58498f03e94a4565ea95f432bff61dae54d5ab266954d891bee68f1d8c03298b1669b1d562b32e651569711c27b7e86012e6fbfee8122475822485c138f8c52efdb4c97db5266345b73d6759fef939e75a1433903858b05d9fcc02110d248cef007af8db1332ac458e759ebff342f0733bc39872ac493e632dc2b697b786df53542dd3244f0f6912ab494de0e813bb78bebf18fbad92304bc8520746abd886c7b9f3969202b2ecb03dfff63fae0ce8b99d9f76936971755b25613aa5488b355f2362b9254d4a81d534c975a8dc4ed6d9745dcd89717460c82e0cd912830974b0d01d3b98e763b7dfe37907c7fac5783eee6cba9aae9bc27642ba52fdc0aaaaab8b3b6e546cac6dc84aa6c5de82a092d8c13dd5282fc651cf902e68b08ca89b8b3b8e2ecf6e4e2e14a706c03096356d428aadcd665c23a34db054422000c35a0677865e328b326842150ab519c3589bd5d98575362628d4108b6a1257d3c538af3912a6fde3ea67811f773ea7c9581bb7abf10abd6a155caa1176353dea5f79c245e886089d0d16578a8aaa61079b77f4990aa370bb093cea31bc0f4a3589beac60a196b04b37928af28d9b56d01765d55814b69a63b30404b6c9245bc2a486db386e0b733488cba1e18e358707fe9904cbe0cded7649617bc653334d6a1180afc032b1e3cc6d256da6a5b1857d62176de6a556f9280d2ef5135c78fbc438a88a5dfa29cb47fd0497e815dc8f2d5b2a0a892b387519475d42baf4d7a036d11325617aac28ed8bf17c45a5f8a8e58b498cca341fd8efc8f7eaaf2561b8eebd6fc9edff60639dcfb3f359e0c79d1ef05bf21d91a3fe2f1cbf24b759f273a5dcb1b268c883efd8c134b083c9968fe364ec0cdcd68953084baee0514f16d722e7a8388cfa058635a93a61598d6da7315459cd9941a24ac958eec79a03ce703d03307dd530ee265f4da2ac16c39024aa8414bb49344555b408bbd025b7b910a77a41b654148f9408e336c3a4d8d2c495b22a8ac5a10a4a37eba234697660c8127dc951bf1dc36e4c6e3be96ab62e1676b0163b09f3852cd51605a3ce30a92c1b577edc06f311acb23a586575300e941526cac2edb1935d8e6b15f7630fe1b419485371daac51614761674e8b4f5ac46991e74c79c9c6d7f8715bf9d18ade53a91ebda8e420d6d8b6156b43e10c62b7f7d856598b1da2f7a844cdf357492e15cd000000000073140020200c0a0644e241a95c16d4e20714800c809e4c6e5c1d49b32488619032c618640c21800010100118289859250060ee32c856da863d5f561dbde373353f2146e8c4974213df572fadd0a3ea9d9f75d40d2fe38a94e9a79201f93c3e258e898902c3c95c96116dba9a7fb8e65298b641677c7fd6d2d1d0899e0aa6dcee10c020b76446681b5850453afe37b478964744e5cb2cb3100cc75ac6abca6068336f680732b081b1326a61371ef0587f5d088e01a79ee30f81247f86676f04eb3fe189d09cb8c555ad71f0b00c2df8c23f0cb40b14c38616f2c096b0cb64ad06e32d01217b295b03e701d54b66b7c9c6167920fd6a0853af5bcc4c51b0ebf7ab870ad0e8d2bdb8f53df15582ad90c8efa31a08dc7548ce1faefdec55c67ca9bab28287b4ffc8201da83c9d8e6d52a6bea508a77447a19a871ef49b3728bf5e1826804eeb3aca2d9829316e908abf801a6e8d64bff30af99ff6f960840058593d0a8f1085f4de94ce212892be8d8e6b526d14ae8179263e33ed740dcccc927490d3f436ad751ac8a2d70325b29717d66cbee6a729b90b2e04c41599a8b7a36414392af43ab5b5671456d806d47e1dd2a5744ecfad06802a555543a9f7f9476bb975f922bf6d759bc62aa3fde6f00e992f55f7839cc8e5a3621ba63aa56ef0ee4be106865d126146fbd44d3c9ec6b95db7bc0e26f69b298960d854db8abcdde4a3a1464803a7f85623c2e09a2266ac8ba3435d364c0ed45d4cc6838abf3d81d9d3be7be8c5a7a761f323d66846f4f9d820344cd71a24379c2aa08cf4a278c54d317fa7edae9eaabbd3497b9baf347f36c59bc1a2007f5092b77106238f3b7f76338246724afc3c3e7ab8c5ca30e4dc115392217ac235b498ae24845b162350dbd93c5b0040c532b14ddb5ec7b711849c4159b578edf4a4eaaf3416bc6cc03a9c3a8bd61ea96f3561cd89e8bdc5c1614c9c1bf7b47aaaf2124f8eb6cbaf7896ee0a0d49c500bdf8b5ce52f175a62a37731a2f5e18bd4689d8339e05c0e4e81aaf9a6b2305a0b243fa1edd15e1a0179ce5db03541c3bbe4a55f001b2471ef768846018201dd37a94c9631691dd239d0c98c8c8936201a180360aaa2b47c31899eef5db5d9ec645769cfca210048e293f113c32112f7c0942a3dd25c36df833bfa761c4e664588a67ff6c704df5d1244bd7250fbb613eff831d75584585b94f31250166c61d32014e89a6862e43ddad4225ee124236ff7edff0b877f0c7f1962db1d4921e697c3926230eb0f3d53ce1bc691fb4a4f768c1c30e14a162649254d85a0d5ccec64fc2238be906592933a20e34e7ee4052583cd0d62a2c421b6bf15129a2ca5d27ca2c3aae33473b68b6abb5d0076f3a9a128f25fd3861ac16b689152c0cd46bd32dc29d902b349284af11183e1b0a93cd27ee5184558ae3d9aeb6ce242f88b0c02dcaf0e64c5ea33fe1ad72e1a77035a85cadf52a5faace5015931dc0f3737ea88cf30d374e16ca0f23e119e9af8d30db29f54a18f43d51f1c943ebb60792c78e8c254b2ae21eb3548f18ed4a7114e6dd393134774614301848c3cc64513952db3310c5ec5016330183459729b8f4d76c4a4dabde8a9d664455e4cac86859b6ad34bec4a124ae744a20a7713ba161d7c1a0ba6cd790f1caacb83c1c3c53c9622e4961e104cf982a14c734a9a6ba91943b23155216745331b2f832c6203692f66a1a002a5cbb23e65ec20b045bd0a78071777f0f1edb3da11debd3a4ed4458bb3071641db6e427a2622c080777ef1a833b7d4a0c48dbe809d610f1527a56c5c9ec14b6c0b87d2cee4896a765bdce8b95017470def73a673df49cea4b9680bc150213370dd3891c90f1accd55115169d751b98377eb08bb216b739d5b925e75b278b63cc17a348b3a94242a868d26ad09c8c326c19b0f424052e48c2e5519c4a05e53d42b4b1f5ed0b5371258889d608cec56aad25f144cd5df930b6911aa1230be4144c14086ec7639daf844125b0a02b46f1f9e3176c3fa40a41eca32cef6002d83847d1c99d689292767e0b39ad5b5a4b80af013281132ef0f25df31c1b104c643734de641f6f855ebd44493a80f611dc9897e20051a3165244e9609b09ecec20723967d0c06013882027668fc21f86102c8fa2e8111f6aafc809a7e3e5715fd856f5730568592c9a6fd013bfec2a7cebc10c8a3bcb39f0ce968d9c878e7316b3b62f5daca08ad7d58b473d809d4e13729e72601a8a078745a0361605dce4d277824335787c68adab1e068bd82d2a9f5a76d30cea4f2e238a29362e20829e69a0a7fc6e8c813581360171abf8cd10d1a47c6a0ad17bc1ca0f0258eddc5c2b9237cf217a04c5b58e61f64a7490aa248f984d9bd20af3c9d4baaa1ddf2f7573f8d47e36cdfa4ad73fb7ccd469936e4861ba44bcf7b64a8ee28af27fd417c7f6c5bcf9f8f7b4d863a793dfab414ef4d76544d49dc9ec53bca4a0517aae120aa98757a455d2a66cbeeb033cfcc4bdeed2c69b470484bd1c18c4d0581c10e3e54314407596e145758026d2ef19ca2b8fdf491f3f2a72dbb976d0a4f23d8c9d491e059039a89b33f3ef81c716773f2cd2894031034dbcdcdd292d3677378ecbe23023cf34affe0c282a02727fc352b1c96047058075a49a4c3bbdd3807d5e70d250253c7c42205cbe3224728d13ba76d4a74d1a5132706f16de07d0a69339d03a11352a5ffcf74cab15da3876710c9b1e4ce9ab11186d9e06b827367a3d1d9efbe9ad743e465746e540590e755920117392d1a6124f02afb864896ee6eea8ad3b54becef1df86ade7bfd7fc719a3d145d619b9ad114dc3334a0bf5d63b866881bb7c75085382019416bd2d86b53512d2727c08279de4e1f27d3b56da5ca2ec91f796d284f6014adc635096a334f426ad34d69eda15f1f991aef84279aea1ea50ea21fce95c2fcd903c37df5ac15c4305baf6de5bdd69ddcb72a65f2516efc7595fee603bbc60b11ce8a8203872b47282c2df00e55ae6a881598d852cca9593e3a197bf4ce97a501e0df89ac572dda1615bce63e61529e5825cae983c90cc719771184565434593564489425970b05398cadee275507da078ad2cef60eb25a59dedc18d3af2ab12f5761bff1a708b70e7b6a8d33dc24d140b750ae234f7e841cf9f8433906e7779bb89c4b37a197413ed87770aac0db77fe70b56467c99c2f0dbdecb07755ea6480a49b23ba8c36d94e8ac3486a10dc228090515c967e7e42deeecd53cf86e1b0172c4379f5372bcd607cd031473c26d148e08106c0bd028fbc1df602302844a40e968d9397291dc9acf701d8ca6ee9bde1d8d348ae3291aaff8863f74fa74121cf357a82f436f8795ca23876862a283d3649f4c9337fc664b24aee63d3f0dd0a871b913138f011780470da8db0312f7101e3a00a8f9960bf496aca62e690c03f0e77e0f87d28a26cc13a2dd629af0a35966a467c386ccc169ebe9347cc9010f788222fac05c07b9aa28245ac304a2c417b561f91b1c640294fe23c8d3de434bc5a26f995a2e441c40414ae7750067fa21eb9b9548573e3851e7b36e20ea26c0db4e0c9596c7f1e0ebacc092513495a12a353c9fea004521d6beca6da76c1980a37173b43d5243467b2e2e5c3c7f728b0a4073223439c472b8d03c95b865b0337ffa43862e798d8ee2da29c8c312efd193bca9419beeacfd44b7cf529ca7218bf84a0456b1a1da4b923bdfefcec102bd446af6754a5194b9214cdcd769c01085d6754a89f7b81327f5cc0b015132bf01021d1e1a3f785a3200accce51ba08232c1f6b8f423ad42fd21813475ae56e2b91e25d208930e568125dd8894c7c35d5855a0005531ad79e420fe71175205b85af417e17c67069c9c5f1933c822e3034d6816a37db5f637251438bc61874112f1b313c969a1437c8b8c7d2569def8e2d0f701b6965bb57a8fee3a4a7a908fb2adb80818562fd6f5cb27ea319fce15fe9e00348e228e12b22fe59da24e61e8cd47997cb857e36d613d6edd89932a0b2a511d6aaf4a3cb749871a8bc5cfcdf471c0036b1b8aea7288b5e2d86505c30337c4fedd8ff61bd6ecc36b780afb2205f3e764e93ca33b7ffb8caee4cdde7b096bd48b47af2c16d3dabd41820a63fa4592995cafa810dd5faf3c4ceb42aabe6c2e86a5b126aaca8a3d8ff3db8cd0c8f4e53af4c55e4d1fd65cb9f67dc33f88102d3fcea6d7d076222666489ac0574dcc46f70b32c9ce22bf4a7131e8315e3ff1b2f6c2ee0e8ee27d563eaee5f92aab92092038c7b05f9770207c00d8179d03280427ff3ca69f9df15727181ea0fa81e497e3b785ac3131e030cbca748b09f6882bad2db2cf1243e2f60dba8190efda70c5e2cc1356769fcc3332af93577abfe1d95045003387c711e23b147c8fb984d80abe3e0edd6dafa08dcd99301b5b12ba444026332cd1f27793e4f5b316995a68dd1db3590fa749c1d1636ca80bb0cea50d534c7c2da694a210826db0f748f6abd807bb4bd08bcef400a388a67b52b0960b5caf9d6cc26344ba0aba7e71a29535715c425b2d7b6f84fef710b2b97dc9c9ba4e48f5d982f2e265a0bf029038cef413dffc7abd0d3ec895b172970cdea534d8573683b75d5b631e83f58465632d9b522322ecdee848406d2d3f70a091dc8ed41f322eb86c4239040f893ef5648bc32f624d4165b36009738871a7de66d1e6883687576057ec6d93b8d6d876883406c8de220eb1b7d5d83a1c41dbba68de72eea8debe2c387645fb31d58b618b85b68a21ecac4f007441cb7763dd9190342a42cf822cb2ca71782dab88a21515ad89c7baab79898188568dd7c8ab1187bd28d8622ed6978cdc27c50a0d1844ba98fbf5e6760d84aac04e765db084ee9cf05a48719ba1e6206279ebb2c71c3a6486ce0a9ab2dd842ea6e3580726b7a5ef1c268a06d698a6ae0109c254bc67b3624fa6d58da0016564bb13367b79e169a443ba62e8bde19733479938e9a9e4f40c549c0cdc3c0b34472e89876ecadb8042d9e353040160d4a06b39ba76b2e98a47815e21db0ed71b8ab4e88e8c68bcb3834b7c5d2238a72f5d9e54f1745e9dec8dee6024ea2ec928dd41eb726850339df1cf99ea98f0f863acc95e75f26269496e9f72a32af29b0831ff4463c21a152839197cfcd274a65c47cf86a9a24b81edc57566c2ad0970d39c146c5d1529c278525e62480f38a24af4e6c0f921a78e8f9201b3f65d4d80bbc68e4c08572ae15f560ba1557a5b5a2119ed99e01ef624e266ee54574e20a100a360909571f78fe07d98111019c3c5ad6d8f8716b6ffc44004bd8e670305e1aac3d261314d73bdf16a2d90b1cc73c3f3edefefb7186427429b647f09b929c1923ccad057301a081c7169bda35c27968962ccb3093e183a11e649b15e9f4de556a16d483d4539f33998b96450f88424464f8f28d1a7acddbc0cb697e9d818ed06dcba2e7efd73cefb2cd6ef365245f4c69ffa6859afc48adcf0aceb50560ecb0344a600b00aedb102cd1f90955c4a262107dd334e762dc61e3f2b52afcdd44eea3f6c4faf8d46bff56e64d5b8568698aab7c008e9b5bf6d233df2d4a4e9e858d2c22c222f895d39d78d82b07d57293ffaeb4670894df13b091d81fd774ad4648a711aad4db0213a6d73c61b32d159b22e92268df50066ef2e027dbf14194a9604984ca56da4df355e0c3c8888bb261127e99c94ba05ee7b858b9f0a6a65c87f610e228a49cf61d057c1052cef1b9b9ae5b3ae2ba75cbf0972ce20838cb4bf623e470f941f01d282ce088bf23d28d464e38fd2a0b3d4031d1b7bea3ff2696143f1166e50024a4255330e2de957466249ac56882c401ddbbf74ad9afa18ec1788c182034a467a9bffd901a780913ea80dce8f2b209591b9abe5b048a4071b4f4124bae55d921d1c4e6f1148008f8b8bfb58f0be5f5bd50531b99259f77aabcf380fc962d212d59ad5335bd1a6f4b078078fb6151eba1d56cfb13795db966a939494ceb7ad30f0aafa8032480e4b0973833b82fa9e7732f3d6c63b49ddb5844c29ca42800ad089cb0f1b3c31d0a93135f181d26962ce6c56864c3df64c468a24f91e38b6fa263e710c975cdc9977231f27bbb1cbef141d7b3e73daf4426ea2e6e6bd8c5af42165bd7ca3584ff208504dca4a4c203e8850545b62510cba86941fda0e305553326772655f817658be2c90972f40f4ddde6d046242bd54eb154a34c6b6a9580dea88d5603829d20567101471d59c6f58ea88172a9d2b859c046794cea94d827706e1bf673384f3ade03b713978778be241a082ca81501c16c3cf4498333caf3c8d77e57c5c092fc4a7d8ce856d8c212190e2b8b68564a87dce8698cd56b571797aa64c4afd20397a8814c238f634de6f82c99e1fa433296571bba2ec67d18e15457bea93fce3a54840cd23d5be0b241e7292c55f41409a89e3057f22f563066ab4f4aee31f3f985412de83f824c96a30236cc8187d01109c3cd33ab2e18244424784c58612791f9dfcbe63066a8914fd9c0af26119168e9a98c4f570831e63e6fdc5c7758ee7aed6744883570efd4ad64103c6328a69508bb58c75416757601efaa505ca659963e720bf2f26badd76412cd3383ad0f7818aa3aed89ab635927bd846395052161b63d9012c8f263998a3f22196cdd145d41325e7ecf1b50d400c4769985cd4cac760b4da53b91d2828089352aa5d4ae9a051afceb9bb8c22af081a65d6c4d885aa2975ceac6b728d6b37dde4cbfeb6320d96e98cb97c1cc9832615d3c61ab0d8cabc1651af8b7907144bb9b6dba7b962c647bceebb07597eacffd1303208556d34613d67ad084de06578801afae435ee804d2d966a6c2d55a6256ae1ca59d9cfc2a431cf3ddc4aa079d282ec6dc98cd77d3e044cd2b2bb78b42706d36f4cc066f17b4d13a86a2e6de6534392fd80161f4f577dcc87f23f0ff69d291a4c0f8e5f56f965e31c1d1841cf1ba750a30ed1274e7913722e0ce8730ecd0a9d3f71c0b45c9907f35dad99532027642e5ebf7313a9c43cd3768f56518bd46df64d567e82c34374900e9f74d0b33ea5843f409a133aa899f5a6ce4074f94e7d9dd0534e21cdd338029a519d9410de71286670059ed82039e138028609c00dfc363933754befdf9e5057396d5a2b5a2e515ffc61ac25c94488398a6d121f7dcd181584dddd5aef16843383520a8e920e4b75019131959184b195215d31d8a5ce53bd4da2756d086cc7e81ae341266e481d9827edb8cfd2f6f6248bf745ca17c3db2dcdeff1089b50a8ea062745b81494c454595c6fa8c030e304fcd48974247661cb6a9b869d8d6aca92681d959a229bbdebe91a331a2fe7917d64f72dc55950b9f5e6055805e31f85ea6b4ed8cb102617b564a0ac3127ac60a76bb681270128a1a0ec5030717c750167ce83173dacd3e3da27501837cc2730c320bff75cb6a6d6174f29fbac92df9d61a14de6791754345b49398cedb46c9fce9c90877a03c4f3baa6495286e4651b2c3c82fb2eb224b8ed4883598e15b512c92d9312d74ffe169c0760b1417b8b6a7b847381c751ce5a10183ea5e92ab3bdcff355058c35fc2b86973874051d875e1435111db723c03a42c79798467b0973902bc0c86a697e0584bad0f420fa2ac8a37613af0d0fc29bd9689e6d5e82dd3c828d1f7b9b5e1dd42c390fb89c722a114a919aee18a235c492e6d98a4e681fc40dd50fd646b9c63c9cc80ad696bef2148d58ade69a71e23548c7fa262b140180d81a3c38b52f65a846ff2da3d74498f51771f932b5dae908b1710c0f271714399a142716e603d5eeb7e9da5340b42e1628b730cc36317f36044d609b8a7ce8a91a254351323dd5d7b83a451e45370645a6e241607b51a87277662d467940e18029a5c9e06bbf4cf8189373c0c0446d85b2caba01493969e49f568fd887fce130991baed3203d94150b997f9299accded5168fb42e3feaaf4d381e77895b798526380a675f3006de16838d368fa42c3e8105e8bbe4a85de188c5ea7a00b9d1b127e077f78fec713c1c23b2824ca9d28f61955765180858c33d3e410d6bde54bde6979cbfb0fd0ba2936865da9f22d18141695d384b78c5b1900351ec4482c8cc1bdbdb72d8c27b885107b6f814e18b933eced00adb2303b7d11a67b4ae59894bce79a1fd6d44fab7eb417b45783ffdb8a3067132466c4cc4b3807df55515b291f36952b709845a877a31ee8eba127a6f658d8c1cd1cf081e93034f04c6badde75d816c905f03d71533a94de0e6eb8451e8f5896fcff7944d92b398b90b392b229265e82402305e4b8acbd78f24cbf53ca3c5946397f8d58be956d7b90f49dc6a3b11f208ca5f73e43c5ccd382a4a1104a52847f32f4b6b98b8fde5ee40bf563a60c0533ef669ae9a7264c65bff4793800a500d9a841fb10c2cb24673bdade9c28148d43b61b59336b60b81b550b820d22eab9a932637795199d2f41d8982a65fdcc98acb902c8da955c9089cccedd8001b5e42430d37cf0ff5efd2b117a799a394b81106a75ed295f073552bac57c5bef788e13180a725394559136092bba47947c1c3d5429c184ff7aee1eb18d8556ff748453c060a4f7992188674068cfa051fa877ad33d2a9dc9785ce83a9339d4985640d826ad32078832e7d02aa0adc045f52859929b20f964176a74ae00e50733e214a4057bf1bfc50ceea1c00a5762c2ff890d1d6dac90652e488384a3770bb989c526a5d4c242c1b7b33f47ec950cd3cd991e5508ed02b9be0b04c335c2635a4d412f186325bf493cd18dce5809ae0cdc7464d6387c9c9f0eb704bf51ad4a253815a57299b4f8e0c7bb275a1f4c3a76e8b6540170d797f702b8daf38c486880375945bff0cc104488a9e625962ebc2fcba6e732b09887ecf62047c7466aac241da2f70217c6ab5249fbb7437a1501efe8dfa9d238eb5a50d000a79cf86b9d0c7c6059b3b0ee4db2d05b9ce44d2a36890155c75fb322465e6d15520d44a18524e9329663de0b3be87a8104a47c686ba655912c9adc7ec8515de094758ef566d3333d108292a53052317eca5c2d0230a45219c95a7a75d155e3d4f6cbf013b3a69e78387f7b90ce375836bbbee0e00b761fd3f98e19d683c8118910e22ea06900b1870431d17dacd54d2ee7a8a7823fc96d66bd00d8dee704d8b66afed8154eb8647def347a46a8b6ab00522431ec84e47eac4d4921440d26d602b7ba49553a2a98378a4d890fdb2a42cc6ff82b587ceb659a51993f78124994822881e0a00574a24807c009067220af9533ba1547728a3b07536aaa2732802924938324cb9c3fe0ef3f4fc79832b442fbc1b9556877dff4f0c0ff250d3d14ea2a9d7096db9086c00bc51b70080997094ee410f23edc601f42144ca73172ce29b1ff657bb14a9a1da3ef4538adad59c087eaf512a60b581ea0b5ebd8ab4db25952e6663368083e9afbb3ae0fc29b297a1e84477451f39f728d42cfdd9fe3941fa963ec9c76d481ad289ee41551f77338c91d0995be44941e0f48f2fa48f252380bce111db40f4566a7d2900b2c26873bf93d6f9c6f96e42216cca4e6c40314891caa54053f9b174d4d60d851ec835486d9620ad8c2ef78f7b9f16ae292d190ab9b05ba2a9fc35a2b17dbace6585d3a3e81ff6d08c98cadd42c34605f8d0c0848faa71af3ff1024d6f6c5ff5fd70c41c377deffa76982576ac3151541ccd1be8c7106b77b8187d0466c312500bcabc1ededabd92576e2ba2708070a6c94fbdf0e88988894de79973c123f69b35a6a91dd6854f50471479162de34e5711b698639b43e0a783085f10de7b8b3269951960d9b62463d6fc18cc42a172450898a0032d7e1de9c25d92ccc08054fcf49b2c3887a5e1dad0ea1de57bf9aa88b2741e0278b73c0005780b74117c34fc2821de75b66439cfad2447dd824716a302667665e08e237fda7dc16491045fd32f37fdf3a0ad27b747727f8dee2eb130c0101f5f2b5aaea18c42e2b4b2dda94b6120821128245521f511a68b06744a64d6d973d4f2dbd69f21dd364bc890d11f009d97101273f773f1d157b1582430d631ef0015e6066968e8c1eb30a90e03438124695b64ec5e4dd259b20af03080f1b6b82c38563e1f0302ce0dc94332ad4f040919d74e2622f85d898db3bd16e22fdefa924fbf1d2bdbf3cb755506d0b172869bc7c831ad1b89bd512e59a23118202890bedd0925511976d4cf635f10b64e15592adbb10316e1101318cce7d9475522c53efcb557a7f8aab27c19318e1df624c332f4d9acc684516d92bee8a38e034ad0ac41ff84c597015938d47febf2245a013e1f77c41b47a9e320ff10600c23c66f346a0ff38910c0d8988f9d2086fa0b586be2d323c08ba3d90ddeefe8b6d90791825f3aa56b804a18ea7fca82de958c61ceaa61afda38348c55c501c6acb44697cfefa8d5acdca6571a8844e3bc1c9f694922ca23a7e004e4b60e897ab35718419b44f521dcfefe247e6f10bd6383454d4cf64fb95d548b828e483b82892c38c9c12039689fbe3699cbb0c545ce90d62ab792c7d16c258b893fce3b86e1fe3edaa41fe8338ef63aaa13f7263c8c8f44c440b9554f41046462c7cc488c99773dd6bb1974c8d46c64c29387b960cf07ad022dcb2b66b32ade9a3a87837d3c3b6515efb9af1698000715c03b87be8c05fc2ca6b68b02808497868ddd491e1bb4e39e4bdb7ad65710aafc167d7b5d8b4ff3a0ec9de80d656cf5fa9c27fc22f2dea93a08fd786ec50d6709137d15e46eb312338e8fbf180a901d4f86727c5ea7890f8ecc632bf95af7553bd4c097d0026fb283a531bc1b3d0c7bf8d31c2f6d62d9f16fb88d8fbd17985e68b67e753fcc42793ad3a89fb0b8fef6a4a6fbd000358b501e62c4edfc04efac512fd153f8ff06b344139b6e003d9d06f5de52ea7325631568a21634880f2fa150d0d2810cd316d836fe6ba8a323895bd788f1370efe3062c6a4d4631dd5b50303002595db7bab8a90633f8155547ad0012289a4733208bcd0342b9291dc81d11e53cd3a232433b8215c7dfe3f9ac533f284325ee13a3cc0caceb25f1c033046c93967696232ef9adbc81fc5ebfd5c1a9d13c5cadb57ab430e7da248066de804373a7e1d9a448d8821d39e9b6d237487b83e336e40d6d74159282c1676dd096f762cf1eadfd8cc4adb8778ac7edf68b9b0f2c606daebd3cac82bf8a635d4daa968ef9e0612a36697f33e01642e0bd843d489dd791b62d252cb7be04b0efb9265b565d172533fa9200cea6e20022810de1e2c51455094d5d1e1b6563630be0735f4dfbad82b677c066a36c073a74305001314ad8478261c6d6b088a86fc93cc683eb7bba9447af076abde590f9dc707de803b4b7fedf89b13fa86f0e5b26777dae955ea13937fc7e44585a94ca8b17b4ffc8cd2e185669407c95b6b5ab41c60d1aeaffee86914d521c78d1c3678412926d5c92fd0211081e72355d3aebdd7b70d2f98a1bac383cb9c28316154e11184f5f46149fe1c1978d9f63f2fc3c85cf4117bb016660889fad71542a5c8750eae01d7d9c8f4112ea049d778847f0a0aeef79e887f1f6fc80f778f84805078206783e38ef47a38985e02e09bd2c9f1a0edd4e369db0289ae9c1631f1e980f08b8e9c78dbf3e600ef6e80b026e815d08e42754f1602fd1c7a12ca14046a0bce7724d324bc0c6d46e818abfdbb680a327a046f6ed5234c1f406ed9fcea4690e3a4bb2c926c5f00fc818bb9cd3992f5a539967c976ae3e01077f6d6d318c841eaf1ce98577655dbd29cb516f08f24475b3dd9cf72519d41113ce296ba3791ef77072ed4a55571db30c6185a83e9dba4c34749d737f728482b86bdbcd4a5c53d8c6fcd07eb033bf952a24637a185fdc0cb5073b31b56e1322e8b54aac11f973c947555d4143ca97bdd9970d2fc03378aff04a9832d0529880afa13d198ca17af3317f3eac0695b48b1e9aca7b5b30287d90c53429dfbef2e9866523073af009101f0ec37e1b0da2b8cfeb3a75ed29ce0495f4d9523e152571f2820103eace9f34e0a6a18c4dc0571ba1e0c6bc81438c4f346c11e27c3a064cf49259020b6b0e497d2aebe23690b57f969e34dc95561e35c7959be3ab9b401c85380bb334b7b2a21b7fd77dfcede63ca90c7c3449360cc78d8930f47e91feaab51a18725c83921016c02a43a3d843b9ec101ccaca606da84eafd4ae8568a3bfe1bd340e63ab197c9b2cac0e351c5ff0365804076533a5542e62abc2cbaf427d63590c1fe93ff81236d48bedafe24b98e818b6fdb7b66baac18df7a82a88c16c5f26760bc33650420c1dcfa93c4d0c5b11f0c84d454284a2e1f0910855d3f945d6b7e25420846ab70189566cb3cd5585cc23e985a22e91787d2a295aee791704df4f16f98c18d6ba90f818ffbb481b80e4bbe736346a026fc5982a22afeb89ae75869b0f389ae0ce606d97d1f516bfb1b042a970a448b3b33f3dde6363795f7d94fb8f0828d44b764ea5d3462a012a08c3b97e57ba5e1cd2ea51c3b254e3a03aeb0649bb347d072a4d32c6bc3343dfe082e0cf50459aa334d1d148e3fd9508984335607e29f37305257248a599ca1a0a248d55d6b40d1ed67b000ba0d999ae57fa47581c08a087a291a250924f52cce27f8a1915a50ea40a5133ccfcb5d00ed5523c44f26509459f51c5a88672566e8629667063ce7a0a8d649a33fd3406bf9a843ee8d77f61e660b0e80f98bf688f102c3d15b47e0fb93b31107019ae41942bd453763129239c59bd61ca38b65754f77dc8ee31daf48aa60f915bee18f1d108a2a0803114aaa977d14e1fa59ac0f9b7aba4a1e4c61af3493ea2b4cf31937a02178702ba2bedb86e64e0a6842895cca8e6f9367c71a1874ff2f315aef612da6fcd0bbae2a89b76c5aa3afd76a62ce6e441a996790969953d1ffee1b666459d80c0f139d1605758e346a7acf013a3915aaca3649623aa7750ab0c5f0be4ecf8b52fa56f630c8795027646cf4dd27e93a09caf4f113a8746d9fd996cb751cd1c90fd486adf3b926b0bbeda845a3f6644b9170c54ab288d1d6db3bb0383e6de2ea1eb1727b786300db869e69db05999b286d0d2a742c6526a40e3f9c90220d2b68332ab99d1d7cb2e63b505fa6e00eaffc129d87a44887a83db6806910442f9b810c60b8e4168595ac9cc0fb47810922f3d7e3006f6c1cf29fefdd90d51b807114d02b29c1556f32839610dac92cacb2c693a62bf47ceab91dc5489c423c9c85b9425d84076150941692b992b70ac45a8ba74a8eec119989185037685c063cab4f20c82eadbfb57ff1cf6cd1d86a87ce9158405615acc7d6b04932b520cf1da29e7a8f53c9341a1717a312066a522932e07576439b03a210f5a8b1fe5c0a60e35b85c38200879a33be03a49dcea17cb734e0d6674ad7dd035e8728c78345541cf09034075675a0a687eff89d77bffd6ba38b5f63c51da062601bfc1659c21c14619dce6ee2e032ee7e78a96403494956abf0f589d2d3e6c6f573b2594d15e431b79b7f85b2f4cacfe1cafe284030e384887e03a7e275142a4e104db229c4cc99d44c10401d4230549143320e30957ce9a7711933d655ce99c206b9a8c2b782071b02cfe465582b8ae8285d8d5b2d706ff29c8a83674e3e9e6008bdc5c988b3b68c2d448b808a163d9e230672f9a01f9cd7fded254e1f345286db11f35fc821bfab91e49631f74079fd021ecd7c09fe3dc43b2f32cc1915fcd238f68e52b8d28a56461714984d9c1507f147e5e5360f16d532a9cf57cea12d565f52e951cd8fe45f5292759e436e5c17e810a3daf4cb24ea6cf2b51db633116e67d20e91c02d651180eb83afcfa73a0de99a94267eefea275345a9dba86e9a9cfae31b83b06e9a87cebe99c27ff064e1cb592ce8d26c85307152f3b312e503116d84fdad44084b7af7d84bd77962110ee4293662aa067a209d3fa6f5e461e77b25ea19185df75f9fe35f1e1fb66f267fe253860b9d2af7a5a8dfaf4fe32af36a70e9701db5b6931e2d279f3622c83fa120e8a9c271ea836db95b9692300c66c5829179c6e4cc77cc5277bc1f9d85942f3c23a35ef9d8c6384d2bb5a74927dc8215de2a3dcda5eda2e68e18e0f70355cf62412e07771499c7b15f440358f4802758c9673d0d78234fffbf5a80cd7a81d2365ef567395ec2f8b44c84e4e8933a7f5750766b4c339b3eca6276e7b3cac2d9182ece19edcdd2b09ac26d0eb82f7150059d89d98d9a02a8d24cedb71be0fba1efa75994d3925b668a57f1f73818f2af45c6a2f0bcc2bbb462914b0159018be921d8d7e2b3ff8f4dde49302dc7c534060f0f2a880dfb5dadace83fceff65d4741e234df5f8d42fb2b868e862c3d5719caf88debb2c29e417baaeda27762fc41a5e2b3c395a279d338c8ff492dbf590437a4b181d81a41077d414c74819c9f852bba37683725cb90107e5f90ca5e6d5fc6cb3847678aac80c2ab8ff0d9853c52364888127c2a8e86bdb29405d6f0ae3c6a1794cf040b34e07beab878fc0d221f53e697168b64f22b7967cea874a9ab26b9bd05f41a320c858d9e58783e8c4a7b9a78c44c942d0d97ee6c8007279c912ae403b30a6f0ecd21f927000f64085c37aa8c0afa7b1b3ac8deea4529c28ac68b25c938fa097402eea4a96d5d3cbb2dcf2bcb9ebaab83900e0b394ff1a2db67174a582a47a8bbf0848e99bd56012d9f84099aa67e113493ce33b83d2a8c8f5b76f1d9c2c59273b0dfb691603a2a804060b915af97b1e1f8bc7cba72b3bd70104d120f650d17d2ef32bd74c06208bb1881a98b0620b140ab409569214bd578d24eef1fdbfd3cac566dc4d3c5c713789b8ca2c24b944af86a9cc1a8592e613404409450ff32a83af6170a7f26203b140e04b3e4abcea92827b130416338680f4c2c41460c81ee3a56c7dc7178c043e44c034355c48bc19e88ca170ac3a2bffe3a7d076b112a8279538e00ae75f9670d0a8f4b69d398cfe3097a699948c470509fb5bc8a5eb041879ccc718dc4398728598f6d23e75ac950d6ca40777a4fd47052822860351f15aea7f39671ac0eb09555f4349f7df10b406e1df7ebe2830a5f242fafa42aa8b1451cb7cb1dbbac261a1ce44a392aed4e10fcdb4e860028215fd342ca79f72c9c2c4074c787732f3c97108d3dea8290d914dfbb14de122f75c8f8d8b855fd7de51767d1e73f278510f8e17ac9d76b50754a7530a1cfc82c0e5aabcfb44e1282c10cc89801eaf357f9c97b1576b91b218c209e980b4118db6b9f68ab3ab127d7a4c8e14eb81596d314a4da7722b688299d6f2a7309e2cecf0689f6484faec5a21a1a84e68656a26cc099526baffbd83597f84e6adb66c7dabc838f2902849c2ef3aa8a5550700b644b7725005bdc74a0a6060c5020c1df58a07b300c138262af9987d5d7268b3233d92571341f2ca96fe4baaff3b17d17ff3e23cf6ad70a9a54d141b31b2df54dc848d19638265da4ebc4752e28c84a41275d8a5a2ee3018847c9a88b5919ea5c09f512088c488dcea6cbbcfe192c04d61491daacb245177ca8894f5555b302e0230053b5d7dc50f4ba4876dd90ecaa5eb52faf00bc7e96e970e39230b8c3f9a65ef21008b3e64c977aa438754cb705b84447fbdfbf1eefa89bb3057ead53a8abdd54008e7f390aa371d877e29b668ff50dc115ead64b7f7da803556f8cab2a2570f9f73700e38aefb8ca6886e0dfe59ba31021043824d4f97d93e0c8e836b5b6da0437b43a28f6fbcb39dd34377b8ab1e5798996e99ea0496edd0c749c944af0719136c6845b450c79d68060ebe75afb5b7c311e6ae3584a95e7790bec5487f407676fd95609864f00e9ab0f54c0be276a7529cdb3df28fba81ceae7d1a767e3dcea9a3c05d87ed3d7ea0ba2f06cb9c29920df7ce94c4a333e0d15fd1d20b291c5e58d7adeb4ad354648f63fdd149e909f7d5558adf1a4d18d54cf95a0ebc71aa116ccfcc4c9fb2131cdb80b2ff83426a31ec4b82e6792e7c502cd672c1195adaa64532183fd76d6aa45c9642a7b102335319db1544d285967d1f32a96d68516e62957c04f1be8244b830c8f4f976debd707c2a0d36b75ed295eff1f62ed78c2b8e8a9e6a61b46e8ca6f6c4d7b254aa66d075c26ed9ee7310aaae13d82f9ce0e26d103c6de5b2cd67ee66d0361597bdee7a9a3abf4aed43fb913b849ae447de0e28bdd1d8acbeff08e41d11e98430b7d47a56a609356c6a8ad69b42f78c27b57dc6152e907ce846a006c2635d0a1e629f64908863cbcda38af805869d1e23970460790a2bf596e29492bae384cc67a2223d5e3e1b815af04443c9ad3f951d34452f1ab169c89333e80ae7d9405d8faf89f144858b3b2d25e9ea1809921f1f948cc3ed2f25ccf6dabdcb7242daa94a8a334e73639fa335e55080e50ca8f56c98018095b9ea726c8b3bc39adf29e14c0b4af81d70fb4bbbf888920d05a84d7cad1853a6d8f07b9233ba18406b51e8ac2875e11e14006d035c58b99eecd0cb2f6e37165f911fe81246d0fcba45d394b5691bc0b349157a31a6076705b8e978747998676fee8dbf5b951b33cea9550cc0766f515aa05e30c871c4820b6c0beb193bc8948fc748086727811468845b9c464af277145b3a0fea6e75443549287b729a20ddc3ac9235718b5fcef3f04fb1d6ce518a581e8f7cef0715edb5ea18d5c2e91affd224801927ee0f36eb8c748e640ec5e4691c98d9157d99674d1fd12af5fabd9158aa91817fc66075b5437ba5e7a59c22348b1c70f40fd5374abc0115a609e63936936e59eda24ba6e416581060513a1dd25b2dba4ad77e608afd18c1b470a639322c1e36163a66317f5a35fc1855abe6ce08876360a82590ee04e53ee64ecd0843510080df20a519b3a27f599443b5210cdf4ad11fde31c225f8e83a243d7fb2b9cd697ee02786a573ddd96f6ecb29801af8718d407f646cb4d5d886c9918677f6498e7ff3a00708d796410c94f89310ddded41b8ce074a81ab71a1ec04b90c873036440ddf9a579be6dc22c8793350f201b25cb75b7cead4e2af28803f38f7d0e350b088e4eae6a4e451affec0680084915181bae45ac310e86b038cbfc207009bd01ec4c761aafac1b608e30d2c7c7ed1e77fd52410fd5ab73b52a0c5149164a6d79825c34e04d882cd3ca0c43e4a2b07cd049aef947d4c0afa412c1750438009b598ad550f5093cc3d2539315ba93121a02f500918b0b923fbcffde026270ef74e53be04dc6d8721bcf8c5407b0450bd9b0d22a0bb2bf7f2f0545b40f4e38557f75dea24157e86335283f3996abe1b93f8e12b25cf30b28499018051d1fd95157d4bfd0a2186b0e423a0be50b3e64ab890dded129a5a9c14f7d073ec85165eecaf2dbaa020f62d1027863322aeb71cc00af143a60c2f5b830fab70d199efe1424b1dddbf079705182c8f73c1beb6d2e37bd7139aa8310e54e6e2e8b856f5fe517b311223ac51897a20873480769096c140946503c1050f10feb43bbdb0960ab63b6e931d269acd960b660b5d1e3a220298672f26f05e63c04e329e1a9547a5b4ff90a069175bb688083d73422e8224dff06e02d9e718b8f8985b946aa79dea4c02e5a731c56bf5f05017e8bea812f8ca8564197057c0c96cb8540a00a77762a4fafa9b260a0744fa17cb49e06b4840f6fb746c6f814510952abf769497277ef2e7e1673685fca7190dab13846e210270434bb8201829cb8edb2b14cbd3e0c4a31746b6a2bc54b213577d0a93f671e5c0f55071601ce2f2b7d7ad44e26a2a62e077a4cd954a605e38301cb1c88f2b43aead528e4a68f4a3e45bc84d510b879819f86d25d1b6215be3c24da06b8fcd61816ff5dbcfd8613785ff03198d392282e2361b512e9f8106eb22ea588ea14494ee0aa7e85bdf16f2cca9eb60f62a6e22ac3d19cb6630bc31ea5421a73b2e6b7c72ba483d38584e7dd13e360347026a8dbd940cf6aab82227996ceea3096800313f5debb262396172b31b2a23ac171001a5bba04ae5fe66c1e454327240691a2fe35e2072778da37daaa9b140208e1db0d8974b54687383caf7536a19be342244b3f2080d1459f71057b5bb0cfa1a381c10febf81a073ca08ad4df57dcbdd237561e8b667143f2a085c30121ad48746564dd95dfdf5baca3f9ef12f623d91f81fc24f0f17ac3b6ac903ed4fd225767369344b8a3ba834ac5cbe57c6a6164a0122686e5e5f6803eb53b99b49e0d4eda1bbd2897078c6aa2448c8be206e132b90cb25f0baf9e66795e07110c66b48c0f52a763f9a583b3788eae30f1e9fb4e9000b51471518430af46878e484f6c4b3f416f0f87ec8ba231268819b030e76eee55ae58d3b1caa129c2f8b7a3f78c149ed1f050fad9bb8afa2aa9461ead513fd1bf691ce1235fcae3a4c1a09967dd905130e89acdbbec96e8c84d9c02357ec52bcefe4c234288fd13035414717e28fde4c58ca702a3c54846fb00695c570fe99113e30cc7e54cdc7428e43ee1aba7505ab97e54b7313b39fca2346ef41a865a61d2126bbd14442529e9bf020c653102625cc36514241a0817c7fbcc00c11490aa5553362f31ee7bf26efd38d6a390669579bff44326eae4d4d90af487352fa85c31e8c7af5b47e5ce53e10d2daaf3a20d0cd2db2e7b96f4562fa7f270c724a700f55603ee0d8a5474674572453f9493e19f930818629ffa11f387dcd4b4085a3b47a3d5abb9e408e3465b2a9e047c245e8959605300661109a321afcb3e87200d220a4c9abf864d850e7609c11119a481d0b4086a398190c5dac94c9923e60803dd9d809648ec55f3029978c120980f38d4a3e53ee0301a3f88eef31415e5aac81b021fa3b57409246b844b0cfae549dcb72d5b16f28d2344b52ee35d0cec8f3709678b71440bb33db600c2b925ed50e311200f0b6c20c8b6cc3e8f9e22a1ef16e4e3c9b8075500295b684a0c6964a0c37d851e26e8e4f3e1a37debf81186ecfdf7687c38e9f4258eed6028b993e2cf9b158c14387f602c02aa6354b02de422d597c16f5c0157bc29722575808ed7c83c7b2171a7183599e0aa9fdfb9eca7ee83ca977e63e14f7d1417c6761670ffe568d5f3e8028011442be018742dfc07312fd227351cee2315644a80b86fb94b0d1c25b03a6312377a7bf064d036d2e3c320e80b7b1a67507118c5cd050b3383120d7a0c119b491852e36558794e2c2a1019a210fd5ad22b801e0d82637b22dd92fd38c378f9d7abd364e0ed5f9c36ad26ffe616bf38ab030917575327b1c78b7428a0b197283104126fe219f8041814a204a721444b6d3cd769423d358076fc801ed405550a602f2eb114262ae9d0a26ba143879ac361d94bc2001919c3cd59ab525dbd00360495f2bb01cfdd74c7a0634edd4e82a0eb5e81300352dc07d514f1c078066cd639daf605dd08a6951201c1a8129885740fe90d4f21efdba4c3d96205a4b47d555fcbe88348cdc99a6ae015241cf292acb9f54cdc54885ec4a43ace0d3784e4594114410ef946f402cf08bf16e303ddc7c905e335a37a8359389232bae37dae733b37e2284df96949177f87e3ab237ff7164aae8218eca58715c2aa64d67ef8d612ce27f793c2f3023b9cef8326d2bf2169c7cf1d82e1aa636b76cdd679e9431cfb1ee8b1499d3aca3fa87faa3ec9b187245753f1078dd4a82444e261724d949bb34b1e0d928bd1257f2c972d0993d00153ba0846411cf1a910b2a84820dc2d8b998e3ce2f9d9791d0261d4d584e8a4653a78e4a2ae366d03f3f109f6fb86ee2ee12058a4386a227ccae8771d5787a93ea78706de19030251d72241a48d64fa64b2ec6401f0b766c9d7fe4125cd7ab8a5f35a95cfc8bb38793c1a60ac123c7c7682266a66bed81f08e621af9c364ef20fd3e888e7a48998bac4a3a827c4e883eb52a6ae2af047e9f306da6967107512c002a48cab250aeb375487d977128b790185c1b99e7b7ec5ef7de153c2e242838039e6efdc5d962d962055cd187ddf74c36cd22a032029170b161b57488e07028827293e8055c0612f72a3f2c623c6e58ee6068431e4104a6ff336062e3e592f7e226110764712a01d110f53e2de85d856dc5af21e6bbf80f863f5b3c737beeeb80ea8be69cb706063e922ea48e90b8b81a829ef7b767684d32da1a53b3cd918d76fb4eb85eedc53690039810435371a244409f3e47bdcc2252acd67c8ac971bef26038174586e82b4faabf01df433813365924e459e11bc3a35cb088d933109d4d5f1013124581315979ff53a16b4be478090fe10864245b1f6848c84da341350739bb2e79bdfb2dd7a104f0ffd54f21605cb05f28c9f0519f4ac28598839a990f6e3c8e076bbfe976a3053a5575f4764c16e39aaf8428c8aab41f6a004c9a85afd62dc944226af4a9e0b476cfc305420d74e40c81cb2aef03570bceededeacd421bd4a70515459413c3d3369fc5906b880b41e469fda42f0311efb5438424761c4ed2230f6518e6b9df91b31afca05b1ee2c0b7642f5a0d70975b4b962303bf476d9bc75e886267c3ca8c60d20831e85f05f904ca08b93a27a52e09def31f2dcf18f1ac32d2b7640f207d6284073f2e3d4f8d29144bd2292652c3bcc74cc3ca47cc5e4b26535ba0e807fee6e6e844d0ad1d25b010567c2de8401d460e32ae800d568a5ef5c4a04bf3c907d2b578877b11d5f97e157d435f2096e0e5ad69fb4eb272d68559c472540dbbd3ef0f184ce476a182097800709c8ffc6fbb4cb3c7c185507fa18f97da77811e26ed97ff4dcfef995af5eca676ebe4cc7726fad973d468fefa94b4ef459ce3b1433c576e492e00853f8c8f4f0691b2343cdf35540a510334021e7480831b20e1a377c1c2ba7a16bed0fa3ecec51515bbcfa7c1206efab0e5c94a84922eabc892b383b9b52ffb58f2a2025d1eddabd80b086536603e7adfe1dbdcd2ea1dac86d32b18507a573e010b643ee0830879a50836d8f03b8825fcfa0ca4936a30e4dabce21e0402325f0f96bae344f08d8d5cfbb6b29d54d4b67d2b20e745e5a13789c776e205c23b6d2649a43bddf671668a4916e755b9c0d2ec64c42874a9d373d6477e833f19ba701f4570565595eda243da52b1950aa787a97002bc4e0f4990b61838ff01ef86a89406667a5a9bcf9f920543718df9fedf80aae665cc1121220a31ea1cec8e0126abf1134abee13c0b713c859fc1cea1f8723138537a3b740e7a525b278a4b4ff8f7cf55a371e3b0517a58d42b1bc0686ae5ac4643a7d85ec587de7c1c52f1122e57d1aaa71b22194672932a245adf39ab78925a9ca5a2bc274c8d25d06ba5037a29f73cdc5df9fc0530b51018d4fd29e72ee9b5a4e71d587a4be948e19ca1058d3bc1ef771f264b2909ca49045fd3fc0d985330c57c8e898d1192006910536624dd48eebcf295f28289e1e1747fdb2b22ac2e0b797b41698e1256ca7d9eb1a2abc2cab16ea1fc82e00f0e018ac8c8ff2ae4291fa306db6162b067882a8abf929292ef90cf3c1d5df02680b67b5546c7682518b5f82a430723e57110762b3454d885b7d86802850cc532381af2a86f4ef2697a6810c9f13b54a324f32449ed0b22924277bbd9384933df5b9df5051646f678d5546d1cf2f7cdccfb6720a98afe293405d9e77494e4c04645757a009286ea9e1ddf1b49f913d03d89bf0170950b2b137a22f24d59d9c627aad19cf108ffdb749f5cab44a78d71addc455ca7f27a8931d40c268e88e8acd8672693db89e9d9e72a7c220981bf442496d1d3216ff714e68bf79d251e31be1604fe076ef20149e3491c29c183155db4d111902749633fccbde3b451ba950604a4fb38b1924df296e3a7ef597a8806ad79236ff50c73a83e8cfeaae7d7ab74385cc0485df05dc1f17d07af027320df82ff2ef79f53b98f425d4a17a64361b262c2c33ae01321bff8b44a205655a32dca3eace48053e0aa8981e871dcb413747b28cfc740fe16bf65c8ff2ae4484bc2ff3b83ea780328a983be1ee19e83fd9785a641a9719b2205aadab54a44d6da57c4e6cc12a10d0c0438ea0231f7e2d36138aae18ce55e010ed131b912bd62961a81067b12621c7b2762ee3906ab03c8fefbe83da0d6bbb23bad4f67bf7187390937d99bad1ecaa88146ad97308e01ef4708279593342db000ed3ad7cc6bb1080b921645ad9848966423e56c457b08a0f7551ae7a2bf8e058c152e5b2b37dcc6b3b9a63091af4da3c408aee5b19dfdaae3e4920ac3cd253520904059e46fd8cab9ba51b59faea4fe29c6e25165d1a69efd6c4fd41e86070684e8cf9b2bdcda2bcf59de9e7390b9e02c70cdf801f979654bd300c72439f2c0a5c1d1a34b30c4a6691ef209905e9c005db380be2b3cc9764206eef65b0ea46d5011d83f0ecee4e88bd6a750121e63d7230cecb917b4b58693557e079d0a25bf528f30db753bb2b58f2423613e5f9d8c46a5a95e0c836cfadc4b0f16a35ea0490b90a89eeb00c1740a8005e7330155a53037a67f7b0de41377fa6bacbd60ec07c0f955f74a24915159384d4144c460a57a1809fe1661ff54f4675708bc9c04495255d377a6c760b1b1ea176fcaa5574454364885f8320d17a7cff1dec0dca0a37faa2bf642bce9c7d0212a171fcb2db1ea7a023886369f6a25da84639e84c19e7b82b85a01a6dee90ff38c80945a352b0e4ca75119c11418a68eda3f6d0781ebbb6c91a62d1f34139626fa4a0e63124fc546f5d34e62daa191a79304889dd7b3354d145822f606d1031c6fca142d603a5230b99d26bc34afbe98e21c364bcc9c7d39066655af2c44327a81b9ef26cb0a4c659b880a3cbb659e13fa1c8164a3a373681eee040490cb00fd3a1735e56e87bd0d686eac6827d962e558a9c16b28081c12a5352c53d3cdcf5442d4b01faa381a7fd401a7619de65141f0e16750540849a6a13dc3d155a6d2331c94511e0d07ace054d8388f0149c75e628153269a01402c4f34204e4ad337f41c195270bdd086e7774c37f0f2f91cf1400cf0c72de5b37be53134e631c34bad7ae6c377deb58949ede498b6babcaceb751553ad98f4725c8332777a19cbcad47c6c18d2f216259be39871be5a994036f125b2f0eb123fa9ce56c7b665fc028f940eaf5e5a88544f912fb58189fca52ef4b2722a68b0ce88b45fee6441c4a344e98349595166a07cbe29ec8f13c8c831135e704c359a3d307f79ec84061fdee6704f24bbd50cb0aafc1f2f1ea6c7d3edcef10482bbdfaa0ef4eebf659aff6097155559bc7166b39e058687b186bb392484a51ae7dd990d196f96319b7220ca96e28afbcc2925617815fca8aa62970c73eae1ce62d687a2ae303c77b4de4a8ee54695af02f072c5048b49b685acd24835ac02f54017240e6cbb80ec3e1144561ccb095849a9323922a31ab29a41036bf046b98ffd8d6058a040ae49d896cf7436b034de0bdfd013628d026b08ca8fa22ca7041cc8f9e6d931158346db85a39188da08ab3ab50e34cc86eb393d615f0621cc3c45bd01c2d2f620c21c9fa2f2b5ffba63552862ae260cdc2c5e9d420f07ac4efd7b99b53807589db506d3ba770aa46d0430620ac969cbbbf53d1ad52a9f4dbf6c5eabcdcacf659e88298996441f28804110a72792d226930e607a0c161ff6dc13839f18466e51e62faa600fbe5bc192b1a37788f987a640c5816b4c213cdbd8bafadba340a502353cddee611684831f4133f451f764daa58b22272947b80d4d51e1e32b59258dbb13cf95cf890a486d9c8a8eea1b0ffe923b7213ee70d660c4c763bd84df480ef022279d28a4e4f839cb1145fda5b43722138ae98d92fb1b78d4137f99fcca6fd8394743c874b32a5e995752f60bc147e468cd3221c4523fd7e918c68e705ec3764582dddb47b34feca1b767856f51a2c2d0f18a2290a6da796f8ac425cab3d83f9ef78be25207e402a5f608363ae7c3a7fe233d85c88458a16e1553783ff257fa05de590c2407b0aa8e651a5ee8804f67510bc68505253a7a3304a616a52ad5eba641b62a00ccd7cf74ea16805ccf94ea236747bcfae9d00c82215fe90deadfc15f4266d4175ff43e84b25ce834482902d43f5174a79b7325b250cc932051a75d959d6966d186705b240ee05df503e5a1d5549dbd05719236719b24681b95d5a595693fdd6ea3d93cc5b949de511d9621fcb86e67a91db5483edda6d821f1f3c08fc5757a1d75db70c210dea47948ee428857a7db3ae2c3a12e8007f11fc411521dcfc2dd70a5844b8ffe15b4c7a446977eb7c28dea38d37653148c2e4eb9791239bffc51fcc332b6d6c3284795b9f17c24b2672ad4a3c4f806a78379640b9da08bf841e88f3f2888f1d1e8c21fb9df48033bd219c8c9728a2eac73bbc776b2f9c0b4a173f549ecdab40ec1b62f9828273418f3a303ce1d8cf3dd4a9e2659625127c51b8841c526849a5059f2ab69d2e39978b73db2405fc15f7b5cdae128cbc88d8dc641ea737684f8e528709b8a0d29b3c9af8e6aa4bf691e1aec36b6883c245fcb9fc4b1dbef31427ece9fe0544b4b01c8060d16f701079f1a327e7329478dacb6cc79284ad518ec4b2a17a733615cd9247df12895095d1fccdd3c60141173a625265c7e1a49c40a2c3ddb9bdc00831103b4155a52659813c6b9e7f7514efad8c0825ba51809c4792a5a3ef9ae3bd1d735c22467b463666efac594812e132e804898074e676b3b5871ef2656fe79c8a0dd0ae9ba344c791792612ae9f5e7f0769c792cbc15b310ac3457c62c51ac733b84adef0d4e07a7cbcb35ee595d027771679f3ee486768ecc98f59655b9e42add93c5fc878deacdd98618e7eecb93507b761ccaaa4f848de1816b451b2143a3e50bd1ef3600ae231eada2b665b0a50c956329c28bb16a7b9b0cefaa4628c53c0dc00380ac1175271e1beb01af60e42274903dabcab43aec535ce06733899ff211d0637fd0b8ef96cea3c76571b1e4792f5fbf63f4806defc473e906ce325d608c2f0057507d11917d0c65fc6df4738a996b4c33d9d5488ef734c092c3cc06730febd9475af5753b7417643320ebfc2d8d28050db88a5e04a26b0f0908fd9027a87d173711526ab48a9861242d4eabc21d0506afb45d1519ed439366eba1c3028229acf2f341ca5088d276ecebcaafdd10b81dcb10dbdbe7470b9358b26349f74c7e2cec2e98d974161e926748d90edbb16ada569851b6f806121afcee38ea33c123de3c2abe699ffadc410cc3dd796e53b88bda7124fd824a08004b9c6c84a862231bda0e039335e3d6d5736271a9d09b7ede9636ff4a59335e3e425681253a0f5e7577a23bc8e0ff4bf38d3e2456baeff59c6a7c30d3cdf09aaf3bba992d7acb25fab355f3506233dcc10aae997f629fa5dcd58a11deb613cac0d484b8575984b54deb12557dccbfad1ccff4f8b4ae1a2e920ec0c506c17af3728dbb138679ba7305be9231642325ad27a443b572d452f3b4200a4f73b993340695a74db67deeef2ae838844e73ab7bb9857b565cc906ee957025d9f381671e205fa6503540fec54a1a2d6a310e1333e3734a8686d9b0e379cfc1951a98006e0a883b526fcd4c0ced31b33bac77f539e32be22ae1aeff3f26c098f723b47fef4875c8ea9dbdbade79a814131edd78bd763995ccb89b4d4b290c16c48d04120867441179e1887d0d66aa1702840ebd86c7f10880784727c058938ba8fe9630d1bbaea290ad78dc3097d3c618131df3c0b7c5274c58c2f6ca595510bdacd459e5a1a3fb2f81ade7e8649b46942a1fca2f190a162f6f47ac0f4cb5da2bd6039619e2d5d58c02408923357d209706dc901a1dca9f679ab10976f594a57177c8b2460e3bc2730155c9580bf622f5eb48b13dd1aca124e3f6166e2bf701dc43b3710bbfdead6b4596f8edfd07c7fdf0c387b4cfbb7e24983cedae27954f3fa899ece3be8cd38500f4715705f5ee59b2333e82eb59a6efab51ba561b13693d8820cc1241c34fecc78e2d9dcf1fb7c8bc8ab1bc841d061729866812b394b8d820f5556c3c3f415dd5cd4056f971b4fabef98fe36428122447f45eb3b73c4e283a57180f951a4b3570fdea1e067c08a5b00f627c2e202d84d8dd65db5ad8fda5668f444ab3cf3643b33f1195f682b5804177cba78a569e8601b6dbd17b0a306b9416bc52ed11afe882536d4260ce75fc4d88c0eb5f552522b4909ac3015253a016fbdd2b8969b21a50a724610e2d4cfd632aa7c3a1315c69a8c899830653f012c11d990c5ccc890a8153675a7245538d02a01eed0010c9bf86d4dde15eaa34052e813dcf875770b3a9b614dd91b1b3036bfae2a56b79a98d1c0899fa03b460df5ed6573bba9ce4338306d05a2ec3b08e5943da2d72ccda16c4b8c2d8d9c5ec514da28996b8096efa7174f9bc1e8f8713283dc46967f4286feea7e2e967214fd90959a0ff350bbcfe924fad8702857fc1b920119e9524df53b80605ef73bf226408cd2ffaf2ab9f627db9e1bdc7f6da2c264e4d3e2c2ac6c6e3e46d1c47bed00567e494ae4379e44af5ed88f342a3a7109d13872cc556642cd0d2a52fe1406107c0f52886927e2fd60519e7d08f2e17d73b3a98bc7a97bf916f05967ed549bc04470e0105938462c58fbffab42010b8739c6a4809a44b67864c79096411503b045878c5a9c45d08cc001d43ea4426f3931d0a4b14b1a531296091f07e6c20468bf9ab8b1349a0adfbe855cfc3103c73671ebd044746ba3586064b63d0d72b86fe2f96baa0f1181c727ed4512a3f4a6dfb063751d45d700d0a295b0408cb13f26dc6140d0c110b6fb3d29ba46a1220ee8c965405e836dc9644aace019e93f29a3ce32c2889c8b6a7651ad0f605d97e387f657910e5c7523a13d4d04aff718f7d244b8ed30fb54f4729228fb7a5ae0fb73e5e83eb7da1600b84117078671f706cae13d0788cf4fdffab10d31b0acf3f5cf53314590c089273727a3caf9c14e3088beef5d8d53d1e28e1cd22592caa1661c2ca0814a2279a78f395cd49eee71fca41b0933c1308c985389187bb4ae83de22e6802c337a9e8e3f83820e22fc745a409ec9544736b0527c707fd6149f3adcead32df6c4901faa1e997a2cfa41b9a5e29ba0c7443d32f4597492f34fd52a1cfb8473403f906c5191c460f83940a96799be87278e3f437421f0e230b17ca3beb2fb1df706bc1415cbe2dc50a616c9cdf90a86c5aa3df700d8c53f7e87ef2c100ebf733d36d889a7d9a5e48bc7def45a8992326977fb46848c55c904aa06e18d5e927fee90e348951a0a382fe3757cf810abd04eddb4537d2f577fca8ae5afc20e6391a0fbf1a80a7e6da0a3278a8186e85ad6a5ce99e5bd4ba4af3df19cbadb086c1ff9a6afe86e5466825164d2c45dd038f0dcc5424ecd2eb393642e4c87a82546d85d971421b136ba5986826a24515f7d9b5ee66be4c0e09d6c84e76b59e7013a647dcb93586901663b3737db222a9f9e80354c5bc4835e3a093e5fd9cb9d622b7a88fc90d16c6bbadc9ecadbe70b019024615534a7285ce26f98609fd63c6174663da8cae49f80b66839093e174b8062ea5d754070591c10316e083c6d3418dc256e64373460865e98ff13df792ee5b8b9b26127b1c0742163bfc41dba1bb8a2755df45920cec6e442106e312a03cf63aa1bee9ca8a0dfe4c4b24de5de0e08b83aecd34c455e8481c406c9ab9067904e3c29f42dbcae9c56e5c022a8f8d6eeac684c04f467572d735cf954f4af83def5393708e34dd9b4bceeeeaca638f3f79e47574993283cd0d9088358e03288b1de7d4647287d3bc50191587acf4d6e24628621e67057e925229d92a8bc45e1264be906cb9c6cbe6ccbd158d8aa5c45fc903a434f990964f774e948aeddd1dc4c8789ce9c6a5c9d3b7bb0040262ec6576a7323b9188d4320e5b1d16518e638ad1c796ec730050f9106849fa959b679a5e67c85e415fbc09b29dcc12653696237542053f7264d6212ed947f66277546f7aae47f0f47b710fdb905fe71bffd7d9454d6a5537e278c81619bfd5079aae573adc50e86a6f9e1a21ba7bf16feee074ee904b83d5c2466f31c6fb500dc8235e8dac94f2e47c5d650bdfa56ce59de33743b422cef7b302447836a0a76a83fd9b460708b9e2c9d30f7a0b9c6ef0760e1ae8d0597778fd6ad48a74161900f62b75b181404f7ade13d70bc0561ad6787065aa13da3db51d0048fbe4ffa026736c1589b8029b5e54362a2f37ab9acdb5e866be812861a62daa4370741b1091b07b229e9fffa75db9e66fc2b5c234cc97138b00f6fd6f78a9bc6ddfa16f063cd2d1551212a03fa4edc87419c0c8b5abf837fe623b876addb34a3b0d592b9beec9a7e00b7b46f01a004099f99af656f5731a8c16f65dd3d132459fc578b293637ba80525c9c9f54e050038bed4f2927317c25cf874c425e4a8b61ec0ae1b92419e68a21ee6e9b9058ba2ca5081102c8f37b94230ba9fd2ba1a33e308ec8c725049e4e402188ef37e485d099a56f698a082f05119ea5ff662fb123507de514ec87913ce8d970ec9fc2cfbef6be274a8a58ab0e7e2377ae148edfd162448a429b628107c5e31175e5349c84a986133ac1493d13908f3ca07f0a4ce16e6de564c20ca80f18001add244781598966bdcba2ee1c248091ebab2c45fade1dff388f64524dc2174835a266beeaa7f793b1e10304b5504ba237363c13335078678e2f58e8ced1a98be091699a4b14b6c56d2a8812a86245ce76460a3e5afa8c82dd0dc2490cc5345cf236a47234643664d8d9848aa05f26d8eb192cc5d0a1d8d1cc2a71ba92001c1f843fdf1d01b51a3184c7ff3821f288e0131c8589483cdd9bbd46852091e0a8150a5fbf701fc61acd42df6af14b992aefb051a42c69738c655c58b57a85c20ad07cab86f4a873401926cb404e3387a2e3b9815b0ee54ec0bd93a5d42dc81406d5ccdb01404003a56c9cc1e69d93546973a501896ae87f99d43c4d5d6f7895503875aedd4ea9d03d4a63c3a315f0407b82d56446ebc7c997cfdfa2a49c965492015221279e0ae201e1926b9c9b316ed04e69a32b0cddd00225d18f2445303abb9d02a022f049d9a9e025ef17c3aa144bfb0db06b912fe59c0a61eab86062fdcb5fdb1a43065c5c6e8a683adc633b0a7d475c8582b66c36a1362b28909f48d25df918a2e891901be68a37ccbc6b6e16db6839019656306b76b1c975d8b666906f7c5b06a5e70576a072b2b2bb3cb103878f6600f866a24990a77814165bfc58cc674c333a0980311393068c092dd274902b8cf5cc56837a61fa429fc5468afbf7dd22959299171c15c60c7e5624867ecfd069104479f909da66d3723f3f1522da396ec0446a455ef1d32015c83c4736e64f0ac74fc34235dca8d3a507b481ea46c48f15feb61a9567a6418ad65dee585d74247dd9f0f511cb07aebdf7042b3a3b8a66fb7eca17bc826dc4e3dca3201f044c7dc0767bcf2b158c859546ef6eb79961fcbfb8217123a982dcd634eb084af047d83385d9d036f707dca3d15fb449dc0022ab40aba114126699d02548b5e19c76902304462a6c675d30907aaf1dc5338488490a523ce9810be3e262f9cd6ef86b6c0b52c86506dd5da822822401bc1265f48c988c23e08a20c6567725c38f62ddabf91243bf0b92894010d2eb5da3bb15b4109ac12402952909684f3b4eda7f54903857f3aa7444841f495ed0662062efbeceeea5127547aabf486c59b185aa971eb4073e2c314eb128bdd744ee8be2eddb4a8f47c184e4eb365efdb16f75a9a045d192fb06906f6e3e1b01d37c0bb721bac9fe09114121d2098c093b210d452845bef466e76bac792bcedaad786bceda58f7d69c55b7f6d65c5620485a2641c20f1e927e21bb8f40357c38b3225bc3bc4f1c2789822a18d8a036d57be47d9d1563c55b75d66ec55b7756c68ab7e2acddbab7eaac1a6b6fcd59712b4fadaad7f04a1341700cf32d2ec154e831dc34d83c5e339addaf9c7a3ff3393adb27b23414037a8fd09d22a5b2e8f732ff281a345838cde605cd508f4752b5829ebf8d9f5abcd858239d6501d629668226addf808fd63245470a0ed01243f4ea885af9ecc0c541a7ecba8a0e27480ba318f8e30860c93bc02e6d05032d871c0cf437e41b56f5d5d119c0bd823e653722138413e044db47c92aca92a56fd4b59fb74a2d86e542bbf90b2d1fd8c213289e0ed5abe0a086fcf44534b41859ef26a0d5b434763d17838e7e761e7c1cc888d4cb8b99b8bc3c0b1443df4a5ddbd99f52e36d23c274d55b8a1b705cfcc7c0303d6e157f33245f2bf17a54d89596eaa1c7af16aa624c9c97f4daf6ac1026721e636e8f691ba2fdc73944835fa61c5ddeffe6f6f887eae49edb8c14b0603060c503b0ad7e6ed2ab673d9ee5dbce47891b81fe1064eec1fb16784ee6b81cdb707241351673e96e511623698ecfe5689fadcb53827db5dd38e97fbbec3d6a4df05390f18174b53cd275afe5baaf75edebe706ae008e4a1d0d846f720fd8bd49329e7043a3266fd19618cd69ca809d8265dc1b84200358e889885c3c1b88fc636c48cfeaec9b7f92743a5523d48cd1a249a3267349193bd9090b86b6a4d459e8a873bb2806cd635bec63682d17562e35f89f0e73ddd9dff2453c684babb68103fb043e34bedf6c31f1e15c8b3fe6fd5b40965e93d40bcc3623c3ff00f62ad44c49af99645f1a41c438055e75c44d0e5720da554d07d997c169be8d986dd3958f17845141f42f062f553fbebe51e6357452c31c0a13f51fda0a4f900a51f500404b808128c97126c36497327e88d096910dca4dfb432a8d988663b3b6ac6d7befbdf7de52a69464420e860e3c0e9e8c4f823a86e8dccd8e4374c0d7eae8bb8239f357aa907e828b3154a59f2a0839043276b7f71ea7e712e1d82f21a591266d583c598fd2affc8a15c2a2524d3d547ee587a84615f4582a0f55966fb13c644dd973ec57aaa947cbaf7c8b65983565cf627ba5e327536623d0aa955fb15c14f3a610e1d82f099bab706c1f9fce91108e1226c570bf3aca18d5246c1ca2e323db1f3276bd5f5a489a7e0678aa87ba9bc062c39c70fb898463bfb8f0c1adf306e1d84284dc4f1e0811727674e9ceb2ee4cdbb452e632e2c0f13574a4c1527a072399d31972f8b0551492e647d27ca6f21e19b8c0d68af988b5a8e3b8a99919e3ac5abd828dc8303a82f4c0daaa8e420fb18355aa9c670f13437c93d90bf0fba9c6943d7401bee1184e0e964c2e6b2569829034fd3958e7f24d1b216ff4ab0089f9f54ada38912282b0f125bc10c74d0d4e8fbe91a80c48716be17081455bab687ba56cb12df6438ce43d32708116fb43eed1282eea0c5cc04fd9bb15ba21aaa6c57efe800f29f28d7e1cf7c1d34460b1bf9f006df7f8a9dd8e5b8d3b364fcde55979e51a2868256ddaf3e810e1b6e33df2d42f813a057ecfc0e51245f884dc78701da853db4b9efa5db625a1d0f672262890a92de6a7fe4d88d0053286c4ed4c65e49e7642b8ef7ea4947bcabd0ffa425a6c9a793f66ff438b2b19c3695e352afb7ab2ccc57be4e9fbecbdaff2ea8716c11c645cfa427e685446eb0fbca29c4b8b1df6144c29af7e08856caf1f8470572a09a3e86e572a19228b3b7a0f8c0e11663ff6aa8bee95a08ed9a2f6cda4c5161af2e87b8fa4e92e64ca73208170e0389d6a7d794949e1865c108e32767f701993316f4a4498c58056de4b6eb3e41b6cb7d816db62316e5ddeb6307471f917451c389c5bde04c8435b6bac196d68b55a357cd3f2949440db92adc56444dda9fb885bc57ee4560e64ea073fc9ec03747ac05a14ead3a9bbd349dd63f20ab018b7f200587f70d945294ec475fa49c3e84f14b305e136f4f2134f98e178a245722f42a745223c3c3c8d1a439e468d3888744af6d04ea37c686868c331aaa29ff8412015a5940afdb454fa47da74ff481bfe941be953ca9be85314f2c673e04b14a1768b277416509d9057a111c2718bb15711fa532242beb28db4b8c57cbc6705e1b8b55eb785b6217ac7fe69428708e7d6da7e36d7160463264ca93701ba91167bc8bb875afe1ab7366e71dca2dcc2b1c9988c4d3be2a036e6ce15f1253cb9fd6ec49ba0d48efc5c8fd7391e3b3349c2044be1f67bed3f5270ded3233c6ec8bdebc6e085303625844d50e96e6e28881b0a1a92365d7043cc40b0fcca03e1f22aef6a957779205654dee5472ed62bdfc3e555569e0716bb6291f4b09dca8a45f2832af184102e834f43de7042f2463fdd522b3f862c2ed3457f142f05ff8778990621f83ae41df2d833e656d64a02ca2cae07b19c465a6c46f9d1d3239a3aca6490bf734d4aa4519e16e617a5ef9f569860481437c7f0e304c36d0253425113ba586ffff263d7929e4ae7f220bed1c1fcd45dc1833a1f494383ee0a3d1d0f6ae0035602cb5c62f67052e086ba295cec4bb80917718c328c5a7f79900765d32937c449a1876fa89d49664ff7923453489a2ee826e9a8d8028a9f2370421c74044e71165ef5214993842cbc0be94af0282441a666cff4d1e2b613b76938c2e51f4e425f1a84a434a0466c94059dcb658cb00bee02634b829c5ac82ee8fca9a30b1434793a1f4fadbc4ac7d36257a445ae0b79eaa70247e4448d8ea7e3d159ad6ac8826612ce825393092637e6106612ce82835a2f45ed74b83124cdea762c9063e0ce0540185deee773df36ba40412eca138ebcbdbf0b73b14601a15da744d2704f3ad50135914e75d4762e16971f1de69a13ccc980801f64bb2cac9557791e5c9e65e57960799715cb3dfc2b55aa5c2cddbefb1f43a4b8d90f8dbe67804fbea7525bd55bf46b529a4dd7b4e2c537999d49f8c6ec9956706a3291c4837c32c129cf82993b18674fa91802e826e04a2a8650c1f5648d50bc06e07a8c14f19829f8cd3a5fae29b208fa8171313ef56f1b4f9f5a6b9ee6f11984438e1a3bd70c9aaf468ddcd05df2d38ab09f2611fa8f9d4bdad040da501f692385b4c978206f3a18dfa8017746905d135dda6c743c39b29bd9d984ce0e96fdc80d0911238344756790282ee613f31b70efa14814f691f65c15b828705390a839c40df536a9c38c784f8b4528a5746a93ba80a44d569435d129d9237713264c8456c230a5e3091dc6b2b2d222c329e56299e963f660be0caccc52b9c80af24678190b92a69f61dce4e12cc03298c35e868ccac3c3d3c160b0d88a49132727ea4edd3b30c772437c476e881b6a14109e534c25928649a726509ffabf3bc3553ce17a5304585ee5796079152b443a0f2ebf6285b878a10a2c76542ab687ee085f84a1922a242a9d8f8aa5eba9a9c18143141df54302753c3208fd75e420e3ba3da2b26d2e2edf4e98d9294592169108935c2bc2b9ea5c784296ceb6892f08fd8e1e5481eb3f2369f88778f9679316dbc4414e046bb1cb02ac0a58807da1c780010000000840e7ea5c2f9753e7625c8cd311623169c24d2794d6e0ca04d0c118262469f872cb064af04c313a1f4c306868c01cfa3402f8983a33181b33d174d262518b3086318c9d701386d122e84ea3464ee8f2704259c7fca5c312e2c9e14bf0a0dad16000a00e1e4943efd8f1d8f0d9d0d1608990a90ab698b49155dcfef9054f2a38c53079ea771943e805f7303625844db82e130af43926dc931517a34784316e28ab1c8c1b9a40f3e5a9e90a031537c8816a7418ec67a48d3f853d285eae13643a8166d074b5c8b06b44384e97c3e4fd81111531cd68ac51a8d78b4abe3102e0f2bba783d23967033a259deb0a303ef5afbccab750c39ac89fbfab5d11e68ea7c5aee769d7d3286ab72d0c5ff294753d2df2b4f857deb1e3e9e1f208cca160c7d329fecbb623eafa0861d7c3032bd2a8229d7a557fa724d4ae546205102ebdb20a25766e6b219b0a5c0446bffaf5126a91612a3066ef86cf00060073b837c001be1a1048ca07d96ef8d335859c9dab06089567792056dee55d07e8e1f22b0f04cbab3c102ebff263073b009863f2efa1f22cdf63c5e436022acff23ca83ccb8b1582a407cbb788ef624dfc52d56285b87441075970a262b14f95784208e21d4930447befe60561dfb1a3d4a9ebf0debd77d30ef0fd7580efeeeedf737db0fa17a5eff72c904a76ec316e4b2c4814477a921d9d48f7d5aec727ec94b881bcd13c5bed78282b44b1d3a783f5f04feae38e83c1bce3e8bb53ffc97e1ae59ee9a0eed45dc727f97e0bf83e30071917fcf92eb08ce9d4d1754fedb7a8fdf6f4756c4fed8ca4d17ec89520a5af435e6a1df643a4cf65157c067f538139a03da2f25c3db2f22b76ba9c67ba78a6023eaece3b578df2e7e97a3a9f8e87157e965d967f5aa43108472ed66dd4bad8eef8e80bc2ed76aed8e5d6125c4ae4151245dfd56d315d9cd11817eb74b8d8744d57ac9f70f6946946999dd6d0005e0207c99407c1201ca76b0e216fb8c52d1b77f455a388481b4d8c4ecd9e2ec89b99846ff47fc1a9cee5a7a642cc173a2bf8d4ef3920a33e65ca833c8b69998907798a1bf22c38c549a1bd334a334ac5187a31e11b4e886f0c798a8bf9490a9ce238f42428e430e784e68b13e2cc1074b998a7e6dcc209b79fbe20d46049f8867f3a2b3a578b6fa615e48d1e4fcd39935c1b779c2e578f9d4d244dbba698af1fbe995ac81b57e04945e9d222c2f96307e3e996901d4f67834e0989e2ba56e98e1d4f773c1bc849e70ee629a7823cf583b175211c03e6b0e9baab169fc4244d77774f972b9baeb944054865ba1ce613c6308631eca4e329d9cdb06658338c612b523312247872664471deb814e9477b2590104160a24ac186051fa84895096e351f96d72518dda7547e049710b501fab5214f9566e6d3a869b526b22634e738cda78870beb771d074cf49f54809a73fe731f5203da9c7d4a3f42ccf6285887eead17db64872bb97143d09e1fcf16b702c09475d970939e12bdfdfc1545a87e83298230412e8fa40798e8a2b105d49c5157c6e5c49c5157eee8bd26f9d26fdb86d2f6510ca522b496735739055a04f14499bcdc5ab4b7bb9bfc6d033bbd99734601d655cb763d705fadfaa75e6dcb62efcd1e374109381631ccb7849d6da8fa38d7320380f9c47db388df39fb39d30f328dea2d6d4541e08951f351f176f71f3815829fda8f9703cac3ce979004d6c23b0f2a49fb687ca97a4b81308dcbe2bdab4227eee6745e121fd479952bb2644ddab1b4a9137ac7c4ba10f652b5cef3b7a8b27cf2cc835aecb8236d139676edbb85783dc3bd73d2d32639ef93cd9966c960a2d044f910e4ecf22c231e608e9b98e5b1876500f1f7051c22861bcb9cb28420ffc91c742b36c2544f9c247f9be2f9c9a4f17c51d82cb59ee8151802e6d08ddcb7140d4bd56aa5475dc844f6e7ac7c5264c4b42941c9b8e046b3a45f00d7e727b076e2b95b68d82deac7d49ce4d7f424a8f62f32784f029326e5b9ce1a5842a05db0eba5021f13cc8a5e8034759967d9ae779deeeee9d79deb3e7bda7c30373285defe79671d47bae7aa3793d0e12fda43da98e2af8023f677a476f959ef43d4a567b9295de43fbe6c97a321ef6e91ce484a727c8e37ae536e092cd7cb85ed98067e3d17c5a6cae8214fba1d09ae01b44b41f90fe096f95de81c0a792751e3fb50b0a2742a98799709fa88244513248b169acc5d67428199ab8ce03295e6103a1972a0533c9132a24935f414141de07969ee5c72c88e42c3ff9787216117a9f97b18af459dd6e773f3ea9b2d4d04ff44b95c539c759530edccfd7c1d9ad7bae763f2bbfc0578b9fd7f545bdbc0f0a49f0a8523091704285c4d963ccacf9644de8e8b8f65c47577b499afe321f12a98b356a6c577737e94b25307b6541419ea2b1cd0b89be10852a05ee85986bdfdb7bebf050ad09ad45ade693fdf6a3e6e33ece721ead664d6c2c2324cd11d5775acc9ce53c7deaf71e9f393d94cb2f339bb51896f96ceedd2b26699eb4b8f28a2c71770f03d96f5e654933bfab5d336a472d1be94f1bbaf01dc3a9b252596a4bf86f739b1685cc011f34618511566350c288129a70f285156a50a42383b7618ba18b5569b17f0c6f86c3534386d0023390e189222044d102181447e0220b434c1185113c07f0c3108eef3a28b14227064aae58824500269860a207448841185640f9fa532b8f8032004028b23222042d88c10b618431c50d969881929d2880397f7178aa035b4082158e70814815422a89852d60b1133b02d00e78a0f25aa0c5184c88428c2655a84a5a5081051443d08145a1eaf79ec00511fa9520f81d44d8ef600ef80ee6706f3342c08e11b703afacc2065eb8267eedc1ee1ae1b769f4a347589856be36d43083394758de9b20f8f36ba80187900bbeeff03b06b99e047718628356105f48c20a245c4c4125fb043ead601de9733fc11cf4bdc771fae3bb47745ec5626bfae4ffd5230ce670efdde03f6a97fe98d9843fa50de9a95ffaf4e9b3b45179fa2d6d4a4fedf8e3fbea0d2dfa73d5862d84df8f36dc9a161dac9b142905df7fa5aa9448754a1afa2935acf451eaa53faa97da1a726cb7c11ddb052d8e46713778daf7d91f5f0e928b1e70d1834be7f59ebe67bf107c17478bdfe5c620974a91db7c1072a98fede9f6dc3bb7fd7bb6fd665568181e61798f45fb1a1a356a4f5d7b6a6b68d13f85156a2f2fb3c7acbdcd2c0e9716f9b20bc2b18616679df9cd8b902b35d7044fce6cdced23578bf27e11e268940d8d9a5f0db70d358dda64dbed8a307eaa70062c3081062a7e174fd13071850a66109bc118c450318f0cbc30d2852b0831a13201169238e2658528584f54fcae243c203aa40e4a6b6891af3d923d4edb6d0b4317174ed2f0cbeadd52362753fc1c97227f7cb9e336561c304fce8ca32f0adf100f3c98070fdf10df50fbb9187cf1c029d009f31bfa5c7cf32de11b313f398153a019be27f787166effb764946530038b715b6ee1ca33783fa44dbb463bdcc88bd09415b9247f20fc1387110e3aaf1aa1a03e243ed6f66dc163d2cc8e8ad022af5111be19b5e8a8086b256982d802df6846a08405c081434d8a6793d6e080836fa87500dfe8e7e138708a872997f0c0e300bef9be2396c8e27e2c4933e774973ed7658670fc866e53d676cb00b6865c497c6e0a7481434814286db24ff205297277d4f2d1c807526cc58c468c04b3b4d5289bda4a5bc1b4a316dfd056c0a9108c5a7c53b33d878ef224a44fc2f91fcb8bf047f86d95eff422ec583297b4793288610b229698026b09aa26e8e08b241cd1c50f112254438a50c5113d60607da14415545d812e9c00c56a0c31a860a2b2f1c205002403180bc19321bc8163d4bafd73ce8cd28c6619a519a5a52284fe5e098cadb4d517fb883e30be31bea2fb91e1e58e1fd11c034bd2489a20248d6684bca17335156848dcfed1861bd421de0acc31c2d13ff89ab1b02f6b3ada4a0c21378f36c2e5974c046b42c81418eb534b1bd0bb231b4131b314217b6108b7dbae3bc1206d522e122b01899292871349a381b1463d2983b4d46e4efc73e24e29cd5c2c67b158f6e325cc32c408c76fc9763f960c8dc847f439617dc1e52970a75f9e02570ef3d427469f8a1af569418afd601117a8f311c15ec6bf28d62292262b22021f2936bb41b603a2ac0929868ce70be1a8adc058a7c2d5185e17232e59fdd1f214780679f28144816490a24fe390e2a9140b0279ea6cd402c3ed7f724744dcfe96e98570cc78584417c90e52157a0a6554a453d288b4e1ef470a4933e291365d08c1e71fb7199acfccd76ab9e3c79a5e84d91d3f56d3e9537bbf9a1d4d70b99f45a1f6e3377424e5bb9467700777c19667271742b0e5a94c0979027da44df7200f240ea46f231a9121e4a9ff05da2a3bf25dce6aab2d84da73effdd442e8d96fa8456dc853df12ce7e4339f4fd967c2f69f339f9b490a84f0b44df122227ae46694055b8aea549be1f69f33991345148d4a705ce26b9fd281917f39be8cfa751fc39e9537fca47040b757eae2bac2823268d1a851a453b808346286d3422640ae55b742d06b79f4e9b69216fa0d8ccd535b82e49938570d456da1297a7466ce9c6695e37ff592ebea56a6abe243e9626c5d57a349e1abee1c137fabf243815829a1430078fa4e1c137190fe48dac063c1f11e94314560a2bcc98c5bc7dc6d9967d441fd1a72d71010535ca5d5ed456d967c79a3b662e1ca28bcb95e1a073d2393357006ad05601d056d38bf0bba3b67a692b6933ba338c10e5991a20499ffab5d5a8f5b09126b424b78bb491cb43c11c303e56a388982e3f8947dacca7a92cabc9b20364994d96dd64d90d5986802cc3c182e090a4116af1c8e8e7a822c941bb591155ca93ddb1ddec1b318b35f049c6edf00e338b9fd2e7a13f7dcce769d4b4bd6d61b892a7e66991d5e20e3fef348a7f8e98c53cf6e31981b18fd5220fab45774138d6f41142256178a59230a4b8de9555280105087221512c83d78ea46156e69a7466ae8c283b40363f10026a79f08d10b83b0fbe015ff295056d216dda0b2f42530eedf27317bc63e6923623b6da8a281c3f96b6e24f06da4a00df68ba4f77143067c53e9dd98788e86634e290e99c948735aaad4209e0f66b2bd6887c448da2bfd2c142e8bac2a4933396a251dddd04f89a8a90ab0f42562b1fdc0c2b1890eb43e263b9bf80cc0280f459d0ddb9ace09eb59af89c1348daf4e59e2ad08cc748a328f8ea130f240a2c8314fb339f26c02792a61f8c7d110299e01760eca6be9d8f458510c8bc314f65401d038a4238668ee227f1a7800e1872d9fe58c2ce0dd2e0ab51429dca60a1bbd38c7a131f18410d0878bdc017df801fd1b7057e65283e85a4c9b49037b6c029c91f91a7322a32d714421c32fa01bea1168c4d30268970c0e351f89cd39d524ac339e7fc2dcbb62c33a2b3aa5f4cd28031bef9c69037be30c031dc7e948f48d280218570cc5c44577e2c6739cb85e5595624dbb6cce5ca5ce3c7ba3edd84d66a946b2b6da5ad3c047c3e3f7477b088afc83bc03775c2e932e2e2eecde73272fbbd08bb3b4a2737e5b3226d249c4b849a1169f3236dec88c5eab93428a25320ac41d80ee8ca9e90a20742b83a4072b31af0a97fd47670fb6f00331e4903b66e77946e08f8a64e880030875f06ca8a342a63128e992b0ae1f8b5eeb7f3f1348a7ef6af46f1f76a5188a638266666a6861a6cb0e1868ff559eea969b1b72184d46641130a3545fad43537e0481beffbbd9191468d3c1a2519fd683f7fc8a10bbea68d8a7411f2057f1c15e919196931013857a58005e4e4e0ec47ad4671738bb05f822d3049a386c271c42a72fb3d1c128073550a5880a67d39a003865ced35fa2091a469c2ead18eb4f976463290a84f06df88753fd67cc2f78470cc5cacbba5b22236e371420864661fcb53bcd3a7223cb2d9472c4f8d6c8330b089b4c980248d15242aab428afd1b08bb4d6de6e2221c9905fa348a8d342ab31950e69a42e1c82c1ebed9f8bb414340e61f0e747e0998f4c3f1eba9a87dae7cf941a04e115981a842429f0892ed3510a85348b6ef075d8d929914389d655913b0f24d40021200266196b4d9e169541169a3b111dfcf48f00de40de516087a1f08da0f04ed38e47a366b92058139648b573638b708658bae4c4a1a20204074703685cd6820698e8c3e73796a645dcc72654c8423b3f84626f1bcffbc470173bccc061d0de48d94373a0b843323d246e3321efa23cacd76206f68663f22275f9118408284281f18e40d6da5ad98b59556048f34222babadf8230259e04ea3e67f441fd147f4c9cfebc091eb6b7e42079e9c19b9e3388e7bf7902debf0bb651e3a357656a3343b7aa869c37b5ba7c80849c3d347b0d8df934411211b91a3691a9d539b73f21326531530cce5a8ec6143a04cc10fae8332dda7bbabc6fbbc22b3874911a00e26ac69397e82b4f991a2519313fdd4efa7f02fcfa94d8d6ab387468d2e1de813fb67ef12bb26a8c5173da64567ed87148c806ff4b3cb53c029b6a2c88a11f00d83216f301486a41788bc2149d345102177471e1a7266e540b9cc625204931d66db813a98ec30d9e971f6d7c184c7ab0e263d74157a11b73a98f4701ec86708e9cfb4d8bfd362119ef66c991451a479ee4ea798d5a7661599d3bd87a7451d4c8a68d4101d4c8a60a2c38435d9ea60520465dd998370c4c162b18aecb438c40db178e8ef778ae3afec96b5a64153d14aa592562a955428a5d413527a3ab31a0219f3e80a0b474ba552cbb370b4542aad6859a665d9e6a91eb808b6525bd55259c555794b556753a9acacd8d1f7b910b2f43d78dfabd4af15ba79bd8fa3f48d72d9346dd3b405882f69bc526d95d723a5575159b1fe435428a31b3e4ecf2ccbc1df7dd64de7324db31bdff08da5c0370ce01b2c852015a863c42c49d3357418c0376c84641520a184eca35946b3ccbfc11d5ad5831052a354a334cbb26c3a6754a359c64300155f51f9d1e5aaa8a8b8644b327b3df0d9aa5493f62c3f4455aa26fa7c536ea35c940bfac8533fc8715cd64385d61ea5d20a8bcfd78307a2340becd7f763be37faa63729f56fdbbce999bc9246a946e9763dcc7eaa20ccdef34f86194948dad06f2e64aa7dda8bdb3f040e429e9a350416dc8e40ab7af0538f6ea9b66a0a11be8f8f8fb6699aa6514ab3eff7cc8552aa6d1a951ecb47bd96d1e3b47377452391c09cd17b5c5b65c4aa96daf2a54a64e559c0aca50a296dcf0014c9628812b2248d11928605d200fd2b52162085f49e07f331083ed76c6bd54a0b4bd6c2d2d2f22e2d2dcf524d2e2c2df4338ecbb8a755e0c0c8a5ef85dfbc2098c3e3fbcceebd9792f6dbd831e817a8ba3e02d43e8da39399523a25dfd0972b2a9f955e55c2a12abd4b8bd90ec7b888011570a952d537cb6896d12c5bd262a9ea6caa1ffcb49234ad02169b7556e05c390849d32bcff22c2b3f44e5ada89858ecf37fe055aaa907cbab3c8b154dfc2b966d045a55fa92ed41f6cb7ffcecdb5acc5e823d601fbee9d56d26a202d6441802c2ed56fb486d6bf185ae04c19c8cc11cee816adb87d9f730b263683b2492f520e107adb59b4b9ea4aa27489ee4c5216fb2e70f65aa5f7e6a02dcac667ca3ffe5290dc8533f185b175e63f4d03edb16862e7674f1d19e528d360fdf64fcdfab22e71bfc1e0d9f5779653ecfb8ab52a58a06d8568116fb657b323b443b5bb461ffe5d98e33ac6cf1f4b3c5937db1234bf0012d2ff32d754cc195b932ef6d0c3e60a43f7bb8a4dfc007f89561f0016310bf2d7604e2cafccb6fe003faca8ce092ecf8f241fccabc0473ccfce856cab0e3902b6365fc0bb8a3af8ce72ac38eec0ff3d38ede4b9dcfe1cbcf3abfab41f8729079f99d109a72e0dbf27c5bdeadf86c4d3b66de7fe6dd8edd85f101f3f63d0677743accbc8579fb1298797be475edc33ca98e2a97f4b48e3f2e753bdf54658bd36b3e26c68edb9d763c3d7d93c9ca3ce9719c546b3cad297faae30f95dbf2325faa25e0dbf20deee8dbf20ce630f3f625b8a3e5ad1d61be85c4974475b880a37c09a75b6c1d61bee5bd963af68df124a823c69e7e56faa54afa96961da52751b963bec754795b6a5fafa3cc7b7faa3e60be9abe05dc215b14bff4b245f119dc21bef812d4a1afc9fa80f919b18e32f687ca85b1f66b3c8e7735b4a3786b3c4a1d6b6e8d4fa9e38f5be33f30e7c5ca9057f7ad0c7fa8dc12f09d799cdeb172671eac9dd056ebc8b7bed76ea8a66abc57a3762f2ec2d1347578b2765c0c7fb2ea8472ba275b84a3bffad6c7f15beb90fbaac1b7468d1a35ac0c7d5e56b905a0c1122b98382245b06ebf89bb2598d7876cd1c8ccbc9b50386e30a16d8b70dc60f2a278a52db63d6994b76a94e9fb39221c0f5016c4b852e84aa02cf45c8fc11cd173ff4922e5409f5f07fd71030d2e4fab8bc5118efef2178ad7a892d5212f0a8a67b22694972b35c8a8fba10c43701d610a5880e1040c2c810923c48a3801c6852684f235823bb508f9e55c02018f0316aa9fab77ab83d09463be5af4180ec21b30b8c3cff0e4f26804777e1bf197f36fdbab97084762bc5ca8bb474015c25cb84117825429f09220410515928ea8e8b68c968c8213551ce10635104308469cc00760c07ad002229e329421d68d216f687c7f4706695343dabcb7e3f25eb07943dc1aaecf481490520d5f0001bcff2651f6fd3f89aa3770bcbf4bcc4b940d34efef0ef3d457854e511053145145154a8420d209fa7142c409cea4c576980b6db027af55ecc9e7433f6eb8b2c521772bf29407b618030b2d4c01831ea8c41f4421840d5ea0e4055750f56fb08d68ea346ae5fb86f16342e8f234fce82f6933e3fb0a225e86dbfee360f096166e68fce860d4f8d1b370ff4777727b23da6040484fbf5481943e00ef71dd5e087c940632ad40e893be5401602a994a5b1005d94835487849efb5977e7c771b424448892476900511822084d4c2144bac4882958591262b50fb52c96eb0ad4913c2718395be7f2b95be348216fb875c876d2d37a4c17aab7a2d4178b996920a8ad5eda8a05c3a9eace3e9581dabdb89c562b1582c539121e3fb3b56c7333b3555ec39ee2ee35dc64b304786ca83600ecae3d0008fd3f26b30c7644721d7f4fed3a8696dfc58330ee074fdebf57f39bdff1776aac626e6fde59436f4fda9b41149ef76fc71c39d3ff3a53ace5bf29f99ea2d4a066f79127f79aa7bc958183b862d2d6fc3c5ba5161fb826ff49fead66423da9cf449f2b7d851c61d3b182b639d061b633731240dec05297d5b3f59842eb654c3e73a6e60f099eff79fd64ff82330c700dfa17ca46e47d2ccccd47929e8802177da1f37e490a203a483eb28192acc734e1851516c7606a8dd4e8b3c2d86dc8230e5c78e959aaa9f165b2dc6bc85854b9e241658bcb0185aa9a61cac0f7ffb39541ff3eb93ba24351019600bd9bdd942dac890f42330a74b3241cace3f99525aea7e48b66bb5dc932019bde5ad25434b60a525444b8a38f4aacd78cf3f9e2b55b2581f74f0e7e097532feb42355cff94cf59129327b9da7442963cc99b838528b51a986b79aa63712dae6375ac961955d6a8f27677ec8ec8dbc36a017bfcab6b852db6358346ad515dd2f87f9d92c6a93cf9c760e19b6181b94ae1b40bfdb4ba5697a493a251408d1a39a2ced5285650a346ce09cb5348468e8868a533593c1e00aabc5188d92b81a0b0a464437d29ce2f4015a5381f00357c006ab033529c4f801a23c5f903a82e529c8fa3aa4871fe8d1a4a717ead9f14e7dbba4971be00ea94e27c9a09e6102fd750e50d4095d7c11c3300c8f1312e2ae1c7dfadf3feba2958d0d6108ab8e08223c040346407442431c30db6d0738620b6261bd106db96846317eb62b47b42afc7a00f24e06b7a1e50984d55872c51cfc2954510298b5716439e8dd7f0dbdc25369d8983973fbd728a2740716baa5479b246488282145048e23027b79ff4a4ef482f2fe94952e52492bda1c5fe9c1a76410db5f648cd7717abb1b02e86dc09e7f6d1d401ea6208d75fd2460b1dd47f7498935712422798f4b30221592039f09ddf23ccc17796de2b9724d82324c9762190c7aee5ee3ded436ac993bc3464617aafdc838370dc60b40653180922d5c5ba09779cb48b957e7489f931947998a730b68b91ecb8c9d871a3c1c6d8313459f7e961187a51a3c2d71802816104088c222eaff238eddd5039062bb062a5f2b62bc2712bbafd3c3b4b08c78e25e70ee8802139fa6e4f244d9ba65bd38eefbafdf1015911050d6ef0842caa2084902082b0859f2484884dc11ea9f90de6a91adbc5ba18ac8b6db06e65e519cc61f91baadc220a245c2a3062574e71251018492e12d7c571a50b09eb7a9ecc7b2d3df531a76cb1e583b8f4f8339998f4fc3a48cf3fe47a1d855c7fa681d621d76b90be34586e01df30fdaca364724d8fe331557c533d3da9ca165b2a4c1d879c1ea74ba5c7712e9564aabc2599f7f7fa2b5599aa5359477d1bffdb15e18cf7e4a68450021981e88e1dab63356ab6a4cd0e47246da6f576244d7fbb9d43489aafa95d4f9ffabd8ed5a898efef761a25f3347c7f57a4513d9d111289345fa6366af23beb63aa64d2ede8c04faad48eeccf156871b2ed8cb4d8d4763d2dda949011ace055dc022e80bf10ebb4434158fad15bad4679921f96c7aaa92b7815123a793e4e9378b2cb1683f8a5cf2de01bd356a045af3952f3385e53a5bcf69dc4cc24d27ba5d62bc27a3a2d823a6c978b98ef75822f2f307faa9e583dfa30d534432c3d9146f9702122bd6a948f2335efad5aacb15ccb4f357e9471675c6666669466de931efd64d4b1e6caf8ed8a5046cdfd9f600e1b5f5fe2b48d3ad65c1bbfc16c7c3fd7f254cddb78921db76be36bd8781a2f3d65a3a6ca3ed978af2a92c6868d673b6e367e722d1b75e56bd451068d0a1bdd0ab68e61ada3ffca7f1d19705d5ec64a174b423876b1ebf2a52d28941788090ff700fd14dd9e4061005d9b2b81c2d0b94442444b943cd1848992278a287962e7a2380a21d71341ae96e75250c85b9316f95fbef49e07e6687996f72438e776c516829a5bfa594350737d909e823a5a9e65ac21d9b1e6921ee65deac8d7e5a5a4b9f3471beefc51a5e6c795d48f34d8fc48e3ce4eddfcb8917ee56faa4cb5a171fd471aae7f4d75ff187fd33398a32f0dd6ede8a63a3a17ee85a92f75f42f3d571f2dcff21b98b3f2a3e6b6e8e0bf11b17c0bb5e3ca9dcf8d2ab7f4f447cd6561b15ba96eb079372bba57ab45553e95bac1c62eb635994fef0cea9e5ce9c5900a981003085ecc20881a452072a2066008420b84d0b53ce5a5ae45ea5aec2f2fd97123f9cb27d77005f2dd20db3d52f30cf291d4e3b457e3c9fb28a003865ce71d6e7bd45456b10b42a1d4f7fb2b25d4627babd88f5e45386eb0268dda9c346aec36d846d4a8d18b6e51a31a3576495ed275008b64ec5ab7d5a8f9394b7ee449bae449de207992394b5ef2242fa803b843ea6b7e83792a654d3bc80a78a14409229c7481072a0114a9a42a556379f80b2854020422572a79428c2be34a254e3471fda585b4f13f92fa06799035476a1ea7bd5495b207af6a7ce85656b50bf95fe942527453ecc8465e1b17ab70e41ef797fb4b49a83d08beb6264209eed8a810fb516a10b07e40b68c897de2770511359118e175be408becceec2ff657a3dc1b359d899346b91542117de0f24b9bbef2993419f257a324101326424cae13f9cb87260f427eafc700cd5568d293120e6006759fee6827e7769352ca174317da43d453a6323b63bddbb65f664ffba7bac2f1ef26850c80a270062b9ae0c403980004215e4c7802851854fddf2ffeec09c16712f6cbbbc3d073f9e58c8b738a72c6d3bcb520573a1432cb38cb64371a855ced4e3beab8948ab08843f91d51a3b6d67a1265734af9b2764d1ec79ddf63354adaeed5055d1166df1179d28659caef601d518b7cc70ed635e9881ac57c93b4c8b4d535e988e4ebf24bf943ee927ae514334dd84522f9ba9ee66d9fd799eb719f571cd7eb3c3a27b34c19492bae3781ae977d5449d8df9ee6745249249584fe128ceb699fac920ad7db66dfb6a30fd7fb02dd2bb228e2d2da2cb76deb6c64da41470672a9c542e84ad9dca5a61ddde4f2d3dcd3f59a29acc895108e94e8f29b72e0cb0fa4813bfa8e13d8b8e5f904d214488fdf1dc71ff2c5042986362f221ca98b7b512bc2ec8164b7e62ec9eec70423374803f590ed7a23174a164f6e905e72f9c7ee8e9e4538ba641166efa56c575a5a4598fd90eb913e598174a54f566bda21878680cc3bfe90af1ff275e94f8b2a9fac1428ccde932b2b73c59ba5cb887e773daefb64ad5a5ceffb64ad03b8dee89335e57a289facf47ae1276bbd5eca272b107a83d00b44d2323a6557e514d7fb4c515c7ebef56631afe7cdd2a5677fdb0a7eaa2494e2725b118e747a774f96da88fe481afed1f40659a2a068b7eda8e3d2a2cb5f6f5647fa73f98a2545ad95a7a4158230850eac5044061eac544c81264ca8d0f1c10a5820858abf2bea623eb7a851f22915a11df956798b9e5cceec11eec568913b183fac457e981cfa628c2d96208630b45a205f457c100b83104ffc6008f37ba8cfbdac2bbffde97b52ec6fd0a95fbf12f422ae2b926057f4cc4f5d9e6269c2d0164368a1051f9c41c54f833c051304286a5084222d2802122a7edaa23f56845e8c193c077872869925898391f6b64c759ca4b194994e4ea698b9b9b9f948c6bd6d17c76402c808ffe28cb4e1de468ddb346ed3a13b5f5e31e4e44eda49febc09245a740144667547aba14bf82e63a8b988b76ba46afe209cf69b48288c2a6176bff70341c33ba541e6e7fc9fbf792ae58fa0fc91d1cfef8e4cf4c397aa946aa2d66401f0539e87d1a33c0f291f5a20c04f79149b2253ea886af608caaba4a768ab4ff3274a2b05c7fc9af93f5f9cd6e4bda907833cea12618dcf9bebefd2e1367f2c6d3d9daaf9a2a7eccff9a31c8a1971fcffcbff8c2a55b64a958c2a552f3d355fceedcef7d3d46c8ccaa4332d4ef19188a169de8c3a7a5b4b2fa3aefc57955a91ec205544c24779099ab8e7c13fe579e807bf4e2184fc0d5209c58c1abead28d587cf9a3ccb2344790d0899075f460502490f99071f081a3ee5bd2984f025cdfc990408f5817e6775c8bb3d10427ee61186282f41cd071e4460fee54ddc57c03fe52bd00f3e4a35d19721e387a8c26aa28f327a94ef317a94a78f628520a1b647e965582132d6f4a517428335516be26c04fc53be473f38fa212a8fef5677607087acf2d5aa89c7e87790aa51e9bd3655a982a952f5a2f1203204e95d1ea765cbb33c4e677c632ae94dd5e5616acbbf54964fa92b0f5695cf565e65f4a591ca0acbfc96f92e52c552a56a65f47e9a30d3899089a03cf844c21fbd0479a47c15fd341f6504ce9f3f08b78944d544fcbb6508d725233c3983e306dad9ab5499543187fc2efc92bde04d60888abe9c59221cc04f2269736333ba7c801a4f75ef277e1e65918bfb51beb21f25cc53ec2eecf69b93c890d56ab5b2a145fe1a1c2de220e21d14ca1f7154130fcffb09845082a0e370edb9df242055b46b8d9ff83d27520d59e1f013b70d5be49f4842f963485db335317872667cff584af9f2c48fa3c65338f2c4807740f36854f6da87f2c49fa439a40b4778a7f56104df95526efea16f567608cafe95276b8434de9362f8332f677ef4ff16457f1a8fd362a36a7ca35c7ff951c6f5d1f51f65ae83d74d3fd2703d06fcd1bb6ebadd95f911e63a7765fcf872fd55b4eb2dd7b3fa230be9477aed8f2b77e547955bfad167fc58bafe2d6db2f71f53aeff48da341b97773bd6787faf461569d499ff49a346a521d2b0df4c9d2df673188ee16ff2c4768644e6cabfb76d86ad2f4386861813cc8b4b0bcb8a4a91122b7c70fd4929fea176fd5146ddf507bdebff79dd48d26c95250d9d7593346e694844c264153d505c1abc11c19bfed94b95c9ad2902de6bcf43f7990522fbee350b04921ed9770f8426dfcbaa8987f6a61da44a33f190bdc7a00f39f0e5df41aab6e7e68e8054e5601edb7fc099079196eca3dfb46af237516b8a80a665bf5920b6cfb6cf1e08eeb5972aa9fa408bf3bdea27ade6dba42adbfc347f74a0c5298bba2775ddac51bc8da14a8bd9cf9ac9cb004fc9176f6ef62eb07028cb6426b355c8b7cb10d29736fd7434b2dc904fd98f59d56ea334ad6e446c97c19c6eb33dbc17a2fde8a5ca41138fee7b096e2f64bef79bedd1fd678598b477f153a659d5d65a0d89b89ef6cd46754434aa7566a3b24c1b69b589b8de56b5ffde7b0b7cef59136701f04d9c3545c0fbee7b78df592148b81782f2de733fb24246dffd109556690e7cb9df41aa421ee16f35dbc21afa29e36af61b0fef77902acf0281847b20e67b9d05c2bffb1b7e8ff9a195dec35ffa895efeec33ce6a5af65ecd50b207abf4d3275d28557e55aac0d04f19fd69317bcd4e242d5304e67bdfc3bf7bda6a31fb4d8a9bbdd769da668f7c2a2da32d4fd19e3e659f7d1eed6931fbf066d97ff662f661f62ed94b900791f9fe541b32dbbb81272710fab704ea42d11d7f66a23c203a1aa507bee9216e3fe5d9007318ec051ec36d1cd7e6a2eecabc307c53f6a41fa23265d66481f053be074af6289fd91ee1a77c8a15324a421248caf08491d54a15fe10d5e8c1cf7a3e93f294fda80671e5a84a15833a84b7b347523eab99911633564ac61a33d6ad91c51152e8810ab8f0c4125443746a00c4440c6014612406aa7e5a446321f54228555c0527c260a206ab954aaa9094a0038b903881084560ad56aa093ee0fbeeebfe7f7cd7fb6a09c699d511c7388edd671fb8d9e3f858c3d5dedbbe0fccc9d8abf2763accbb3d577df0bbfd06e66cf6061b6221154338d222947b2098937d7c63393c91b02c1be275b7839f1f289240f1f3d34a5a4597e64a254e2c6188005702456189bbc11a05044890f0925c3ef3b86e3d1f68f14714421a6cbee66bac909ab7f921a9bff91b2b04072c54a91fa21a5d2e87356caa1004fc0d3f33a35263eb229c2bcf535882881430254fa2b0002b943851c517432481c47cafb37accc73c4ecff73ced63f064c721f7f4733ea54328d371c8f5c931ef1cce39275779e78c79dff198989898d367323230d649efad4adf2fdee2a59779af54bd55172bfdd8c57c94de8e1be9a524919e8239242bc32f7d7fe947d2cbd82ed6a2b79a9764bd6ec22cc3fca592cc6513934cd48ff0cae21b9e81396c1be6475479774cee83764d384d9f54fd69ce7c538d79987a7a8f3f99dac5bc558ba7eef4fdcccc33f7f4a798dab1eee94aa0309a5ccfeb8f411da737d9f1866b7ab9c9f42f2f4ddf6272b9a6a72f2d302f2d3024ca4f5f073f2591a80c49c6c697aa2852ca325486d95469d842181be20dd7e569a8a9379faa36f3b924365fdabe3b9260c8e41bf44b243b06b9a4d2538f3f93c976435a600673681742d3934aa00416b8d8c20c34c8c2147438020b24a090842788844168a8517da7e949ef996a37b485d064da82dc713e69d6f1bbf349cf608ed9bd7e7cd764bb212d8435d5669248964b551cfee61de4e1006ff30ef648fd8d15f249a14abd833d6adec60a414012ae2155cde378833914d4f1f2ce2549959ef4a612c9b46911927e3e3fbda9356f5353cfe0034a6fca312fcc9b4c3fe49a5a9ec098bc558bed625dcc855ae401874fbd047938c0d758217c854e1845aa9a97600f9b4f59212623a86c5e823d6e5e08032141044b75a3138e5dec4a92f521a12ee687d323d262ff92dbc53e26e62798c3efb4fe7222ecc7e16d2a7080bf799cf6b22f556d5e8216a8f91b2ba4c1500598aac6a6a67e92240d9d355ea68eb38e3335f307a8ae85501380562a1caa7cad562aaf06870354173f75318fc8edd04f400847aec5b51a356df7844bd2287f6d2f2ea28042c8c80fca90c5189e206206621c6102135e7cf162fa36225dfcaee9678ba697617a996a827999e7bb524d30bff2a7f74a5008477f7936a8e82969437c8fc152a985c697ea8c27493067864744a7e43b2509e6c43c4e93de93d6b483f4f475909e32935a5e82dcd24d6ee9713ca69a9e34ca54b25d0bc88e93e9573e47e671dc546bbc4c95d7461db76e46ed588fd32f75fca1d2b57e3a22ac46491e8ea8c5e6c4e8221c3b22b7bb221a55bfdfeb88342ae5fb3b1d0fc25010a4b89e7fd4671af19e2e72f9b2e5b9f385e5e9f3dbe71f7d27075f120d98524ccb8fe2cbbc9429d3e95fcab734ecb89d2c8cc9c23c7fe9f4a56fa9b2c5d2d8f2334a92be8d181b84de18999ac2138a3648df981f594ef465be411d3ee6cf1b637d983e6696dead95f9f145c68edd845e93f551fa98a7cfe08e92f5319fde18da6283f485790775a0253bface3d8254bbe79a627780eece7d4d9ea4599a738eecb1c5f152e9536acc4bd0597c43fa39fa0ee9bd1b371bd6bb09c98e4c411dbccb96c4757ec3f87736a071c89c73a7543beb3526e653de59313129393156860e74bf989af29e0475f06ec35a9cd68fe01b5e636bbe644797d4f3cb66c6cbb0e396b236fc64e3655a349e56f1bfcadbb1582c96f8d48e33b7633d3f49e5d292a5213b960d1933be411da687f9af7c3b16c9b29dd62467d8717b7919d6c68b9ee8bfd06f79982ac11ce2d3f7b68fc17f986a7ad6767a69f94ff9af7d69b5df9dea4b15ebf863a653de8fe01b7953de77ee3614f2a5f1d1a87c6930eb7a4da3f2e5eabc61ca7378a2f1dd77ffe2335e1e46c6cb68f97fd1c657faa4a794868d225856c70b5ca64c9932b5a69827d9d1a483e9e9bdc0f5373dcb0e99f7181d484f75307de9e9b64d538cdd61b225eb2f635b5a52682d3dd31696a00e2dcfd647cb97ac0f1b3333b7c5da78fb55a46143c6cb9f5e144f2f0ff3127cc0cbc3fc0b0c0c8c06f302f3a7d7604e303466c0d8197fea19cf75c68b773a9d7efe683444dfca78b6a61d34de9fc6cbcb77f425a8038def9ec107d0f8ae7b9ca6f15df72f263b0eb9a62fd571e60297f4311e13030363635ea6ca1663ece872e7a872bda5c5ca3c4c952dcad8982a2363e3491ff335552c55fba4caf236aaf8a65a02ded139d0d8f142d241f6cd419a759cd9e15fb27d671dc55721c978b7332dca789c26591f2f4fe365d451b43f66ee8bedde3e8e8f6a78abbc2a759441d73e4b1d2f70eda78039a71f33b704bc63e5d278ae76349ed66ea84d3f6e2de4ba1de9dbf7ec13c249e2978919372945d2dfd2e374b76a54c98e422e932c47a3cecbb69be2d5fad2789cee5e8db2dfdf09f5cb8e51b9f6657fd7feec5417f353bf7d2b4366dd2ee6a9294ff3c7993bc70b5cff8ef1582a9ecefdae67b9272d1269941c65b7caa16167e4addc13946739272dae1a85628fd4788a1be288b821aec5b93c25b9a8820a927881175cb06304553f17e4a91a863082188a2c39c2041ca8fab916f7b33921e43bf335eeccfbb0fe19dc31f3d6c9ade1ca2b7c5cd7e7894f4b860d989ff1a7978d129fc6c3a4f0843ef8495f7ad2732dd512534a4dcf9564e525bdfb30591f76c81f97f43962def4f27a8cfd71fd4d96f4a64f794f4a60e6d96775f9c5a22b8ec0ae604228f33c0677c4bc979ef44c82c7e9e95faaec03df1da6d20e137f4c1d4d5fe329e800982f3d0519c017e6d9a6f084ef691484005f2ebd0421c01766a45fb2293c21b53f54fe25a803ccb3f501f325eb437cfea13252fb43e5daf869c71f2a57fc1a4fa38ef39edec11c6602ac15a8344db3864d903aa56844000100001314000020100a0744a211a150a4ca6afa14800c899e527a5c9aa85992c31452c61863880c008008080098240900d3c4a0190bc5f8811bd27057cc12c1e23d3b8932872504bd8c1be85aab93a8e94192cd753f76fdd23ed920deb5404c58354a8d688e8eb01322e2c8daa12bbf94096ca649b334780548f9f193fc4449a0d4252c9b0a1901c4670084f28c283bf465c1b688d64d81420a527242ca8a66711617f0b20a74f68bd2d5ac0debfbf8424ece81a1f5fe37629344b496702da8c79e96652514d611d09433d62b104c303a1fdf9b7ac069006f7a2dc4586668e6360c39995e48b901f97f2cd613744625821e4a92ef5e386d3086974f816b284aefa8e341354170e41e89bcab44dd82b433888fa4cc4583265f5afe5c702c87d57bc9efcad6515da0d76e666a54d0c2b45480dec056d2ad180df932fe44add35d275f88424378bdac82bec7f68dc28d6d80200ab508e44024e8575b75a8b183bb595d4d4f651d69070b9950a7fce124d247c4be970f6bd2d03dbd51e63504f580268f56397bcf54e1a13ec443552b2a99d3c55d6f2588a13373174710a95340f58eb9f61a6074139fc1f4a5e43352309528b500589617749187d430b56ee794e7b62be49f017c0033dd423614ff1ed4e5aa3c6c6af20c3653b5ff338ff63aa5bd1d5445f3d10a251703a65c24b20a66793450dc4f5d1ca15abc32f63278c3028a45618f610204e857bcd3b9300d248fc67390d6b16eef25d5b01ac7923ba179de121b02b3a02a7ccc1846da085641cb34147d981b3d7debcf1c98580f2f3706ca6ca777caedb2092421df8e4d12a48cfec7921c6ee5ca04b46282e300cc0a1c005cd61ff86d7875d2d12b6ea2994bd5bfcf8e357b23294ebc279748e9db741013d32516f1b4dbbf62061c55a67ca8c09af75227024cff112f42782fad2ed8b27ee799f76f52447e43cb4bf90f2900ab7add106671525470e89b7953a64d2135ee226156ba3c4d4f50d65505bd8407f339db0fddda432f8ff7633ec7101f144c4d6a55ebdd1647878baea3ac76f8a337eb231122eb28faa28b158302d4e1a1921b160f2516a7575d2452476054b566317ce2d244a84053efe40d5242d7f7b1136bc038d5bc6d785b74daea1b89f06573d4d435861e20a6801f4cadda1428956d588448d6152be60eaa9f82e904b2a030af13d35c2f41154d894a01e6a8a86bcb9d94fda14d8e000200d9e730c73a5df40cf8bee0d9a798823fb99d88a86213d14c2072acf489aa010b8dcf62022438e1e80aeecd5894a984975453d992ab993edcc6683759b95029c60eb4b3346dfea42d5a0b743553c93ac274ec41355dc0f506ca67b54361409e9276a6af1aa575826626245177467aae05a5c6e91b9ea0456b417d217f1bba5cfd0e7768a53b662603ca8fa494e492b0197a7137988cda43656927d00132d4bf24985c62c8cfc387810b008aec84b0885b6516b50a4a78d5cfb89a19170c74dafd87ec13a9f8b287418744137914f91e38fa1d33f4a172ba663e59798da4771e195357b0b467d6fa008d20f85e818a1aa15b77903a8361fd545b180bc1103976fe48b54b2aa7918062ea53225a049feb2ec305378a3fd10bc6f167ef8dd7416768635c647278a9faa8328cb74c5305a7119afe6113fe6cf56fe5982607daa765db4a8b566a3296d8a70cf22e84744aa57097a43a6884c4f41e9119b6f35047f5e7baf2443f9c5d8b868f20ce593b3dc236214efdc3fa2216b4d6113de6687d532fc69963a01b6bcb1fa7ce01c485e675ba1a6b3e917a7250468c4deb31cafb938993f618f555d73f06468c0847120130121436507f88cc0b65e1e78c076fe1b3b62f6e0026c6954a00bf5bc1920f302a60eff32e66282b3e609b3b657821177e0ef0a563bbabd287503bc3e03867abac8e4824a28d4cd1db21a9eb6bc8305d402ebc717445c79a87e38c69562671b72b38f87d269a59f357f483469d64ffda0ecd4b7e60e3e00cb98b5207a84a6af5a544b40933c3196156281bca747326a8364245fc584ab532939559c694d008f979a82a0e4efc767606c958059cbdfae3066568857af4fa0615ba55910d366984bffbda7208fd1d43bc606ca49d00b5126b3fd4763d78f5d310d4f2035cf2dd533b489d32f88b9f521dbba449cb18b7d8a5db472b328f8c6d05b87411e5ed6741931e0a078257b752e96cb7e516e6cdb38da1263955446c38926254425e10eda9564424ea351c00206ae16ea4aa39e382b39b501b4ed60b5514ae347118a6625ac3d3a8f2994189c039099f8a94f4aaefab65c3e4a525669f83796d45eaeec4c92fd4c801d3c09befcc2601a6c54695526bf35f42bc02aa790878ba86d47b9dd3e294c499aedf1905e5c82be87df504bd1aca3c5e5489831010bd025f19eb3998d451fada7a24e0dc3109088f52d7e7b12dac12e6b8e758e668b03de8b9f698c1aa566e0cac7085412ced27b490f586d6153851a3b3c0a918f2770d2a4a7b062b8edc23d8289f99669701ef89a2405dd2cadc10a3cb004bb2b6477b71567d2875da378c4d6e350d6168c50fe4bee44fa4f470a3d6867d6f06f456d080ed11d7130b07e0c6d31cf1f4c496d4419e2789f1f38df66622723ec335876f857c8d7fec1ba3fff4df417f95370996b46532fadba7030d2d85a0aea55648ef52f2e5507432b0ec9b044272a20bedbeca1245a881152dbfaec391f552a3f5d1708553a5a697c2a040ce6186ce23d4f31537a900da219dd06d8e437283b21cdb1e8b380b356f68cc6cb5a71db16f31a8b28c45d52c20e970ae0bccd8f301709eb174b031e535bf6eb68ad65e1720a8ec169321c94db8ea14479f9825bfa4cbce7c762803694defc65205cdf791c4e7fb8445677efd21b4cdd3d6adddb8a03436cbb7becfb0076505ce54d12b1ce7c15ee2f5a37b6def7156c5f1c52057faa6ce020738683af291420102accc1b4f5787759e227f6e49526508a456e044ad02f138376567249f73a025bcd0fced45caf97365c3357f3967fad03c981fd988270b1e1d2eef7ce5cdc5b7e2a9c676a3e424194910f7c4d5edda9077dc3782c56f6c28316c2bd12793819841d47f616f11da6bcf1bcaf787b69b0944df49694b374adbe7aafd885264a0fd6591d5c39bb0d0a3c114f18c32e9b8c159cb22b2cf02dbe04d24f1ed2e55778310f8d69b36d8d3ea664a147a2d32aa2e9ed93c89e493f2562efdd504d5fde20a7b105fa2e6a62f7475e0f59f398247a01c6458d6c688c2fa69606747db84e0605d77d191278804b8ddd09326d5e6c32cbf97237d49982835a5c1370a8d5e709da063d65e79a68642fc8ea5f763fa522b3ba0a215c6c520bc67092cc6b5d0e657026259df38b08e3f12ec78597db084e5d4ccbc36a30d04a7a9d1d49d84c66051fc03668b11bc191ab6e83965d3aad96fff1a1cab60c082a7516eab2879ba625bb9d43e2462a3dc6422f81feb8f77f7e7368bec2bd6c4d2ea831191351aa69adf2698c57f1ec7646b76896e2d713b88a1f80960e7261bebc3f8cea7e7756a905623ebedb64b6f66caad0513d29c7b2fba583252d275aaf2277d154a74f7341b0a1a630dd50ce2029237cf7318ea7604de57a694e01c4217d52c1d6a0e9b19f4317a15a7ae1062a5656fce1518f12d7fab5454d0a03494f596b79106308681c51ef8c2179c71a9950f5f480e785091abad7579f3b56939a02b9ead4941e0f5559e7c5709f8aaf24675af84b171a2e49fa22fd588b761a13e007533dc415431e700ac090d57ed0a2aeae677f441b0f8e02a0d9a1bf8d6b2c59fa48080a5251e4577d78a444dfaac4b07a9b86cd3f0e867ab24816bb505d44ce1cc601e84f5fe0bedb53b984a5f3500536c7c4dbb0bb564a912f512a337126d0cb1fde46e84fbd81520082e1c4826a5cde8750fcf8f37f93dc7837d542744c9b5e661e88360aee0a1020d5be7a8209362ba61e6d4c7a9817fb9a2bc9dc49655310e674b6482f2754d7573b5fd6f2f30608f487aa189c654d04d2636f376f81429896af147afed3f6149bdea363c79db0369d43243f2a57f9177d5b1decef33ac914b365c29256931e499c9f0d864ebb5eceb6b144bdd854bf30753e246a7cb336ccdf83c429abf0a409fc333c1f92a3b8a95b7393abb61acc152f71ead427f90643df8998db83b2c9f280b120d2eaedca8a56ed394ab6c57343ca348604aa9b9b53720e423b2578a100399295235780b817a4c133a7431343a82796d8c3c05e07ee78f6b61051e5970bfe6ae44d53795669a3fac06dc5130386d0a96c2492fde52d072a7b8b2668a1182a32833ade80b4b8ca7202f148ce5a40ea87e28d8a9675b11ec8e5087c0198b49c4455cd92ac3a1e7a457047f247b293775293c63eafad527249221a13c14841d14981dbccd574699247634f464ba58d13f14aadd177aa979ae846c76f214b97eac6506ca0fbe8690ae81d9ba7b109614dcc1580e41670c3e141ca8b7cf5687755af94be8acc791cc3a66a654c371918134acde18d3578851adbae5ce4f0a23b644bf995bd104fff1ac507a27b07fc9a7943cf09f82678aa52a3e6a3d6f0cea46ed3d0a9eb5e184bda5628fba4109727a3d28afe9d810dcc79e7048187405288d04eb79152d9d481107d0a618612ab042f4d2659adfd12766d5a66f04908b9211404a0f17f739a82adb7a18eff9861e5908588760e376cf184bb963dbaab7caed503118da2da8ab7b5ed53c8caa952139f5a059130048805804ec5f5dcd082a441dc0dc9b4602c465bf5358247c694c8cf31952dc6e0fe2f5c7ad7b0ddaa10bd7789788530ad656548e26d436295a0d91931fa0ef45da7fac5b86162d2de8a985dec2858bd47f4e1f6548fb43537aeaddd15e46f4e92a105547c018963eaa249d289f678a8809da09604a538d7461c58c4afcc9cfb9e4e3fb9b8ec4c0a6e29cb0b18f784071cfaafa1b097d71f368f7d9a6e854d778e26b8daa12627d5c7d92049cc7e105dfda31ca2f5bd4cc88e235709032638f448fc4d2b390f35570184e5150196bbd59ff9e8d49468ea5346ce1e1a38f177f9058813e9328da39f2c8abe73a01e20fde7d6938b70a36a5a05fa1aa0174209ea0a18045a57e2cd0d8733812272048fa29086fe85ec26536dd11b5d7f7819ca11b4143649c7ba89ba2e9d05034ca6c4bf5286e8e86d036c6e2b8d01036faf17c3512ae092d4bdf723b7f8f749b6b7413c6aa1c45e7d0d942c2da4c382a8eed145decc1318d1e9362ae979337930e9e9c0ae4425c887ae67e35e7f695d0d27883508efa719eb705af17424948a4067ca68c329bc2280613a3b27d3c5fcdc5cf3dbf5820c0976248fbf6be64c80be8c3b8583a37d6904d39992e08aa2dd45eec9ed00b2c6481c44f4a0e402941b46ac8b9c45e78fe56956c6b203df7cb3de45b59de49f1e8d9313c234ef274d8984674889a386eaa4151bdb2131224d38f81d354fd3c8f9b2d6b7a31e7d3251e5682015fb43858024b1166b7fbb7edff57489c9bf4b59f0ea2692b98579e9769fd678a35172ed98d2024b07f4e8cf4b08804810c07bd56d848a1ac180544a21b0489abab9543a88e1132a9b3c4e8047a23a1c4708f354c7f932a694aafb0264cda749cdc379201e652c2c5dbb9107f227cf44c709afb44417cc87100547d623d23b9120a52591b23e44e6868e89a97ac21a0f4b27a531003a26d6de57d790d624e7495edac913af3f93850983c45a8e8db9d43412539d0c6426268724961a95e56ac01838f3da36f6459823d387c8e29f60d4ed040c6b3844168d177c207bd1f0044d173e732e7172307a4f8cf8ddb6e906ad29212147ebb5739852b97128e5bc32e42ffd16c33359fa03ff42148cddd5b69781dac910517a397de05fab7f52e9034cb73d112a9dcbddff8e65f1f8405210e6a184fa3db4d44b87975a45cdc944ef0d5c2f79714151b25b4d3e199686f925e9b0cf529b89ecaf014755935a377ce021ece521f78cca68a5193f3b95fa81f48f440d0dec37c31f59548637d9a79f92950729c47e386ec9af12e699454d733ad453a21e4547042b18998ca662e4a271aa7e6f093154cd1ffb204ac0a599d77188a72ffcebc5947083f62d86e13e9ea223ad77fcad97ce809a19160bd6eed3a21a8dab9f9f13b0abc316bd3235990baaea94452e37d8406fd4b34cabb020f43e6448f3f663aa73e96548643d8865773235aac4b82654ca88adc06b2bb8941c2a3e2250345dbdb141d58d310d335f5f820624bacd0d05fb13f1c1a125f788c23e09a0cd0a5165dd47598371ef2115af9b6d75edb644f233213348e3e6f80ed38590672a25a89ec111aaacc8a1151deb4e9fe28d33a32095dda42c00ac65617bdabf0cfeead7dab328e5e40222001b5d27d8c41b46b2f9096b301c2eb56bcd9b1148822b9156c8072cea8536e86a643ac7d263026c2844afa47b4c16fc228406df729b001a905e9cff22df19fbf4d2aecd6d0dca9d8627e8df88e47eb54685ae3d957486fe6c2cd70ad5e7e975c23a871e88f613d3828007875308d5534a0801b15171540276134a1b0c40192567e268480ed35488832a1ba6c0599e4e859e9e51a977d84e284c0aea57b7d23f2a643d39b04ddea63d4411e2efa4fa14ef2bf75c68504e34935fa77c3a27dd032c8d14d6c5ff9eff246636a457f8a90b9722cf77ce5049ff234ec7d265b37651c061f3f1b0d4c2eefe594f824a4b22414fec830163470b951b1d96e394149ef67e57c4356fbb630f576f9ad280943deaa6253afc17c299006da5cdec371bf0bbc2958d106f51c9936acd63d1f67b51c912d4972e160b2c83cedfdd2a98c70aa5fe769873bb80b8b6ec0ac66aee0a511d153e4da2f5042d82f1ab03bd229d06109f2865d09daf540c8ec6d3308d706aaa02718b4847073c9c71f44819ead690bcd214190c62507ce7957e4d660fe462231864a6dbbab0cdac3c83549726b78e7e95050cc20e5089f08cef76181cd06ef3d62577873158e0d41d35316447c9e7f9a91bee804811452ff004e84b5ed3051f0248bc8a080582eea2543beb96fbff3402415987c42e06e2108453cd4910ae53df153fe60ad595e919134b6fa88b3c60b85f1a716043db524ac35343c8169c0833e09a6b2b7ffb427402703679e7246b3d92c8dd5d1724b9bd4ecf92ba8ae8a608f8b767280b27956a0a49f2786928d1edfc7e9ff390c3a2b36ff94a6b2490376e09dd5ac1d4b265174aa73b66e593b898d4ecb7f55ba03aad67cddaedc34330c4cf663979d6c7ea4713d120018d1393602de3e7ee7edfab31a63f583f492ad092bd628c06f0fe653bf5041bc3f14c4a9da076ee6f29d602b4ed24c330a63caa027ab04e9875b3b1f4b1bb8a456ec6504e7fbcb169c75a17051c21f02f030fdc0259a91cce06109c1ccc6f3fcd0cb699f6c87981cbed598c58ddd044d7fa0ddd2f6f8a8c19f9527413b996751f6e4f031d47ed28ad99170b8eebee03a306ff22457a49ca239f37763068d91d399e88e4a2e15b02d082130685ddee2d4d69e8004fbcb0ef3af841b04855f43f54b9dcc07e502422b98c46a117d124be78055d6635ce79d7b341c16c60cefec2142c58fb6f80ce09936cfc65794fa61d3b246e0c309f1d7e439f3a40228607121566ca08d37fa2946c02bb252de4110b9d7984e55f1d288aa70462b5d6547a04364e97ea87ae36c006d50b9c7235d5622a7c102af345d1e597baa597341f86e3e65b0345d8207128d826fd2b32ad1d7024ca232cbd9539b8d8db4033dd9877630ea0dc4115290af78bb1065d3a2ba0ca0606889ec970586c6778c7cc506ce2c65f2358863d4d86139e5f451ffd1f385077e801e865396006b817b0f6ed9cf3c5d59cc165431db143e106c1192e8bf936223d347cb4357e301a6e6113d653cf200608c68026a6b371e6f9fe037e5c502185d016049688030022145e4b425e639c095518d07f5d0dd74da5d6154bb1fddcc0bd2024606474a67f70a391e5a37aa2a59fb711b560870d1c9117145258b0b2ae9e29ba232672e95a4a4a8b27765ea453d3f820925cbe532dc098d8995cd39e122fa76dae182269bcbb25dd8e24b1ecd7af33937953e4f34c3b2c3696a55ed0c0838571cf487eeb42a4bae3e5b27bf1b4cc89d62062417e15d4c8b50941c044d43a456cfe9417aad4fade9573a5fd432d4668703b24883e9f3c2ebe8d7636e8329ca10ebc91df57756378cc64097fab75050a9e9f73fb083f7005b69d329b7b3e8ee1c3f48cc54a3109b074a96c16d18fd58ce1e7f9d365bc46b5eb1a7942fb5b8df442ab7666e81c0b16a7fb09b8ba0dfdbcb5d8e533d8308cb206d83701c6128c9b1c5c62ea59c3491693b67555eebb826bbc0295c3e8e5f130cc348bc21433b5b74e46d34da912524520bdfd7724036bced1b8322cbb7faa833e73a28e8a701f60e5ca5c41bf3738ed89ead393063d6664d3dea3b75d60b51dca39615161d2faa9fbc455c38ae373cf6afc7fea12e502fe13120795c256beb8004cf644f80831ea0be0d55016c252aaa1a2cc7c2a712cbaa80da5586867fb3bd0eae76754ab03c455c6d798fadf9120db4953db30438c5e0dea4f03f1d0d5704fd8c655f29d1b2632e4e2147ca413f47775c52ea142cfd4beb990d063eaa18d2be9aa9296580e1b6a214c7a9f868356a4bbaf6f062da082b04745f3fb64ecf930647877215c7a5a4b9055d57eb4208fb96841ee2e09e5e3ba483a4e0e77f8667250d00090fd74cbcb00ba43370e11026f7459593e439739a9fc7359bc4ff719cc7a864d7dda93e7009af7c3e26d09b033aa40477c950a8eb2882f388de12084a4e77613e80ef282d89481da15b43211443742f4cda038ddc28298709ee90505ef3e68e31669b54f6293c53fdedae3732837a980b4484206f6a4172b7323c538c1a0f734abd8186a003c4e5f8a47defba96f7615ca0812c676a5777bec99e249956f860826690c39265b4740f45ce8dba98b983f2291a3c9eceba5cd218fb11193d55f6ab3ea7c6173852fe6eaa9f27b6ec5412876732cfa531646fe19014ef5acce33fb7a336557acf2129acfb43c5b715e5e615a3a8402dd08b04a9d727389f4259fea59a4aec3024a3bf04d133e1df94c836e66102c80337aa7a90981877eb936391b264d770d730e9583166289ce36a6cd5eceb87c76561a2b96702dfa7915b92e0034ce30bab8ea52702b82e6fff86b9ecc1052cf5c41f29ffe348923a3bb0fff2abaca1e997b177da8ff87324342d87ee31a87e70d7dc531b0784ef74099aff1b3998b4c2186a1d783b39d0703ba20b0076ef0091fc087f50ebd1eca6f94a3ffce876ef7508bde21312c3afd0259a82291a6e10fd1eca550aa4159529337c09b5e4abf15eb32f962b87a245fd3e26335b18a15969af4c263d16af7c3305108445a408d0e3eda8806e9f141e49c364b2783db677ebc2b50c9325c2ffe6763033ec9a4435929105c645e09f3367744d90fa1e38a9787346dc1311fbbcb061598e935b3da5cc164d7443067549c5af4d6e76d014775c011510f0055b13ff2e22addc26ace0c9209852d0af4047ec8ccf64720dc2c5c5404d9ffb388fa8ee3b879c870d33ffc440f5d067a1416a4cfc009bac76a7b1a165d4745871640ade788dc79166a1ad496e8d961c3f581c77282d56532ed6924082675291c1c613ee5f6df9694cfe5c3bca477eeb3edd9285b34f8a7c014664d13b80169904119d10c33065c3af64d4760740e2a47212b8c351991aa812122e5ad7007ca8d39c094a80b1232eb9b851204f792a79c9a5e19ebc35cdd3b488bf2240f09d254137af83f6ea23e937effc663b4ff368705217b6ce54ede3d0f46a955549ef03007f05a032e3582ae4f2e49c90224821d8024c397a2dd940a50786e982810205680021c1654f294860a252425e87d8bed810c731ae8794f151418118685782098c21b3cd3634aa9b8712e27dae49b6ab8886301885126dd7ce8a2b40373193b835c1020deb4300da592336aa94918f0c2997e57b147db655d2fd0d8291947a5e1c4bc221d662a80a4841aedd1229da51fdad533ae4aeaeec7681cc67f4df85b20e8812813df7a3ad42783c721dcab8a53079820468ddd553a46ec8bb204cbb5e9fbf5273c4cb03c8e398f5767f87d13c61e0edb7e8f95c9740633ba58937a1eeb9028d8db462015ac530217405695998a84b33b29776dc7515fe897e240dcdf1b593ad582d00718abdd33c74cb2429b3eec4b99250a45ff9704e40a71c9e8a28b534c82726ac361f4029166c3c918323736cfe541b068361ce351cb497221892444e40ddf23a7a72a2ea058cabd967e14372063e19c0a2130974b6b403bebac61dac2309fb135c18d98b3c1d302a1b82375d784b83fb13406cb04ffb5a9a39dd602de0564fef30e4ecc957aecdb80013d6dffa1cbe64e4871baafb96c7fc5df4af4954918be099fdd42dfa689fb61a1d8f0fba0115bdceddb487e3c7667014c79230823b95ca45212bae70b934668e60001142818e63801f56a4d9a527ff7e9d57c0f13788b45fe7a0c4d85c0b29fd0f4444487a2d886f213d986fc4605ddfd26caf5651193aa51c51aa171e09d137faa5647f7b8100b8085a31b98521fb34ab89e260cc61d7c169a5b5d809ce77bad2342aecdae6bfc3edf289fae40e75c53063a8f614272a6ba02cbbbc01f547abfc8d15473825b4cf81ac835af482177d5154911ca3f884dab9093379cd802df5341d1dc8a9462d55cf1de6a3e9e1ecf51035d6843f6bec1183aecd4273a8e197aabb69a64d8cf78b82fee7a0314ffc2b0e0da4bee99bb216c17d8342c8d97b17641c11a0fe90e0a54f0f02dec92def6d7100f4fed5499104b35971318b2d08b0ead45c2c01e480a54ecdc3384d6da1577072418b85bfa82c17797585ab4ab43444b158866d16881d2e87d1b05305302099972816f41c60487c837ce1a4f20703705049a71084e599707044119b7fa420800b535fa12eb278ec10a22dcb93e010fa8f8d973013c0163d9bb1cea9bba2991310a6378289018f18118e103f2ff31a3e76a7cbf347c50450910002c310dc3fcdb4c7654061987b41dfda858491acfab64861e3301e95fc159d9e0dd694d98b33b8247ee567e0785a64988c5900a5e8675d965f07e00796011e42997ca4c4b69227ca6a5c0ad730eb469aa87544c9d88f1f347943a7e4ee4a24c5b8932b3255f4413964ea37b2c87c8144855d44ab5db3ce71f51705e2e4d85724f780f8822fbf4bc3a3e4700aeb80d5062b36513c119dca646c4f0453b96df127e7be203e56251e304c86f6f272ccdb185dbd912ca031d3f76710977f4a2bcbdada6018c120b38b80005143174e02dc9df80e8d1d7c31230332a3882f10d583b317f00418d9dd787f34e68ff6a5fcd2bed1810366c2af4d84ddac57b8a33583080acfe8cb474b7ba201287c395eb06a311d8c367aedcaecb9870bfb7a172cdb037cd5daef2b4bcb9ed89b9437d64d08280041b7e41c34959ef22f5a9591c086c3b8e07a50a8a6aa218124492c897e361e1ccf6d340491c4933f8fc10e4c8994da5875a9c4b6711fd634d933fc3f4109ac5c5fef4b4689b319ecdb3162087e4868af91d1163b316ea50fe8f746647f781636cd11ba36cf8ac202a86c74e8cdad1ebe60836012382255cd290b8cb5f0719d3834c26e47469e235b919a031ce81935b0ae551d21dd6c45b755be86651d590861a43070f3d6a414f0d2ed7223c704eedc0c8cf36b8abfbffa930a3ea70e3ac82c3f91a3096b1cb41e634eb96dae0913b38c6cd8289db68854b79350412ad26002427165aa190900aded563a55cf6a657bfe2d4f0ba3989d7494fc17dcb2926e01400fbf539a0573b122f1f3af2f686f199bb83329c0cdf6029cb9c48d7cb0d5eeb15bdf08089e730288aaeb469985ea395cc06992486894e944635e7001f1833ee01d9312eed3d79d86da7597e6b82c97fd4ba6a87f85ccbf130097842479802839e268f89c1167fd51907e37b3f5a0dc7da6d2cf08065a68d75ed23b4c18d39edb222cd19912c8c181e501ce52fd439043ef428e13875cc1b2d5a5295601e57e1463b9147d8490d1670a22598f001825624eee2809da0b5e02fcdffe127e06e003a8bb089dea9cf0e0fa7c7c31b6fbc0f0fe9d49d68d868146cad910c1e9dfbdefef9aeb9878a62acb0e494e80dacf939b1e7193b042bb7d92c63f61f06e03728ad02517a1b0e37900939d8a1fdfcb553162175e52d4981812d67567f2e1952418953fc217b0f4541bd904b4c2447285aa26df9dd7ed09cfe498f85f8c2b570a560ec69a1c6d1905a4554bb7c70dbf984e34c580608266a9542ca5d73ce70eced3124b29a3ce52ab432568258dfdee926aca5fe94b5ef0c36e21aa9fa842adb5036b3db22ce2a2ababf1294da0bd3d164e325d7f3f21ab01e2be3200e465599aee8733108edd70a00a4c97a3af50280acc8c596d1dac25b70a7ec174147400ef303e5ac3f1e51bbbec467ff7a46daec1d9a8874074013f4b4159032647007ffb8900f92ed7a88c6cb87e1b358cbda798505e9820236b991edb7a1577c1fb93d7536e059a06e534b25a821b285396df34b73b73a47bca2609ddfbaec4da0ffbc81be59c38b0eae29dc699871ba19257123e6d409df3a93ebe487277feb0e362f232754431038b85cafaac8a36fcce05f0e0f3f44642682f85f27b2d1d4e8372266e6f7f7e746129f96d1085b922e68b93376aa1a8b3f3900f3fe70ae276175efa53f36fe8f20ee1ff183541139c0bccdc9ed5d6bf8b704457227b5388f65381df3581fbf1e8de9bd6b48cbbce3d332a2c45b8253fc7c3cc1c620f4675d24faae42d0e54a166df6d44a3b437da0f0b5c1533865b83dc1a92d7c181cafcd4f8f9fc5ab36da18f81124fb506576e29dc5ff317dcb57824496d3df9f70c2703fac289564e0425cbb1d8e4a69714da912ba5a1167ee13c5c597b0fa6587b47ab93297f8dbd34c11d9248a2e5e82fc9244e26899c2d9781f99f63edc7d4837ad0a2b07a2bc00251b6d73434896a7d282f89958bc0622e3f9ed10dc6fd209a6a9188ec8bab674f3c7ebb066df7323fc5c73ff9537abb08391e7560285c691d30a81f734ed32d034d3a64f8c385dd6043a5d709385c6d116c91f9a683b0f6128af9d0af482cae83f11d8de017a9408af6b9bdfe40895673feda7e15974b8b1f11c1f5bb3c60b6d085440bed380e36ec298ba396986ea6b5c34b8c7b68fc90ec54d2bd9e311296ccfd53edf1b57ad4272e44ae19a55485a3ce05a2c1ff7529382ba3261b1e5b2bb990640264dcefacb15870883b0bfa2e636cec0223080fece002e14df7a8b2c1ae448918bc691e383bbffdf4dc9ba2138019f27c2be0afbe339aaa0c1f84ce1289056f5eead9975398f23cd11fa763dad0f44f1d24361a28d03d7cc16e23855e94d7dafe46006481372a650ac139ce046864e7e1a19a9c52e58e37a343673c40697a6f4035ffdae03f54ae00a0d942e83edb891543a7fa8adda5fff4d54a54ccf02526174db511169911ad2172ea41922e429bd2804ac93b90d0b517abe110ac12f21ca409755be746312f4a9c9b81201519a29107a433c0229ac35b7fcb390ae49586165480b48a0157ac8ef4598381dc1aaf5e393021a070723f24db214bb53a0570d83dbe91226d672977c31f064b971781dd7f106db7013e2767237a27154ea537b41966e31cb046b8ccb787632b47318ec4408f5e30a32f3aeebb215ee72d210714db807bc40d2cbc236c800d99ad0370dd40c8dcf5018b5f81e93e001aafdc816cbf15a9f8ccf2a4caba2e9aaa80d4268d3a2fc218fa22f13544b8f2a37243aa9536d3102ad3a7a9acfa39539919d5d3fc32893b6e01aca940bba98a4e7e12718f6c755d73bec071bdfe8e7232c1eb625b85c17bad47a736d50ed3efa1e0c9ed16f1bd26cf9553d65cede6e640547866ac5a46a3eaab499097e3e91f2ea6692951076b175db849c0dcce3508bf31b79f9dcead1de0b1d49f939770820e7775f4e08860cf801060f483bc2573a006074bfe9b25a9cd4f0991e10cb032754a8b60978007c13a9210bca03f9748c85051581f299d34fd1d303e396065fdb539083be7c798924285a68a5e0c33510848db4272b39898ac49190cc60a732dcb68629627d424813648826c999c550149843af62487211d5036b9f145a79edbc1f06bb9e05ebc664f4a4f476124e830b6fb19b67e2818a7e76d792bb8f99a397f1aae58c49c1345681ac4eb683ef703bb3dde85c0608be3ec9cb59409628fe2da025e03d6313ef5d97e5eeaac99fe9ab4344a9b6e0158a0a59e9c607a54b84b8e91a5fbe4003f89da405bac357193a97d349fcd9110928604c742d283019e18aaefdf435619f8018bae112ae9e09b196a711908b75f6adcf0c65b27793da6ac17aa0588fcc435007546841b08dc1fd04fcc8c3513e3a8e95c2a091859d8aa16c92852ece7f62fa315c35366106a9ea5beefc8402b762e2f17c0d64866799ccd3280d931ecd097505b0d87959787722d65f86606b497273fce0d486c3f0115d84648b960eae52d51038f039202661093dc0e0eebce65fbdac8c8d3a203e366a808bf79736e148fc06983e2756f30aa302dadd8cfd7f82177262c2d6555279f8ad6dc95df0be7bf9126b6bda2530aae0b8fcfb96555f10442d3fb166ef50fb44f80f15abbcad582efd0b466d725181507ea2656fc3b1a7cb311adcce9c5814647b2bb5112ee969b13a222b0b2c1a37319e01244d3b6c3146b1a901cdeb0954d1d07563f94c503091deb5130ac0c274d99422a13eecffe738d6ea982aaa5b56f40af822cf978a1f75b4ecaba97d00f882cd2047b1bea7fe9a96661a2696b502691a587d12b07dd8674043fd21e26af7cb42ff304d213a32de0b68c24e5444bc8c30902656f172a70d564da0717ba1fce59008c4f5c425907e8a7c5e30aff583966769cb9c7703f09f8228f6bfaa975e329334f8f6e8cb4a65b28267ecfe1ffd4e3057a5acd8cc1b4853c2123b81f6c473b802842338729aca96693bd31d4b3d2281fe69992ca89a5f87973803359016bc8cf5994c02d1a467728527336ce7da7686cf679fbdbd1f9678bd4cf23b44b88ad0ad7d564a2e89b50c0244cf6fe909fa311aceb5d1255572119818a0e1d00d895a3305d7d081b6c842a25f1d38d62e18cb0f77a1cca6c6768217c12e9e0322ac31784a10ef8b16215bffd6b66040c4b27c8408ed853d5bf17fd8a2340f0a9a62b9b4ad917c85478dc9f542dc511a900537fa4ddec34b6242ecc4f46880c5dd9f918fb4aa371e392687bfc94cbbc732915f865317e522574de45f0154bb12b7ee8b0364a2016a00dfc8bda2a501e1b63f904b4a0069cbf29a34a613fea782e3897f24909de41d2435e2247796726016bd5c41c37b0e05cb05e7593f05a5bdc5aad071be3caa62c8074bf917189711f1f5ebd8c70ee23d3a5dac68ab2b42347de35a04e0f8013e19245594d2a6b2ab0caa35646bcc389ebd925c282323670de26c35a93e3f0c11817ab06e10a3d541ecbb1a4269ba39493a4698c86343f9c41a353d3b098b93c6cf011e2b61b8c10d62847e86556cb527813c6e1065b2cc231c77e5e89c18d93588149cd578cc5783809ba6bc7705e93cbaf1e8525c83c8a4842a72e437e66883389f7fe437f67987cfa08e6abbb98902610f7f06c45414fff4ecae5683e7342c57c637723f40c6a567dc30b192fd412318b815ea56493f3c7cca00620723ffb9208dce861426fb2db74d64e2a30276e4daffa80aef16577424129c187a85349f02b6f5ff112f25f9aa08e3db4929111d868e5bb8794ad27c71074a37f76333417f6c6db3a0f2888e088ef6f3df00b62d8020ed310b0a8c8ab96d9536f325bc7da838ac02f901dc4bf12f99823c0af292bb7635a0cba5e86a8280e526df1c145ddb5554d61d4e6221fe1f583a81234e0da93d976ecc0d72da360d3a5db9cbe46a4e49a6259091beab84ff2db8bb1d8b3aa11770277c19fedf2f1cbb8d7b6e4e45b38bf154bf2ce8ec6b7ee54a1114f58f56eae278e646d8c48d358c0f4e6893faada8cf82769e50f4632dc5096ef2709d0680c4c65ab743486516251c7c3c6e4d6ed1824e4b707cfa66cabef6a607bcf53ea87e9b10cfa1338254f719aae4ff67a1d0cb6788f6cc599b711d37e718fab41685b8312e98c2dc3fabf74a72d7dcdf4fab7a2f165b0088080be83b770eebaea48e2ce8688aa27988e011c13ea473f53e3219bfbc367a2eeb488ef2c2a18f5047c8fa1d19cad331a8973c087aaee676a0db010c4a797bbd28a5934279b954b3cc4537136138f93e7f28958b31f8611c92e7c92c04281e280c9b898224fb435a810d84ecc99036a036713bc42f97c18b9e85488ce42b090e32b61f7b65cd47b22fd6377d21edcb121e9880950c50741f25cf82681c4d6e31c8d54d7ad0285f88c1c233b4714e2ebba5d04ba78cc4cce5078df80a1ea5d265aa5ec3252556a23eb2a37209a0e5d5993266b46a8fec8420ce0854f5d1e4c71eddcdab17ae3b448830bee342f279f98c41812d8441335c9491f09e4eeaa00540e2e55beb5e1d2ea590f18f4a8d41f31934f246913e96151beb599b7c4f1e1f2e5cc90f3c9eff476e75cf0d378ebd371e40bb63fa5109c60fd90b1e605991efe3a15216e3023a9550437c009608fdde2c0005d70b886062115a9f1c0d886795f987cfb5a3f3b6d8edb7ba72aa1089995cc7678619cf67ce06f0e40ca55ceb896b13ae69a1e9f39dfd60e526164193c15b40705a662a36316e7e73c46cadfb1059475bb00778742651f4a0e7660f0eeafe5cf0103f93f45ebc5ffe30893526104651306489df9a7fea563a5c7ad86e979e09a8ce9c841e886262fc14d711b2cb9bf836e8a1a83bcf23dbbc7f96f97954759ee4898fa59f5b839e5db6b8a10075fe8f1e8f2ab26974aa0d5253a3df21695589e20983d92f5d80a263510e16c83140ab733e44c356235e32143512dec0e8eba0992e275dc4de60754e318b5a9a7b4f60a7f8adbaead2a500a5a7499b3b979d84fc32acf27a007e9eb89c407540cc3d01b71f79e0d9f12094c211febb89815878e682e12c212437acc05ad0baff8d5ac35e8dfa829898e8beeb071b0c0bfdaefe4bafe1bacb5fa282593e5c73e9836c4db0880839991b00222589252ce942ae8048e4abea3935696a21179795f00799dce098a513f824c125990428b2e08cc261d69cd36a52655c87b531b35dabff8be8d253924536d6beb98c69e630ea78187b0821a88b2d90c8d8e552c5fcfc97c83a0afa62a4a98f8e4738fbd343fab4580c91ab85897c03da4754532874f88bd5911410aecab4a59bc24908cdb029f85509e8aaaf1e05d38fb73f75ea1b94f212ea3ce8bab6ac2ad35be1d11dbb78d6252485b0fc3764bca78738b02cc791c13b4ec038d489db4b881f078db9767aa33faa1a262f002071640fa5e4f307ef6240284348fa1b1fdb09a3ab5e08ed21f46cdf985eed92d82a4d02a17c0712f8799552dd3acd0b6e6a4f8569d306fb1c5fad404b5be5d577851d9ac60b70a4383cf7e182c710d3b09ff150e22fe379402ea7db3333d1bf236ddf625e4c23e870961dd642c758ce54899581af4e39e269ff481c10aca82175aa6d2c368ba1fcfc2b27d9c9fb4a30a1a2de16a178db90f2297ed9116dbb529e9a75a5008f09e66cee2dbee323879fd78949f2aa0dda0a87dc18bb0d122956da2979035daa362cb8f5c2b3dbf4f35a5a4e25c367d7cf59027b58e6ad2087c6975890c0374e05a928129c2b0a46a002b1414b42a3363ae82a4f772a098341ae1d3ccb2ce5998294e69e8e45d4889da5a13d2920f56a5378112f674f3cd448a42b96810ec898e71d55c13f84bcd1a5a48092edf22046e20000c7d3c1b6a33859662483796b87499a5e38132a43d5f183f21c893a3e16e4033d8ccd6344573f2d8fe71638989fb67233a6980fb8f2d1eed211dffd9b9a6d2e76783659b79b80adeda3646164e82d4b7de0a8c138a31c932076a8c7da7a8daa9a0a5f6cc787f5fe08045d61072cbfb8a8662c9529830eb623735d5cf2098a950c4d4706eabe7053ae03a574157ef15caf7d5b1841135576a12e4da0015e22802f3a102ada8f69051f22326b2283fb61fbf24c71441610dce018eaf861e7398621f55a5ee03719a1ea56cb39a69f4482e0faaae51fe577b08c8bc1b50393d13a47130548e2bc74a46833e339f4450990e4735bc0c3734870e182f9b14fb5ca64e340e423d648cc828c541e4e18567eb5ff6084797add97929871ff06caca2333214860e98445b946fd5910e179a07d2b4f13140c287df1d064f1fcd4a58b333152886a8fdd2063c057cccc310b5881c52be58107aa02a32e1441d67ceaf617d7eaac322bd2e8b1d763417e5d7f92243121eaf753f9ebb682f41abdcce530c64855bfb1eeec7de51d84898d2908647cc4359574268ad600e87792f41874e9827dc90cf8dcbb8f8884e37d8658269d1c4c65db74e9f0fa4573f78cd5cd0d9bab3eb4e5ceb6a3350a4ce33b45af8410ca02050e2dee930b4cf341b497b3aaf9f76d4ccbbc70a0d8ede70a81f13d8720d24dffd8e687cc088647256e9790f5424b34321579c18eb5d211b6eefe90dc4df1877f71f1ce88d1669a6e210d4c9be60d1b911c5f54f47088a55017372abb6dce80cfc42ad63927d93c3bb8d5dd46fa6b8829685f03156cc89bde2f96e42511d7a5a937038802c31763fdaa4e11a0d4661423398b7e77b9c127c615a5e027b62e5ef54a48bd3e82d5dc099f40b3fab8404e2875375f05c604e4a489f31b0de829ee3023c1ceb7cd907d066cb505d1d4fed358e59e4c8d966657f28660c9e2739c6197424dd0cd637db2d5d54eda2d629ec2bcb6d945eb4373ec6661f4e7750e1efb99dbbafcb5ddd8b325c7caa8ebd4752364d1a3e296073c921b876c749a0ca6dd4d8b6ff482a6356a78a58654bee4865a8dca2431cc2c2a6e300508cc43953eb3fd800c7187014009e6f68c77d59812e9b827523e06df7080d89b130f28f8c7dc7801b84b803259e5b384abe7419b688da913cdd93041129c18e844b7752c519528cac13ee30bed5fe6c3b2aed0b21f2e24233e5eab1c7069a63bfd70db91676257b5bcb61ea46aa7e014926b4dded7816643750c48b21895bc92020bfcbd082a9041bf20a3d75730563fa84cfdfbf044bc2e101c4d0ce4e1b389770c384f24320ad4c94924081b1644d0929c8a2a2a9d9c840f5063d882cfec7fec3a80e3174470fbd45e59dee0dec0462c9e73be4f37b00a85e0a4c1745943ed69815a5980d4745db895365f063f92c166576391f91c7c31bad8af9764c2d633cf87b2fd166c8f264ec750c2af810894199c31a96a20e9ebbe159336795caf92a4341d17acb1c0c9f145ccfce0ccd4af05e073bab95b779c3b1203b48715a88c18048ca99cc90c9dc188e2835e6381c3f877a016066885b438c8fed7d76723c444eccc0190484e3df6a4162b29692923634fbdc14558fa3dc803f85906f2d4fbb2563d43e18029a6499c2907eae50bad9fef7237f589742377c4858019a425e280a2aba0622ba0fa31c7dd8fa667b0ecccd0da0665f3c2850d5e8fce05abce66413eebdf953dee519130c409a81d9c5e5eacee94debf64b4fc3a2c2ba40b3a9199826380900f9fd42417a95cf3cde33ee005e8b7226e00b9f0fcd79e9c262eef38003d09a6988c9038e360bcdf16a1c9964d464a047fb7b744b2544a4ff5e7ffcba8efea5b99a2a696cf36053ca8436756309e748b9525d8f3ecc3c908c8d1ba31dbf066961eb46dcae95c132fb054c9567ea1244ef26b9be4241cedc0db24fadb96b603132a8bd780c535e9521e9ca637c6a6816d9bcabc98b6f94a642d62d5a30b2292ad1e0b4f0020d3899600010381f202797100f861045350e7e0a0e5718b4a0c498df2841f48a19d2c4cdfc06b8eb2497f3176e4301548fb3a9269fdda30df143d7441545fc3e26670504a417a183e89ecd500abdfc26a9d5f6583074b5b264d41426fcdafb0972cda46e9f80f67992920126add91b7431e65c58d4ac81e729c8b03bc8babf5138f61b1d476e0662b85732dfee3c56673c54df250a02caafb0eca875f090f85ed7a3d32cf462fe57d484583fa0dbf4c1ecb53d60b3a2e6832a6c2a9f46be32cc9f8b339d9058aae7354924413ecf9f51ea3a987c55d0c30971cab3e23dc4a3d96c07225f501d784647c2909805234fe9d455e91abeee455b0090c6a6321712460233708fa6ba311dbaf4386eec8600cf1a26ef715dc037bee4ff65b231823f8c8e61eddc3a3e6b0161f34be4b7c49fecdb3101b5818c084c8203269fb2600ba41e0154c533cf330453ecc3d10845c04b6a1d5d1539b905f34112b5b5a08faf29a1bf610932dd6b7591a059de8d135e1e06ff683f565be9ef6c7a9b2b287d62bb898f4a21832453b9e7c00a40d2995f0fec9d143b83258ee944db1aefbe02e018acd9a139d42328448bd8e12a4cd82db0aeccda7dfa654f0cf3aa6fd505413e754fb2a3ec7fef7a04ec5a334024c207adb04ec79d404664c679e10fad8984e5a9961eb30e754055ee7dba4b105305d3d82720837078bc1f05eb8ae3119a71f25aa2d600c7340e186b09b9efb1a1e5581565c1a732d49c4b3965e3abc5728ffb4d791c7f9e27141b657409f1da3500ccf423763d305a712422fc92bbfe4e920023ac9b213f51713d201dea3ba620847d8f3ab3110f8c5f011f726cbf30b1755bcfd875e2e56223f21ac51a943507ac3683b0f9fd79dc67cc2d6cb23a25da2a57c8ae7a4e765963ab6dff89c241da0a4b3825ca08b0516c84475727c264da45d2fbdd45146777d2d4ab909bc753d45f63f76b6170ffe3e8e91450af043691a82fda7b42b3104707c6f1bb50bbce6c2e62e34108062d416422014d46ee4ffc0671968584fc9b76863a507d5222f124259e87fd2b49e8493e98989fa58e17bf25a82b2c81b583c27cefa8b8c275e87efa0c718cf2824a0bc768ea57db43290724682ef23b396ad78d4f44938dc82269022b73b28d73b9b757c841e52c4f2a4490cd18ff2abd3b096c32947ba36e464235fb76c94bf2bd909d17abc44819b48afd7c06c998821fb16ae8bcac71c789829b16d4d4c2486f6aea18fc6adf328f4d318f78984982228d25b8ddeab6506150f1a3918537ca0619502ba1830b6a8f70fabbe003361852b358fd66a433cf3f1b103eee4b4484b042d126f3502f27dcae467e884628dfb84189ee3e76c4e9e4f7ce0e11528fea882d0a71657b1b3e7d63f49213dc98a8bb2416d1898f4a06c816808295ba5f556c77cf48ee74b02b385860758405cbe63abaa1781270991d02054186fd261c24f93301e2b41fd93ffa56a536be71b3671729525c9b121abdfc161691192960478c03a1c5e62e9e73620d443d5844432cae4fa4caa346bd05452b9e7bc3e0e8e645c9390bfc870a4dc69aa1c25293bec5761a1341990388641fd30973fcc5a338077dd8ae8686cb5f03a37a81b11cb43d0b909708a3c0266baee4021279acabbc1a736ea20b30b26b73e458db4838ecaad0d485a59c1093fde98a1443eb9a1d1289f0f58162c26b8ee0f66e7659984e2627dbc4f10bf444319ebfb59574aaf362306550e7b48dbd351c2552b40248fa5fe7532a7f1520ca1b0b032c7421a72c02849752c5429fe0b3c41b40c0471ecfe1694bd128d19b73378ded9039e68e429ab121278cef67495a86d4a53b7bcae90bd6d692c182948936aaf64354e5ede46a3bcb26f3f7d7d7c1326c78e4dc0041ce7139ba942bf9a4edae22fb35575a6d46da0df761c69dba99136b709e85cfc259f730eb665cfcbd7e37a46ed8a06fdf4de816c2d2cc7b3abba8ae1cb3e7892dfccacc5db132ce86c8891bf9ee8fe1b8c54979c75b0d858d6ec58628d4ae32b5fb81175e56766e77405d3bad11473c2c737287ddf5e3793e5dc2eb5632d5b166e48ff8f2a50d8664a474b669a5fe2e2877858c6846bd1603696dffa51ef8249407fb69914ae6dda57ad84eca0cba00e63b512ede09036b703ea760cc7ec171d44b41383a78c90aa9fe0b396aee04f4f5bdece127eefa3cedc9d2570d01468ed4e5b117df9a24759c0536d88bddfe134fe6e820e49178842738eb62c81ef9b1a08e9c4478960a6b11aeceadcc98f73d259f8052612ee762ed3e00087886af51a8ab35f2b18c9f53a03225fe82989206559f2858aad52120191404a223c0e95eb81f3cfac84cb9e75adac62c96efbd826d41866533bf89a86e7ece3aaf232d6703022ea7bad7bc7a354d0ea29490a5ae5916a5e99a695591214784b7bec0dd8a8a008a3b7637fddd4fa544ba48bb890c928856c8e2c4b492a2f3f01f331e8eb248661276c2cc636ecadea654d27cfd2ee4d416abe03677a524d4966847d6742e2af3975455f92b158ae30f800710e064611b93814a327f3433809657c28522418a1b1f12c0d30ecb1a5f2b47d406e11469496314042fdb98005109153a0181c1921de515001b8a1690a25b0d62971a2f499ab9307a29ba73aaea04e4049cb0c323001ebb9d0a64907752c2c556387210f49f25151a7de4bc8f1ef87f3e937b5913fa1a86c5924ff16888ceaf6d99b73cb0fd66078e2dca0d6d8dabee74dc1fa9d12cbb9e145fee216959792bb4e36b5781db844a8ccdbe95a9b03fb886c0f3fbb5696180bdab4a0dcfd1d04b8cd6c5709136500c63d1eee6365a2c9445e619958a08967708ec6acf4165e0b14d31e21fa2b53b4a43f5ec8d8291320e69b12cdeb622bec66133a34c66e42aab736725f75c4303cf219544e43cd89f10c683b8ce10f106d319725479d23cb2610d615732d323643a55cbdb49695fd38cf63da13e72e9731c529963d9b0633663e406115239f2b889bd31093aa64e672d3e7a902f18e586d930fb3b1900c35c03f4fe6d7cef92a70f0e4bb833b60d1f1e7eaf8b9d887a4d947ce5ad280dd1ef376795ee8a36faba506d2474dd3b7d493be58ec9a802242a08dc6ee3afbb0c88974c6a96c150ac2d046dd24e5540e926ff79d0ea77ce2124143032c808786a61a04888c6be47e322b5e732ccba44fe670bb8b4fff249fcc630868cfc2f6b6b3f1a57b75f2cd8e4e980a8830472e88aa5763668f85570510d00af6eb63221c73701e0d753f44c8103470fe6907373137d9b0a4bdc3e1f51702245cf48ce547d4953cac76fff310861fc1a8d080d38d88c3d61af09f2ae694e1e2de5ab8a5e8fd57d77dac79b7cf388ca2685dfea1c8f0afb7046b6ada5cbfa7c23a093559f0d701c9ef61fb07ae13201cd3edf01c686c7fb543e06440c1f84785500cbe146a1cf3254dda5842a96620a9b2688798f0189d17cec274ac5cd352be6222873103c80715433573c0e59f052f45f7e154ed5cb5de2dde678f67f2f4fa111803400242c1dbc237023fec1a647a619a01c8c437a5181166886ea6126befcfd3a469764e44dd9f88bc971fe5c4a36fe3b81a2a81ac0a41574c7cb685888f589b3c5c525c8efeb3f485a9713430ce8a5906d4d153c3b2ede75fe159400e9b9c56c541ca6982080b65412559b0f2ba70c644fe2ff900aae64978b3a05a1c891a2b55c7a1dcef02aeef374aca70371e597dafd3c22d79a2227ab42dd7f78b9e2b40f38d11174f8b9b991ac5cfbd38408bf4349470655eaa2cfd69773da11861acdc2d8c2ea2ce36ef45de5650a975a2bc90b311dcd156e0e600af2955f581a1bb1ec90a4abadc6d6742b5ee275feaefd7449596e1564422de0baa8c1a854e05b8454f01f464cd001dd8ce36c2ab70676877fb6e28bc700dba0fa3eb94fb01c558ff358204a6d9a813baf724b215d6bf0c7244f5e4f9f2dc151de7b81e9a48e978a099d3814da8bdc89fcaafafeb1afc031ea8e850ad44afd7d047bf9dfabc62e7139653b97845ac278ecc44f2f0a7d7c59485471b7d4c6818a06e9c715ef7265a12025b30b97450af55d570882b1352c1a23b8ab25fbf3446b1b7258a401ad8a789afbdd4246bc0503d629dcdffb61d36a87e2b56d20a44dfe0717926dc922c4547b00dfdf222c824169db78c7bad2174da03b567e86700b8790302d110fd27228105e7bc98ce76441bf67c45151bc35344d2ae89a321eaaaeb0d0975bf517c667894f29919c17171d98ee4ae293d2fc08a93edc8b2ce562fab901126c13771ed2ad6687c91bc6322316f485abbaa7d06572b22f8590b56298b65ae545274296b17e4d76cf52f4c2c68ca28a141c53e82bd3570cb9cf6ba0b9cfe770b5de63374535d1ce12618e0d4fdbb2067078d33c45684d43209d066defb44cdcb6dde89f4d9676808d95a6a01e7969796ae5fd6c68d26a156a0e415e5029b2bfd77250189b7b84183069a1d42fdbcb1759baa49700d9a8c9462a595e34315ebf03458910b7c3be09452bb4972375af9d50eb4be886598b15a38a84eecc52a7407a3908089475960f37144dcd8f02bd377c38037930e8005947d4431e0e747ee91aa0760d465c17c7163ea94e77c3fef35fd8ac6a099c0d1dab712c69798c55c39e5a66eacb62546fb60dcda0a6f6ea113153bc127d186e03edb0623d12be3fcb50b7d861daeee39fb498dbd179225b451b9ebea99f9aaa649d59e816710fb7ad86ad8064cc61976a711ecaeedc97c65c05200c1835d2ee7ec1479f4a265caad280f7304bc20e7d89073ec4bfc1f789ad4bdc138a12c0959169c1698119b357bd030094194bdccef303061026e833f01655437087bd4accdb8fcb7580a3951ee052d11ece56c3e245f8780ed22ac7fc9a82b837b37c113a6bb3c316bd8fb49ed24aa326e3a8f9c3b93b61aeec6e2aa51a7bd65f482c8cd349b4e3ab387ed684f16d873b2ba39424f5e22f99e736fb64487000cac56da9415c9edd5091befc624dee00fc197f7bc9efeddeab4e7100ef0cb73df42f97f954689053366dd8e070992d15856a16ee4727bb515cf5148e485236cb111b77311b5404aa206231ca4d8e6b8733cd44e464a4eed9e16a5d9a3c51ecab29fc1e0e33000ca6782a0417278e2b3653fbe16c491242f32be3f77822501e396a428474ed1a3f29afb8a94b644bc4f64b7b4a81ccae38857caa949aae2c116c50e29039289950cc4bb7f9cfec3ed47403b6b822cf04119162810959fd856855c80a9e1f6bc195ba4e4ea5a2794ede2d68be36e9e4418ce37b472ba8f944e61ee2f7f3c80607b55915d1ea856665f3bbfa124ebb78d9d5315e843df34c6b482a290984420b532068bea8bb2294388886f7fe1229ad9a14739858f0bb147d95233b2217bebbba1fb02760f428b6a851fd725a8a4864402e2229105fb8224995a8a3ba90851bb00d78017f049da915363258be204d8e4bad5fab960562c69d488e4f2d3b42fd510916f2773fbfd81e6e2030e14379913f3e5e63422f7faec9c639a7e510d53a987126445f740a22716e84aaa1a40ab6b59ab7e82857bb4116cc906e63219f4c49e165e7084900890a3f7498264d1bc10236ec8a0f5f5018591ab3dfc79d840d2285c355c8e30dba08b683f56b8412cc08bbc7f45ce5288b99766d20fd90f0ff04fa83b5282af1ef91b7b9010a606e604623a4e07c109b671bc4a09cb48d6676a55e068080f8193d1d4746cc20b388fe7306491c0188e9b0181c801e62a408f599c11b402758a1f708f2e34f8a4a2987f89b8f9691a90f104ca95f55db87441d53ba2741afe616fee6096ff288339868d09700db087142c69c563966d625b5e5f1f0d432c0ae134983404ff2469bdb119034e8f38c46a00c560e8f1ce47d80b3d0ae3927798afca10c9156e7211facacee0aa6060195e0dbf38243b85cf0dd07eac10f4ac897b04cab51503d616bdd75fe4e9468aed87c9d5786edce899a218c7e869e4969e11cdd0f63a7fc27db8e3b5c72e51da6bab16e46dbb60408216d9b6395aa189354fb52d5ea63933bdbddf7d99edfe7cab599866105798c4f3a9cf4faad54afa8475620722ef02119a9f5839522889f16ca743fc26e18c4ad956eb9b1d4816167df889fd6f61523e1c9a9018b208b6523816ab19e6dc39d73042c9f613baa3292a323cbd4eb055f0a6750a9e32445bc06499f32637fbfea2c31083a083aefcdfb983c9baa09cf98a36fbdcb341d82b0b1560d343598a471852c592721976cffa629a548f3daada23a610162c43f68b96211a333c1033c0607d99c762b550e773a94fb59ce94883b628fefdbab0c1f868f185d8524d5b1995e5ede248ff99d92b29d56c5cf94a4f48033e1588b5159e2286cb7c07cdacb0bc4fb712b213d68aa91cc182b45bfa57d96c7c494de11f7182ab5cd69f61d1ea6156a13c10c6a57cb5ec033db421c5e2037745f1f971c23592d02e1d1c39749dd6747d391211fe9bb11df5962e4ca47cb8802b0ca0408d5f8fc521df9770638c0ecfdd1cb918d25865e3363110f15dee3cf5d5556dba1144467a90f63adc58ddc47a6738931e336b04c13b9ba7e9653cba7771a31a43490e6e5aba42f2cc947c62585be548e106a2a3b60fa42cdfee59e261affa5312edec1a7f23788dc1ddf4880ca510ba9ff7d7a6a2a8a9505401c08799a6f0d1cab916bd865ae03f7898a4258f37a601a3e58e8e8726b96c1c0d30fe61e425b14ecdd899d62af6f08ff9a7f2b8c7a1969d6aea837bafcaa3e504967df9a317c888f38f1d8a5d85709ad78788b3929671a1c37239d579828a19e49a4291b175f59d64677ace0485049747fb00b2e88795e87009c395432492f400d1d7c57b7d984e13c9871bf67e4c1e9924509614c3f21aafcb0d0513d45c2371e4610d2a8411db94d1f07da3ae2102cd7ac99aa06fc047f84c1779fab726fdefa9e1803d26e3c5f390ae610182dc954b21b9229bd4d3625de3b7954808ed3a2bfe9b893c4d18a040f413bd6a331b5116f2683c1a3b985e28d82a26809aecd0667d8357811fdedfd22a341580c2687e2d9cf5522c8921e4ddfad00942d638f6da17a1f4f51e0091a4292b619a49fc20d83fa9cdbfc33c8d18e0b5df3a19f4ccb4182095dabe890f3aaf6f95463997bce607f9abde62162ab867a26a9226eae05e5dbd8329cb05949cfba9bb03f30918ee3bcb4d7d75d601c4652952ee71951ff5b508f2f979044d645631f7c953976fec0319e944a60521f4abc82ab5aa8771e8146a8a400dfbe66d0a949ead5581853b244be70a4ebb21b286c13476a39e546f1f8177deb020170ea81b44e1e54972c7e02e80eb819fd3f6332873c6edc9202147f7a448507a05f0cf7a05062c9744d4c0b3a985a797e9337466dec557a7fcbe52c2228644dd23a6a33cfaa3d07ef9d785109223936ab82aa7d689828bb679793428a0ea897ec8ca22771d95dd6f27266df286f97052b872705bf8dab4ae32967896c4d10f1a9e9d6527b1202a8ccf3fb0ad61c241fe4c388fc5c397952ed5a2717bd1e69b2df37b91f7cbaa9c614eeb953f83c04033a2ff1ff5586ba583616b7ef1300c06eed66b1ddcdac19bc7952eb86828e75b5c31546957a1889fd0dfaef4b179ad810541ad9c3604bdf0b736d850ceb8e25762f9d8f9653a1fde15a60302cefba103e6faddcd92633038623ed9f97b200612c4b2d14cab1e9c40f89c62af1ea6987e63f185270ee51d8f1798ad7bf8e0a9abc486f72af41e3c0a6b15c374a7b180f81f0dd2af9f83c0279256003e407b3094045f44bb35ff1a4118206e046f111abe76c8e97eb374e61d2b1fae022d18fbe80ea0f7aea986c4dea49243c2814c2ac2bda77547335973525e4d87ade040b85647c260c4141b6d151d2698d2b32403da0f3d8db9d37a5a0149ba630e579dfa175087c871760f21b63e3d175c503bccdd7931a8506d3e8bfc7aef4455d616ab43eb4ca5af95ddce9ab990d91181d12dc921c4bfe3b97a97ebc0e86a9b639559ef449b612480548b7a94b648be6fe82b7ac9aebf175292143729a7182549817371b6006ca390e15c16d98c334807fd9462862c5a4b47e2d73b4443c60c901bb0db09cfddc409619269a41d5fec037aaeea43d6cf434ad40fe088175d3f1c58d8ed07324e0499810bafb82780ea67fae113a221b601e3f6bc1ca68fcc1c8806139603902c96d302f132e0b0ef6cdd5ec42f1318a439816c607bae4dde873ea3b6db1d5bb9fe0df3b7f19d9a8b7370f74f614aabc418c12edbebd85347c76eba211407e211e5f54a1fb01e7a1dca37a0bbcbcffee4ab82513bcee48e0500060ede555c10577754043498680a0afa6a7baba66b12fa09f2bf712002882bbc05da551c981b839e9de3a57bba2d4f031e661ae81ac921430fb310abc438d0f0b1b101c667150870a4eae1124248ff78eed633278be4551b2815c42a11969061ade5633b8e18ba49bfa195df06047fa583674020457d0811303d529f400685684d7b9d7a4b7d102fd75b1d1ac98bd6fb0acf7ab4c852382aa2c05f03ac2b7747963c102de0ad2c31d97aba132ac049c6a1cd2c258e8db14947c47c787f840c77917ab3c4f20e11c2d4283ba749a28854db2e6a33d822aca7c5fdda7f6cb3ed1b4b0cba2332ad34e9de71159620b0c569639374b00fe76b39473539b0870ddd2448c3ffd10621c85dd064f439005f31bf2da45d064d432211cb7ef529c58b246a3c179d3f624c9b197283ce74342c069bf51c9fe9f315b8954cdce18f672066585cbb4d44322e343b3b48b030267cc4e0ac536d14481ab19fb16f547a479e3032cf23b72d80e68b30438ae2fedc83630a5e425184e1646c6885d88976cb264179d06f1235cee0c1b3cbe76d8cb57d0efedc14009b0b736f66f127e1e46b8d64ddc5b57999d9ab0a290a9c004f66f3d7bb91503c51d620c1b4618a1623d83a930a11e28081f93b57dcc8c7446ea81750b0f2e6a4b0bb950700bf1b163b295c4e5b172e49ae00e547263d91718fea1bd9b841377db75ecdbc372bbd3fa7818b26f7a0c0fad82d2045aed879d3ce0f4b0d8df110b9b98d6abcecbda223bb0baef38df5baabc048b4c771fd54589635c01edc757574afef8245e1ca111cc09f13d45d175c819527ab2fe0b53cc6483bbc297ec23a63d2f27ae97c0551b403fb0c3545e35e5ed8eb3bece5398382d3e3390add717941d23bc0ea3b2958bf8de7bf2a8b12f8f831b5ea531cf17e4980a86292aa93b7c590bffbddcdbce33f0e050e50da0d7bc28fcb63fe3e21d43f7a02f5eba9514f13fd1cc8f43e08236f987df191203f82f448c647f9bbee8b199655d5d12f51e145cad353cf4d50b9da010cce4279bb34e6c14f7781e039aca5794f22f5a480124461db7d0804d11b1dbbda14a3f348267757bc7a8c821a7e6c143191e2c730d34218bb540201b751a8758a07ff00361d431286cff7e6f78dc9955badd24e24e3b4908aa691f39e2b40a61b407877044825b916db7b2021946bff2f4a1f4f150e5c8da8d4f20457a0d381c2466a9bd8e7718c48a6a2f3efd3ce92e5922834353c7b660d1da002bc21bfad11f97835f882a5adf49bdd2a1289b09f182281b2ac03fc98bcda6dadfb4c548f3aa52f22118794c178e554470405d89b2799a4c58310a704f7ceb18302d47cd8361f28488c74b0e36e134131b72a2e7a574d1e8c7ebb4ce7c09297547db0af92ccbd33e43649ea59ef6743adc8b6a5cf1f53f9d15c7c375638c08a37681ba650fdbd4a025d238d1f338b1fb7aad6a70eb0a309c9ca5aedc015e613a1d50f89a1cdb41c26af43e68f68fbc7f34a9e3fb74fe7aa670e19367e39b56ab173bfd867126b158822d94c8af8336d63faf19c8d03663db66808b54e0322f9a84ad93cc48b6f85ce2391af10f22de32b6efefe120b1813e6a96a1e06ea78c9105d58e3bac38a40717c0dab099c0afc2039a27798b4cf6779a777c01ca94c947744f09ae76b2eb3458287d8d2b8122e706a0b9372b4f3ac0b043a49614e3d42ca04bf281adeacd85b055e8d8266b48389eb5fed5d4c4e31ce89bbf63c8abc2d9d1f094a554980eaaaf7cefadfc9b15b0caa60736f6593196b3b1e30942410d9a17935dbd9dda3dacee72f5c0c70352bd0877fbbe7fd691c501e8c9a1a09474539ae93fe1cc2266f0cab40c8f801c644e2981e6da01b2cb8348bff2cdd658d4395e8af07a2716010929bb719c5eaeb18796f1c3c0c6aa01fc7a7f19b0f5fe5ba19fe34b3563ce4b11feea83c033dc8bc10560ba270781d02ea1f4a9068402b266368ce2303208ec95437c7045fe8a5a3bcc3f902657adee91c019d1967962ad5643da33d8e31972774d9900ba29c8c6191fab38942e7858b7e690829acae1a1e89bc11cc7172cdc04fe44574bd0c459686d49bfe83afcec01fc6388ff16910a282daf7879d0a84f9e01c564c55f9520e188897b0e9ca57c815f253b958bffd4ed9788feebc55f27556e048161f05fa843d087f1a0024d34ad42e494207dcf661b900b944923802f2e9f019b3e2bb807e36f8b690f9831ebddbc04c3b2e58c0dc3ead864f38e8fa745a70466634967b27498284dc141f95df9cafe08017d63cc3ee11fdf0500f72f057b0902b907232396c83c17a7b1fecb3981162b97b8cee2febd33345f76c2b96c846fffe1f76a7a7944022eb0fed70422e33bcf13ff01ebe5da899d2cf9b41753d69e5d0cad17f4c53100027a4afa2440f149ae908c76cc39b956d083987e0f2f2d6c1fb50631a06bf4c1f7492a0643b536e1856301013ae0ddbd8ee597dc14c73992d6c1d06f0fc74c3ff9d730df46278ced893e3418547e477c3edd1c7c738cc2704da1b647b72af8d040a353c625ba5aaa94427ba705c100ebca704408a5318054c3172f00bc14302a54d6c35a07ca49e8791c6f81518c92ae3edf6c9735e940b638c6c2eb0fc56ad642a3d518f7fcf690ab9b42b98bcdec90abc58531474b082c53cc16405009d7c2d68816546e48b97dfa062b85ff33f4d55d89f13ccb1e25b47da70021362a9444767513c4c31629945306311d7774949a602e0cf4355e90c9ec480695db0502b115f6f32d955ba38f4bd46ba411055c5e9351bf66088f353b045147cc066baf3e06555585dc563951101a06ffb5a2efd952ab9329c10861c6a20963b80585a5565d40360da8320c92868324e344e030271780d25279d26a25de688645f971c5a2da944c5a599e5d26c009af012c4d71642e30e2e773835a2a61b74a742548a7b225a3e1d3ab09cb58c0698c1c10e05912b04dd14f46430f2640c9b883679aeda8f04a33f2182692dd7b4dfedf1f2c1a76256404e44acff190888e350e5fca61e77debc4458db6aa7074e7cde92ef4a826dc0fa169b08c4d92154ba6f2f12e7ad51a9c48cfb29493ae586b639ffdda2586acbeccbf015f7a28c992d59737b94c2600313a84ed166fa88ae58250e1d8fbd87a8de4af5f57c01aff6835ecb0a3bd3db0cf8049ea8302c778916ae06a95f1e7c7433fb4233758b944550ec417828470e6784711a484c58b67f251cb5abae41ca58504f45d231f8f0f5ae2b9887338c7a58c246e3fba78b4687c26d222a63732f15e824c73e8aad8044213da0562696d1f217cd0092bf5caf100a452880284aac8922dbaf0166d6bf4dec2b9008ace2f5acf6662b16edabb39fbb02590102f51dc79c06c71e9a3f6b2a26cc2a7cc53fe8f534147240b9355d5aaae6065d0c5c02c2b91dd080ee01b0aeb16fcd5ba8b64c85da1910f06fdb867813461195409635b36d3d3c168bcc65e2d8f9e0f7f7a47131eee64a894bcaf4d36b6310e3c5770b307f51e6b4d82ecd2c03407bf2e51461451a89bb5b9ead142f2e608be3607d317c325207003be3e30ba0c0ee8c3f4ad9ae359c4bd6fc161c73e3d8b69ba785a7c39cdb0e2ea93b018806541de7a0d50b9645003170210833cb56355fbaf4283a866681f2162a749a03173245ce8e7a25ed938b1b4d5cf9009beeb0e4f9d869a8682fb7fba4f5831041bc2c3cea9ecdef396c61e9736cde8fb1fc00805c2140b2ea5bf3411a5633428bda219181c3cb974fc782ea4a2f1486d8ac2b287c0bbb83e74d513276489c8fbc29cbe3b15f928b6474baccc8b711079c3a28cbdd8a53e9fc86449ca68e914e78a616402e98137ddf191265ce4e26b958546925c36c9d8b2a6c2c1727e47ac7842cda8c978e7b0039136772db8da7f1cc9db4943a3f7240293ac3c9433eba90aaf7bec8030396408b858c43a9768bd97262ddcb520bf48fb421d27b1353e0112065a41953ebc46e1505629d61ca024317679a0e7f9c1c741656290e149a3e9248d89030dc147d30f146af2565600f47bf3144cab660166768865cec72a3fd354bc76db4ed32f192656323d3573214e84cdf9a4737d406149448c85062a1243d0458ae21ba3600ed466b21e79907caeb26145cae5e3feb43755925a92eab39c1d5609325b6f3d0b6abc4e84056e8a1b2afc674911e3e5e65d58b7f60394841e511d76cb47544cef8879c1fd7d324a6bf6ff73d827d9f04b135a4f0bb408abcd1d752bfe8eb9947f48b16e01794e3a0ef999a4ea53b24934af4ee6609129ca3087e61a45e9d82a8b4ca182330f328d7241598a2c6b076f8af679bcc8d524901d43c0c8a38dcd3e2b385c0561cb14d8f4b5ef473fc086bc996900f36a279548adf0012174b7d04d27b217b121693e8717e950174f8d0fd2887e50dcb03779343805c071b87966b3372ddc266edffd988cb5f07eb97d486ca0eb9539f84397406083512fb20013e8a241cf7a087b228b0251405bfb71cfcbae32811d1e366a4f512336d627020b5bff6a82e87122a2fd3e3025c4c0e8e414d5a527267a330af649cf2475822064032c6483978a24f8518ec3e7feca64d740ea8a9fe359044f2d86247994d49e652eef690be2bc9f58b8953be3b0c904a2d98c3df30e2a7a88de62673c67f494ca35560e02ea5ce3679b83715488acd06d200601e78247356e56babb3c33ff865f180e34dea1b1ceba972cd8f3cd0858b22c58a7c55b6b4935117690f43c9c5a8f820079a8252d70b0d4fead1a67cd0ac00884c2e204b52664c8fa183f493ba81e2cdd14776c847425d59e57b5bdeb7ac5bc4241a79ffd7d8d677cb6004a641492717da4bdf707e8bb320231413dcc3c3d6b7df6b08c53d86b2a88cea65d039f7d565b4a89697b8225a623437e5f8da8c105ead1603d65e9c669fa09357a97dbe4f6809d3c9a70671f3e72372d8fc91431d55751620da4c8dcde34c05fa6c8a03061ce7718d4682b87518c77104ba5f7c95a9d5141c563e04983697e69f768f97505bc924a6001ee0dcfe6c3e1b736547b27faf0f2e9a858e0b4e7b9a8110372246b0c2304081ef56606110b27f2b063c96c6bd9d4879dc80c67abc0f0d8a3d0c03a0afa478a6f2703b0f80f864c48b47d7f2653e92407741bbb28783158554357ba3e5a28bde4d555a178d62da553587d610fea7221086f69c6f3da50f99f9ce3a0afb96ff7c7d027fbac51952364ea740f1622ffc94530526754b9ec970a5318987dc41ad6416c91973de2b2ed8e899d933aa34667982b342f59b3d8227007c449e00c72001ae38ca1c62fc417b6c34eb5317dcb0f1bf19fdfd07c3e64db040b81b2b12ee863f059e6d1b59c887b322d802ac5bca23a42a7d037c3c0bf4b46d100cfa187cca49ee2dcba97af1de532cce7b05642735317cc52013b517d5a50d5d7cc90045394c8af2ed7c8c492c6ca5a31dfe43614eb10bcb98a3568e7b2ba0c6e6cb36d1a1c940587273033ecf2d251e0e5441e5c3471948f21cbdd8d8a88e33479654f731523a22125ccede6eea38bd97e9ca618940a0a403459aaddb8fbc3a5a2618e7d09310a30218edad7050050add6076d661d982628699701c99988b27f8ab18b951a75c93b9a32eb82a5ce5d82f7769968d7a51c3981f71b7907820504d81785306dc8b4b9e694920ef425129ae710cbeb3aecd549e56cbe16d883fe44b3bf9845c253d91d8fd20280ad9215ceb4651004fb136163243319e9d842291c8439265ba9fdd3b7a610a7142b3e6a46312075d73b73c57269807ba2512a81477b4e8380459239dbac92696be5c7610ac8b8aa4773b94bb26782a2677a012acdbae4904b954bc2ec03a4d81fc68eaf91d8cad2c3af82b4391c203b2d1b628bed45cbe2298e2cf2af835a1f54321a6255b3604ee748826998883c4c76ec63f04b18d73529449e1a9b2f479f090275a7226d9310553dad6f4f5781bbcff713a0ce64999bb3da13df581919c0830edadf5f47e985c3145e22c8257a01582253f3e380848db00dc13116df0aa2178915e0a015f868230d3fff388f45ab35ef1e6a34497fdddc97107bfad7ee0567369d73456d8592b152899ee24f7362506d8be1fe8465f0c26c90cb42c403062aa181a924db9d10060aa7ae9c13fc5d4091ebd6fd38e78d0bdc0fd4a76eb6182a3ea8e6b9c72ce0af8dbc5a08dafbd3664990774d478f027b226dc53c1fc824a80d469d348a1f95d27502d31c96088087f804d379ef25aa9c609d7fe7301e00af8b2b3ce8c20de77dd81012fed4f2649bf33dd4798871f8e2f5ea11f05cb6ca1dec73ef316b43ba75173feba84c37208ea4567ed0fa9f50675a8f4626a745c5fb0ba2aa8f577a542bf398330971733a3bf88e15f7a83e016a81c9f529ddeef04bcc138490d3bca54aecdca2fddab7d78939c6a8818b2c6579dd635bc91c4d62b792d4cfdd95e253f51ff3f5cb775f7ad6e56cdcffc746a385d49865e9d6ecec5afc8e6a8895292c6541fb74a409fa4baca3032dc08f731001c41e281a34a34685c52367ae1099d90dc0837fa42cce2699981430f559c3716f09a1ac549c6f562a0d05cfc1762e68ef769cc6927563f25134999d57074205a039520a9b0b11033581e3da2e6ab70a50dc7bf747e6fa2ba2f4114edb62399827cce00f0304b24ef2a3dbab2f7d1086d14365a599b2325c9e08bf7d5561d9ee55a15c85bf40d8fc4ff8d68fb427a25b3fc4a5af4068339d6ae49c34b4efdf0c0374c82a12130b61edf4bc4356ffbe79c52491e67576f41c6e1212dcf1d4ef488dbd3270ede944f2b14e1951cee2dbb83161584fcbfd661aaba8f7dc18882d0600a00267428d2669b987ee9e416fbd87ac4f417ca0482f1170773d895d496c230ac70512b3b4e771193972f5bbe4cc3d7c9d7af9a174f093d91d8027c13a6ae0dcb174b75dbf334fe0927926dd42e5b99d7bba47b60324bc9b4ef85e71eb0014a407f04a1610a24043b1b97c4aa18180f3d0b50787c9812b9dff0f5efd364cea3a2722658024d22e49b9c521d16abb992931d1f6b0eaab15c318deb41ea9d84f1e0d6d0dac7e0e2fa9dafaf3cb617240efd277416e9038cedd686bdb55dee3f4c22d4c2c6ce2260efc1dbefd6d386d49a2f486fc91020b60f8110e46a5a9602651aaf9207e161c9591e1a1293c0eb9f7e60c7d695a8c04e24ca037620e091aca6f648498e9fcaa68e77aef0c10316910a5f88517c86e134718ff09f5bab2e89a1dd921b86d6ee465f225615ef0e58b36864a9f32a7fd2a343cf1d27822c3f0e9492f9007bde305acdab67ea9c02ff2089fad445bd0fa4719e9d8e4e9b4572c97da5ace29dc03c8b874f9ceb148bd6cb066e0c3c8994d5ed103ec34c5ff9b9a5a8927e746705337af56890369cd286433c059fff834a042417950d82510330f0f8f9468803937dc5c5241a6e1035d5067bc492aa53fb50ba3df43689b0151b099f87153d6333dd0010b148060917f92efa4b7d95a48303a4aee51390d1399191233ba51f54497005ba8a49dedcc36c95115e89e7aec21a40c8216d313fb445d4033e193cfd0f75075d06812a1b2597e2186a7965a4408ec01aeff02d9693092da3da352c53133ca891954a55940f23dc07bcaa13117bb8d13b67545ceadbfca1e2970e9ee6057274f908bb30c668baf6f9e40c83d13cbad5a1012998e6d3f9e0131bb6264f2b31af24c58047c9f299887e06078fcf9f9e84ce6fa2bd9ecc5d985ae0a11bab9dade94ac2e40438c366097a7e801a5b9f1a2b62a07680bd7aebd6df89e90f417cdbdea71352c8d4001f51732bd425cba7f4db38a9324c1cf4ed65a7679f48cc07dbf457aa6713965e1ada4a14ab55a6c87e4be48121af1a05cae342219c49e8af6bc2d101e11f8c63fec76b392d4a06c3f09406701f23e8428b8e3ba2cdc32fc7b434c191bf11cf641c096729047a781eec2dc17a3dd242d493f104181933e090b38b8e8c409834b935ea2b64eab671f050c914c28e8626d55b3d9f294c09d2a8a93518bfba3d0dd3b2c817e22e0c31d34db08d2142fa6501ba5f8993aa47c9eb0ac8aa4e6f1fcf7332853aad878ab5d80af44b73483638a56bf49ee4dd220512cc6a270c90274407f939ff64aaed26e1e55628821b1ea2746f2bee8ab534ba40c30273488d38890765ceb4fb10b1905dec42f457eb2d0282cb6184200c05a3c2ad25818741e8c3681d6797612a00f3e93d96d194b025f5900d4f388b028850e470582e41fdcfb08ca5f4d4a84d4fef70e49fe42e88c9f4ef735fc37bf0fb46288b8ac92fbd991eda3fb3b1f15dd127b63a98b2d671bc93742dc074e08b7e650bd489c09c1c2eb73aacc73b88fbd335cc371b321ee699a811c35e0512b9bd41eeb0e080d4ffa424597f904f21264f71461dacd9f79c88ade17958c7b4a6599c3942ebe1576bd653547284614e67af69390aaf18e36985812897aec8e48555e4e27ccc3462d1c7af4461a4328cf18e178799def3b89bba69aa25d120ed5dcf52efa8bc7ee9d21eebf7a52a9c90762a9b976a61f6cebcf26edb707802a060cdba74162fc318bb1eb0e82a62bbde0d6e54daa00ce598d643b396a1bb3788c2db258ad30834b4b624050a115152389fc01e536c5e47d6e77b8f0e2005239217bf945a895ef233a804ec09493bda3f86435a9e88d4728e82a0539c240326934d1622ac638e5dffc98875dcab7770c0278eae40f9ad22501ab854e373a2a2540bbc4359565b8b78e6598497d3e4969c0b3429cb38f7175a94dea64ef18a30632b918841fef3268d6cfb6d3512aadb7d3bb08ba9b0a912fbfc40e322290b4a5b7745e206790373157a1d0d863b07e599388444831e98054a4f651ddc8db93671f80efa2c06cd2317330243b9a8454fbe3a08520a42f69387609e3d853cc23aece8a03d2a65131feea5624ff980f7932f2cc439212146c06151bb2e78956697f8670e877627212ef712d0b10727ba69904ce9ed1776dd8df44223526e3b82750299e2fc6bace203029b217337851676b313d4db1e6fefc2f86a2e1797ae42bfecaa8651aaebc5ba9b17477bf8cdec5faf8556ead0c2d12d5f3ca9ea95ac2eb04fc7998d3f75ff7a952e6d5456a45ad914f94aeb617145f83055f79a144675c860ae51859e0426d8cab38bc8fabbdc4b3f574c3215f1cbcfff827147390056dab8fc0054b48a6380155bbed65debeb0505b8f00266c0324efb58740ff0d84616d10bc344ee7aeef68ddc00ab24796454df90fb61f0b5c8fc980434c47a5009979651828f66378e30c94df7217db6e4fedf851c99f4206f741d53b27d873a1b5b512cf1c7167a6c52e0dc99d1f6c95bf104a8f6eb85b0a4437574ba9a33a9b618a063f0e8e91f1384af78f945472caf6b413f16500c2ce5303ff827fda480ae567a2ab6f68ee543fea1c40e31b85dc46f4262a937912b5d28b0e01f68c8496a08605345c1672130ff7a9c89b3a7ab074ffbab3966280cdfae557285f784f5fcf37dac71f0f1a0e022694a80beb70abfe76c0879d18135e798740b9fde014126a86eeedea16f81cd42aed944346c81c505cb0483540f1e9a8eb8ce4dbe409f9fb4968d73858b9d78938484595513ea0faee3d764b6f7032d77eed948e33703944bd7cb6334501704443b1f541b97db8aaa3589a4649ed4b23f15d638e56114c0854593af2b49880209a2f3f24833ff4e902b0518b9ae0c519e282c108500a194e412e94533ce39f25263c48a288df007ea991c66808bef2d26bb18838d777eee05b9973f0bb62f427032c443ec48720a939b3571a8b4c14e89b05db9302021a0fda0a620024dd6eb88555f52f75bfa129939f27d2c3011e12055f3ca74481de5a64f0a9cedf0a9ef13d7d076286a7208a33baa36cbc8193639bac73cb892cd562f51aa0f597d576b38cb5fd3a51947159897828b0f07ff862a60a0b17a738c00aed3ed139ffcc9d448fffd37153a7d86ff3b76cc069b073b6cff477fe064df39994ad30ebe5acf5740594a41380bb811c91d6360f0f84b45714c3e69ea8ea1189e032e0400fad57ecdde22dc84a4ebdfc7d00128a83c22c2ee5abad031c5f39b78bf5d00a46585b4e60611132925711a7764adcccf976d6aa3c436746e8136bc87a7bab00a7784d1b3bcb089361770e00c9cc9df8bb14ccd52d1684dac4c7e9f0543ccb05255bd44da6c7a78d7c0c03974f50bd0e856456cb0b23703e72b293207d0deeefe1fdf654408a611693c1105d74cd8adeb23ce44c3338316ba24c782cf1690b47d966f130ad2c03715255663bfe23b95a13398c297a6458c79a5c1ed5898989f4fe5ccf6cd58e3b82cdcf940523fb87f3f0fa342e456bbbb463b5592e2c69c4a961650a629a1f404a11e6175edfdb56221fff6ff6f4251e8d99e66abfcccadd5b6220ee203128d80f963175ce0cb601597310c4199e3f43fa35725703401d31e68150bb1ad837f2588db791c6602c4f8b7dde4b1dfe9cc3dacdb1544bd0df9f8175a6d2962407a169482abeda8cefaa1ae55de6da713953d025f832eff9f2a8ea70f1a89320ad3872b4e6eab2d4afb377ed3824947b0115cde6c30246cdeb11a458091855f771b696572179ed45c0ccfdb5c8d7db6900b784df9abfb6fb2860be875023dfea178966a6e40fbbf98a7e1c1a4a6c2159c789475d1d4caa54ef0fbb3d263390d82b329ecee52a9db295860192aa2db9c7eb1c4d49d2d6fbf0bc463e284af0ccf7a5d30ec0325446d8caf91964b723d8113914c536af082c07566095d3b91203714d7278e8fa4ac0799acd5cbfddc41d4327ef8f735c0f3c1ddde3735412c45d2b9f43db50d425faf9e6c49ae6da27d3d609589705b83e91b077a4dff8e2705311417535dee3910962414692273652e6defea41a0a30a7dd9b961f24f19df773f8d27b3f9a5980c259d34e2689d5629e3eb47bced17997fd9660b91c2cc301d834daa83a2f67999ca14455b21174211a403dfee86d9ea15d650e21b0cebb45d838d8182a5e5a2a99a54ae58e66f47af7529a6b8c558df13cab30af106068d5eb1883e024505440a06a4c5b9786de61153aec3b4ec6dcbeb153bbc42abed9391ec90bffa64d887caae74d6aace6454713914152910627526e282252f869688187a5ce199483e493c2aa2112c430b21b0bc28cd86666694a88e7faadaf6094e74034a550f89c3cda54936bd6cefc0c44e2f6c6bfbf6f8a6895520a5ca7ef3eeae282158242a278dd39b512f749116466a82a5db0e67fa4b7491ea2e0261ae7745d0e2cf38799f231a949d45781036de19d53b97a6e292ec9e81d2ed2efe3302c9412bbee74012da81a65ee2a9c72346c53de3735961bd1870b1d73b53989f05601354c5045e1e04be0c56205e19251df96c99e913e9b43bd2b81a4e883e746567aeb1fb29afb624fa19093b926230f84be1ca723525909145d73410e585449a5f77b68c5aef38824056d6a2bc37d8b0a227b26dbfb5dd1a21a4914dc8de7b6f19e00c920c8f0cdae1bb52eaf037a10e3f73ea0eefb9c01c9ec6cb8fd4fce2f03591656408b84576f12335cb1ccef88793213cec9b96c34788b3e3105ad25958aa98c3df882c1d58310e8f23b2641c7e876ced1c1ede87c699f1ebba9d6b647b7f14f0edfe24e04224401342886b1b472a59d3894508216eeb28e02680c74dd70067b940bc747b9c740f707a65b4548fa30cc0e35a10b7cad5f503f400c2003c66bcfc82b46da56db3db66dab6d3b6b16c1b6adb52dba6c9bcdd9f20aeba9b6d9a781d2e4ac68d995143c6451037886ba5161ac4ede68106d1992eed82fd3c7bad36377a77c85a89524ba989d213a52c94a2284d51da4229d5ae8d5e1a3b6e778d2fb6876ad3bb5b87acd54d75751ee3ead07117b7007fb938ee72739c747f989173e028c035961f72e028804e6641a55a5cba17986c535d9cc7b8393977716ffce50ae02e7700275d02ac6e0620801bd750041880006ee0dca0522d2edd0b8c6ab4a9ae8dc7b83ef87017b787bf5cd65d6eeba46be305a0c5eae15aaac5a57b81517106b069b17ab01180944bf702a38a71a16daa4bf3181700d848fd101ee0c900b88bbbc35f6e8dbbdc9a932e0f9f21239fbafbd3e3e90471969f206e690851f317329acb8c19dd8c192f3366c0cc98a19a312366c60c173366bc9831a36936216e1057e3e176d7d4d8e1d2d060315997b8bdc80d666e2abac55c9b8b1794ea701d626c6a8c19f433ae75707b919b6a6e317473716d2fb04d46460c1c3d961817351ab7ddaac3bd1ee35e9781652e1135cfc0f1215f9fc95a2907558c8b1732bfd86ea76b7a7751b88433c9747a966b3026d34c0cbdb5b82de985eb9124936066b9905ecdb46d777498dbdd09cf8c3417719391dbe776e986af2d879997bfb86017b79be6a51bc1703d927023ac9d367bbd6f77f5d1f54eefb3a66970f5172ec70ab7f562b81e49b2772d7aa78779e5510ecfe8d1eba2c6a8324cde6eb52fb99b81114386b79a816d3a703de8edb24bd660367a5be84da1b2e6629371ef92c34d77e6a30be3322c39c6cd11e22c41dcde1f2170cbd5ce7504dc96ab9f2070f76b308e9a7997c361f0bd06e3767b333960ef35be2c5f99e2da34ab193ad0a0d9a146cd8b4de6a48d5e5c226a7e79b934a277fd74674ab773b9a6eb10371a72a399db0e74ab716d353ca85ce098ebaa7b5d9331e9408366871a353c00a0bb4d63db68b66d876dabb16d35dbc6c3b60160db02b06d77a3b74463c35b773b6fa49ef168b8cc7c693bc0ad46dc6ae4c6c3dc0040b7005c9b8d1e5c4e332f34f275172f95edddac56a3266e3cc80d00730b00dd6c5c5b0f2c966e1a964bb960515bde6e65b931dd25a2e6d3b51ab8f1103700c82d0073b341b71eae8dd53a99eee2e54b83b1d1ab658d07b801206e01985b0f7463b5b0cd86ebb171f8ca646cf4567ab1ccdd19bd6db5992ecb4f574e35b12ca72fb15cdb81cb51c26d5900c0f5489259606e8e05b75cd834d7b75b63f4ae932e2a7ad7ededa8cdb0b72711359770355916dc5a71b3919b0f73bba11bceb5ddc0360150d34d2c31a7eba65f6b0da056d2491677d390ae8f6ea417eea05d226a1ee16a85dd61c6ca9341434305f3d2b9b4d4a83a5ccf90fb01fb7578eb736476e5292672c9da2342a089f4894452083c4a4640598c80600f4422063006f00c31c805162e096a2b64ec421e9e48f4c1336431026a2b62103c430c72c10848fa9c40eb996f06d00828b6209da75958c9e5c0eea337c262ce393ff1a8288b19ed881c4f933c86898e472f6a47d4e489fd4b45c1439ef83c2db0a32bd11b4591b1f3d45a6356397e0494bf541439fe5be53a274dc3052e287908c4165593e1e808d908cc5f2a0a1e32c4e76981fd309e1cdfc5c749e48292e1e7e3b1be9933804c906d155e7e3a319dc85f077126d43450b05488f2340dbc4fee1c5a2bc12c27c6f5c0701b418b2518659453ca3927bd28a5f4baaeebc24a946846c9f0d54a96b2896c128362d0952bd00974d2434394c8723f640db1be8ef8a670d062cc79764bca6d9300f5e2aa75f1f0f0f0f8d45cf39c335e7af80ec22492a045155630f179013f843cec77fdee57f8fea1cf895eb4dd599d5b07165ec6e8f3991833338f31330361c08001672084331815bdb8450fc67362cd8cfc4c133330fec1cfe0ee12e27739c280f108e331aec18871bb99c744d64c8ccb1918b7739c99c15fcd53bc21c382bc56338b6529ff5dac57f20de12107e75574751dbc6e9122a227e33c52441127d8cff33e719c4db0327f33771179af0888273d693f4f9ebe5ebb28a534c33fa333093282496419e4013ea2279d20bf43bec7046ab78a48ac6fe67ba4173d6923cb22b2d518fe19d1889ef446427090e84de8334ac10bac58f1c48a28425a7c342916667898e112281c02e0e8f5ab19e6305fcbb57727d2ad46baf5a5cbd5fa97225b37943de9b268d84602827be93991544995544958658024df116a3390249bb00664320907c9a5dbcf745aba1cea25fc0df14c044c36bd74c821c09e8449e7388ee3542cd80049b209935e3ac9f46e6979c592e5b0925a3e1209b7bce2212d67c1435e5e4df708cdf5a5fb91f0119a61cebdbc7feae0eb0bcc7cc59fd675a5cf522af554e9dc35eea66e8a748ea65e4b279d4b7d9ea65e4b2759fccd14e44678f459b9cfc81a9dab1c573fcf3dab5cad52488799f4121e328a58c503be74f812fe46793464748c343af69ca8912e078f611f99f097249bce72edfd8264cb71f893c9dc4b4795f027f3e2850b1731312a150ccccb4bd7b9b8b4b4a45228140bcbe96432595b2a91481cb76d9a361a65594b0b463df5d55cc232074373c905067f57e6de75f8bb72e9a9d2db057f33979e7acbeda649e16f66eea8cb429de3f077ba7de9a8dbed95f0a7f5eda53f91aedd4422c163a463f81b9d44ba1ce40c90a4732289843f9849f6b2748bbfe752cca5fbfd1063ee8dc343469f868fd03cc2d8fb167b0e927b086c8b2db620ca47268f54867f81a824a49452c238853e3dc45d67ad073f133def5ef4e094292584efba6ad1efbafb56b61a0a424da46107281001138ed049f2240a29409103292861680a3afdf642f74d5522821a1dd27bac8e7c7f8bad4804c43f123e5e545ccd5bd2e78c45f2277d3e88901d20a9cfd028e13a49a4ff48bdf41fa45b5cc2a9b78e901d20af3448a99a22ddd6b96cd59a0a226407c8287528142364a76f7a80c856eaf32daf4895d08de8cd4f1c750708f4396cd2fd833d704913b55ceb6eebb8b8adf302e6e5d0c7fbac38c7c6c607909de80931e19d3443f2f1eee292fec21ee696b40b738ceaa9a30ef398db3ab706c3d5bcb60310a0ea2f6eea91ab8fa95835ca4234cd3cbd41120057f32dd457c87327bb8e1e22bb8ece3eb0d0886a847754a963cfee8e12252e475d49cb61aec98d449a91e7fb3fb055f5980349ddc5ebce8ba72e9278eeaa8b44f5d48e177747aee65dc4f4c031afba4d644f5d24f2a49a7da48e924fbd621fa8c36023e251cf89a4a72e77d44d1de6a2849027dd873ce9199659bb128022bd6c6739dd84a2dbbbcb72977b7acb353d75ed51b7c4cd701748e9347be60e4b921a532a90b226fb7ced568d3166b7d2b0f15ef72322236b1ece4ca426c7dbf806223555661e291d506107446aaa6821ef2577cb9cae95e29f0b47ab26ae6a687c3543b05007f05d278533569185c4d504a2b0f3b84790c88af887c27b45514a5fab97248400b2fc4edf60597661c8f28a2cabdcd1237af218c6113df9e739c506911722bf230f44be5e2f7a551ec84e116cfd74c2b65c5daeea3ccc3e6bef454ff2d02b79296b2aae81c2ca9d7cbddeaf26d7388f11a9a13123c57e3394684ea1a978c0d833b3698e78abb56fd3286b02bb23b2de23a69f7322ab6bfa36fdf73d211b4c91445c426546ebba237af03bd1831712579012892c0c57aebbae5fd8e94bb70877b77935ec1289132882c58444efbe57b308ec09b91f9e872892e5e104228b1e5e0891c8ea5c93250e12bd089bca0362ab87cde13d780bdf2dc9220dc2119ae511cae33c3c3c3046c176ddbbbf8be9ba9877476d9f690979ae28aa0115a04c3901d1508f15538a4869a59e19e5be84504208930841e3e028a26fe4a5a41ec35f6ce9d0ab88f300d881bef9700290e371c4557d00c4814074ab46afe27b4ad3c47fad051d38e2e71161d1fdac7170c01af19d71409c1c58237e3e07e2e0f8010823e27460f1b0c8521df00811217d536b36d2368e847106e0891e76c95d871fb858b46faa928f9b91311553ca9f97e3dd9a8616c1c2fb8c9a683d336b6c551e1e1e1e219d68d3da9193d3ad9a9a6e59b982ad96cdc99c082f9e2ca1ec1b52d6a29545444f3ee222493a8d2e6187e8567791be99f9c687367c204b798d462e0791e8490933c5423a399bb878e214a064780b9d3c891e13d1dbb1235b9d0dea82baa00c99647a082f554074b2b52357f010daaecb504726e1d1e9bc1d720569c428bc456f8350661520d9ed841c73f4aa619421f8448e07126468686808c627704913ec0910a57c6126b295ad204343434319081790900320a12550a8526444949b0aa655d02a32d4b1d2da068ab0271f9b4bd8dc57fac6872504dceb35edc4f5a84d13cfdda96da49235713d4ed986ef28bbcc19fe36b015d92880299a8d4623c7df084f9c204ad00da248d1051d1c2a00c2104ef044080727d089ef0a978043abd066da63cc2ed8ad67e499dc5758ecd725acb7b245cab4d1eb9bfb417fcca869b797f4d2e5be6d8f9c0f7b1236a293ab7afbc8f9289dc34658b9aa2f3dd6532dd88f46aedf72e476b36ba3d1878cde55727ba1e221353206b2566b71d7d8837c5f7a8028479985958744a04f8e4d06ad67a48f798a8da0bfb011560b37421daa05cb85431c681dc3f6b552bc5661b43dd4e307adb3434b3fe7bc91b93d1a35d7e8fca6a9e67bbe9b9a97bdf155b18b7e0a691dfb068350aec322ab1d1659fa9e3dfb5f5f61c3d09de1dd06ef03f005ddba04d2372c59d61ad89fae071742a6df8f703845a6df64f1b263d83bd912229b05ab6042640b2e8142110c9484bfeac915bd06a78061d808ccd486d2f7881e3d94ecd337317934faa0933c822f181d760b2ee915fd6874c8829641a6a7565898b1cb0824a5c43089d9c014d95944e9bb6f96bc6fb6d3ef882cd802226fb784c8afabc8f277d23f1e3e1fb60b2f7a20a774bb69a82dfe643a12c5462087e9e9152c2cb250c80af68355323d7c156825b6601550284aa6a743961e3a61d22c08865641b36095e8d1be199d66a72ca74350327de30f4aa1f7f3c02004abd0d1354dd3344dd3344dd3344dd31e3395191e48df6cdae1a17c623749af7b346afaa6fe3ac925ac1cdaa3ef9a75162d87662d91a7bf3c95b4258dbcdc38ba952cd7c3347ae30c7b9884455c6c618294524a29258c03d017884a95884dbcfcaca9f1bc3f1e203e498410085abc16ef9c829daf4dd38f078879aa541477e724145a40eb86dd1659f206775234752a778c4b6e6c43de07ee367d833be5fe0920d377dfe8b1d1e1f01657f41f01327d175992bb922646daacd845a7bcb611d72349ae9a36ba84c7ae6d1a4aafe5d1ac97b9e26f0319feb0c9bbc1ae434096479f7dd34d2ec785bf1df9b2f1faa6a3317a4dd3d09fdb381d2a4db5611e326b9759a3b4468fcebe51a5720bd6e9d872863b2e073d8dbec94edf9fcc1866237af4d9b5691a7a3a053b4f95d46e9a8f66cc236293e395bbab9918644bd54da306ab5df4a20755b13df8cbbb52d03aa22096c2365b28d8066d76cf9e3bbabb714ef46077376c1a88a3ea29a85091b18b6a9a1851f0f2337771051f3d9b1e393876440f7a9e67436234a287c25028a18b0931806c0d0c183536306a60c4784eb4912143c6b5a9b1510323c6e36d62c888516313037fcf3030eaefbe06fa5e6323f1b44ae0e3af207b26c6805891fc15636465a05b15d737c018679caf15cff899777f55c3b465c5938afde0929de8c9cf89092972797becc0113dd91591ad79c3860d1a34666662cc17933fb824cb2bd8af898476a490d0d504ad539a1c42645d97a4cc652d6ed7ddf28baccd9e304e3931d2fc2d650de66679b98ff1d86f34341a8238b01e288852115943f4894889324681fac6468e7409a555723c85429744ca247a4d28109d92a5bccd89a82b7d5384ca22b22426b73ad2b06da34b644bb5933dc346409dfa243a1a5d4293c8cdf1a819c33f1965a24397c816aa28431571a8222054d18b136a50020c54a42871844e4c72032c085d41a8044980030e74e229100d6a0ea3532e1a8429d010ec578172fc25718ae78a5a1633312c8c981c196f19872143c687c0e3d891430e8ff10f3e67470e8747400e1f02774496f752f74f2643f82243e822431893a196e12843980cb30c2196a14b8657862d19d20c53197e4289a329c353c66e5c0ef1e71d5ef3ee8e1c1c0d34731c393ba097b343063e4675d183f108b6c6864d0e8733cf9979fc8e193cad9226600e3836d0573383a3c74c8e35706606dfcbbc7011a38279e95c5a52281618c540c509de046fe14bf0240e7e83d746f0d9456f849710420942ae91954406cc9ea0e990b9a59c524e18adedbabe501c34ad042d8c32c7a41756bd9079c149d3f4b58d43759694056dd2344b9ac62e61d299b2385135d88f3a41a5648040d34a16568917942ab2368db5d1af89c1e8557d5044164554b91c9b93182b2d2514560ee57e57b71e242c678760bf67398499dc2f713a6272c684d2ecc23cc2cac330c9dd51a13cb30b41540855017d201768162ccc900bf203d3070a0b878294c8d80d0a0afae407600da68ffcc0f4a9504c1f0a34bd30abd428354adfc4a6e9ce39d1a314a314a3f448f4a21004bad531e56226eff8e81b4f0142f46a267f312ed97e3118562bae465cc05a5f0586e5c0248de8a263fed9ae2ffcc1be09fa01d638c61047b65a721d04ac11ebe123a53f401c0330418a1c65a6af5bd3c01b00e2701d04c489b09421135a087b4becb57239b0245d4790610af017338cb469600dc89d801ec6be20ad428764cbc31fb592a93744b1c894525ab15a6ba573ced9dd17a594d64a29a594527a8cd24a2ba5b4564ae96844693ddd4129a4c7d137f05a94adb76e3556d883526aa39edea01427d3dbf44d3d3dfc8cd0694729a5d829a554524a8f51fa7a7d507a4a29a5f7e8e97b86e22125225289286387760836c66b2d619c50381d59aed71a0ef6fabc8c651a6b3bf69195c82283d5b803d09905ab1a026e91ed53b9253787bf1dd92667d75a08889a479f59b032b7cc167f1bc8a3e7c41d1f7d638f95fec94c2a9d74c8fdb0e591bd94ca1432ed253af4d1fcb510111b1ba3dbe4cfcb5accf46a18e36834b34d4261b5d16876d7ae1316d96d66c18eb86f444414595562cbc78e14e0c53ea2577039344ca9442f7239b46bd9f5d134d8e105b280ae81e1285823f3c7f421d9326135e7e4181d3b8fc6e9b1a36fb22734d0e85f4f91b1e3e89b9145595ab71ae1a8870d1f1a87882a80c6c98137b07f5afe6c640c2763b7f9cce9ed62a2879d0ad9510ff6d150df64c7646949d360a750b0d8b32b859a06db891e76787d440f7b7681401c06740decd8b190b17f8d848c4920539ea6c11eb17b34628b52892bec58c574287ad8898632f69ec1f09012d1285a2680bac0240a3e42528a90b98a3ab28c6cb93b2833e5d4439b61e7b984ed74508755a0007aae831a008a00391e9aa1c1d02cdab3458e6cc8f15a8fcd0199c85dbe55aeb2c33c898e2ac3aa067430a967b8a57b129d97bbdc3e73b92f99cb8bc53f2d6fa9180641a0ee7a29aff346ffbad6713900e95f7622dc55405c49f285af77beee10d3af5945f4e290101174e2038be015222b255864a1157b6a066bba13d6b832fc8d9edd62080483a6c0fc41a02f492e61086461903d84f982381fbc70c8e7bd608dcb4228a65b2da66400e44e82164bae6b6330431a72fc8468a8a15dcff295e9555d6fa02e1c9167cf664fcf3eab648c68fbc7f249f48dce82a195d1598e80d187b0fc7400ee19fe58b21cdd7fbac32ab155644db7ef0c3324b252e22651e9704a0301d91bd1b381514a38c33fdda1502704854c183e81e193e85133d82fc9079f1c60c21ad727be608d3963addf72e9d9b5d2854ea257fa074bbfee77247fd7b37afd70dd3e47421f225b2e61e804fa1001a1152522a8d169790a671fcca30b0b5bf10feadb854455a0955a6112d18b49e42331ff741deeb89a30300936eb00b45cf9eae13abd98d6def52264abd4abeb515e385a254d645804d78156620f552091914954c58a119a97e423314fe041640b85b7b882873145d78d95889ae935ecce5ff7b6216b11ca8e9304afb81a880b4599cb015befa09a1eba8a4e3175456b1a597926cb5f9452bcc19a65f5f48397e94872d775bbe8c951111dc38e8c9d8a4152283272360c768ef03432337689d86cd48aa54c64799be5132b6c866bcf28af0de37a6c186700dc34930a557839117db2fc623eaf8683c7461fbd8f8a2dd844ae5a3b1a62d124bbcc9a6439b7ebba606cf5582d72d8a1152c8ab288ac7a78256bdcbfc893e5c82663db3bf735bac5db19de1f6e3bf69961122cd43007717c121d2ee29f129631ec357d63934ba46be54a9ebb140cb675482f9d8b4da2278d20dd06454f5e335dee767308b01942274e36d3e5a0137b9bf0417a091b21a98c81055be890f0e54a3e09fa055b7f5d977a21aa78c099639657c43fdc2f0d6a9195c52c92e2b3f8f8d81357f2b066c8e588d7364ce6d91314afb48285411a078bec757fb6d30b396c84e698fd484149864e9e4416a4024a6c913014ba64a655ec1799f464f926b1b57d26c08240a6887b73f148c41677f9d8c3d17cc1b843b660afaeeb5f5f397125bf43e228fd7b31655d2761b7362c24621c37e8bf1b3a3221b205833af9a0a018242f1824afaeb336432b72251f310cfad9a8b82e0c852015d1bbca307f4126593e32892c2aa5d0ab66e52b5768af5bf90a1382a2273b7f300808961cb12bfe7650645101856ca01369e52cb9a3b062099d8abf6a2ffc759246eea6b9bef91b9145f14fcf5bdbe52afab4b0414a2989f4d090d65a9b48238f85be6ea32cd92df1755d57cf8aca1313e929a3484da001691a79655c0ed816482c123df9231613b1c9f2822c7bf91db295ba349201892c23dc8d1ca9d9025d43fe489731d034b2556402b155048789348d125a38207d43caf2d748d6c29de53f5247712a2158def21f2c6f49fd07aa05777225edbfae74d27322772db49884bd5a5b3a34fdf493e90e81279d64310966fb120f1510a5211ae40eed752d6ea5db19e29cbadd1b3bae00ba863c768fd84c80a69136145316581b6b8fb4b2b7d843ac5198503ac1c29e521a4112b890e11418ab60adfd574dff2ccbbf672ff5afa6e5392d37755197e59eaee9da8cb600f264230c748fc39f57b3e1af264bad8172da8b873c3d2589948cf1c4581f873022638f4132f658d3537a4aad405cc4a6008568402bf6694b56aeba6bb2e429aed1935db0f14de9e7253fa758fba132112f4b2c89a0750c8b9329edc668d309270d4abb60e9630be3e1e1e121820e7db76da05e751be66d340b635dc7c939f1c2eae73ffc93d1aca3f88111f294c236573377a0f54ccc8cec06d0731d8d068c971c10a55cf3a3619b1bda67b8bbdd96abecda6db9cab937ae0d785bc2c89f03f27519b39abf08e4eb910382660cbf69e23569c444bc1c69c42a1e8ff8025eae99f234622b2676f25d6da21a290fa4f0410b31b145597e2e1164024de429d0ad1d64c8354d23bf03c88a2c7db0b4892400e1111087046b2889ac79c9d3b9a1d190e51bcaabfbeafe9492e7e74cd3cc39af6b5e17a59316e5ce210985f40751b821880a4c5061ca8c1aef979e9f0c188db3c11ad7a67e869e40d39abb2e8803a36bc0f76a7ec27fa43c3f54230ade12f284f2ba44bc7c01c998690636b5dae46913679a868837c2970a7eaae07bde50416c93b3c47629b0f09f25ba7650e3c9e71bb1a51d63414d7e5de589b2248a2bf91a85adaf784213d8ae57f4d2e601915573c52bca6de5cef628fd84e4eb2b225f57f61ed1db215b369c8d0d1ad19315069606cf8c024aae93be6f67edf1eae8cc7d1ea175a9c9768ccba17d04731cb5aeebc9aabefbe65aa269eabf1c702e25ba467d1f616b4b51ca577414dd0af25d3968271a8a369c210c9d156c14ba2ea1fe1a82b966a1715a0ac9a049255f5bc8f5b589fd2c9e6bb0303f6b583c945cffd5b42e257a8561239af081fdba11dd9534fc808a0e86bb9b58605b879a20043e3aad0302b9c5163a4dc47fdd96bf4f8b4a227af5823ad855f9b88c50c9636ff9856d5257e52365844abe055328497464904db65dfd753db9aa975358fbec9f97312591758a2c96e9d3abfa79845cefd341619dc8f539c8f557159b2f2dae2cae29950a5b45ae5472fd5ca2e70e7afea02711727d7d81ad39aa0b2c6cd23a90fb518d3e97b0f5a3fa6ba88a4b896e5121b9852722e4a1123b269647c995c5776171f95429d7948b8a4ba3344da550046d21d32884465888a87361da44ae2a294f1efb51a126b95e16c17e748b5cebe9167d035b417a553ff157e916444da68f8d56e4aabeb6e008cbe5ef1c10ec9713b9ba7ef9c855954e3ee9443ae99b110d818d908bd7e611f6bb7c1050fa374fbaae07dc2174740612bd7a1e253c84ac4c2cfcac4761d9247a9505d72ad1abbf381d273c4b57cb1ab695ee2837d74d72ad42d1ab873cf98b4d8cc091742257f5b58e3a4b27f4953a3145c995fe9340d7f4914e646bfad49274922b69f4e92359f057472353b5783a895e25ddc94414ec377d723d13d38946b91ca449924eb0f423b0f17a92eb377c3111bd7aadf1e5d334f522d0e2bb4ace9e136b082c8cd7a0c040415bd978c9349decaa7c60cf8e61dd92d12b7959a25242fcb9d878e915fcad147f2e39bbf5dadb9530dc72058734d08cf2081a6cd8b061c32ef5f56184c4465c5ca80214f14974121075a207248464a0355362f5c213c698af4bfc751947febb1ef1dde245edec3a6b639ddfa237259c6269e4791af6c2465aa24c83d6dd90d4eaebb305e175e712a2276908be2087d7ae2b9bab41c0ab62f708cdf3fac9ec1122a0a20915aaac90e02384ca10851dbeeb9beb12a6618576e372bf91e04314e7254f1f9f5d18e5cc18c6f03725f688fb4a15d878986184935e58d3a03a9873223c81d6a51c59ad96ab899355ec901b8df007b5eeb4ecce4e76b2de19bd9a29c5f2755d19c368ae35cb641e8d3619ebb66d19e93accf5c2b0eb5eb56ed7a5d975e7486ad78ddb75c90b398ecb48d72f659c92043358a1d07a265e8f524a2a25a5d7bcaeee96f06a8853452942d60ef4e25bbe6ba217e3553e6ce916efc85554f9b01603a936b0b23ab14c48a085255e649d9e622fbefe78a43b83c0069d8a03fbd5e478a343d2843c0977aa1fd888243a246ce52ad61b583a04c4b2161bc6383d9021ae4cd8243a4974f2a55d39886c95dacaa66177e6895dd5c44610b0e33ab2639f99e6e680c88ee1f7d7812c21eed63a0244d7865d49e41d22553ce887e124994a3cf1d70120609e4d731de37e9859ca9c23afeb6e6fae3e27da44d6f6781b7de3a3876e2da057b1a6fbabc95cfe6a72c43b35b0d9d7427509ab7d74ecd6dcb1561ba3bd176d6aa2576760353c714de936b618a5d825a57c86d94b62d78575506122a59431d219634bc8b345531584a454a1a80a54602a4d92a0d224895290a2d6ae4d071524b4b845acc626139bb576b784758babf98e1d01a26a24dbfa8694e7777c4496fc3c90c882efe99b46429eaf36b023ad2a61bfe70d153dd50feea4eb1cae51fd209d3b87917027611bb99a6f9d897df81c405e0504fde8233c4455f3085fe02b228fde4023ac0262fb8687d06b18c708efc80f98e76e90d8c33c36bf80ae31f14e0d2cfd0010f214e7d8e8cdf95aaded84bcd7e4ec983b950616b5d519d878a87139b077d6b05ba90e2a4c2e2e4796516992719b0e2a4c72867550f1895e63b8b326af830a12913577e26a62b1859a66b1a483ad6866c1d2f78742e27462d99a446f4e6c629a945c8ee744c9e5e867f376fe79794e942fcf895a9661212fb9af8db6606716ec9c5c8eec73e2984fb9b3c0b81cd9e7121663d2374efa06e7fa4b8b583125b9fe2aaa9b505cd51755a069ea079eb8e106b9361a72fd87cde083abfa0f6b8190a6a9f4cac482fd36a22b4a6cd50b689ea1e6295822d1abef3cfaf6d65e24d32b7d33b35f55e2aa96feddb0ff6cd098896943b72ad0ab7a23e2aa1e3ec9f5df65e546097f1791c5df35d4562ea1b67205e5cae1af0a699afac8fd3073868b88de46b41145af5e8be8d52cbb1482cdb85f3c57a2574faf10e512e9f573c8924ad6746241a5aa88ad97d76fd5cbd9b5b9448faccf7044afbe08203fddeb677478095b84e4f1727d11d9da417dfae6e6ba248889159040091294d0f9604fae2de7619ef80392339c13bd7a98ab0e73d5bfe7eb46e8e9daa6d56ca46d1c09db4a5c8f5fb1d9ebb5ec9e548fb930cfb298c360238a88e9aec24614e9845cef6eebc4dcd699a70c73fa95c81a723a3dfbd4845c7763a269ea4f7773225fee0625aeeae7dd6e707f72bd9c54e143c57bcab524d77f3772662367ef99d8a257bab7ae2871559fa17276d8381b51d7a8cfb8907d469696b3d7c83a7179de3b3728f5fb21db9e48655876a3e59f9733d4bf9bb3979cdd94b3db88ad8d48d644d67cf64cb2e4ecb56f4ecf700a6f4f3cd9c2c6fc6d4f646b1392ab9abaa2c8568e5cd55717fc59148e827a0bfe64f2e9d22b4d53cf93eba1cd3ebb907d76e1742984d3a510ece9b0c806e5ea23345bb40dbdaaf8bb98c8f5292c94ebd524cbbc9828fe6a3dbd82dda444895edd9e8850f2e9777be26e4fa2573fadf06d4f727d4bf6cd49647d31cf57a09cfd23027df2e6e46e3e59b031cf7f9b4fae4e226bb25267d99e882cfafacd27b250af3446d988be2b0ad15625b62e295794e8d5c7fc5d4154cc39e71f1059d72f9f5ce5137b31115b34e212d9aabf7c22cb844abdfee2b9944416cbebaf9ec86a79fd854464d9b071d3512dd76ea98bba5b14d942d547c9f5db93c83a41391d9e9800e99b513ec57c3af96c4c54fc61d9bb5bf44a2b91b3d337746beb89597645e9557d964dfc691711ba45afc855ed2b4a3ecb3f7a856eb4466fcebe7665238c6341a15028140a8542a15028140a8562e14698a75dd948db3852c966236de348258b6d948abdea73222cb2d93c12bd7a219185bd9e4891bea1afad45aea373acd3ebb5110b0b0b0b0b0b0b0b0b0b0b0b0b4b3d9d4ea7d3e9743a9d4ea7d3e974c26836e706e9893ec345f59db367f533eb5cb38f88cde4729c2e24b298f44de7fa23b1d53aad85925c91c8f5140b761e756dded4b5e628a557b05df4eab32221d1abf44aaecf683dd522b688c4557d9d5848f4eaed87f2ea379eb6823abd446c72a4f09644f4ea7322ea6e4ca2574fadb027bc2d895e3d0bde7a3626b99e56c17edfd693eb85c856f7fa2291655fbff14456ccf59b922ccbb23f20b24ecf4e573eb15ef4aed388ad6e7bfd8cd737da2dae8fe91b522932aeb5676736548c1887818a89818a21e33931c6f3bc1b8392713b540c198f8f9121031523234674829dc156604fe869cbd8f410edc9730c163e81c18c7d56ccc29abe817d793967d7bed1b2fc8435e8964dc7186343215cd7f375d993e575c9272c615b0930b8923f9b3c44afe2bf1a957c3f3bfc8ffac648faf5102369c247bf1e09ccb2512dd2344dd86f436ddbfb3372e29f984eb68040dc710504f6142902be753428cc99e529bffd478cdfe291942ecf7d6eff41fd8774fa049582c2249f97b7ce867a416d54ca86da509b67bb1d0edaaeb91d19152d5d15f56c5037ebb38fb04999a04e7c8e958682845efcf35cbcc068a8cbbd7449aa520c942128b2d53a344a9e53c3db9c285b45c39edd7a8590b72f4da28ac4148fe47479cdc545fdc52dd10bb3cc6d426ea6db3a261a25daff9037c9dbcb23393dbe75e0bc2623c53f56075efa848e9c73fe9eed2697c3c8b5514e55ff43defe47fc76991caa1d8e747a2d37e2766446774706ebe8513d10797b20f1db55d95fbc755c5c7b17ffb1fd054662fa76171849133e4c58957d7bfc762427accab0aa6221ece57d6c8fb797dac671246a3117ac85b25c755d0e735bfe7253b717f5ed965eeab0128e2ba1522d2e2cad83e22cccecc18e1225a46f3fedd89b6827571b8512bd894a5263cb19b49e693c291405b0325e9118b5458f06166200da983c13571d5950a74efc0de269915082166bccfbb0d3f7edb03f7f1d8db766ec6cd3fb3cef163d1d6c9109424064743ef0b0aaa9b93545b4b8f26b9ae8557c4f0d106a1194903f1915c32713f648c8a324b21af6744f5674e5e682f8681d5828944590dc75d6ca2aadcdf1b5a97c7711cd3880f9a63ee28a62217265a588edad33cffd87fc26cfc923e13edf6880ad6e28050871aed844b6b677b1046eb802e442a66f28864cafcbfe319e55d94f6f1d5a3ae93fec8974d349f490881e5aa1874235397245a1d8af81764a58b5d3451831c618ff6cbef00ecc89141172f1f0a4585e4ad6844addd67941b1f0f4f0f4408917095342bab08b8429215d90e7e592fe7b8289711897899c466fe0079a86b6e01170454f4fa751fe20cf28beb79d1ff204e1c6f82f0c99c39c322115e8168c42afe86996d92c3e1bc97e3d3ec68801e3cda9307cda91c1d74d40eb4097efac94c82c6145f64d678a93e9e190e530d4ed7f95985e824e281553a247a7102c9c92a10e3d1c92ad9fd2c79e19fa4122ef32fe2873bbffbac8b8ade3ddd699b950e8a150f824c3900926323d3d14a2afd99bdb79fdcd2e7d948a21141917e6de7d59bdb80639adb36d24fc804aee2ce446820fb6c8dadcb6d2f6124652fae6a384b72369399db0dc91d85a2284486ccd2ba19f3fb058363257b77526102ce48ca846ffc1fdffb15de6f5abdb3a9453ed742ebf7e5a122b69e29a71d20f32c9340a4d431f2f248a9e14e08a7ec22b640a859a867e3e6139ed90bbae496e6775edeeacb012fc7b6d8485e0fe03d92e73cf7bebc8f865fc87cc3d8c64bbcc6560244df8d82e7324dcffd6d1e006498f711fa4c730823be917f6713a0c6cc4f6d35b270132986aa77b025aa7fb0f97cef7b6ce676acb5dd498ab9e13314dcedc96e7705d1cdf98dfabfa2fcc65eecb61fef2022be9eef2844bf702a38a71d1e2429584270a9410b098dea79f48256b42a56e4b7a96cb7293f0c4eba4edf33e485875c96fb8f4ed3f48e7b0ea3a12d58555427037fdc7768b91d86f3761244df8b0df8ec4543a5d7448aee84d44999e6425d38d9e8b3c999a6eeb581e58d883214ff4e8e7e5f522091673688116ad45c5c6ae4d5c491bd193346ccc4baf2d92e10f8d891ec51628c6e80229ced0372f72b4dd62d5985adf43208ffab9c4d63a04c4229573cadc59bd5b7b34e63131d3d6e8158384e16e1a3af1b125a65882145744c92dc5154ef20eb9a520ba92eb0f30637687ec1ca619d87e11592b8e56c95cd2413cbae5c91db3ad90e7f4646b875ccd779db571368700992fc833b91f608efd1d7d18a253ee77ff6b219ce729c703e778ed821d49b0691a480459e4061a014fdfc8e78f4456e39ffaf922222bfe6b2df27c91c89282088b7c24b2e6fbf6144488928b889027b21a5f3677ad75c225d8141e295030591886c5f989ebbc6a920bc616683df3d5ccfafee65d3166fa787feab51a4faf8761d8bb1e2f1e314e1c13bdfa5a3314a14c1184cb896ed55ec597de1de631970afae689c8c2a25c52224bf64d4be1823bfc5d3078c130f8bb94e818fc5d39c88fc1b0ab1ed3181673af25f76a123d0a85fd6ac6ae84926648e0ac277a9189ef7a92e3f65d4baed3e393bea9427d9345df688fc79af4cdf6784c0a46d437a4c757257de3a46fece32b157d637a7c2dea9b9e1797798644b6e40cdd924bdad035c8789cd02de9c409159c64c189179c6091836e4921212784a010aa5104e5f81a826ec97a02db821cafd419c82b573456846e4d9f30f89cc1a70d3e95274809414e08a242c660d0ad59a4866ed1289d1345580e8a94a8171c9a60213841bea2d02d0a743551d485c15e0164850a045b841c9520ad7501e5e8ee7071a512d9b30485fa5751ff4a4e52a9544cc9c49b6e9c22d4d222d422d422d4f2e823afb8b8c82b2ef28a8bbce2f24f468ba689ddbb77efa64ff74f66a8696ab5b67b09824f6897c82c8269a282994530b3086616c1cca22cd375d6aaee8ea691e93a6b63806ab5b693c9f49f4cfea8951c254ff46217f399a6897f7165ee07a39700733fa8820f0221472be408872f2af145256419f9c9ddfae2b60e0c764dd67831b99a5c4b6ac7441922ad6766c3771b2ac6cad585f9b66dceff83e168d560354035d193d2899d426fd060bc123d082115b6f13ca5010760444fb6503d61fc9b47cd181359b394a74c9e2ff2e4f27491674c9e5a9eaa3c4779c2e499e5f992e76bdfd04f2c4f973caf3c5bf2a479a6f2f589caa87f72e61f4b9e8f7d837d9af23ce599d5cfdbbe89f1792dc68d41a1b28c878f81928f9111c3b8d5097626077c2ff3c2458c0ae6a57369994fcd25535891a19d47cdb39ce64df376be34cf358d76b38addd834f3d79d7306622dd0befe37fa97fdabff5430a7f2f7cd7ff1b6a3cf488b6ca83e11a7344d5f7009c5626e615a9944c6732d6ef18a6e453064f948d4372d91055b328f98fb41e696d316da72af9ea6a1125712090b2fef1723257ab80e015978288764cbfbea9027219e8ff82b4522f90831fc2e126419454a892ca0c8fae9b98ecce5e594be819797415444d6bc1c5d5e62218b26127d935d7e2e892ceef2934964912e3fa1f44de9f2f3891925b2b6cbcf2afac674f9391459a7cb4f2a91c572a95d7e6a4179222b75799a04f589aceed2e506e6f2744a64c55c9e0645968bcb5f3d7dd37279e944b672b8bc97bf48d0adcbe75241963d7802e25c45e8ab085710a888ad1a254a1551a864791a45e3d42a54ff68129cc8566dd2048a8c92e5e90c1aa73ef104ad4196a74a620bbb7285227185326943e354266fc8f2978f6c614444b2850149202b12a8880a8d8351a1628594d8c27ca2cf94e84385138d8349919f4d640be3912b79f97982c6c192484194af520b2225595e86a1712e2d600d792dc62095d038171548abc4561d8a72888a9ca26241b3c8b2488b2b59febb94443a61c5461c29b35be9c46242a5b4cee5e51ab42e605e391d57761153a3d42a54b80a1897ae3679a236a94d9ec8f205a750572a93ee8acb95ca24cbb746245b354a8d4294e5b51a45b6ea50771d8a12eb90cb3b772c19a53da51da53dd5b10cd18ed2b08a072aa38ecaa8d41d7139aa14096324b560c9b5a4ee82c24352d7527769c13c52584767ed9a86594e18968550c62208d342969fa6cdfa48f1c1a464795a2271180f96c4a6613c581259fecab04aa405119116591e1b11552a40b255ab5c54204eb542d790aff8ab5958fc552cb2945890af5c1d3ac2bdf1fec8c45bc884ccad52e24abe02e17f5dcee1117f15a846318285558acc5572996bdabd978e06b77ba98e16b77ba78e26b77ba58e36b77ba38e766df7429d1c6e1d922b795cfae290781a4d4bac0a88d290789b3b77fe2256f1b099de663abab77522c743fafcaa43b30ec51e86d0cfdcf9a3f3c21ffd15f1107a158f99e7679e5832217da227bf4a94e56b942a05284795a9d835ec1211af63f111c6b4c46640e6f8a687179611ab781881f9ab4359be0ef5cd5064b56c092769089923ae434d232f7da06422b2a8ac4310ebc03f321f92c17d13339e9888a9f08162066298b273f2f5d51ce329add8b4c15ebb95d5601886b59414b78c3226a0ce23578e47ae490512a21044454f137c0070e4b23c3c3c472e28339b7602d1834288d8c8d6f64cde932dedb274e112ee5e994e2a034b297cad453adbd5eeed95fce8421fb2d491afcf8691f480c8c2f003601039e5912b4b22ae1c247a1005efc15bf8aec60b0a50a01777fadaadedba2e6ec34ee925af4bf906ba5eb57f7534bf2e5fb5c6af5ef4aa31a974a8644c75159a1e650ad10c000000009314002028100c084462a1583ca46b93f70114800e8da2566c5299874990a328841c51c00101000000000000800d0105b3b5d9835a4972a5c3b71d3dd93de6065294e6ce6f0ad6fa916b062d212fb3c4799170a032d150a0803d5195896d60415018d4b30facf00945050b7fd700f772e0d98e762129405aff7c5908b717154577f7dee431c49b99eda5408f87688f96583ccc42848bd74a6582ec150a9b158b1c2b98c20f6ce3031033d1f12dcb9e997df8891e05481302731e01f045c7a10fbbf2f076b4f123ca654701e3c097a2ad95433dba8b45f256e8ebe26eae6febae3663b28bee707e02678d453dcff3781aecd79362913dca0a8a4cdf5d71116a57378f3f8658d6491be025a5d9afaf6cf1867266d32be3adf50c88d90da4bde781cc9e0e65364a4fcbeaf286f2b865cbd52602b672c1965dd38f30c8b8318f81d1d47236d8a60efcd4436191f1b298d109154f7672c982c54d37678b3505af5f7407c1ec1983e3e34266074689271d82f1dc94ca66a4d8a6b5153a5d4b5424688e3f7ee5cc3118ba4a409937c819dd0d2766d61cf1be37f5390cfbad6c0dee430c2af7a03178f43a1e1588e7471f7bdf8ff1bc9ca2ca27f087f0f64fb739e144b5f4f9d4dd161d0db28ac230454fb435440809946df1c21220b2a560fc97a0730cef104867413762d53bbc271009d9e0e70dc326fca782c91ba138d3100ad470080ab90479825be079b1fd2422f8695434dba27a2e52b97fc757d4dd53e38f98d584d9932060e06cffcde5f7553691642a37247e74ba0720ee2227daf5956e7ddafe361ba750d52a492d8073c28280ec278e13c317497d9b3f282d8e0a24e992d40f78b08da39ed7e956521084f0ee73731e845522f58d92ca4a16459a5064a5e6e255208571d4efd109405858677a01670cae2241d8379242caec75aaac99a8bfa6c77c5c8fb89b6ca8dd61e15c857a8161303e609bf823889fe3e01a64ef19dde381bd1ac3f79428f892c6e3249d4b95662927001b6d845be7197742cd9e3f85b1b720a2d5fef6e38217b4a62658980ffbdff6a7df4810464130beddc552a7b70d12e869ba9fb44ef2e06f7ab08a6637388c381494a74fe035ae3d177ca18fd79170b320302d6465883d039fac301dbefae55e088f7043b6334de237825bd298cd1fdae0fef757fe0a30bae2f4ee5c27aff0c61f3c1349073bf93c0275e10aa6bc0b1a619f05ae5a4ac2e67932d98b95f35c5aeba612270dd1c67c17af0ea9e752b5c7fb9d060fd8786ba634c3b27644a2cddbfe37e9b96b3a0974a8d1c1a0fd99b3a7d62f94d249f080dfcd9b83418568ddefef42b71f2c1bc8d749c008fc14a07fcf65660aae3dbd0224e36f23a2eec0143c3db7cdf81c0eea2be4d9f8b5e8b012f482575509e28126cc8b335960f8b194b6452b8be3cc0fb5a4bf4dcf0f553502e37a6d8c957ad4c5390b17305aa8530f5cb05d5fa700f182936edcb7646c1d3f0399fd2e53e1b67ebbf97e2c44a278ebfb4b3616a9666eb8654a59326e048fefebaf698832ba595fb2ce57af7c7c43589906c24acb23aa496b83af79f4af444dde5d718187a0e98e8653372fae44a09b852dcc6af32b9257b6603ee9f8f663641c69dbe641b97b82df1391a54efcf7c9bfa90908959191c9a62652571addcec63f70caf75965d97c4aac7dd3158ac004b38a515a9fa58581524c9a78e7295eaab4b79d729c3cc10fddb65edf1b7a60a60e3b25a6c729f8f8c717fcb8f0aafe8bc6e30b9d8efd8c86c394f91ce3165880d40cb2948b639761dad527911c53f79d8e52e325f28b6c21e0d94f9297c3abbd0e6cf82d4677fca03ce0ee77c7e3393b4d268cfd022b8e1c3f4adae0bb201efd18e530aab636241d1e4272372b8f23912c09fa1b7dcefa4f0162da054ac56d112b5b46afd07248fe03d962a975fe640d07ec96d83077c356f4a9f8e744ac9cd8734b79e2aadb99ae4d6f16821dbcb399ab724a80a01dcc242ccc9440f51f4e14617848fd16c0cd94dbf8672b16cb044a4c8b7457728f4d075e3f3d91a92c29f2398049d72267f2285dc84635bda9b929ff7325cae547ad6026edef062325111e79c30a5b260115fc7063efb175c61b72e4b20c88243cc7e090071e17262ba936b7c66edd1292263a83afb4664ad91e1cc14a338d2d49c45fa21e75da8fd1b7bf6936834ffb75abdfbd13b0de53070e641585bff4abab9758650b897cd5cb4445cdf42b38da5ba9871021719ff7b62dcc95fe43bf1bb6966233da4a89980cec943327b7d048810a67877b697f5a1e05b0e9249d5046777b26040aa3daf1dac64b1180e6882429454cb2166bc301017e2b32723a10c284529a81aed31ea35402b864438261a8e9fe93d85873154986065ef03818274807583a1609c1ca4ed0a90d8cf5d4cbdcdba213f56d65696259a56d4b98819346da164bf68b2e28140b000091b5f0fdc89add87cd7e5193a4506a82c2abdc34dd683379909ecde7bf4e51ec997e6c3af8fb1ae54583173371e929209405c51ef77d2250c21b8f54fdf396a5ab548b3953839d88303af5f725b7c89bce1001208de16e3242b025de680975188bc4dbccb40e628d8847ca74fc0de51c3f8758c6c3f9286b4bfcc24d2a16c7dfa525d70e5ea42a68fad72b52b89b757082218371fe218e1441659269b0ba4cab97230e41b18ef437d968d055c6cd0e80837a3df8a43d1c613a20fcd199550a4754a7ae9a4f55255252785170bb5c2065e952d7b8ada3f4e51cee626387aac6da53663b4459d6f3084a40366429cc75730ae04bc78b8b9d39b84027432ed8cebbe7702a1677821a6d47bf0de208494afc065aa4624307a988b304d1a697ccfb5b780356cecc0925d7d3c326651521c74ae857c32a232e0409616fd78db4f1fcb4b5a89cc4c7d3d1311f068db9cd529f11a4373c8c8d9cddfbbb306e5dbaa35d98907cab158cf719cf4e49ade221f822f4e55d6c0ee28969a80f307d95f840008d936b2164f7be81b0e230e5b97667c4f9e8062d86bd3564b146eee7816ca7daaee95f4c6c478b97446b43448566751d5f82897628c9dbad4b97613f8125fbc4899f4aacfe35c3173eb8a51cfc823d9e0675ba21ef9ee98c077f29bfe8090627dc5ede41c22876bd7e8221b12ea386f508192236ffabb14690548ccb36c0898fce90778a7fa06cb669304d06751c246bbb94528272786b6d4112b9961daad62dfa106e609f6065d57519a90edb7d329a3ad100003413e64ca2794801b14d59ac31c8e744927441498a15cb20938854e96963b42de11f6378ce4e8592f5cf3e8a7dd0569f9be5583b22de972d176f3fdf9aba0c4fa802c32b99eaa3a068bc9ca42259db009ac627c5a244b6cfe9ad72cb4c08794f24d482964bb1642c52e819e826690686fe3dc06bbda589114005bb5641f4401b88a9bc518194340352d04600b4fde551d90648db7aec90f9f1d111a55d32fd6b092beb0c77cffb581d4ea9536cfcafc86a53f1391d763bb6d16f7704432180e908e351fd6e27e03a40311ede59b5b2bffe0449f2f4cce9fc3ca2db985dbafd3d0adace005a21a5c5514a28a2083fbab3138d768d5405ee620a2edddab4b5b13c90ae061e8d67e08d672bee3225ba092982f3c49e4c8b4040125006b236361414dd8d4d8e7e8f2f3910b2d65d90ee443e989082a5534f6e8a7c965ac015ee298011e2e687144547d9be749254d25ff28f73943066b81f0883289deda80b8ff208b776da1bf42bac844edf68bf7feaff9e24c028d804ec400be0ebc1f1c5d6709cc83c2856070242595df52da278aa09417f4e0441d382abc64d77d97c7cac9974ff4a9bd4a4f8337b73e24f2f2a014961310bb6eee1d3b626e93f9be330411675c65adb409de5da4a62cf8156a6f2d31e082ddde7aa6176a5868d7e76e37a88a63ed255f8b5d61a301075c500eb92d7901b93efc3fff219ad6e623b29c59670a9733723eb78d83afc9557cb4c7c55084e38325b6b5ce1c8e4c81879411b76fbb4ebbf5124ecce71d6e62af5d62a4459326f4de408474804680eda40e598db1a0cb1547738b68caa03f79cc6da3e7c67044588d349410202673c424bf5e8ef13eac9d912b588f522db73812a2cfec34e91be6faf51ef2567da6670183da4c3b5a55c7584253c7a63499d43a3b16422be35100d8fc5d949b5d29deb095c5640f2231b8e5d256b00241a9e5c29555d16fc5955286a6587a82c84483610f3f21d7ee0c0e3a827db479c4a1ee82722b6f868a937d8b1ac61c9c5fd0cbaf81e1e2c4402cdb4cfc265134e61f0eb9148cfdc708a35b6b2decf3f97fe3fc87ef706dc9c9d2ae6c61589a67ea38c13e1355c8f9196f4dc463e31ec4e66140ed938e4b23f26fb7507dc5937d628ef33eecfed0c61a9b44cbca23b4fb74c003a9927f119fb51944578217fbb37796f1e1bb55fcd359512fceaa718c12ba48ff18ec1c308936bd2353949250c09398c74470adfec2934d12a181f2894f3e0d3f09927aaf136cd0d58b13efbd26dc73dd71bc2f38ce78c3dd0a6be8dc8e0452a3bbf1edd29458ad090833d5e0eebd8be166eab114682b974087f13b480de9a6b3404cff5d742da74406a6897c8a20362d76c62f15e54ad8dab59f585f7aae8250afc12477028db1e90ec58d1f2df223f674d57496d79355860065ee73dec9d7c9cdb52d5d82d2f62167c3fe36477763aafe5b8b1926033684c23d3a2a73564b178d696d6945c2ea880eff5c3ee283aff0a6d679c0e40e31227ee01ffa098eb62d466e1a81ed4fdf0b85202966fda35eafcc80154d648190ac91f06ee9c7cb510e68f9c1b7f00a87c7c7668361e1355c7c57d58a07aaec5715884d80d3b6e6aa5758a7420e44dcad0c2716021c7573091448c40069dc1e5b881cb7c3c9344b7bd6cf47c644ca4957fca5606c59f5750d564e5657757d27dcb2e7b198b64dc19ac56f13fc65ab9b33f7288f2da060a88a7605f619c474fdddd1b14f73c108d68bd9b170816d488b6b0dc4763615a5e17c108e7fc46fe713deedf63a8d8e905592e1d0ed37c2a1c1f0c963264457f6b8c3fc6e68160d4d69cba3929b8f663f9c9510de2cb162c62bf4ea9060cb6ebdf5112e1280f31f7ef98aef681428fe29e6b889b6cbedb96620a7d214f55ff59ebd5089f1f53d55054fa2dc4d9a2759926624186cd83b135f61575385285d729711c8d8e3c93f9969dcf268933295da67407bb7964dc1ea26a9190b7ceea3940a4ca196000c9af5c00af776f83794c09b84b1c91c00b7a3e754aa97dcefed20acb1db447a2da758e4526dd3c584d4846c06d6419725a5e1524e06cc3d1f3121db951f4160cabe93122440b86a1cad33a66cb907d2d8e9ab0e24b684ef5bd65b3ef12c9172173d51927ae36d1097db0247c64bc5fbbc156af0be240fb9ed8105be2d4b716e0243c87181cb9a37fa78b96dfcaa1d6736e1b8cd821aa1e5a7687b76a0f160c950df380ec72124dc7840dc2e716ed66653fce9d96cae6083e74673470127df28458be0b6f530eb26b8f11583d2a0498bd50017b0325c81b5083791345b03739a4953a6669daf20128813fb456c7fb1f0997d04ad99f35520382727b1e39e821e88c1eaecf93368f053c7dd9110bbda0c0e96ad837c060ce5a39d73810a9ea8f3facdb903564f8040474c8b02c7dcbb62565215778133f860effdd6283606dc52e8dc8dcad1f9448bd637c6b9b3958b0803543047bae4c0716d15b706b9839659509924baeeadb3531e06d1cd7d96b0e0460bc168a6637070f24bd9ed2aed36ffc4975913a4be18309dbec2c8d8423608280cd7b401910d77fbd873da1a15f7434f707dd4dec9600ae1ba656349d0dcd9e23d63e777e6264c486928c89fbc013b8361d441d3e033efc5ab0ef6484512194919cae7b6b2ab8e11e598868a0e903be5fefc9b5edf077bd6c9d229a05fee07cd97954e6e4dcf1bd2ab12338de31cbe909b4555b032efaeb4ba1b13c9f65cf7e07695f58fb56743d8901f36a76788c46afdee6e91df30fc8254a865bbb092c9ecfe1273f423be12c8c4ba1c6c8582d1add7d4f3e1d46315b818b05fa81a24d5ee6cb6713c7e05a990a0efb386c423c6e29ece386e877b971c20b85a660db7c50662d446468e824348c75b59a693b925d3c6c0d009e089b4d3986371287c386f0b95f0db906e46f479fbe03861512385f2c2ffc718625e8a510854823a8caa1dc83c926ebd79d29ec067702601025ece790075146a11791ae34f043454525b993014df1fa6991eb7b9e184b1a6c8ddad55ff8d9c7a61901ff506936c5b73081fd810ccccb70ba4bfa040f4c38d29a470d568f4c72c56f96c0ae6f932536caa25a1fab0dc0c25165d7b41d7824d73effd2fb45c5312d660035cc9ca8cb259a6d09b2115d6b6db1ec6ed38a9bedd869f33fc65c128252a69f5c6ed3fac99becb4d37240eb4df4e29bf0594efcc84404f7d252c1d71c03f1079d76d8e53af70d6bdec0af38ffadc42c92639d0d35b315c178f45008817f2bd5e425ae6c0e966d34d386cc6d834af8540409d641b9c62da3be74db84a63fc10e77e0f22789441935926a55a2bacd1bdf00d04df0d006ed3c5215d8cc732feac351e9edc4d988ae2ce121f7207e3c35719f445de3f27e7b8f1268d18d6d8663b0731251d58193645353915649d2c754ce1d04cbb3523519b2e73ea2a480b321f368d45448df9e8c8008a6f01ba85445e2ccecd4c347270b48664cea300e0125157dd72e2362808121f66df061a5eeae246508a68d36bb205e1ab701916836879ab9d5c050b518f619d17ecb031b0c53f26da2d27865377fcbd8e9fc48672b1ac5a76f1207f28fedd26869c70ec3ca91be8f6f0aac3a6dd8ea295610ec88cd3b8bde55f49a3e5d52505b6eb5531fe652c39a89151fd31a9eb13bef527677c85b3c0092ac8ee0814ab533e126c10a422e3209d06e91b26b57f417c49c60fc9f04168dfab9b73fedbffb5f5336b03440d76edd802e7c8de4d68de82a39ec6304d0e9c88c9dee6bc3885ea40772fe25e364f62235368175cb53bdc75eaa126919514eaf6de7171d244c85684fe943d298e3b0187c02d758c9c4bd2356c4de455f70ed86d1c27344240185e7bb58f822893aef765e0334ebd435627d1f4e9a1175e3f6459128065ee2a540a1492b527e41744f6e396b701633e900b9c9a7404a36453bd1ac3dd0d76f12b73c4d08ed996b6bdae13df3bd6b0f0eec1813b9ee3ff389c8d06fc7f23fc743190d8e5313f3b3dfd3d3a2063742681eecd925ac3ff7b2d63fa50013a7a503b1b641b60ed0b8409994e0460fc4da8544c894364e4bd95f34a275172550dcad8f11cb64b066d06d0025c02d87a9a657dca522fe7dce6883daf4c34448f219f74b6ced5322e5ce1c3941f7ca280a1fdc70905f2b6bc195b574aa71ac796ec1ce2f9fe5624236e9bcd35897222bae12c3ff1f4e5a4a433744a019520a84d4da7c2024b3ab40d867eef52b23413d0aebd8cc59a86bd0a0e0b1150986274d457d8542f86ae024ae9b46cb7ddb74b5776705b311049408dfe2e7ad880d98daef3f078a96a1042ff41dc60c34053b970d8657ba61fdeb23b6fa2131a0ecdef46e962950971e80367a58603995b62cc4e9f41d4197ec3bb31fbab53b39064c5014476e26f0836c97a74b1c3e69c39a66607ee123c96d1d20621cb32a04e34eeb40ca83f1959b31995ff4a8d119e4152d152e918c0734b9e7fe522c83054a28b4bb4af374b20abd956a4caa48d857c5ff950fa7b400cb7aab67589f711c0086018837f21b2f55a4f0cd0cc990be88113ecaf2fd93228a969d3a08da5bf9408ed7274db84fdb72794e88298965cb07200e03906950c1855418d71548a1069a41690deae3a500dcff9e7fd31a331ec2640cdb469f72f06b2a0cae00917054fa2a567b1426def8a68df4db9506a54342cb37941764b5f7dd1b8531001fef57d2f708cf04eae38eee13ca98728c9403f7272a57c751488d88471a2f07dbd6ca7666364ae8082df05b1fdf2cc64b03379b9bd36640e405a6c582ed2f987fc3cda58c5938da6d269c6d27180e4d8c309d238a24453bf361486acc07bc02e3e9bd92d663545a3109d69c4e68a29c8d5face1b54e4ea07c442afe06ee0dee9b0d37d20fb11359a89213ab8e1590d4748afef5074341bd14271976d86186102ec23ad15ba21f8c9273d0096ba23b589e3b88a877244659203c07fb68cd82716e29d1e0395824042a80b09794eddb1e30babe73b080249bd9a076c488c67c0520bf00237d72711dbdb72c8540b12296cad8dfeb6ca1158d1c6b60a949172182d720114c5409fb3b1323d84afec10eb0c2c23a5e6fd0c00441bfa1683ac1ca9b26a3839eb40d20f656b69776744c335eeaa1dc75f98e43fb7f6a9a769915bbe465720f6bb19460c39f15af9192b91b6850c6c71b86b6a21b34fa2a22038ca071ca571cae6c331a7d624d362df51835083f16b269e717a72f928139499ac70248d534ff02e820fd0dcf29a8ee5d9ccd7e156b1743d14fd2ab77c79f0e9b38e9c18af9c63ad630983f9b60f190e2ce01536f8219343f47db1600cfa4e1829c48c055f8471ab44a83a07cb389dab5c5138f0bd808f9067aaa64fc4da4aaf60ac3cc61333ecde9331f7093489bdc4bc83b8ccc61b55e03d15944ec40933e77ce9c44fbe3557391f61b80bc7e8f7e00d0037f0020be7f005cda6170d17e1e206fa7e06235d5cb0e521cb2316630c8e00191d660c1d6621e2a63218df58e53c011126f382bc281040b6b4266f6d512468f32166d862181e66bfc2726921cc15ba643d2760818b56a37f0f9d458a20181815486b04d151ca0c5c92b9676757c7cfdd92a914b773700c823d31ed4261eab0e6d589e69fc8dc39c400f3e3b192a10a67a2116e956d91b37b204803735bc2b81161ebec6a2603145e4e8fca2f06b898711a1332cbae1b4a553d206f9aa63fe33e626ff2c43890d78f62b1e8bd9d01b44920b1608bf644e9345bfff55520097e2ca700dbb83ababdac625c3029a781febb133b0ac8f807f5c092da51e758cd40b1c162a6c4fa60d987c8304a79c80632de599d7d8868cb0c244dc2a5ceb4d43d5f7e623645e024a890af8e3e7caa4e7a11e801afaa7450378fe1696605b1b0c3a907230cab4844b4f63027a208b0bb0db50a5c872fc82d187953edc9f5e5abaa8daa396781bc9e2da142a74118c117d1880b02a45cf9c460d9825d541593c70a16502ea622ffaaedafc4f3138b4bcfe8b80dc8248c2d7422a55b204c4eb926a5ba5900ddf024880214f30cd0053f5f70996b4e633667198ea2cbfbc61382af41f312aa7d1b926306e8965b9ba77a2111a7697f183b3d8152594fe510e824069f40ddd8653c763b1010aecc4e27eefdabbb6db13e8bd8504e66d62521969cbc068d66b28cd028ff9ba74873a3375fff8fd61453cf260f653556cb3e2ce3b5a1760fa72633cc9a6ad42fe19b63c81bd536a73423f91e6398a15e2a8a29f39fa1388c90a989fab5c4d7588a81a0c4a6474458133878b6ff2debe5ed3ef79a37b4bbaeb533d3cbdf4b4d244e67d696468b4bd0e57d9bfbd135d4474d328781dc533f1ee55fd76451b897b371fda2e0254ab471a05ce3829ef7faebd9412388c93852238226341b65c13050de9a6bf557fac971e411c1384051f82edd30ec42ef5c398a4072e0ad861c100fa6711715ade39721175704d098f1b5cdf0c90232bba76ee584561f919c35f56eae25f76138aa7df0267c494cbea5c0d7bb00b90ebbed12af1015af73e3e0b35f4b72a5d132209a85bdf4a43045d13f06f5fa6a1d8b3aa9b3b8af9cb010f0ab6b1905ed59a47caaf1dd6f8b4f20571f8dd4ec90855f7e1a5557e8ab768d8cac2c0fe34f967767f50e18b8485bc526c1671919fe217791127203ba3dbe7bae2207b752503d82e2934eff74e3ac4ed421dda267206b60d47739e70612b7635fe919fa6a94d57d1d8b4f8e56676a34ffd6cb08369261c1ae94695ed18b9b2c10582cd714345702b7531ef4af9f36132ee497c7bb71357abff431224464c9c929eaa545db3d745e406e047f7bc1bca5655741187c22487d2b2327ca0ae85c4f4c6e18c873b240380a22521098886ba691d9419e21e9b855c0d594c30376418d3b29729dd1722adc8d7e882f2b70e45b966d05521c529d9fde1932d9828b6bc317be58a7c144687298c7737c420faab79a5730905242eb5a77fec0a889eda79d4c85aa4298b13b727e0dbbaf8c6e2060c1ff91aab1ab04e0923ba25edce2c5ab8ba7803456c8487d76cd05776c6a028792d85429d67422fd7f5de5acfcfba1dc12542c7bbda42f9809af836cecf03c994529800282af4c3d0fd012b1fc45f6d01b21a785bb52e1b6576a6c81bfedd4c4977ed3ca7ecc44cd0eb5cd3da0e781bfe76bdc55dee121e810dfde06ef74581c11bf38affcd01001ef054b3232fccbb9b03c5df0bccc29168ec5695adb26818b0bbc16c80fd6e06df839727e85f910bc30fdcad0d8425474b1400f7010bb606e3111205b09295f017bde58d0064ccad0362811bae6b0d10231582196cde6f64567f8b25276e4744202e0aecfa686f32fbb56ca9581c91e526aa3b25d7254d1613c029a5d115a4ab399b89f08586d244b4c18dda41d2c06bb4fc43cd4f4353edbe9a525b5a5bba219cafa61b98bf4c354b99052d7d26fd47c7e933e46027ef8b4c6ea74d9e86eca16b0d8375f29bb6301f626a3b34f505f5a13283edc02f745dc9a7ac3a94e9852385400f7ea32f76e800a947790cd08cc19661c0c2a522bb143644da7e0609a8c85b9b9c485fdcaf183226310994a264d08d39a5f42756aa6828659a43c10101c5e5ec4e8d6a3859ecaa6fbfb4d316e5f01a9538648b417055f74fb6456fb62f1c294ac6e757951cce8baa4f8de93872132c4f0be372fbd97b6de91aa95266fd4e6badd9ad97cfc7e3709e2b07558abe067515c4f26d221248e4658d812fcef609e8a181bca165aae03f9eb580f35f150d63dc7c91f31b9357d1bdb1b1697e825336953c0ee0cc6a842ee949d262865388129f2bdc994ae8d86c0bf2e89a6f8de9009aceea3b7a3d635673b445501b32cd528e8e0cb06e9e744d073bcd151209a6cf6d96f0ffe03d221d9e2ad941bd57f2a73c281ad64297938153db167f53d3cd0c3eb8b9d9a102d76081ee1c2dbea37e671ca92a4a98c113686f098e56198719f129b9d476a4993b823edea10001545dcef644eb79982765afb9209413311ba28c88d5475fa304a992d2a29c07ef1c1ae60440656ef0a6faced862f0fe290e67acb18c9177008d2f8d5ce84da1deaf638019ea34211688da0f8ecef5f916856b3c831c0635b45dce2368c43a18fb62da2ef093204e4ccd5e5c251416cc2dda95e72a4225a8a8d050780c8b69f0344bf24767517518832e5909254e0ddeaf786b2283c2744b1d445866f30272bbd6356d17961305aaa84bf85768285b62136e41981379ee5171c675aaf42a52be71e28a864388881099f790a0b090c370921b4a44c5efb8f29ad571b1507fed47049045ecd5dbfecf497841daff47c361bc0d5499b3a80b5a299ae3a19ed2ff06c9e4aacc4a0035df7986932cc418b715fa9932425ecad6345fcd63995f6a8f4a959d3fffb37b316023ee241dfa56cb5f901eb9611b2ed7aaaf4ce6519dc1100cce586916f31c33fec4ce7049eb0af9778df8c63bb9f9179051a3a9f158f83a7236471e7d42785e9a3836c905d8c829528e203dab82c0d7d2ad1a95996a2289b40bc44c8e1b00493285b8461e5250044310b764a9df757f732322956dcfd29c6446bbcc8dea6bdfd250d0b82d9e1232947a01cc8674e9c70e17ee28c90e85eda31eebde7186c271c36248eb631ffa895f507807a7f4cdef1987e114f8f7623b4c84719d988ce588aba6b12f1347d526fd288d5f65f27bb71e4189bd98984ef3905e10d66c9895939ef98053fb6e3b0c46292fd8abb9c79a0508049176b29ed694a0e9535b4a25c42bf4a5d88afa89508aa482a2ba16336e44e96b34b2e3d91cf987849ed3671ce2c87c3857eed3a8bbad51cedbabf2f8dad9adf670858058d5bdc37c1021ebedc63952337e18e5a33b09d21b6ea4b836502f8522207a3593f4c269659394880f5d453a50158330a401eb6b4e0f371f7e447a1c9bbf608b34e8574486c8fdf3ed0838fe0aea7fc2901c2f91205988cd446972cc053b15100125532014f1f4c40d31381508a91778690d760635dc267c74a2584906157b4dee696ef4e44beb932949bfc4910085e0aaff97d009db0142e14e4eb7b07ccdda88d8840d358f8cd6f07d1e4ddaa469b5398c8845b40c00cc57b05b2998e49e7b47fd84c5fa120885171f3e2a0415078deee75ff9056241ffd417030834e1a5bebf2e6b8aacf0c612e5d90d53716cf3b2645ba8c250e5d4e403b160b63ec14587c57a5b55108dc4ca0ba1e32d7b526e23ffd50e1f60c4d817ed8ebd4dfa722f692eda8a3541084bc758fc6bfad34eefffc4f65f9fe455b79656fa21d3c254b1b2efb50acf067cde5f83f5c295d8b53f21dca3cdb4b4090141144c9ba95eda3b92f6d2b8d7f0d941748643cb2d76a42d81835f6877058385114856b265f314bad529ccec6c8d480eb4a4a27ba4d63ed7722579912c95db6c09d8ce74a283f6a001ca23211cae3e031e4299cc2e77cfd0a9cb138bdbae9744b279ffe514cdcdf7405a26075f8daf3258cf01bc07688dcf79ee130bea62ae75b621683d18ea665409051530c60745c15bb6fd0c1ec3c64d56cc538b2d0182e21be53c2aa6e76002935463d2951df6c00db316caf061c81058206e1e9f8a9206091880c9eb2038ea01fe85f2e69b7e8d6bf41793e155505d100bcb3a415f0ef4aab81bc2c209b651d71b2b4c72ea8a73a608a0ba759863544e90a2046c19f40e7a2cc44b8d44773ecad4fb675d646ed15ff1fb404f7442d04a0c94f90a8543b9dd2f5e6cf6a58fea908e94a5073119609098ab29278d3e0c6c342c7be803422d245cdc60968bd0b2b52a557123c3db9b915bf17a2300f46f7a8e9c975456537a5472ddb233d5ba0330a39113150d470dc930917802630c8b386e14a46daaa606c6bd908a71dac445fa10e530e869013839d68eaba99bc373a1c68f8ceb781a18eb4c717df20d6ad203cde3321e4402179251a18f9b094e89542378429cbf819d18724b095b09eb19f94a37b49409648d51939af69c1d13b22efe3dcb34a387e232ba82f784235a71279270a5ead07e6202979f277a5b9a433119853c75fb09d0a42267ea6501ecd28940c47ad506d607d6078e5e69bdb3b8fa8d7c5b0b78ffb59a99fae287db44ef88a8bf1b007bb5200b12a1e766d8d346b37c46fe53d02da63d840c31cc1cec5a03469bf71ae6f675a6c82663d0c90bfed794f1529069a0009c6454fe9bc1650c8168a9e10b626d93181a1514e325f28fe3d0b4c07400136bb66eb513ae5a3a39a56d6c695a31eadce7e9f809e72818422b713a1b968eaa704eb939d0740fd8d810b2270dd46182b0c37d27508fc2a7ed30fec8eac2f1f0f8da0b9706f4dbbf93c97f0df6bff8f125dc1f3923a0f2a9bd13871113c829d23530404e7b9b45da5170f28db56302c551023c33fd4e94aa6de0f7e3ad0c0634c1d7899116d5c1ee2e52e0c2ebdb8f3f2c1348666cba7fdaa7881a5abc3b3dd2cfd36b8ecbb86712b5a57f2b2698613eb07afe7bc24d8108349981b7323f860945928aa4f0d3890572d677973b2e9b47d31e0d0d11f203d1257ba9fd02fa0bf5dfcd70f1e54d31e1600640f62eca3782ddac1df7eb3ad8e7bf8322ee4e76dc99c57dd06985bb52b09304aa4232683d035fb997e9b8b5d1bce738f57c469ee1b67547e3b1cbe739d02d86830eebb6f44f28bbe2267543fdb1121011a6e4bbc25e859a504a1ccf73c1f83ac9f174d1de405661c4b75610b7ff6d89618cecb9cd467de98991c7feb7fe7154f940f74b85c96d032bbc5ffd6bb38ebf6c5436a2f67b8d6272e0a69da0d774a7c8df7d6e4aae5a15d27c63719459b32a7eedd5d83cf6a757cfa841c6f70d1cb9347032292c7004d088ab7199f39ac34b2affabc84b37c7818b3196fd4401a38bb35fce5a6eb23d45f53ee292a6f1fa4ea54791ddcfa536fda46aee7442ed8a298930af67b68810cbcc692ee96340f9f565231d8088612fe6a0ef30600342e50caf82e4af23b960e25deb3a7c77535dbe926b2b254eda26a7aebcd5e831ba2030652d416c9493962cf2f34568b436b949675a9c766b5e90ff39544d77d94be59ed01ac18349c5bf4410a68f5b91d36dc8ba2def2ad0fc94be0f1611c5f635d867fb760c38ea3aa0f2bf866a18150c51f348fcdb25462265d6b26de6e183eada69beab6c715d67f348b6b4a89ba75c3dbbc6e12582bd5e10a9533a55a5056ad1072cc1376893cb09273809ee761416b8c34a3b6dc840cf296069c54edf1e0e9989bdf64b2b1432b8f0be1a186f0de2a96550981fadf7976c92cfd231368880edc2ef11ae155f8997bb071b49f1047c71b688e9d469cfcbdf6b1d095dadadc3a8e3b58b458c46a2d79c8a91dc4c412186756162125b7ca1d5a0c9a40e882367d3174568bebe1cb0ccdaa3722fbefda24160791578a582d1b1ce0f4037949354a7b49bb79d19f864dd62e96522f3ece53a78dc7b9325c66fca224d24939800d048126949d63a58353faed178e85df8c567d39ef84625111f04cbfb401628a50b0ac43eebb5a207dde5fbdd7dd5c7a9ddb1a55191670f8d968188df5caf304306a7fa1fcf5c4f42f8218b1ff985df43ec0e32dbb14505931d036cc186f73cf998852e53ee34eb7c76ca87b74069d43c48a46f4ea580805d4347ac22fd05a5280d49c4063237676992155448c1ea3296f7951e8a74bf2eb4b0227502a940957d34674eeb394268331feed2c3c94024944ae22789794b244f836559e6072dbac936419eaceddb85be91003b851702884232e82ae1b86fa07bc2710259759bd302202a0e4480b028a0e900ddd1b1d4251f4118218fab416d8a44a198da682f638862f93c417e4b1c18eb68eba01b1e933094eb02f6170d7941be03ce7fb9f65a680b9f02dc073c9e5eb3b1427710cfe5176ba9664000626b8ff901aa70ceba50f84b8c3378dd013751aac39e09f33976642f498cd902804d0a1a056db7883541f7dfc7046fae6010fe938c988b164c58cc94e97b43f0c785085df5ef2285fdc7b670c1b312c0db8e29fd1fa8108043aa5dc8f4679a0d6b49bdc5f7a9221fc99d80b75f8041208d062117fef46c66bb0cd454063224095affd02172a155683532f1e6855cd0281a859d84a4538b21f45ba684ee8866fba18ba2e4d5d79c08c92256447e33fcd742483a31faf61276c030abcb226436b308b9feccb82e79a6712d1247f5c6e31588caa489844d7f1c241bfa71001b771a1786610d9a57657eeb10bc728f406eac48cf40abfa339979d2a65979deda37f403f72aa27bc1e56f92c35915e9733d854f58ce06b1c210dbced00dc2cc098e3a9fabe5b95890e56fc7e346d7794ab1c915906061c90fc09d053d44979134c67796493432f7b6defac53d07ae33b4a0b926df59897943af8238a88e273ab2d57295cdcace3710150b18b8b434d2a9cfbfe594856fa8cf6008c930ae54f9b4ffd302c808ac6511835fd3566bb9d6cf13e7d30241e30adba399344d19301e5986a448c9bb0e94890c106008918199e7042b400fccd009cb30bb31d07c0ae46397ea26a7de117196aafa22984488cc7c9b565108212e8c87640551374853e6c9b7f8eac97d9d30227c0ba35049fe12693120408969d2975fa1ad687cc6400431e325cf183003cf58525dbbd67e5e9ebcdc264ad9de4689b3e47a0df71fd30b5821932cc122d59ae795d1cad625a492f26a1a09efd8076a34034cc0b4ae226ba566651573af560e40cae4f39d512f972a8e4faed028b762d3b8d5e578c011d0dd193a701f07d1f6dd966076afb8816ae51a930c0f0ecfe4fc9bf1d12450e8788cb5c84b4a0cb15a0312db8a3c89fb45bc29300b6c35b58072269e60223ebaca178b27fc93710c147d4edeb5871f1f76c04b56a27ef3038670739a5797ed82c6697fa688fbc0e5687dab7ec0154d65c40864ae59794f04632e1136e17f9dda4fb88a907522be60543c2590ed863c30882552209036a3ba9f7ff315036afd086a58403c600402cff2c102e5fb837dc912895bdd1dfc6bd70f394f7200e8731e38575d0c1b231e16dd5e4845b6c1558790f13ea503c5c8e50de90b756c2fe92f55837501ba504ef4bd5e0423ca9ac04778b7ee904673f03c3f943679ff147df1efe3540f490c6fb79220a2fb6b7b8fda7ef08e6fdaddbd35fe1f52a1d4b8968fcca96a3e7e99b56aa6504e28570b13e0aa8bc5e7ff98c5b3e2788ea5239113399cc3a81339e4e67e75359086c6493cc7bba654f82872db22c7a4b7827d51eba461e320e01b4f2b00d808fea301094f52f1092f7451c7c6c1d24600af5982d7670f62b61031e813e32371c0e4b79a7ca00c3a80bfa93c5f11f5dcf7ed9c4d81624d47f834f7c92daf77de0bb52866c9393899309e56de131898eeea26c7f0551bb8157c7b818ac1034490bc383512a40c14eef6b0f01f192633d940d8e20b8b6d724def5f24d80e1507b65392842ff76a63b9633a1df7e7377eb1213d029c6e6433d132093d61b5338e0461a5d787fb527d4afb94feb2140d0f2d589b8189fb58a22dcb98f8bd3850c055d17d1dcb053b682502fa069dd87db7dd35f45b7f3e5c138d945169ec65101bca7dc8df2d86808f9673bb7586873369d4ce8b8bb45c20e3153a4d0c2383e32715bb1fa419196cbc0425e32c92d4567fad9c8563f8b7816fab32592f643034f17e73d40915935013a13db9a0cce19765ecf196f9010f28da935bb9257a2feecc396dbe7b8615eeadd1e33986d47eec251ece7d2f766a65614e2666e9fbd4f6707f7571024e9f520aa08095ce192c3622ad994fe31139225563a670da99cb9eff5bba867aec82b2c8548b5f06d7c288fd783c0fc276225475191651cd5978b9ea2ee122565f03b1bbf43471ae3a1f8e7c5f6c72d97d8af78903fa4a15ef8343076d258af585039a56fa6b553c611430b3963e0aa0d22824b8dbf081fb27890121e761d49919346d603ba2f4db73adde50cd045f0d3ed4f23fd2625b1f2e67863068168117571ae516277a62134fbc9cf36e7a16647f902dba7eb3dd063f2b05028bbdb354a2192e5beebe0ce3547c24f7220b20945ec5291c6495af86ba82c4ebedff158448a687e7eb8a0c8aa6be669c80e0d8938cda04f1154ac5cf6980d00b305373f592127e453f8efc0a564a86a1e1ea82cb2c8649b7be2a8cc5059cd59ee9ca03788d79bd67906d9e5faac2ba1752f8d71fc00ac85b4d4362640ed03ef4ede7bd3d8d48056dc7b884970a0322747cc89b271f4002e8e8d5e3606f3e202722b210dcd200de6e76bd18f4bd8aa3b0fdce775a4aeadc49ab8fa33263814f3213cf06b3c94cf28165c4714cbe36267340455a7d10c89e28cee99b3e73f03b1b475cb7368ee2f9b7ca29375ad5c0149af5857b0edc6505a20613b70639a0a0bde9ac81c346e80a8896f0366aeded9ad0091258269bbb3b7b257bf701b07f77e37a3e7823879d788e3808d87401f42d5cd3ebe8a1ae2e559ef2ed23ca100760d23bd924c05cba08be7ee8837088f529c321848e3934a2d5ca7c0d495d0d9ce24f3d3aacd7e7b0fab7b6402a6e966b4b75b6020184b2d0fe47ad01bd0dc5498ae2a47707d876c8f77aceda7e64f8e51822571a2adfe655fe25abb46dbdb95384ccc20f5141ea4a949993840bde1ac259b0becd7463219b5256cec370803cd3c9370eb34da0c5f4596b569614805e420cdb739368e324862b98b21c914b063372116f17e6392e0b316cc664f624062244ecd4c422b8819e626bd8fef92d3e2b043182b8cf764cf0c9d70a082c89f49342a8e08c5006db0216ae82ba62fcdf780a9c5d23c629cc7945c41a19934ac57668ce8f47e6c0d94e85d9219553591f9822c6d85c2d9cd8b134fe26a3327b3f7266a07f896f358fc33f3a6950f6822b4837d3c42e638c184803a1cbcedcce6acc9a6053693b5f8f32fd58858816269346dd9a2423fa34a31611346c3e557b10c946577b4e923390b1052b071f2b963ef0ffe025e9151b318c16729dd8e3ff039dd2b7897031b3367cdd96461ddfaead33741161fbb62f620a92f286e2c0e443d1f5427c452d5a04d61bd6669052cb3543a8ded247a83eb770170c387e88416b616d9add434bee60a2a105c8f42df583db51b4980e72ab40ae70f8d14903aea075574ef49e0226a3a90bd28c09dd559e2ae794f1e6b3e548eb991badae70edaa6d627460f27478526905d1e188d2fcbc8263716171a7131c8fe97e82e00a659ff182ec45c95e989eea2695faceab435cfb611a58e9fc6f772b0dad7518c053f782579a12e4e15bd9544dde97852dc380c8c903f6057a02371a77cd075a900630b63c72039ef386ed2110ed41702a84b841eb94afad1c3c449e5f3ca229cf24ae3b6f51d5f46bd687810ed49146307950bd3de225456125990adb44e36ced2a039413e003ea65698d647bd247d374659e7341a0a347b4302c11e39c2f6d0e4e0299619bbdf98eb5d1dea6d36378b93533e9842ab250ce8e8d7c14f39a633c7bc50f07815a3b4cdb6fb2d2002a50dd1527edc84c34b0d366a85b362326ef00e93cf873f67cf25a8abc272385c806354c343b111ef55974174b90625b08421c295c381d9ca307572fae626252f47cab69e2ac3ade7c8e3510cc3edcf4411bbc4833a67832f4a497a8ec8af67d3f27399feadd583ccae2cb7eb2f168d5f815089de864c938e5c4dba3e002196934a43494e9b966af1cf1f946f616adefc0897157c2e6cf3889545eaf56bb20db8a713c4045519b88668e21f323e70cd4a2b0b501c5024dff373440560d38c38fcee2df5b6ee0c1b0a2d43b36c28db99dbbcd4b6a2331820d0a01f0e73238ed8e5510729a96432da704f221cce18cffdc4280c0de75c3d459dda9828ebaaab97e7f38e4b9f1fbfdfd56d6c8fa2d389736bbc093ec0d15225bb383974aee7e8d29a8aecf77ecd7b36b8613665f785fe2b97b6683e8fd9f0b0fd621be24cad6820c124569146e3ff9058cdb02cab5c514af0d74854ead8844124e557511563a551547089728c129e7ec40fff3d855e058fa006b71e4c03c80c093bd1c9375ead66fc1164fec71ae91991e2448c60b18b0321b4d6639209d0646fdfe25a6be2cdf57329235518b626142d79efa791ea79b43f0b0e198edd64f61eb8051750fda64a46634b0a0d45383638e503e0489f6710480b9550d2c1acf506fb48057525b506a465dd2ce840c86f71d9e8cdd6be9d1011d670d8c13603f5ebad5a375079163d497462c92f4012aaebc20aeda3cd5af9445235f945ddd4f9f0d4fc496627a0318cf8e1b1406540f526cdda97d82f9a1008b16bd83d6b4228a8b7270fe37144f6d1316faa9bb39ecf2724efee1e8929508b6077abb3971b9c0a1144d9f4be10d3a4ee4bfaeb35e8c90bc0e23f19c242c3fc3880beaa632c6ac29622a269fb95e9e7b56c8718b459663cc3b2474968eda766749221dfae1b3ee1528ad95d8355af51f8d8de8483203ad86b7f600d03238a9795800e2820cb741dcf4bdf6bbc6bd84cc92e83ecf3f921e4dfb95746fd8f81b8842369050f8b14a42611f8b60180b17a73615a5bc62b0cb9cbf6701a859d44800debdab5089a24b173ad01dfabc2e37077137bcb2007f025ac0c97f280899a9e88302bcd86b821d1b80c5f4974e183f3382aa00a8979803b3d95adbbe1cfa1ac45615949dc639d743ae7682ce69b9775d17a88fc0a026403c61bb22814001c8af663e3aacd415f7cf03a531d2381b2a39dd180d158d168f483dd90d7057b604107033eb0e3f8ed0e12514ece89d8cd196b0308c4bc78c4cbda566ae3dd975aae6be68ec89990291ea54ded919045ddac4ef22389ed1aa0f12b1ee4c03b8efc5d25684326efaac11f2bec9d40162992063731ac2e7e0bcf6d844cea221803346aaf489dd3532694d1a81b6845807b7a8d0b5fb1452838e9a6161c2d3a1ba47594c214f12f3cd7495de71fbad8db84b54eef2eb757ddfddf6d9a280d1b4377e77312f4969247e6976069e8e02fea2739327082db20684d1efbeebd739b6af2143bb7442ffeb37c872e19716058c9d2e150c9b31dce56e9f0db566d0694492e79c33403f9d17d02113cfdbbb589ace91f0a02720f1aaae8c1c434489030218c68a08cb737dff34a31fe903d6ef7dbdc3b325e03e3c3a7825f4df1964c3572e3d296157a0fee32841ce718d1585684b997bf38bcaaf6220770eb2efc531266d7c80f143db1dc73a92bfafa1fbefff5bbd57fe731f08f58a52d1522d2fcce013f9356df15eb14a32f384d27974cf38a77056ae11462c462f93164f1714463dbe79f912a349b6a017275c47eea4241a60d3c030f97241aee7d7d96d99d4e179afb3040a8050012e3f4abf8ba7a1bd90d6353d8828cb747cc539ab171f929722c38fc1baa9e5c8840a7eb2f34668a998b6b62e03391ebac3ef730e5348178ca482343e7833360672349b64ef9822556e71da7f6381ca18fa9254c36fccff12232446be6d0274f40d23ffeaf15ee014eb2f115f02c95a95d818922217a23a85857fb87064edc1a96c5888c1641773954c74dd6b16fc06979756dc5e2f250ab44bf4954ba0f6d290e6db1f431e0c159e5026e0fe8090f747c7015552e7de9f88a8e5d2668210b62731e65b55d00f543ff28d9e0b925db89b9bba4d2476b14d27923997080c0ca5adb1cedf1df7723ac8487f6a4b25d537713a9c3c49e6aaa4b51269f092fa00d4553e00536783d416248fed70d961f065c60d2530da0af9aef37a41186988a58af099750147506cdeafabb345b871ddd41a0c1411138cb84ecc19875e1cfd7c6eb4c8a7f0e39f943d00b469420b8c782ebf95b88de173d1ca00979a20695d9e2f51574a9a7d2b88c5534002acb1ffcc5f0b7ed8a752d4614489110a554edf570976438c0f566c13f205cdebb2239a3a92f38ab88c0c41f510e7312257ec7f9c28513a37443624b932dc42b1f612068700c9f8c655476486604d8422a4623fb9c84ea531b895166d7ed551ffef163bf5eadb9393548b884ba53880d8272d3c1baa3c19a75a530416095dc0796d175db8b54602c3f24cf34d5750b34351310ce66504662aeadca2ca8ac8d1dbeb3b3cb6c3a435d1f7e5a83974b205a19e418cc5cb709bc553c6dbd9532b4e883991b902067a633fe4a7c55e310054d5a85eaeeb7d105dd35f7baa17c9910fb283b74936feb59ce007c1c016633ec81c6c445e6e01a581418f700841f41b286753267ae3cc94b3271bade223325a59a55ec79bf09e9015ca931808f41379a310de0683b8b517e7270821b048aa85aaabc11a0cf6d6eaef3ba92a53f45494a3d8ce9699b1a8755e4433f2400eafd891a4b9004d422e9f7f69a45aab220026896d2e4e25c1f19620e4e080c83246e1dc063dfd43abc33f8ea94ca4a9cc3ad91637a1b1af47074d12789102376c60ac84634ccfaef71b2e48f67fe4a9b7ea3435a2d7200555801d723440188998470289a9d4aaff19f2bead2437e2dc976518e971084d2c2daa0e36594e338f8bfe6c04e9cd1128c4b9ac8937582040b83b7a320d4351eded8aa724430eebcd0d88e992b4cc2216d42e59bf894acebb4f307052f0bc3ba0ee9b709971ebbdb4d5f546baf36e869a811cb6414e4e176078bd699183cc0515773fe58a2a52cdbb85615d37db68c8b6b8db0318a23acf36bc0db18878dff881b4a2720610db3508b046118b02d2717f3c3e8a93e59c97c488873f7ed5239551a2f0576ec0290c78ae0d4c267245d0bd3c9323db6de57994b90bc50ab1bdf30fa3cca6f83a41333e7e14e96e87174e36e80019d036f750ccbaa8df9fe7ae8ae3a0a09314023be2a140914bf070bd3e2b64bf918d9499690054502f133320af031467e1988159f34acc0281621605407444f9e31366d3654b5c83d5b02854a6318add6ac1d8fd4a942d4e813e222dbf32b002a1e2042eba9401b2888e621571192dd3748670d87d5d737793ba21d6d6e12c94b034c732c1b2aea973d135770016d40630bf12e085f07a1a05d369acfe3fe2267ea9c6e6d2c3438f602af08de5b3e88cda6d3840df2fdb794a30d165715a3c3409ec0a94ff4c416dd8571e7f82cde1cdae90dcb000eb21ac8b44c88349fa67b05d0e07d80236ed17ae6058c4fcca56ebae528e367c1594c0e8b78477b72d084b375c0bcb5febb640a7203125377befc73b2b88c9607ffcac20e68488c456f72fe6d15a1bf7097123027f626b4251bcef06a85eb00da5f80b58978faa1e5e0364050213d7b4defe34d533c60062420a04e8c80d5b684bef193f7aa2a590c42ade9bc9b1184d958b199c4d4b6e0eb487c82029410d3411cccde79b47429a04931717298115149818cb0cc06189be8d5b2cca2b0f1aba7a5945766a740f3092d31eb679794ac532862e6122f3a3dc077a6fc20c214cf4ec93f53a50649f8cfb592a41227c38fef6e0858dc57d08fd2d93515dfd12fd8a05095eae91a2f97fc65de0a14adb5f89465f4ebf8a4ac132afc217ec12d58c2a93443ba48f8199d01457c47b9e7ac9582026b10145deeeef2ea565e4039e37b6961e71b3c032e3eb1d1bca617363b64528222a5c8f48d3915f40575bfad01f94faea11ec40c68446be5909ab11d7545a13d000017f88761e29b07083215f2c2bd74a2bb2fc8dbc54718bcb0007d8d3aff7084c3a41d2123ca7fc70bdfde176dea5ae5f040f311ae6f142a991a4ee7b1edb5400d61561f98242bcf4f9e93f11c09c2d3b6c362f24b97220b22a04236551e84a5e2c2abd35b1ad552f5f77ba6c83f0a55e86e75c1ba73a87fdc2705ef1029143c4620bbd014cdcc71aabd8262fa7de2c879232dade70fb5047a8ad4fbb05ea0f0e89e9cbbb6555ab82235870782fae57365ee987b8de86cc7f6edb015545ce30951ca585aafeaa44cd56198742c5d1108634e1eae12e80be5fe6facedb65fb0a559e8586961724819c63f94241262eefab0e017fc2a8f8d78508d2f8a63b33c444644a8c9f45e7eff2320d84bbc20d2a0724a176db257217ce8358e18ec74f05f77b6a734b1f31f641cb6a4a032c144322ff919b9c2649088a82ce02812214fe0c5f68ecbe065e0425025f5587214386cf8fbef30c55248392f548af6543a167b15d256fd04a55a22b76b1671cf8b769c998be6b33d6fbb63dcb1ed06f2faf6b96b7f841658be2ca67041e1098f3002542f6f5c64b07ded705c3cda01ad68622a9e68472a308ea2a1d5139d16976b0c23ab97f6fb495779f16b403f0d1657b53b4787b35e618a0781b0cb8cc93ba727a588b3aefeb90ce3d2af886d76b3ccd7d984347d69387be000774bb9ed5c33ef58fe8a4cda572f551b825f8d02c5915c406d1ce65d56fc3b75e04107da63a69f272cf37a52e1b2fe341c5b6d600c787a506506f71cf42f093a1a2ab68092d7da83a39d6f1e5379657794c990fbf11506542c3820e52ee370f46e92a4f746af0abf0a634f02ddae2f447da1bb95de7f12f03a986f0d1d597d3313c13b89f5ef58e8eb3aa752d496dc09deab8c67106fcd335236eb421238b5f4bb21f5511cd3a60933f1243c5dbf96c31a16db74e0b545b32ee775e13994eb09aa71423fb0e6abf94a31c400471d469dd0b97f3a45c39aa9c6cf72770fde55972e9ceec0402094c13ebd9f404c11673f7c685ab42d58cb7421998205fb82a13b20f5fd1a5ad08249fe027d03b615a3483b85a90f0ec1e1fa4808d773ac1c2ebcdf64eb076d29cf30b11f3e4dd5f3205691f85b8459e7970dac3484b6cb122ef92e6f32d30ae862f05914f45aa7fee94553b3163cd424d2805dcaba4dc0585f6b5610137e24a9b8659197a7c0b19a887cbd44c588ab6dff6036dc530e18ecd2385fa3901c5ac669dd51c7a8f32b3c508cbf19cab173204b6714884d6d763509791107cf8f77319d9723378f95d1e088f69fc611a2d77313932c14f13453efef2309553af9d7f0a410948f32490e1d604c5cab80b6852144083b60ab3c3f923d6ee4ffe5dd715c1bd7743c097531ad26b4eba14312e00303cf4f97f15135c249a6405a9d303e3b2f61adddf18a0fde0f73606d51b32be437020ceeedbe36f1c417b4913508ebfd9e4e09ebfe8fae66d132eaeb8a5e014dcf25dd569648f8538d7698bef655891e184e0c630ecc541743435b1f59ed537448a5c22ada021d142ddc8f9baa10724491fde9eae5f81f98aa3c2fce9e82df59a5d3f4ed946911fb29e44ab7c7bfc9806563e0e34afc1743aa31273343db5eda8f7529da9dc7082f1e82c6167e1f6ee8bc44521727af5bcf1917e8e4d6181cd0c35f6d0cc7ddee80b9ce6c61dbd6f821b09e77f2cb76a654009f8de18f1f216f712372b411cabab8e39c8266c58b3e790e0d05456eaadb4d017114a604bb4e52aaf25eaa26069a8692d25ea2fcc056929d60ee2de1f7825fb8d2e60b5a106de00e1245df3ed3f3c4041127943b001e532463202b9fae89870f84224a4dbdd2cb53ececa95d0c336b392b249cf782604f4093aaf1982c5ef9c3f52f43afedfd84a528cf6480d22fc0e68815a1e863309064372d8e05585f184d88986054cdcd21aa3475aea56570195855e7aebb9352d6fc5a19b88535313fc02b09fce447a72ca7122d1539ae47e1cc7175d7676d87dd04300af82894c92a5f00c929cd9eeb52c5cc2f25cc2b7a71888764e7e6bf599f52aff77b817f431b23077156146646d57ea04ffd676e0dc7d614607e62f543b1c420c577712a75983dea30d74613925e87b81d68a890b8b5abec28880004eac63ee2f281fac5c6900b893f3cd8f063526d156af821a91d4cde015fddd92d29e1436d781554c6ec68d04906c6897bb06eb4e2b444321bdc61ccfd1def3ea7655aa46888e42f34a18cd6160c80000823284ecaa73d40e2025340d47a3af2562512e3b6e486857f0e845e40635400e940c1d132455296a239294b4a31805f6d0c005cac12f6cbe9a7e5bdc68d36f84b549602107d7aa54118b94319ac1edcbf79280706cdefe33db01c98225c9bc4390da58d0610c5dc68f310acd19bc63464b4089fe195ea51b2ea37b03f7ef1777eab9ff7a168bfa9cd5119459733e4c1a988fe638b64f5b86bb2050d885584e8eb2649362a7a8d4277d7820911f31a261873bbfa6183d50699aeef1e6331da71b1986a3524d055d918cb17cd8ec47719565719064bb171d370bd7b2bfb886997a53505efcfe85ca0d650bb3436eb63b5452143904e76084e04f84dc61bb08fc7a326b970c63183a28650299f52e5e9ad9d188269bd09dec555307d571e6a27c3510c9a043eafc5a3462bd14121588260ec11cc512a8cd46b7849e429be31ca09ab6fe588d37c9849cd9597dde9d51a2a1bf400680595bcf81b9db492999f2768f9a138763693c8a689850814a13ce408f7e3211fc7136c45e46eea9adbcb8588df86642e02bdd8f7703a582bb94cb1455c7011d8c97b90ba798ecb096acb299898bbe6aed725a717592b5b93cc84c2d19f7952387a610e0a11e74366781a2898ee5a0e04e59fb428d14984a6afa5e11b18f0c10a7726424727885542f945221a73f490172472b87986d187154fceb3af0a11730fd344ded9ba60ae90149be21c6a0ae274002f4344d0e1b66879375c54fc71df42947c0746b3700fb3af5545f09b9d4895e7a0faab188fd01a3da4d38ef85a8bfb4fe57fe2a0544cdef3629d88abaf8aeaf3ccc6f1793c9f5fe22076482974a4dd66fe461d8d09cca8413dd5b840c50f9ad22815f473f6fa8b26032c16ccd13a1e9036d3eb7798ad3d180269af9a769887bbebd85e5b0fc7b59c0ffc42659c91a9437451780fea7b5bca036e77deb01bd466fcc19021aa12832ebac2804e48faf67265863da82d3f7d366a0668d9f51863c8cbd467720eba0b69b8c0dd2cb1045c8cb2c015cb61295fd1bb09fae636b250955a028318692372995b23dfc83521c11c4a6b4f2bdc20511f0fa76b2ee93d89c820750babe164274cf8d4147afde4d0da23ab02e18786261edbb6aa2e5a7a2ec8d9d79f72fb001bbd6009e68b8ee7c63088618a392eb424af6ab84331ddea1be805b3726aa64487ea8607ff94819ae8ba073b80cb542fa9a5332dd65c17db7e00cb71aa02fe525112b6e7d8601495be96786b2042d5f45ff719966f886b1574b50183127b6097850fffb81c512205114d70f47f18a12f46071c7e92c8ed9756581437633ba622002b9573a239f4937450f52112edf2796e7c9ef7799b5e3f892c428763023d99e191aee4ed52769af65fd7c48e3a99b43bf74446b767c24ff239699866a3c229a8b0b30a191171941773cbc9bc55f91333f9bb729dffe17789963f1398fba4cc4c591f24c546b7521b455cbe206a43984b956614f64813c3d31b7d9e51fc1667ae687f0b5f6f551a702430fae83eb192f348690a26911881be512a727bc03794b52aa8718c3cba37f0af45ac16e17254a7994c8bb44ba1c1e09533748f493d7360f8966531ef42d4146debe8c5ac59a667fb8601c6406cad4ed7f4e9d83b38feba087ca9055e7b9cc6852819c93e5a408b62276b42c9dcaf455a27b6413494b1523791ee8ea479eafe258506cebed1336647c16b49ad0e5239cca303fd588ae718714952b1109f09dcd27cd0e4c903b3a10e87dd8bf8fb54ca1444f1b480e48fb38777d8e3396aac53386933873cfb3524894318c39d8770e224b4b02376ab3791eb640d9430795f3e2243dd4747804ef11a76a0a3f01712c91e04405478b5a0e75ae8a067aee598a9b2bbaad0637a998ac8e21622f29561d95dba8533c4b1b182989dc1539462e274c1b544bf7668cc21c01ce7051dbc6ee46d389ba26f78856393779de814b744d30f10cfa048fe5b7a523251d74dd1ba7756fa7023a3d482d37b208403fa2f5209d147368026904fd0c9e2492688ab24a995cacb8611d42f95576fd837aa6516f6169c1b0c001a27656c9f9755b8ae549f58c570aaa8b8f7c15addc75613bcd5a968b69ad539df789328803bd51b07dfcc28186234f0b46f33ee7cd8ac35ae162dc146a9d7c8ee4ea10e528befaa57bf91481ec155d3f038539ba025a551fc4d14e81bafd11194f4ec902fd0dd7c7692b7e68396a9c48d15e2185ccf8b1a650fdf40a855b75c613f54da380891c1a0ca83afe56229b410ae013a52c00e07602f8a6a1fca80f2b39cc877b40b1567e9e3157be457ac03ea3f9a598abe1416739a81bc300f45c234f5d6be7a879ae5fbadf333322082c8cf586ab23eacb6ebaaae67697908a675d55671a43ccb2e01ca2bad0317377a21bba15d92583378a9bf66326dcb086e456bed3fa482ee927e3ca86e3bca2682a314539a72d43f61d83836b322933b805dc321a5c1b7530bbb67b81bb902670755abaff43f45f0d2e2f633fb8759192a69baf9d9371ad770cbff10e46575b4a2a88f2bad2c3b8888aa36c5a81a773e6aa23d08d2bf37c4460f16104465cdf2321fe148a7c816fe8079a0ede8f2407867bddc27095315bf6dc50db69278d07958d0f06f1b9a3639e9ac3a3f6b457b7b72b7cc91d9d72e2f9c0ec7bf94dbf39428eeabe26dfad716b07121ff345634e0ba7908700b3e377eaf88ec33d8069ec1ea44fa0805f94e6c29509ef2ed75141a72220c45620811d549d1723f729a43bd06d971c1da2f8227b47fcdce2b6a0329e654cf5e1e3835bb1b67a1e24c9f53bfcc786ac182f87215f4b2b22662f29d2872da7cd48751354c4bd9d38f5279833226fb523f40a4460d292ac8ee39ec2bab44288a6295492662e593d4f1eb8d9ff7e9c830bcd266c46369dc51443dc2dab359016b7c46a5ae5ab3629bfa2eec5802e76052c91d57c4850a8c11f8751eaf7e3e35f22578dcc73c8906a21cfaca576d72c46ea4ce206024379669987fb1a373d8683e27f0111b1e45577ca697724690615e9ee255a9ac2b9028aa95749717d7083aeb262079196ca80118af70544c49257dd29a7dd91a41954e4755c738ada4dc16c198ad5ab84383f73435719b183504bddc008c5f3045a64555fb8457389f856612e60b4e25677362b80b2752e13db375cd15fd662b919ec52b3bd01fb29ff1f191909af4e982598f2c23fca4bb60467b735c16739896a8d44a546565520d02a255215c8a9d60834652321e3f4278285a2bf1e0f38632f1ab720248c9bf90e4a995901c0d9e6df7d9f12f527e26dbfcec8ebc7f8c881722803e5a0ec4131de9f43477b9abd8d4ccdafc7acefd75541c763831e1005ecf4f9566164ee56a9250531a9d524544ece3129d9325a204c9047ffc49185ea5005aa1e549940101cd3c6c4879d63a15fd8b727a4248e517b1a13cf44ef4400eb2b1833fea117ad34514346dfb3bceeb6b43b0a740c1d8470279481e70960702bdd5ec609f9ae8c0843b18d12fc6eecfc7d6602e74778b70554aafddadb514d3de2df1b7b68ff629f956d487d3359da48178b5725067cfd5d613ae82d25c607aed0fa521cc801bfea4dc5541f851635d51005bfcd462bfefd9bcb3e61cc13bcbe68c7c65032b616e531a38dc61e63bd2a0f898cf73473095a19cf56fdc048292d5aa01052287b1c74b0e4ae8143345e2b6845d6c7fa8d35bfa0e26ab82f81149e993ee4784d170b8c4170b5c764c9ef439a85387843c5bf6709c85c2f489213f3c596b8f40945043a53ac53027565b93b4ed61cc17b898edc262fc4b68a1f72dcbd3a436a9a852db776b0eea1c28e2dcc21d22f44f6c0668e1516609f537ef39d74176ceff84c35e44d0b84dcc224da4d8371cc7e5bd3a0babba2d52e1be8ab7cc5217a25c40564ae59fe8d0dc7c7d7f4bf5754e46e3d792611369e48a200f81b14a5a63e46e5c1eb7b60547c20dedf3761d0e0e110f9230a5b18a5ef5e1e737889ae0719358537e9b2fe0d366b081bd6d9c1b9a3ead81d601429ddf688e1f07983ae80bf480384af75da292dd466bb2cbb9cd12a45dccf39357a80e52a90cdcc37703e43f42ed43438b0b2d1f5fa8c4ef696573a3c12aa410d24bcdc9e800e32eb637dacaff50f6b664fc5297788d109e6258b6e8c7c4475405bc5c116bf430e9a78d2ef718f4629f17ce43ce80fec2d4f1d41543503193f49bd9bc216ec482a83c53244db21ab6d9215a0a988878669e2ec0d011f9bbe20d47bb7f5a23029fbde5a9c3cc3b1b703c0f43cd66e678372447b6a48701c8375b83e26de3186526af8525bc12f6d6348e86068b112566aa5ac84956c0bb3a6e487d518bf8d2e48d80ed17e1b9ceb241cfa5072544bb0c5e939da5d03c17d30b746d6d81a5983b0b27d2ae21aa83f99c10a0bcfd34ff30f391aa2a689091c12be396162ea7d80177344bec430a6a297e42417c9b535b3e6d6cc9aac0958b925aa3116a83302a97da0f109fd88b01035629912da5dd351e3b582d6498f70b7e2c69ec886cb7f1252b7fde8632f4f5d7dae636437b45d93bd9fa9f24aea08b4953610017c0eef52e9011799bf115731805c139272f4187176d64c9debaa5011408fad316edb04d5335223b0416031ea1ddd55e118ea013e82fc62e3d31fd866c02caed6c66a594dab6535c26aec55e81e30893792a76315436274c6363a4df5a251c04b423c498e241aa002dd3dc3d89130c6c88901002f549714ba653baeb35f83b9cfcf59763b5239cb6c22d6745ba8f2389fce932853bc59c14db2b423126a93b4390f215196bc7847901a2a35031268a99e2573b10422c2ec322018126d71fb635a63bad79ea489801f23a6e705c4328655e1a5cd0752f5470af790e6b86d0eea77f6985e11ac0e19b1c57ac3b71058cf86097f28f0f2e97552116d2970b3b2ecf90f0d4d8fd29144ccf4176477252e04cbac54d4ed87377a975afa17b1543e2f90860562fa02fcac0c6ec3a4ecfeea013ac45bea2bd19490887de4b3434573d7a32cce478d8f512d80291ac6b32ce21ae7d33a18889e7f44b2d874b2eeebf582b2a3374cb960e2199f672e4f7c5af89584a78a234f5b0e1084298bcb9db15554dd88d028a2e60f0cf8027328aca228311e7d184d5431c16144aa88504fbd501ba3da84ed23d51a0192f35ae12c8454d00be2c3d63e56ac5c4cdadb729e04e7b204258d2e9b21dcfc1bc8a7444436a2bbfd526d628bad472821f31052e8505b0f653c39883b4b42db2117746efaa999b5bbfc8e36db50c5a1292d34246460b343885d8836c2e85352dd2245fef35e2d53e66c3b9be469011520be2fb12ca2509386c1587ed3ec8aea69f0702f726349eede6ce164d24a4b1a462c228fe1728870f7fbeb70957648f92a5c5ae1741afe9d48121ab5b7ab873f0c73f6f9fb5d924367e9739bacef9d97fb2a43ba6de1a54311dd262c7497ba97aa277bfbd07033d77ac5bf550fe96ee2f0a54115f1534b370125ecc85c785b4b40e015d44aa1b1c1784a77fbfa34da643b3081a38df2912aca0e42715b3987b646f5b7c9ea47f9e59ad746da826990458686078912dbcf258eaf629f624b8b8d3c91349c82088a20607fa0f502db2adc1136a7b666b351a831c90a4e511de1424e0c0ee19d4f8883b3769f471691cd709dae926e3d82585bf98ecb32d116c7cfcb285c52c10192b0a076691fa49a6c745d594e9a37cf77b779298db3830c1a9627fe9698d23f48cd6bd0d47602d16c3ec2e7e3ce707a7bfce38d79ac5f372f0bd16942240930fde6c9c4b55416b702916aea8c9829974b53b8f054172c0a5a019a0e71272368b116c015d3a1807d339e41103958fc569df3d77d3bad543996b3c124442a5de5bae99ed1431092808e7f2452f38f782b0ad349d0d200cc8d03c3151c9c6308880b82af8140fee2261d27168a839e15026a908c2a07bce3ccae076185ea7149ac6bdeeccea6e571e3a9416ebce3f907c5b441eea2aa8c081557deb06c3bbda9e17a500101ce4ecc240ebb14a1b9cf892b93d08f0d2037962749a5c760d094520555a54186dc529c215728a6ba632844b02b31687841de09af0d35fddd67b9877b2ee6eca764aa07f97c98c48f8047572dae223901316b57c985c6376f83b80743653fffc73855ee869251fe0e8310baa5f49f2be915ee50afe3530a3ce9f94c5c3c8ccb87630423402acacb4cf02a913b65bfa45aee7e541951457d0f9a0911273580d78d6cba646975e5f29cac2aa592a613d444bf0a5d396ec28c46a8859fe33f2037299ae3d551d66f0673e19298c3eeb9ecddbfc876764c0b039c9171e213625f0b2ab5ad0bb5af0d1ca6a1eedc913061f629a8741353ce6ad3019c7b25b43fd76b5ea81536a0be456680dc66de76821889412f53e2244b22389b949cffe81861f6fcce2c5a549ca9e0ba085ffcc43c804fbb8c36705f9f0ed9d9f2209a618a5a8a32174840373d8b490d7a52bb7567f3b1bfce57b6be4f9b7c4f28e50b0d4a25bc8c0f0565679afa343f9492a74c44564129a79df166c1dfbe078edf259f1cabac9f9abf1ba1af2c9500dba66562d1457e6da5c22337182c318bb1562550cda440f843e2bca185adb4e0222f97bda09f7aebea95125aa7207e497cfdb746bab1fac353966c6002a88f9e8ee9ad710e04b756ebabf182a38677739525ae5b75926c398ceaf6a6f693c75810ecc99270ad8fc5d7ba6056aaaf4c920346707a8078ee1376e22b0e9ca94eb09d6935811087d0b1114d4c4c67544b35cccef54afaa24b459982bdc5c7f4e6f7ea7654732d3193bf9b457833c72fd1881dd29c5f1b5d1325a61ed0662cf39308d27695c9fb847caa5cc7369e1a2f684cb768a3a6980fa6e87a26ef370c8607e74ba9851254e8ee919c42f4a469fb79437027bbfef99f8ae0be0e2cc42f9a1873402df2e0c7c9344bf83906e1c92cf3e164c274e2418c90328294dce926b23f72e4d10ad31dcb83d4f84a6af509dace1c0fa24915d65ff3d95832d575dd87317958bb2b9309b10401e9d8efcf521d5da29caeec81623fd0313801979eb79314fba8583ca50742c6f82c9d16a0b08590674f66370e13992f3b505bd866c4b392704a3c8ad46b8e3cbf3302d2ce4ad2a71463caf680df3877964588ff75ccfa2fd88d8d4f6b5031a8323bcb8632ca2ea824c1bd95a48994282d06c3f6100f306cf466fb8cf8d9e428d8b4560c8ca0d14a72afbbb9f05c19b428a384aaab755abaea552bfc9f67efb379694516d60d1882b3459476af2cbd62e54e13da83109470d04b43f3ee1d9c65680f67510ce3f5b807bab11651940b4c83f60f2e63a06505700f7c948958285b4e9644f5d7ca454e8610d6ce8cbc10a9c96c5921aa8759f943aa8d293243be8659f284b466663285a456e6cb855c1d66ca1c524dccc818d235cc921392f583172d9c483fc0d11496f013deceac9cd8931b755372812b3191d0e513bd79e7bf99cfe16bd22bdd8b4333b4304c3c1dbbd72654133d668b3e53cd986e95c424c02fe6a3da049468fe3441a7d891829f37bd7196fe58a14c968968e97d894d80650368173a4ee02d3a9bef804cef5a7aae1a8a8873666e2a7c1414b83bb10984c1afc5f407e04b5e09d07001a46dc5e38854111e092f5967cfb017e5e71d47073b424d7b32a451ac7dc83edf90bb06339243d3f16c0e621107ca01c7bc719e7958d171f3b8f7b384c387b6f30dfde6737de103b168d7b045e987839fae6dcdc5c152f88ae3ec3c3e5a59a223e54160aab9de3028f41965a3fd00a24d4aa13c9a131553ad5c829d76f8003dc699a47d4556da47f34bfb0881cc1df125b14898b4a8abdb744d35a6ae792c7fc29f6eab9158740a2bb9218132b5535890d2fece04a2c2a03bfb7bfd2b0ab64a87006bb2085061889bd08a049c78ba0e5e4534b552fdc7520dd44e9495f2004da8d019b29e012ab0b2d0286b2850546168ead2fdc4e14099ff5fbfbe03917bf08e3617333fa22aa8e565c92a2a808a8cc5dc961d4be155b14013327e89dc10bfb3240b3f1a4f2de6d2dd3fb7c4fb67659ee6fc0b7e05be51e351212f5accd8d43f19136c975ccc9dcf8e3cc7b82c2ebdfe23c5199bb65ef34e1f3185080f82ec2d26ec0b0b09fe7be63a5422f91e713e17f327307b45af73c4fc8e853f10737153f762be01b121a0f700e4fe44801c2a326303370d44f4610adac4c87ca6537a18121332a31e071c46ccbceff333473277ecabc3b4fc9e71a6cdc93d1a2d73bc36f1d6505cbd18e267f2122910a7e299dd599b4295563377f7ea9c0dcd57d708334c65fa5b36c279aa543a25565b8f70cc5baa5f983c19c3a4077efc747ee3e7c1755fa9223577b4d3430e12bbb1744db121b5210b4d32b7a68fa599223017e555d59ddfa8fcec41e5e8bf2697a7d850acd79fffbe2f620d93070b16457744d20014d57226a00bc5f23d76d2f2ebd580b4c72d7749550fc0a9bf95e5b21ebe37c32777d1e095045fb4bf5db960c2763d11feb8545b63eec00f93779575f848e4687de2e5d821c9fabc61d3a7d511ca2ade6862101bf0d8b8c212c32a67106e31759d8f19529d44e902e129c9865bc440860ee31d08de5727f30d01cbc46a6648f7ef73c13f65b41c9044611fa27a9db794e22c4bdef7c63d40065c83876019ec02e4b11b50a3f657d34608cce2b610ebe48214209b872ed1e576c5e92335e8275b803c2248b6dd79377225631fa9411c950c1daf7521440d6070e700bab38b2ea669439b3f4825e924573e18f246edb7fe2351e56df20d871fe29c154ea9fd981127e5293f933fbe9ed3272dddaae4a5e29510f0e2b893228093ccfa0aad3a73ad02ecadd07f8e41ec4c69c97975c46a606d6358aadfe3815931447d76e7c013c90f3cf7fe24ef6f97bb44c3fd59d09d396203c1959ceee173a7fc3a69ba1b06b36e7b834aa71a6a5821c449a8b7e5c4f9efe37f7f38fb1c768eff02b5d5803781f646765b4a14bd5159cf1cbf0687d307e16e9b2c7c67415638de503f8e400cd69f3a9928655555a9e61cde2c90532efef09871ff26a6218e437472f1e3bec066340f24c4b2804492884c8271639298935c6b5ce63a53d168f0e5e945f08c456e03ecce6f628c7380811121b2495d00cc146ef051625f631c45d3331699447777d4aec2e9f2228868e8ced34f5c43a6a5621d2c2b06da0e7737da276e986b8512b2a08f3621232e57461ef77c84b9a2608e4e0f43da18aaadc2b5b0b72e63eb37533ce6fbd29638082c576d193b7c625f8159084ba181228e518571ecc996920381350bc5eedd74cb407cc1f8d47b1fc7921ec80f500fbf37efcaa80c55c6ecfce5a8b1581a4cd2df597d50ec3c1bb0bd32a54c348b19751df0f3866857d66667574df254e58ad552a9ceb864f3bd06a7780ee2a96606214c6dc841afcbab81daf3f37a6c30ae26eed1301d3f82f308f7f4b1c758a52ee15e63ef7135518e338819c370656a340b490989c4cde0b7550ee5e498980c1f8ed3b5c6d02af62332b86b80e68187dd149d34ed88877e99df3216ecead0a58ef0a1663047518339fa9df8f055a172ef653843048b0a8b5e385334f859d7df51b99ecaac2fd6c8b3306058d22faaa072a1cb52d789cad2b5d547ab44488424eb0235c43549b22f20a9d9b3868add1159344005f8531232eba5e6df546c83ac960dc1822941d56e94e1eda2c1f5e15ea300a38461f6e04d648afc541ae07e38b7bf8ebdc1a702937b2462b1883e0ce0b904f29601127c98dac41799826fc4cf237b623ab04e76fa21310e2dc6e081d8aef0f25020c090533a1ff2278bdfcdab66620d99b1202e37d2c76f2a608547cbca13af47034966c00a23e26f2307f9a6669875243d78c00b63cc9f6afb0b4dd7c6693caeac3db1c29f5c77ce33eb812cc1ef1aee470febd4712aadb7fd174d38a71d94394a43d3c338f762bda7ba7716a5a79802e149a3a79d2638425d8b4c041642b9960d988f5705cd3ca850e663561622ca7a0e533f758fcb1eb9a8e47eb2b198d0f8f1e949f3839ee27be73cb896afc8562867062a48b2e6b4308557a16aa9dd478fd0e446efb23e710dac8b9d9126489c2c02dc3b6a4f980105cb9a507c3c9079b1e19a7b072de7d6d0e954e1528f160acfe72260797bf48b25c62e6b465eecaaae02979e4a27bcdefc0cd1e9897708cc7da2f3de1146701252e6f3e69d5fdc0ccc5d6ac2c36e87dd091ce30bf8cda8030d58c557e261022f84b78497400b03cd06a2b6751371e878e8f9145a2e3a494a0be4a3ef3b2584aee67c75188f78e33e663a52151f55885f3173e67fb0064381b0a5e29e83ad8e08922b91db17e85999336a2bdc7103c5b295d01a2b34bba552eaf6fa79dbdc6f671c4afddb650fb6d2db47a7d958cd2e8ba96404f0f35cf62fbf669b443fb7625f99cd3812dcdb8eb04680918901566c25f8f845c2ad6b1610cb2c4389d573a7947baedc54477f42a4ef31f78e005ca6b9fe66e1e79e5daf02a9427b1cddd2c5f91d5521872500f38f20a0893108a78259ea590491be8bac7eac81f34da90a2f1094e533bb923392166595a56efbfc2aa7061c580902347215c4ec470e289de0735747e7a0038acc41185a40011cc1171de7933e78687d5b407c6af9b05f5282bcf55a47bb7c0c384745bf3558a0bbd3389bec1ee29b15ff594acbd7faf267b4359b77bddb216b58f80f7f3e6cc5294a5489af467d719c2c8a7565bfcbe737ea6bd159144d5964d11cc734af237e89d0fa88a58fb867723edd095343c6c976de9d51b5d41064e61e50966c9cf557a6e0aebcc4435edd2616af3756a8e2e5e9a37dd6a79047d1d106c255605b33325754af4a6d06f5047a9e7542d77155262c656b676d65fb109404ca02f4189cac34546f9af23446ef5397132d34795b68b520607b5d6bfca61be88b155d754b535fc4798cffe625b24a69f81607476a28ee70154f819588450a5481744ae0bda6c30b62758147c2722af1c310824f190b0bfa19df0b4824ed2f6d45634fbb07a861ce013a7156c1add2b6861559dbe85a3f0993aa8a7796f8555146c0afced74fea79abc4abbe47ab16b22e919f170ace403e88ad3494b4efbbef00ac249060780cef1222057726aefc75010a477b2ab503ca20621b270f99d4dfa1bf4a4a06f60b6843a87738dfd57769f4d23eda634c8d74c27a67c1490d455a9d09893ea140346691bf5d1412dfb2c2808cb08cddb30c8fe58e8429133f2840372864e4de1809d34b49ffa15b3b48352d554f50305869a872b3e204863b61fe1299d1529548d7c6d885e65058bea4b72db1a5fe9220b0635764c05246e793498c813374d0512f808b2cfaa3ada49300354182f08731987472dd7532f0550d77b960901765791bca85d2b1a5550797c0333f24e8cb2349ea3f2ca372534968a0d134252f44652e46346146d914b634d0b577bc915fcd8526a7a59973a13750227f78a352b2cf9200091074e68c44ab3338be73edd8dcd48229eb8bd303959eab6afa7b3d1d2fc8edc3aafb46284ff7603483d2b52a3113c78af08c0080c183b42282c18303c49104aae2d7c65930d89549077dcdfecce3dbe933b2d837b04ede8a9a8aaa946b35b0e926dd60d8aec41d350e72d4e7fc6474a0e89d3ed83fc001f85fe724ac6bcaa039cb1ac46cdcd1628f9a964ad100fa124b409024646fb9f7de5bca94a40cdb0b0f0cef0bb60271a76a285932491cf4100d349f66c1e35b0e1b88079927a594524a29a59452daaf99831a6983218d4c6f32fd0f25822e33fdf9b9c51625e2d044d0df69e8a334c761f6d2c394528cd28c528dd28d528ed24a694729d8e0f6f2b5dbfe59766d6a841a635a32d9ac67e3c87077b7eead49c9594027ebe0cfbd7d19f6725f1d873a99c7590cd8d131fee5fed7fbdb45c9a102195b914fa373605e76df8beca616eaf0f4cf0f31dee57ff87ff14ebc9316589b51d45b806c22b2fa77882cccc321778860b748b9c217cb2f77253fc60b69b95c1e2e7fbfc7e5efcbbf2f1f0303f97f792031dee585b42493f5be3d1b980f96e551fec3b1830c23abc89416cc7289ee7f9708e655eecb242d51547f922ecff9d4cb243a0766abdf2f8be24e8adb8f9e033aabdffe0538e0392ffea8938f1147c7e6c0821bafe00aa8e820efa5d12c7fd5ad7163a0e0501a9d4426d944288f42999479d6e964df2fc3add160f6309746b3b29f2f577356f62e377bf76e6c79c36083d96b7726c1fa532cfe70f96a690f065a50f6cffa0809636a6aa2b2a865bab2912a9f098beee64025e5d920fdd852b64f8a855af65b832ecfb8236912eb9fdd3fe6d960d72ceffb3548b3b0f39d76d285b872f82326c518e3766a55dca15d977908001b944f23898d4cf38b1a63c218d309199b7294ab77d4091b52a5ec3bb5fdbcdb6b3726e49458247047e094f2e422883ce79c2f6721592182294c140af0436a34f338d45c5c96a509cb054b932bf7a7bc3c07a6c8594c8d0363d429568838305244b08b525eb73e11593052449cba4404dba871ea50834fc49d3a834a24eec47c7f1d529d883bf7fbab0ce20efefeda44dcf9ef18df5f89608a3c07e6c85931883b30df5f6110775ebebf3211775cbebf2e117758bebfbea02a11775abebf0ec59d150c4c51ee8f331faae20c4037ad990f5572585d5d8019fcf303c4b7661e889b16f834bebfce78e1632e11d04d8be6652e11904e8be6655c4c04f42d9a8fa1019be7e3ab812f4f4c444304f4b57e58ef7d0f5f6659fdf46c10d13ccc9196511f6aeede9e9d9cc6c57c3a867e5065e6462980ef69ee0f105aebe7050cc4b76430edc20c4cc388c1940bb1a65f06a618532d5c4cb7f0987e116bfa63600aa4d3626120be4584071e7ab01906532cc49a896916624d7f0f5a7ec1f40ab1a6df05d326ab4b5b2ef522d6f4b35c6a055a05095e9a85c8ea9fb9348cc8ea94261a46a44d30474dd40a932993e7d4a1c8ead7b4b00e51a63aa4327453c06830cb81e589539a624daba80c35a8c2c4ab71b6bf79629522fb21cc51ee0ea392624d3f25823df9b00eb10cc51aa6c6719aa2a22821982996b245d742550e2993dd0295b994262db4e1875f13ba1482394c69425d91d29461ba8468e6799a2acde0d3f73f4b669b7294799a9531204959ba8743cbf309269be589eb50ac71810d599a98c0f8c9f34f43e4f99e11797e97449e5f9d893c9ffbd838f3b7a6a6dcefb29bdcbba1cdda7737fcb80d872e4d789099d21841331a250ae9235f9352ead4062ad6340d29a5f44c084b6fdce8e41bffbecf487e93e52b4f3b551768d04a61438b84b2aacf85a2e24ecced43ab5871e5feb9e53c6f0d239517119aedc186b2028a895316272038152e727f9c2e4c44ca657b90fb230a75ca22f7c71310b93fba7783dc1f67e737cbf3d2b037b061caa5121477e4d2d61d81d52ab82d7043b62d5488c8fdf295727547e47e59abc8fd92db42ee97dcb645ee97589e37c606364cb9528ee28e7c13601a0fb28c2953426b0fd23613e4fe4eb9341ee4fece98727f375684dcdf735e971ad830e55231c51df93e64b4c86c8217b9dffbe843cc87dcef29172d92fb7d3621f7fb5441eef749e75515b141f06ec2544a306173b6db286c987225c51d898410e47e141f215c28579cbce4d0c9ab9f52c7746639cce0b2e804f397cfd4c92bf7fb0d952c71ca8544cab56ddbc9b1bf965dfe8a4ba50b1689c2d4736e5c4f23364cf9045d4f3b75a8e9c9af98b7cddcd1a3122e72acd2092722c7f7a0b8c3492de4f87d1477b6a6c20ba6b8a309e58e993f21c7df1177b08f36c81f142b4c582942e548ca155262a0d2c2f3293f287263dd36b755473d1c2ab9ae30e1065e2922f791dcaf712957e89418682a2d727fa669d67e1f0e3be9082949e9b594f249f9a47c523e291f9f9437bfa63c8972b4bd11eb46ac7c398122b765822d0275e47485530ca292fae1091413a6c3a19239a66a9990fba77cdf6c11b9bf27ea486e7abac229063dd445ed6aa3a346924cb2c9a7818264d26b09250825082508250825082528f7a75ea957ea957aa55ea957ee4fb952ae942be54ab952ae2b3997ac8507d4e1a046a122219de038e969b16d1e50eef73419343b1ce4fe2eabe14d96150999995443f285b4215bf4b95443aaa1dc8fc2247f898989a98949fa3031e57e9423cfb9d18e2cd297f44a2847dfe7466cf66ec46a2b0e49ee8d0bdb0cb4256c1c124d6e5cc8fd35db3edc6690fbe3b6041acaa0239696162d289b02ab02159ac459f6218bcf14b99fd3f0266f7813c6970c6a7123764e968c2d913b4936b125b224f195e51bb1f23ffac313b089e90f5ae777251381c58762169f58c3e2935bbe4a66497a218a2a3f76df8f83f7120791ef7de320447ae47b1fa4bffbe8759de7ade2af5e48cb235ef1f0befbf81d064224e29eee571808cb770fa4e5bd17d2eabcd5f3b4d7ad82b0bcfcbe4188f4b0bcfc202ddfdfde8a47cbf7e7c0f2f2eb7befa7275a7da83ae1557cd4c796775711af7c74ef3d0e2b94f727ef571f5baec50f5577154fb1156fd7604bf31c7ae42b1eff1afc6ffc753abcd25612e679bac6954be6fed3ffc67364ebc52786e68e611a31d3dda73ff6986331aef72fb7fbedca0c73892c00a6bd2c6a3688715dfee5ae5e7adcc3ecc0e195166f8af0903d8eb843f638629e330a3b330fd3b3c1c34ac33b5c568f7d7677fcfca8fcf73f29bff2d5e5c2fceabe7ccbed67b9f2e712b606ff1b7f1dcf9151c93db4dec37c8ff730180891ec81f47b9fe19eee5f3010f9ddf3b4cbf57e75bbff6e6cad76b47cd4afdc13caadafbaa99f3f278fc2ba1d3f3f3f7cea7f7e4e5e88cfd5397952aaba5bed2646ad55ae306748a5edb7fef5c4e17495b75bd537fd084a8dd870e6d52b47baeaa690665984ea5ad05a0bffc96e54770e19a8c61865d7d5b91937da988c32747747a1b2d349f3bcadebb85a2bc775dbe69db22cee48548861317477cf302d8c31c62d8c314697d2638c31c6184fdd12272d6577b7d64ad27dced57c2159f5285ecd527f72fad8382a9f62577028857283295875824339149d65f10963fbd90d870fe6302ab90472972a3d897caf599f2ea58c4d91468c6d899227b0c1e8c90eab92d3beedd3b82fab5847bd93e6a8b632751280c63d7dfa9c9d6c29434bdac858d3d9a42fb8cf9392196a3418431d55d3231368304a2c4e71b3ce9335279d554c2c76a455a8e60467a7611d187343a3c1f8592767d06919bd763732821dd3607c79c2989421e89dc9d80dc8b1c139e75cd1bcfee8c5f84327c78f299caaa2745fca8b014faf6a309e9c2c4a490bdfa96bd04bb9d49075bcd0f91aec1c093e5d562ab74d1739b54d8bd98779165a6481749b0ec66bb9bb18e33e05fb232a398e605409e1fb322a4f1c3e20fbcf39278cd638a1c7d8c9ad7e32f3b013454d1b65949452558a94f846c71dcf77567cec6adaf7c5fa9fb3e2a778aa130a2a654f4e6c0a254f2a2fa553f9ea0af76d2c5a8b4b0db83117fa32613c467cd9ffddfe708a0a257562512a9cd7929e4e9e8df8337e2713e51d2336e73c7537d6f894f3519e8d3b7be67cabdf3eb5537aa3d02a26159acc1d25eae43d3b0722b55b6b54b71c420d65ee70369827166218eb245f5e1e66fea19369e3550eac479656a8a1b4b2d6d8e0a9ffbf9e734e9fd363cb9843ee0c0229c4db97d42414c93da8d42a2d156a902691e38d94372edf6d603d2dd6b81fe57827a6cdce690ec5d894c2ce0f67d6ec67334c7bf640330d238c303440f3bcf12650a8d939fe92f6f79424a0b95d68b4e9776cca993d86ad323c5f66e9398e76ce3ab3e77969e24c9411c17ecfb189ac7e69d3e1e7e058d33accc7ab1c9fb3ff9cbdf695ce9691529ac99ce87c0ce38879fee590b4a438f9a18c8c3532a7254b3e96a0fcf8b5a4baddad531a6be6102f65f430dc4dde048fee2f5d466745c7ee042b7f4a297d5621063df21b03912e9f130321d2335f663ff11110223df28110e9f19718880c7256f68eb30feaa199c9974739fb7a632bc6645807995485ccc6aad07ddf7fff9fcbf7b9bcf7f756e381557da0abe46721c80553645d54f9d50f511f721f761f7a1fd20feb635f4f34cf8ab29da395f9c49d4ecf9df0f4bcef3c555769ad4f2bc73dc6653cee600edddb3d1b137be737c4b2cf394b106bd6659e0dfa9252f974861a999c21866d5ced3a8c04d1974eeca4982aa553f154add2cd1b769eb75f284c8c1b678cb171cb9031dd9dd1b5cc0c68592ddd0b2b9716ec04567e0d4d8799a0a6c384008087ee18a5d4a6c38470a73730741fce8f6e3bd700cc062386a1c34a10800e0bc2ba0ba08b8d336bd488a18b5e8c3a31b01ca4d441071d74967b8c0c1c69b8471a9146a4116b62c4f73567451964f019bae8c54867c04860e51300081b0213e28ba1a3012727a7e3d119c000ba1dcf46dc9121ca19ba16010a004e6b800e0b021b621ea0c384b05810373a4929ad21c698e3e70cddb50623bde17cc732f5196dd41bddbc21cd73d66024b0acc6d1d9e0d988357439ba3bb120b0203a5377fa126545f18d16900e4adfa42eca9fdc14ca05025b275f6de84e2ed0d73a01fad6c9d71bbae839405aeb44070d7826eac0c9f33400bc9ee9e35373f2344eb075d654800276ece08101551e9e8dd8e12a875c619966cffe323a0f1b00d4d0a041750c4635a25cd9bf7a4f2da616731a01353439309a6bc246d06404cbc34431d12c7fead9901835841af21c6a441240d8906be29a38303a8763027323b03ccca1ec40581ea6f74140ab99b5cffe5de778ef0d76534d4a4ce4bdf4261a945d660d8712908f4989b58cfd40ef575491cc921b82224bc984a35c90fdb72803aa05d1c65f6ea822d4d08f9d1fa286328a090ad438400d4a1a94b5c73c075e23f56edc2cf176146bfc39212f01b18b3c9f0665194a0ff301a44f5dd86b2f69509e1e460d65d7b2d6597fd490e7682d7f54918bc08634880e790e8b6b0831c84108861ca9a21501a125b6c8a20a284c3083963f0df2a742fed5a594524a29a594524a4ecacab9a6809933d7b406bdfa704d4fb0f243ae09e54a5181f3ff5ca40320c7c76c603b5a93e3771aea4f9c9f6e8c4bcfefbe6a96e33aee672673bd5f8352fb8cbef603cc36301cedec7e80993ef56c6041e2842866e3d0e83a477ba1a3348b1a2b2a6a1fb76b33dc4d8a65dac639266bd6b8bc5d4bdd31f7cc5d73dfdc39f7eadeb97714fb6f9d133baa859d948bd450c6b26d76613b7bf73426d2fb0406f5696a902937c9d83765ec63931705dbdfa1b64dea49197b1bdbd3bbc2612508fd958fad795738a80499aff2b15569146cd090ceb12f67618fa57c9a85fd772463218d0d29eed060ca98877d58ad59ad5aad5bad5cadb5d6ae56cf3b3d4fa3869c7cb58f7db53746d05af9f6439ac4f73c6d69d07782512e8c2a6a10db81b527f5ed0bb32fdcf68788c534a8412ad431601f7e27971a8104576257f5c3066349c6fe84a950e3c855c5e197b13f3d0d6a9cd3634f8da042ee7998872caf6c964df9874e6a888c7dca07d381ed0f533fb9a941cce3c1c1c8d83b53c69ea77d69087bcc8865596dfffd0f425af459ee6a7b96ff41486bbe7dadec92e7acb696ef99dff21beea1bfc240bea70f8405b3afed43cb646e8d895a9ea7a75dd220665f9e833a6a411dc516451d3588d1215a4483a810cb8dadc92294b1ff709014361e15e52abb8ce585ac7a5a5ab06c7216f6df0b69b1dc1e7216f6dd169216a9bb629eb6b1bdb435bb9dd420f6daed244a4a0d62288f62637bedaa9ae87f5836f978ceaae77b9667c140e67fb87d9c85bd9016f68da471622369f036521f6910437d0d6dec9c540df21c5491d793dfee09675ba86be78d2d5451f798d6a18a369cf201338e2d946a9576db361b1b8e2d5e38b678bd706cf162d2382f87b0fd31085b2cc9d1c3c124e5828cfdb66d8f7936b697e66d39b098ab97b660d2200ef6fa986bdf10875b282d69afcea141cdc23e661c5b28691c99e3d69d7e76614f16d0bc1b27b30b1bda575ef5502167614f5f486bde55cffcef3f0c840ebd101ae42c25d8d0be82e6f46ce0d8a23d2fe5716cc124e5e2d86249835b286db17dccd3c3b185922d941aa77bc338b6506a3066fb4ab9007594b1f7b7afb8d38fa18e6e729f6cd95b30cb1b6e0f8257def08f53f63c1eb650d845197bb7af8c7dea867248c6be4bbde24e912b63df49de42473a476bb5d18ec6f17ea891040165cc2763399445181819eba33692b13026f16985ad94b19747316c1f2c39f9238bc9264c7a89128994b12419fb88c36d8a302ac9b48dcbbaca71f32d0ebfec2738b4df9f70a8ddd50d1ab97b6bbf665d4bdea100a7d3bdd1792f73e7f950f9fe765867d9e4186b54d97e7b37502dde028b03f59cf7f565fba4d80db57c3a5d5bbbab5f83e7acbccac7a46c3f7a3d2bbf83c759f6a387034501f54f5fed0da94fee97d427d6f4f497bfdc73959dbd611f75ae7f3a5d99ede5b287e590d6a0f7d1cbd1b97e957dc3e92d23cbc946c5ab1c349f3ccd275807d473a8cfbea2b06fa6b8a383f79db1efa5c6be62614ccaa7f7274e7ff2d2b34166efa4b67ba1d619fb03344e3fd6360707348ef7fd45d78758ead9a81b0d6a107b0c07b67effe679b875d8e8032346997bd44f2f01dca3bedea8b97e7b3766e46a3fb3cfd35a6ea6b8531ffb5e6a1cefb16f2695c6136e4f663bc8307256df7b263ba3bb8dac9703eb7d9558ecf66edcd34f2c6c336910fb93634d8598620df65aac9127dc4b0d624219fb99850db9a1a58c7d6f4832f6a9310d8a35d86337b0d65919f6f5ce06b36f0f87f472a0afb2f23cdd3794439e8de8757fc7b4c7ee147e20c77ab9ef9b7ddd3c1bf5b95b3ff6a6f9098ddce19a6dbf72636ac8b60e0c6a7f9de0cd8dcb6f6c623c749c255fc759f1eb74aacaa14ece84ec8d9a71d4acdd90b146bedcf1f3c30fce8a12c78d35da86e38636f1d43c1c607892230e0f47e7692d8fed177065aea8709b5fbbeebaaeeb64d44e9a8743c35c945cfba458a67127fa188e3d64c754625bd43a81ace7d0d6e0b84debc97ec340b69eaebb2088544c1183249720641446afd6aa895677513f2471b5aa4b1224b1820b042d05d00a965add67170437455a1deeae2b19416a55ec0853ab665d77a3118010d4aa9aeb8b1af8b4ead67577d5f31dd62210a070a2a815ceee7eef12444b6a018ba0a4af76dd056f68e084161cb5429ba58eb3fcb3cbf302bb22424bbaaa8044502b8a156491d4aaa7aebb71085330b52aaac9154aad6a870cb5ea49121440ad9a7219b52a4a97dd5517adeec6a31370f16a55951349ad9ad26577f544abbb72094dbc78b5aa4ad75d188aa082ab5557b83082d48a1d43d8751704b1085eb85a95850945addad27537561185a0565d75dd8d47d84252abbad020091647adfad275573ae187a25685e9b2bb2242abbb120a11b0c0a7556358e1d5aadf753712c188a556bd5d772312205cad8a8d865a5546d75d21adec0a69d598aebb510853686ad51849b14cdbb8da7927943d49a1c89695cb0b8c9432c65f2c6346cccd697eadd1c3b07ab7a777f37aea6f18480ebf793ddd6b18c80e67f977bf790b88ad1a9ce54f95601b29b630eca99703d39cd5f2e4147a204f3c5b73420e61511c310439748321fbada03ccba7b470a7ea79af827aee4fb786cc867af24edec93b7927eff4e14df656f6391cae70c830f2897b0d87a7b086ac7d5843e63ee61ab2f6a1d56ecd71f29ae5fe844386516fa8a369d67edf3f088637b9ae2cbe21c3c8287c7aed4faf7df5fee48616e55128cf7915e5a150c2d3a3f089903d6105a0bc8775407914d641e5bd1f3a27fc4327a3e0d8e0ca57958fdf92a28267832bf8e77b3864c1b3c1142f0135a5fa942a5555a9548a4b55552a55b954fd52f8fbbe6a6b7df9b5a2debba14ef6bedeb0865c59563efaa77c7494938fee527fc5f2e5fa2b9feba780b93eca473ff1be05dbfc65ef5570f8a5e0f0b3f72a1c3e0a0ec1ec7d0a87e0090e6fb2f7168737debfdce82cef870e8e5a2feabd3e0a873ab9d61b320c9b03db7da8f34347a7861f3a590372d5d60435c6f4c4a190be9df684d5227df9180ea5d6bd9db2c780903c5f871f3f7ebea4524c108a38926310508004861c838002a1fc4576898443882bd3f9f18bec3bc31209cc1f4a24093a4f7728c428872d84ba68716795238c8ce150fb59af4c8a35fe340bed651839d4b08d35aebd8675a08f7dcc616603d501c31a26e23e66cfe1705323fdcab3c1ee6d5500f6d955d90671102e7ff26eccdcc27239243749e9851713eaf531c9fe2b2e4bb8e842e512cd909921a394c368450a50f6675d1d493a949ce52fe3ea7039cb1fbc3a56983c4787152b4c3d666e0f98dba388cbede1ea31c4ed11d4c388db43c88723d9a7717a4c114120cfe9d10408283bf80d657f99db73e42cff19b7c7c859fe31b707c959fe2fb72709c9737a92245192bd0529fb7bde8d2f7fb807900c6ca4a2a88710e21539c85444197818f540d238dffbf748ea91a4717a20c59dd5fbf3f0e1f1d3393c969e872beeb87cca87ade43fec25cda49b58e14a6264852bfbf358f21c1f4934cb5f490a0eb525a1651203875f935804a01c462d90c01cc62b96b27f8b514a7ec13e849ab0e18c17ea0c2f47e7d5cffbad5ab8a4ec1fce50ca4e7d72885aa2a208d5b224fbb3bcb2ff875292fd7918a18e90fd3d09d9e31546d9bfd250b95c12970400ddbc1c1218ba95cb51116bfc63b82522199f7289f0ab64602e09e85b18732f0274b2a96955800ee5caa5251a3aecca4caf8cd59bb80752910d5b9490b27f8b92e770489264ffb0852786cac1c4b06931ac5a58be950c4349c54027f5138b6a195d4ef279fa4466d48d9ecc5cccf7c61652f6e790649e926b5032e184c0f4048e50d938f4e3d327b476d168f13c9a814f4a71bf88c858d320c8fe7276d31577ee3c8542728c3534c885c548b14cc3289d199661dafc38e9f47aa47b3df1a86e5cedbc8ed55daec6f79e345872f998c632c7322c7b1ecfaea6dd2ccb1c9b596b92ab9d534abd936ca78d853e43ac765a6c6dd80e9f7713eb40314cd3b4cf30cd59a70ea572d750ee11155111156da7c59f716e5ae6e96027b0b2e613444fc5184f40153bc9c83a5113d41a1ba7f3bea1ec97ab76f7ee183bba741174776318a518866118866158f4667b0caaec2ca359dfb4a49492027d4bcaf7ada994f2865bd6613e7577779f5adfb4a2f6f16613086cc538813ec6f729e3c7f874051533016602db8f8a3f87c4d49112923ea673626bc7f631f7b44f8b7beb39d9f76b5907faf3e50369adedb5fb03844e6bc3d903692d0e6b98f6db05d26969cf690fa4d3da66d64d0de799e2360fab19563d7fadcbb0d76eb6c3e72920cb184065faf1ee9065c73a509c61df81ec6d8e137b996133082b5fcec6b0c0c471f45ae7382e7b553fa7c43d87c31fdcd77abbc92979273918b2f63c9d51ed05a11784e28ec6fdf6dcbb77e3267352e6ec0521fab2ce2b73ad9c05a252d6212a651832b77d987244bec91c8ea154840d39a5dccfc91983bb8e351c5f60c2b868f16139c29430254db823ec852dc1aa800297c7aae09267f6a1a7c44b9e182589088b2d29490c8a9c5d4c0953c294588e424f0917ec0994244f89972c314a121128492d3e13870265f9ae64fde50f2a699037a14132084ff8a1415c520e63e69c590d9dee9e8102451ced67cf9f2e1cfea04135b09f1a3ad887710a8a349f46e3d00092e77b0e6c489168ec934b20c35b53d084a2864e4f1a94b1056850eeef6e2e298b393f3ec8305a44e803a1b54e7e80d05afdb51a6cb5ccf90142a7e53d90d63a7d4873fc180b00a4b5bc0fbd7cf2214a8e337a4e7b243ac9971c7866530d9ed3af253fa2a133430d9e1a245093f4c9732ac5575caa2b18eb3973ce79038207a8a1c17964c4678fec898a27e8b34731eec9c35cfbe2df2f37b64e3e05d39267119b45eb0f73fb85fba739d6cc977747ab8faae039d276d0be621c31672b0eef70efc780904c9fa727d28e9f9f96fffe87e557bef2c49d539e27dfd7fe767744613dbf7c0edebfe095f62f1f5b399c7ea5e1158f937f791c4efaed07f13f79c1417a012bd86ac7c989cde80ed4ab7c5eb9b155dde5a27e7555bee5a63ccb5551944f9dbcfd6aef494a49b5a4e2b383c759730eb132c72c1f45c8d6a82e6a8c991fe76bfed9e3d0418804c9de2313fd0b70c073b6a7f589b8efa141ca41a0ebbe3e0edb733808f7db571c844890fa458d7edd6e772fe03910e820d020a5f68b5ac51c8eced29c45e377f6fe3f68df3bfc85b4f00ac31826a4351b28c73982d50eef2c9b0fc47bb46f0ca45ffb5f617785e11ddb671f5b1a072ec0e4d3ad8d60b210e98f59aab2942859ae5ade554f26b91b8ba0dc2f8d72cbbea92c57d80a7b55a6f262df97c678595225edb507ffe88fb8f7ee89ead323cfe97095f889540ca4fbed81d4e75e48cbf3741eec2ee82cf7dec7c6ecb997b8677b9e3e42b271f5799a3bb21d790e75551c9bb5f9dfe83c88b3ff00be00f80b1f6bfc5f7bf093ba19c4a87dcf161f88f61bd67a38ae870cfbc27e9ae78037bd05abfdf6a1d63f29cf3d8016ac3cc230d8e0a6c5240742752a65c8b6e8fe3870bfe120db73efdb731fc4eb53eda9f744dd7bb8bb408354bbb56a9af641bcaf1f5b349443481fcfb9406c691768903e68bf1f0feff89c456d08ace32044b20fe2dfbf49fffe1ec72becb7f76fbc9a19eea97885e1158f0d6b3ddbf76f383a875713efe086d8f8f673167d1be49d41f1b94b95caa5311c52d514ac7fa8fa2ef65bb6611f65c6f0c43362de75fec50c27404796982109f6ea1aec3a55e36499866df67356bfbb7ba777ff2fee9c7c76559d6db03fcfe171cdf2784ef4694ff017592c0e2990af2a825f054ed7aa7e78b7b317e8aee6d339c06d3f8164ec2596d359553631c77cceb7c00c79b6fc97959814be9ba83343cc2ae09e23996896fcef9392892cb32799286a507e76e510c984166c189b300e344e0802699c30876ee9e39a16e5c444dbff68507e053c2707f93cf26b907fa333c378ed68969c3a4726be010cf96144e278064c045250be84a6fc1ade3566086b64394383f2751a9435b2cf203dc62c7981129880d081120984b8941459e108114924e1095dc43e2ad33ebeaa7136ae7ef44efe312682fea80b46d0ff745d22e8efdd2f82fedd5545d0bfbaff76b53823e88ec564ec5d3e95ed289d351a3cb1f23ff951be66db8b80d2b6ad89f56c6850906d05dba06a73d518b3c25e48cb3fbeb6e3e707f9dcff207110222b1efdf27b3ee29efa2729b0b1b57df6f4e4fd69fb1ef9db966120d9fb9f4e270b0167d1f7bebbf539adbf677efbcfc7704ff7dd4bff1ef9ce84e10b388b6adacbefd1300d63f80637062231101ece3e3de2065458410c827c7c5ea9566cc556aa155b325661064d72c0440b6630c5135ab1259fc7b9a97d6bef4f370c441e398b3e919e7e8981348ece9a4e5fc3f4d59d55415b622d03d652dafc8ec466635a385fbabbffe8661026963d7dec3da49fdd3929d6e6cf39a5bbcf99f9310dfa94f970fe370812f17282e0053fa641071f0c67f0a735e833ae6dd05d273cc5e8fce92465e877eb33647f50271f45e18be9db123fba98850cb270e247970565aab3fe8853cab0c59dadcb1836058b616fd3ef80d60077b168d38de50cef00828dc69aa6997ee355f631af6ec89ce1196b1a3ba041d9de8d0954a0b3216621832c64e0df6f812e43803251630ca6c2e18f193c6a4336c3d0b4c7215fc3336840489eefb76b50d5607f61bb8da82e99b018b358a7f6340c1b4a9faed1deeed9cf4b431ab9bf6f1627d680dcc6230dab1db1a63fc789f4c00120aefdd0d122c6ae488e318295cfe3fdfed2fb880f86604566c9a19dd9aa4015860872edee0a19a50b4cc82bf9361927f75d492c3f02810b5cc811085d18922b6dc2e2a7a808491950c93dd82c6f6a48ae5a376f3794ebd6cd9be2820972e5ba0602185ac8f4e75dd15765ec6bede6e59872ede6c5bec6d309d7f072df080430bac8b552a566f9d32ed8f04649e25053dde4d038fef184b2272914ef0655977908a835f8d7d7b0c4dbfbd397e770de9f3045da628bc3617bef71e0fec4bdc77d908ee3b88e0b368676c583fbed7bea7759c9bf765b6f4a1a7425cfa14848d9bd4342baabe6eeaa3f7bee7964cf7d4ff61cf6efd17ec3190c2701c8d17b90fdc31bee64ff90e5e6de609d9bd9d604fef1862aca0e41103bfb18271636beccf331ac49196282b297039594a37f9c1e0ecc862d471c6e20c7e8b34fd84f8f7a3864ec1386b168c33a16b21d3ffe1d10223d15858ace423d877b4edf6120f1f4f5bd27d2a37a7f29bfbf477e774fca771848f729f8ad6a5e94772b064264c5633eea7b26f740eacfe730049c95bd7df912570c84e7513da8f7ec51386ef51ddf382b7b20da893d79949b56ea63cb865a46b94088ec486120b2857afb2737c805fea40814963ececab23f4981c59e7e10204416105bf47110fab1154a9fcedbf183fd0fb2458f2e91de97a28225213181c2122e94ae4042855d9d4e4e3c1b44f74f3abf37bf5ca2184f2fd17d974bb48af1ffa7ebf29f4aca4b8cfb374a0c315134c46509a1a5248e804250ee7fc1e14c8aca89bb364a48474bb8507284242a8e4c11c17e1a97ab82f9de54aa0392c228870f721ce520420e24254db3f6939f03488a88a30309a3c6d121e48388a36389081e358e8ea106891073743c11599ea3238752e3e848ca918488a3030bfb3d1026812c617202963ce7260857132b38fcec107420a14348c7123a86743ca1030b1dd89589561cc97d440752ca7d51b92e2bdf1ff17df9bb2a2360b92923b0e16c59b9dcd4cbdc1f9907426b810fc44d2be66164906484209334e3c38ccf8c103340332b98099a199a59c2ce14d9789142a34453832880fe984b738308031431867e952457f9141eb42503438a8a8c8c8c95499271194f069399999999999999999939ddcc90515d5e5e4ef27ddd2eee1246020be125f0107e021761232c056ae223ebb78bfbba4b33770985437b97301258082f8187f013b8084b818db0bfc0a8569ea761ba776972d9c28bcf4b142fae17295e8c5e82f072f492f4824504fb35ed4549d3346bbfef3f27d48466a0ec7b1f5d5c5e8a5e7cb2179f179fd58bcf4b142fae17295e8c5e82f072f482c54bd28b52ee47c9ed65b40228829a00ca374afccd117e1384f5626693948fe1edf001853f8687636695189d5f5486b94452de5e1e545a5ef5b329470eb74032f4060746461a6c2950ffbd94c0f8a289174b5c2839c2b7a8562997a64883271509031b5a2c061891fdceef69c617d45f119fd027840fe9c3e24bfa96f0297d4b9fa67d42421f934f0868b8d196a28022da14316ad0c891b3901a44d26092520c95151d4a3a9474ce8c87f16c60457c419fd0c7834fe8737d42dfd027840fe9c3e24bfa96f0297d52f896fe63ca3f58d9981878995ea2196f2f918c930c14174a17282f1429a02ca164018549e5a3f22182fd9a5501dd00194191fb4330879aa6d130e120da2cbd9ca5e42c9a24344934483447688e688c5c1aa35823456e1a28224d9108f6af68ee308d0b0616c535337178d344ee47e1f02d0e6f94c8edba39c29582c31b225c285da0bc50a480b28492051426958fca0750059467189de477fd76374d449bd34b192694b0f1428888109cb8f0ef95b91deefc56a020a88fcf3dc9d0b834252cf6027bfa98af91a7633abf14c39c904e423825a17c40f9a0844001a156800a420da1965049f93c4715c15c9a228dfab97a3b82893a09e184744af25392774a3a25a59c92544e4948281f98a07c1ac7060a282196a0801ac7860bd40a9450419e6373056a0924a8a1c6b1a1c2a28a72ff4a72f24fd8cff06c10c9fcb497e87e776f5cb1c627d634ccdc42917c03450c4111d111440461d3c4a464f345132f96f2a4a1f941b4313a3a8214840ddbbc62cd9095b9a1cd72c68c2ec6f6dabad896382438216e096e887b22b2b822e78c9aa33e28eee8e46fb7d7d6c5b6c421c109714b704f70469c1438d4301cda6f5b42e1702687db12107774d344b4298a35435c0d166927f250ac618a354c28e14538a382c30f628597929098406109174a5720a1228296e606b1a606d1c65584bb30d9afe7182f73695c97c648834748ce6a981bbd1b365905d31831614f46f604933919d7e27b9291e9fcf6cc4ce757c618776eaa0b96e9259279efe2fb394be2c791a648b3304ce35ac28613ec663c1c5b5e61edc2e496abba2cdd5d618936f24f397cc8e1d338271194df5f69747e6b72ade9fcd2909141cd179aec5d196bfcbe908f0471e455c3166a680283885628bd727f0d4d356c8175d3f965651a88a061e9003e1cc0678606226858cafd07f039800f200c3b47ec30d120040d402ea2dc0fe690c6e517cc323b47ec30e57e1a8068106226001dbd4432de5ea2193f2fd1eaf2b09a1183123134bd6e8062cd4e117127a86f8288ac7ed74cbe694209a123ec0d1140373e4d4b51fce49b10480146b6f92232651b28441b2ee2923ce3d218d10c21daf4cbb8342efc7269906890c49afe994b93e42c1a22e4fe19daea431a2d94108aa129f7ef04354e02967aa7888893002944b09f68e6572ed10cc6099042c4a18922828d43e3b2ee7d2e2f35636951ad70dad65d9a656e74d6cc9bc6ada85a584e597d7171f160e4f5bc69dc8aaa85e5743b6f1ab7a272fbb964f5e59b3173b12702d25af8595aeeca4724831fc316cb365cbc8472f8d1b89cd5ff97c688e6c859fd32de0d989c826d5ed890a5a9d1612fb03739fe0c0f074cde94b0a74ff990c6c5692ff3ad5ede705695ab43a9719210713a6c638de46950fecae5c21895558d183abf38e3747effe925c2d86f8c4c6566441bedc2e4180fc7964f78c2e43a80bad3f96dc9d45e22999f5873160cb6cef2cb92e9ac335402747e55b916a0f38b92ed2592f1f412fdc43c105a6bc6cf190f339b1a474752cf2d441c1d58441fcfc9f172560e214457e3e4406a508a88a3c389081a358e8ea220c49c045021262007508358449c1c4244b05fd3acfd3eea437df2cabd118a35fddfbd2972e3ba2972567fcbbd61e266e82689066f4e9707ecbbaf322ecd0d22ab1f5f1a1e4456ff8c1f20bef59d585a542a4fc3039a1dc49dd4f7d3e880c648dca1df4f23054d0e687040634473031a1bc49deffb696a405384268ab8a3fa7e1a1ad040117754be9fc6157756fe08fe900608b99fe6a80b107369cbe5c65833736384616513cec872fa496ad2942c1f25b59265ccf5d68a4a8aaa85e53bc5dc6eada8a4a862ae6ca15c22a09b96cca764fee4d28989fcf4f66ac0e6d3a3ae06be7cc24432f8277cc932c61842962cbde7e91937b6622ed6927183dd1e6c4622f7ebc0c2889cd438374444f0e539365c44563f14a858f2c2da7c91fba97879087c72038d20f7d76ba3746d926cb46b9343084a7220358ecd1122a8c389243a8a1ac7e68a08520129014b9e6333456409616324f7f7e7006a1c1b1c447002e5fe980cdbbc862c8d2b77a5a1f3bbf1747eb59a3bbf99d6ada81040005e003a182ab7d5d0d0328c86bec09ade6a19bf959b13978bc0e4d2b20a243057647294e3ceca8df9978fdf4a8df37d8cf171f5f13fb67c7c8fef3f8d03f3f15dc873647c043fbe1bf991e7e08fef4839be17c51c1a829ce56f2385087a7c2722e2d82c35c824e63840495bca1edf813c67e6593e6e3131a746530c696497cc83ecaeeef5eb9cd3b3d17da51d7d714ab1c66d785f312c2909ea156b3c1b27eed5a0ffea35cfc69cdc51139e5e21f16cd8afdb76f295ebe8156c8862cafe5c4d7ded3a94e790f060036b62e3c4a4c4060f386646a1beda2eda883ac593f6bacac913961387146bfc63ae37562959787ab562b932571a82dc460a364b0e50f29c1e238d86a0ac2951aad1e4393c966a34fdbcf0327fefcf8cbf5f69135b79f00a23f7d02f73f46cf872630ee9854b44e5652e10df22a2fa199748cadf0bc4b76e0ad0cae743043f9f063f2067f90fb52079adb5ebec8d7e240357db55996b455de9ddd8496b595a5abe8f9e8d96e76919e3ce4ba6f2841f4f788251912be553625d220b882d193e9690c0e42329d6201d114a628889222424f171858f214830a205530f2567bd9630c99ef26ea86417ece368880da31225ebd331f8e3eb52a294659e8dd5671e8ea9ad525432d022c9a76388b4f196e962c4f23160565e8c5470d84a5438ec254cbe6f30ae785db1d403c80148b1e627872830e64531c51aff5553f66f6992fd750cf1c20ad9ffc361b462069f430e496606b73a329463a8d210f4b1b40cd11094b550b94433c01eaf1e4bce72a4cf8721d98df82299195747111dae1ea31e233d478dd3f23c96623cccca8bcb54b22416c127057bdc0368078806a058d34a94f492252f386c26dd64629477e3cbab1a4d1f0bd00e10ead5944a7936e6a374598ea206730c49a1a24865f537b89c553494841053131bc0b8c1e7b2586e68e2869f66f9bb7cf821e5287296cb59398c7218a1e2089e452dd386261bc0e81c1f4a1a87cda449131cfacf103ec427031bda2ccd2441363356f8793a25c50a2b9eae307829e908a987518f2397e68a353d8a7a30d1630887261cc0f0f92902c5104908696144524ccf51cf9124485a700fa0149795ef5bde9fc712be3d46643c1b2b2fe3e198b9e53d07d65bf5406a1c96971830998a2ae5331cc62b98545429b108413262601f422fbcb2ffb579c51ab7dfa77836583ec5c331f3eaab4a6785eb59acff7c88383ca488200f231daebe61e806a11b8cb821c886251b98d8c064439306fd79488184896cd438372811417f244364ff959f1c45395c0de628428591ecde8d94dc826d6872005284814b5a752f1e8e94fc4526006939e4909810a393b6e5637836bed5aae576d98d396a1123e3fa38f2c1727d18c51ad790221f1f3f3e8086086a30e67e3ea87ce0c08711cdf24fc222f5409224fbbd3d469ae53d4640d81c453986e470f910f29144fb408a3b2cbf82c356c244855fde06309ae5af445b6299588114ad487ac161b44229c905dbd0f4493392fe885392fd57afa54fcafe7ff448f9e44ac7810de315313d46a1f571e4c3880f231f413e8cf091848f211d2eef31f21c1f8d8422160943342d7a20f548eaa1d4a0bf0e97e7f450b224fb0afb106ac2862ba3378a35fe3c967830e91cef815464c3559151f65f15b9b27fac33522e918c8fb93d909ce558460f2d62e417dc23c9091bae80645c4e6905e439282667f9030d65f711ca8e6a5a0165ff2a2366460f24cd5272964a92b33621a1a1ed4614206c189f004401a0f8840074274f011da82ba824cd745649cd32a64604000000e314002028180e098582c168344d84d97d14800d829e506a501f09b42489711452c6106400000000c888c088cc3001c78df9401ffa78fac760c56d42327a326cfb3b366ea55072b15c38c8291105b5aab19496cc0f8187582edbdcb332dede99a3ea81e96bed5219b9a0b8cc6abbd72e97b2edb3ccf18da49db564be31d222d9175793b82498369d6dd4a2c06f6088142a32992895ead3d6229632331141ddb9230efbc98cf8205fe268dcbd8b09de249f6df99682257c9ae7d79eeaee7389c56d4ca3110084334f5672c31b2dde9bb2e62d46111850069c5382112fc7839e59504356a9b25487db57673f682cef07c3d71d85fb4980f87106ced9ac3815a3209319d796a111183805cd5b10f4094563a18dfd115d1026859cbd1874b8e7c80862bb4368e5b047bb8539d5063045aea5e2de9f9cfa8cd7a8ac0f01fd44204e45747343c6d4643bbb9b584aa09896abda2fdf29d7da2e5bb9ba03e08295fb63512607ecfe8c772592af033147252e509b1c4a1ea19d0a340f86029e1cce98b44a45e61e658452704d8ad8bd5549187baecce0c785411311c2cfe3eb124b89857cdc0111fe06c31cbd08daefacbec33600a36ff1604425469ff4612e3ee62e265f985a006ea3ed35825450f81b27e584c43d090c879753c0f56228cac8e30e4607d6e2374a2002e7f2b7fd3f6016f9ae1f135cebd2981912f4bb8e848855fb0abe1860d8cd688aa23cd6864771fc2a58991d0d4865f5a25cf80b4d9fcdd9fed16500c41edbfaa39f95a2d69cee419e41d6d1d3dcf4bfe99d6b65643a22b6bead68982cbd754dd3a91ec35d1e9806bf32619b577611cc371fe4f87632acf179fcf40687916c28d4977d485dd1bce99d8c4705c1209e7dd3b17d5614c457fe541a3d72ec044b100b8db235eadec8c3de1e2757e968699e6ad6c3110227a8235a09160d89e6e4273c2b91fc182410aa3c080effec588fc4d6bb21a5b062885a66e2fb20b3c929f34eee957610e63c537bb843246db670336cbda360f289dedcde6121e1bd276a509727321e7b3223582a8511476a3633197c98367bc0471cca54960026206894c9951349f3814c1742a62e2218a3bf87550d2491fdbbc8eb04f8c0d50788007fb10e591eabcbf252024fc9c040717241624d6c132f6ba4bb28024e5063b2181b38550adfe3a8b4b4cf12465e79293e7588120b42e97715d69b8e622774afee269ea1cc3772deacbed5d593bbaea50e30b6e5ce71d7be466735d152ed9a9dbdad233354f4d0601299bfe8edb5dc0fbb5fc4029165283dabddb9968c763b8d8a4ff426de574329b370e8935786b6305a65eecf719cac641f34f8b894dac7199ecd72589048a0029ea55bfdf67314b3a85511251cdfa513573cd8a075d89122db0386d160b37cbbbe09b866ad2ad9abd530109cadbc1c923d282eab69420225a26c71a15cc796d926823947f276e3fc1aa1cf0a4123824b726a59e5aa04726c36b7a5ff2a35e783a60f80181d08f1414651a961ac39c50ecef4ffbf9da13b26ea752662316c06dd97a5453d091eea21061f0cbcf6d2b11d8bf8bc13cf6d909530d8ba2eb4db96bcd0b5873ac9f482763b690fbf6579d31963abfd62879d04268f41f1305cb2f501bf91c04312fd0c5870088e9af41bcca06bd7cf77974c1961214c007080619caf02d6ad986e311cdab3057757db8b2a886b07c294334a888e41ab8950d7f01416962420c2e659d2c497c74f8b8cb3c5ed4bccca16f540885f2992355fdd20ef6287d12173033a4682f64a2575e4b2a38dcec8c2bcacaa19a9bc11be35bfeeb93a376b15904f6207b14a75cc90c32609e8eec257a9b17f9867fd3e32c474032118225c4b9c13787965d6ae6e0933e52d5caa6ea1dd60bdc2038233a7869425917c8cc0e0a6293ba146b3f3f6739ec942a18acf522d36a333d64e6d612a2933bd42e2a86fdd04668e2700ba22318bbfc3f84d2a5ccd5c0e1186b41681c3991405bfc9767b5342e04e9a3f4620180166af04d4766f414019fe1937b56b4ef6076655887c8e6a0c443344be4fa7ab0b87e803465eb4c96008e8a1b95d9b8898fae29404c917b13775b7830fe62705d813d4c465cc620e6658a553cfde13b2cd76176e806b57ca650298cc413c9ae096f045041e2f4bb22f0459dbc7adf14ccd94536ad1d25d3011c88419c55a500ca1211bbab6602fff1195b7a119d9639726d0442f58019f6070621ac85b1d9acb7d3a9e41413de82afff67fa7ae6adb168f30d8d50a0e77de45b55aa6c3c696dab82db53487d4d4bf29305ee959318d233a431aaf878f75edcfcb2fde70e04128537d166fde3b5d29c0900576073ab19a2a9ce28a705b3f8b912a8a2c18b63035924ec3507d22978ca1c97948ba1ef9a0df245db99f401f255310dc115c288e2f16fabb33119e7fd4e81546d825e3eccd0e247fd60dd30328800e44a5696a18ff5cf7b6f8f363a2292f9a6e95e2bf891eef5152e39a0f3a687faba32f4c51a6a878dcb22e22a2525fbc415fae4566484ae5ee560eb80a4dcab5964f06ed124a56d593c01891432396e4a813b3109af1cfcdb065266c5f256ca75ba8bdd42bb99866e34715c26c19b31fb7b2067019601a07b839413d0527eae5b35c1a8f597880f20ea92c94965062e9a151be158c4eca73585aaa5ffcce0f902eb2640788648b2a4b10027d1167f12243651ea1ae07ff842cd8771de4b5c260a8ef5c48f556c805d57922b54314c45340b4a8fef670985570692ac03ccad636c75f258f14dd6f59882c7c4b8408134781c176d8d40b3acb8116aa06fe8ac1e81ccc157342a832483ac9b185eb49d99ae8bfc6b5464f2831232e86ea14198fd7c029813a0ec8660270fd24544712293bdd3a4cf834581fb42268a3d011e53289343fada5b9a0f1cf096fe5fcad244ea4e0b697264c7256a5f6adec7dc6786887b52934b52263dfaa9e6036ca12ad84211c3c9ada6c6a908dfd80d894b13e2e811576890625995070d2940032950a81743392bffcf5aa8a7b0feabf91fbbc715dd028706977e6ef3477ff66dac2d20e6ee194db483a45f6fa697d0c761cdbfcf92f262bc261533ad041ca9907a1cf4c8b287a390ac3833610ab2bfa679597a3e00b15297657443f04cccbe2e7a6f1a259c8c980b5e15a7d8a82db174a968656ba852cbcf9f40e59d29f1ad98a22bb7e672901361f247140934efa03201cb8f938228326c4169f2cc827812c56581729bd3d240e853499d7db25c481f387c61627be577c9f47c25c24e74d51a84e4eaff6923a11e23248ae953007321fca91851e09111ed775f6b45b95fc20d295152fb85ad32016fb0b12c83c02269f028d117e6c23abb989b5d5f837c50caa781bee408ae11d6d156ba4c0354f00d79198066d8e5667ea717f58146d30fa2b188a0e9e3d3abf89b58611b9e424096f394b6c7318a926195a1cbe04e8abe860aff88645f93f941bde85337f531a4fd3ab386e3eb2e6a03ca17d346237033e5f2e7029f6123273274febec1993f621652ca73e279d0295da3720d0617434ccec5575c1351460e289ac3cc540480877c6bda7a7e56b2d88279c0d90fb896c8dffbaecd4bcaafed9fddb3d5add53dde7f77767d5fa9f4856c3f73c8824588107c1eb574af5e0af295ef96401346028fb767c5d2ff01d54d311d95e32bc8a2b1e3da7db3dc0913156d30a359476d363b29d8afe70b931c140aeb8450664b189cd1d10c2391da0c906377460b269cbfd15bf2f28113b1cefe9190b2148d1c0f1a4ad1484c37a0b60255c7cb1b896cc0906a27130a6ae7510f26af0cf6f781f8ef7f452a1068fff0248c18175c674d2743f2aab6593821f743dfa604c68314a091e8b052493f75266ce750d13a044b605458828c1b41cebbf5b0e95e53de03e0c89d292c0c827f67757ca1f3f6db34f7c356af0678a8018fc8991c8f2da2510bd3202b809a7f44d50188c3a8836b0589f1bba937a096c8045aa9d7da547f8b104808d35a672370c5589ebfd656e8e7923ab4e2403abcd233154cce0bad4e646bbb4557bb02e124b4e2999d075342af1f32bb671e1a8fb90dc60059a6ad1c0db18d89a7580038a62bf88621ec128ddfc1005caa722e7b00bfefa4d4e09dce131e2fdfcbd3fca3287f4f9ef7ef0aa93feb9eb44baa188d165d789a09800073b49bdd8a40a285a85af4cb8f21077dafcfaa211672f80b76a8ce2d4e4d4fcaa51870f80bf5d35948693d27e97a279ea20aee2a4debfcf58cc1e5595b8a6b1f50b34f223d8b4a4cdf88bb5a9aa51b5be1a90c618b17d552f1aebdf29493d163adcc26a35c469e22f25a2b7d63bf472f89497e3d8e4ada236674a35cc5e773add9979bb7be1a219eb7b988a2e1c94edf39572850df18268a6a311d3c2ce381999103b3fe3b0b4ab004e767ba0236d8c587b2f16be3b426b940f3352fbde4c9f33dd3ad38c218eab75ca1e59c8ea30090cf73b4337396c0267a0fcb4dd24b5a6929930a89b8470eaba4bbba1a70407dd32a187efcc5a4e20654b6dbc322460510b39be260c4b8e7112f52fd8de27acb8a64dc1efa6ad62bcfbeba2f767e42c2b998cd66353e95320fe8aa37a40223f5dd2d760dfd06034d22dffa64ac550e4464f5a2c750463195cdd44afd311ee03c4f60eff94bbaf2e795fe1b1f251df67e5667955730bdb9716849001411e4b50eac086e84e9ed24f4fbd631ee5fb917b215feee7253b1150eec145a9acfa5d1b664b15c9bc595480d8233066fc2ada14ab38e72c422c6bb6dfe4fa73286b63f769b5aedd8617e3fe0c5464402592e07bb8a1dc8f9baf6985fcb673dff57dc0954da59b5265704397460ef09a98a838b23df415279f47f315030f8d90d2988ac5833bae66c05b06a34029402ac29b8785e06b662b1782c341e11d136b57081b5248c2229c22fc7a8bad1d24aace43a18086d7dd93826fa060977deb9489086287f2807fcd3c035b66d224f41c31c2d3af48d4e2fad497eaa68e698fb33a007f6062ed40a23e3b21bcff5fad035b5260b1b6adbe42e7ed2e6aec098b5ec18281a2ce21636d35014c1c25dc9c5709696d922e9f418c09c7159ff333e81020774ae2e9d5eaf5f5430bd30303c6ba61fc2b897468109f079edd02553b96896e040c681a7a86217e10318173d1b6b1fd24bc5e9435a8baf2c22c310aeab55bf255d3c200883174c267ec06c06f43ea443fca81ae3c43e8cb024b52500400ae08a915cf8c45c84d572239c8abad80f16ede7a267f29b651c163f2bd5e6168a79d56bb219e580142231518f8a432ba7f9e83dc7df7857c118e67edf6494a475299d68b04bd33b7141231e9f2565cf289296cf9ac3c4605a374ca5229cb0f5983967db6fc0dd06c4bcb983960c64cb1757cd3013e82f9c4c480982bec2a2835e7460486ea6fa0018c3dc5ca11099f1aaa7830de111650c85317e15cd7c645b1185ab725aae842beee48e792f5df54b2893cd61048cacfb235ca4ec3106492c38cc4442d24a6c80d4c43e8c461074023877688f72894f84a59b7107ea154a4282de1a2a9f37bf017783c7cec7d59c498e5345a6090b8d390099f210100e66f783bdab0674b5e3e3addc271ae0e06a9424e7207df2dbf6ead20da50be05eed2e7a1dde225c635a461a1265de2e57ab96991911e0845348f3e9ae77b6a5dfa18e7eb57bd3080ee92caff4af87cf972699536f2a8610263512f4c70aa19db479508f2777d280c3a4963a9010864e6542b96d851b7106e6db530aaf33b12a10e471f2927b81ac62b88f1ae88fe10437af3110b8825c2b7491c8d87fe0fe419d0322f26d32c38191190eafd3e44bc11c0ca1937854167324ab114f5aa303d66f1f23fdc4c6305b5e7cd17a9a27f6851df71774429834be1f6ce0cd8523543a9054c4845a1dc07cceb32964c48136d089c51232cd73c38dcb2de304d25270346e00cab624b9701e7c32b305f96eac3aa7705dda60d8839a7420b564383a410c028341ec82b8403a43dd67c3d1ebba63d52234a3087a969034d1876a323585f8a69e292bcf403ed4e4a3645e3b8ecbe2e68fbf7f99c7bed56620a51b0d184666b27bf59ff5f84e84dd8a7e8cda96285b38d4e9340560bafcd082ecb53cdfd9c297579dd35e19957a0b6be302eea24f4bb9afba9ae4ac36ad42428921331f05e1e6718afaa3d13843b4d59cc0ea5168eb00dd2deda168b135e29b518226d360773375c9c0ff6dfa8eda8f990972760092e8e02d05d3b093036c2666b0a4b49741917c1eb29580420eeff998242cad23b3995904c81c2c4c614012e23589e73dc1564aac4abb093f5d313d865e3a4f8934728e4a919599320f7f9faa6a4a4819985b62f8a82076d37d38966e3a67174269ced64d0158479ba672402923b0278037c9737bd2e6dee3e4da01fc4fa8ee61a2c1ecdba9b15234c6f45610049adae4f126277977f26045a935fcc6f8727b4507cbe2b597b88b2bac581cd53752b521faa4a8c6f1cd68a06cbc7d9ad5e7cd3a343f89a2d30d2d644d2ca34b1081c16d5a0e35ee1ee0eafa3a6d147c951592c733402128109e1f7ecbfc4b166ad51d0d669a54636991a176fe6c23b514e052b2a5a8405d307e40900b7fb7416b9934bcb030b1ad843c1ac5b428deb5dd8dfcf713b4807f1d8edae113da864c2975d0ee0ae210c4c9f25e999093ba5ca2b3cb89933dfb9fbd50c38c1c621ed40dfc78169439a61da783138392bd9bbd72c64cfa4c124b0b786567f6d053667f489377217db32feff4de6446541f2dd4ffb9ec4b9274f491fd9de145540649b83b0dbb8ecd3b0588b42aa1d57c03380b259b99093e699fd49a4c08e8d8e0ccc882814b6b51edccae3f90f2c318ca9512067c8a2ae9c20bb7f9101d365845667465e4d68bb7790f0c6d1a174f6e90d8b1c80903a1a6aed65c7a4c4f3191a6b5eb08894368ac11f5e94086970720c24d28780c833c2fb7011f6d0218cfa30b6956868140932be8179248c319249b4a71009eaeef096dac9017adc217c9a387e5d54fbdc5d6e470a9b9ae7ad6052ccef8e6b41fe5b73b9c58d33d4eeb2d86a0bbeacf52d6ae3bb1d8ece8b21094015034931b9e8f235b72d84aa61c5c4e0c5502addca6d542486c437c9e49e4e9c49c05cdae412b93466618091e81fa9d922e671a9e5381a2e47b673b04851c863679f5ba4bdf78c7df7f34db97357b849e55c556b21629705ca7c5ef0d8f4162f295a45b22cfad130612e746735bf4cf8cb86fa76a4c0d69bcf8f616570cf93cafe1c2d52ed3f73f99eb0f047607717386a24fb14e95b9c82e8f0e2289e65df237b8d3690b8d752e9ab2258f7cf97ee3b0cd319a8975f6339245cda0fd56c9b0ee13a0ac1d0567cd78657a71e61d2ea92aa147a9e65713eb878de7ae28b4a3036004d14b18135e8885043fe62007e837587d794fae876c57e5f8f9614e8008288dc4ea63d6f22b1f7ae07f0f82f9b6430104079e3c643aa82288a185b83a9385557d258bb3cf069fe8b076d53fe8bde85a19dff2d4e4282e7d11e64bf19029203fa868265809404f4521915ee31f2d8ddd8a23bb90d51fa813a0e4b77f522b00cc39ec76b4962245c4723dd2df8d7a43a1c7aedcbbf8ae5e5f84e0239cb3f159d398d487857bbbc432e97cda05a50d26298fa599939cf5368451e8d140fdc742041fcbbd2afadac98df6aeef9ad69b18402539d9166203fcf2a76781bac2e1f1edcc3b59fa3a3d398247859b9e4812cb8ce13b41fc185106480c21a3fe309b1786d8e437c77216e155aaca1b1eb3c7f228065283b3409c5df5cbe645a81557d1851df4d6b17ee409c159ce61f502b1db6adbddd9490b6a5cf046823a07b647d6589aef0eb9a2c344dc4b28a5edba808e3d604cd9750ebbea054ae8a01c4d60f8297ecf566fc6cda1827d4f7bc6e600fad179132a608b29fb12030ef926920cdfc67b303dd4a20f4b16397180f64b3a277c24d8ad130b828fe73c2dca2f78e36d57eeb8bb6dc791d91f9745b11c4fd057aea353c1a12c126ff5c1d11795d0e3f957baf21394879ba7bcae75236f94ad08454ba2723a4d31107ac770c56f25f8f051c986c95167583460393cad16afe6441f53821b42697a30019134019d7fc03604cb9f8259cb56243b1d5eabe4450427bff13675aa8fa7e27272e7144f5afcbd0befbcdd18e05a13de49bdcd968364b67a476abfe9af9c842b158b3e5e20002ba69999db00301755e2a43ef63b88a519a8df9894d086f43d72304dab839371eb54f47a569b2b8350fb6ccb3612420115d1ccc2e848398fdf75bec39c8f813a57603517fe9ef11c06c7f47fbe7c4da979ad4ebf8d4e28726b52684022fd5172f5a08cc24532ed734e83421eec8cb6568b39adec40c0563f28af554bef43224e1888f7846b41183f9edab86734a2236cb2d4c292b98bda6c5eb37907a4dfd1b227fdf4bae0be69d8b81bf15d3b0e0bae62a8917030849d508e5ab0bf6656ebb21ee82a987aee8a4f765825c88226003f3da5d317dc90f30e6e86cf9fc9b4006437753055d99ed9755e23aff7beca4e9e349d962c0bc9f54f93d2a8570075f48f07e93a7e7bb18a7fd1350ac2775389ab60fe193abb38343f8250030c3b22514e7f8e06a3da8edc0056ac32f4c74260d32f47a89f409960bd0ba46f21c74fb1d2e64a4c4fbe007019b7aa1e676fbe4f1de7ba629a009170efaee8451d7c8ed8760e9e42c996fb5f0a1c631ff6e6991c3f6a6890b2b23a5e8ef455aff351a5704375d2d56198faa3cb4e8f093403e3b420dee8030fab1b10d5d7e62d2461cd89f5e618b0d75dacb9b57791a971a3d7316c308d81d7a028226e0f5ad6183900d3badf3de98c0ff361a2167115a4281f054fec655bd48bbd1b40b8f23308885c43ebf9f179b0c0ed8e8cb2f8ce8e1b8d231e9aa695599715d0f1a29b016bc004b29cce9c54cf4e6c3bd0ad6cc9d9edc987c3f8c6106c460b33546e5582c7103be05effde56259e05e0af1cc827468f7f1b458e3bb3c84afa94090a017607582882857f3ef96f5c014028a0f4ce8b7089c2c1d5600300e5602ace28022cf711f4915dc6082978e8661aa7b0cd4f179509d555098f7c92bf14ea65d8abf440a3a62f3895b1ae47317cd0d6bb9b1eec9631c44ceb010bfff0f959582727300acfcad2cb05c06e8ecb9000a32bd56b6d001ecca63c05822ccea99db8da6fed843dc1f8fca71dee11cdff18ac6fdcd9115667c06f01118f7df723c9a0171e5eacc8bec627f2c80589408cc72147a20b6ee68fd4a1dc5251574f700d494ecd9de35f46ffce482e607747e862cb55f48ccfd0b59b6d41108d080fc0b64d5d9f55d9a9f9ff3207075d3dca52071b1280de802a340d842348a658a86c13386ca627ea946bf36b16a60407f70519f6f4d13a3ab333eaa65050aaae5d1f26d08edd0d5a3cc089260b7b16514eee4b495a54c9b6129d9519c86309daa500c37e0447316266c3bd0e08952ded88c3a3b3859436bf0bcee35ba4a2a2429dba77f4c47cce51ae6e1f15d35d232de4784f4697f581b44a2bfcaefebdbc7b10506fd3ab5a228e53ae314b9b06e657aebc01e144c876ee1c063828f25c6086d95bffdf11f088a3e78ba8f5a3d211c4d441a31fa1ee0ca52d20f9d1d0d1432ab353fed1c69dbff426af9b1982b8aaf358a4aebc2d32fc8bd450557d760a01ee3da32bbeba02f5a7e687fddea5703e239148578f0cec6b0cdce32f303a40a0bb13c4d5df73f20373ad6cb90ab1f5231ba63519bc0f08e5845109c876d209cc2ecc7c0f48572d43118fdc371c5e3c20fa72e3514fe804cbbbbd9ae87e1680ba3d13fb001be428c2da59518dc3546f76bfbb9b365ddba40d21b2043da0db62d8bae9800f6d7f9f7f4086ecf7d5b784d4c76f94fc63d53e01b99acc301db2900cbba02c87e1fd99ccedcf842e6f34f48e3cba2ec5080e1e7be361246f479998b983b3809822bea37e477e1ecdf58e2ca711eb224707b5b8978274299f78b379178b285fa5c24630d035961a09bfce58b11ca7e03fbca77ffd2dbb485a2144ba90040d64e67c0a7d49084110d29a34a6549b61e8d59be0278e9ec2fb22f2f99bc9bc4ddb1eaa4cebf7221fee8591b87fadec7a52d4b6201c3dc5993caa62c219e18bc10f901d106ecca1e7d5efa8b536c79929a36457f675837917b26b39063e04776c72d3d6f5881d6cb855c5e213077dc7adc175bbcec4ecbcfc89f61184cf49a46ddb625aa45381c50d30e75d23eb0c2058ab71e279f0a4f45773cce4e3f6fad42f2ab193bbbd369ecaaaa409032c35735ffeb16c6900e14a9fc3c62dd133de0383a8e4b84ddb296df6b8d941c6de9b478ac5c9f9fe3106b87f88eb3a04a9ece008fc75c29a518b0dcff5cc1ca265f53fe58fe83db1e69717e9e0e4f8188d000b7dc449828df3afe9d9ba5a279009fa8fde64c826e9a1c619c5b7edea24e29fa7343ed3ed9ac5bf20971dc840d7ee4a92967138d12576a6c41507d0cb917fe8d6baaca956d66e67f13b5b2cc862a97abebec156faeca326863728ef3c2632dd8c8c89ef9a2b85ac969d4b2b3e9bad24b72e9b1eb4d753b9557c1e6a6f2f54c78c4f427cb7e04a9d00b2a29feb7baa2d6d266ead65c0b8b7173a4f27c406814c9b0b1097e912ca1ed780fe88782ed6951db51b857dab5d33c43d461bc7675a352bca560f89672a41aa25e48ece888b2e30eb71070f97ac515cd1acc5b7524fe1720e3d59a4506ddc60803cf7b3b2c1d6202568bbf7178292a8d72c1c2dffda943fa5ef41682840e141981211e247a8a9d89553bce02ddf745b5d9482627b51da9df5a4e1f1ce6d7460baeb6230188aff5a5816f11ead7f46ddbf11da8c69e6db2047a3dfc60f2f32a62d26689bee1b47060dbf1651cbd113ddbafcebb671c87c9c8761c208a6e69134c6d1287707234e80e7b93edc8b614cfc689de086450516cd73d3d1602b40712d2ce33db9928a954bdbddab08b56bf3700960e2aebf2fb3157ce55b9aafa53790b38d009f89b40d630a5d3e60789cd2235997ce3ccf5cb99558fcfe9693999ed35571daa06233b9a1d58fddf6087df42a80b60ff299442f12505e49115814b09eaae24c40e2af52ba2903f8caecd27d055d57715801c62e6cab919ac29c55197aaaee2949201095d83813ce20f00aee61a89c3c4bbaaf7de46ee8a356c2eb18aca186f58df00e5baae220ff51b2beb2da37990d31c6998fcb2d12e7d033211280b50d468091954a739afe238e8004cfc7a620511cefeaeda4767dfae3308000f0faec96377657112d133bcb10fa199c7521a1085b6947a15d9f39fe9e51f87ebdd9ef9e16c569b45ce86639f024b1e3135256b9821091d99ab49514666da5eb7a10126c7a7b9734a5a57d4fc4f333704a27d9e2af36792a36fbd5234751607f90b004f6d964ca8bd8999ca9d3df153f957cf5ca649d9fc8fd8bc90cdff88717cfc0738d9f45aad1870cbee3005455c09a9855c6c7aa0c031609215a4504f976fcdde2e218772ba18b10450f58323b5d5645a7194e0731bbd71fb50ff356a875d391308ca02d003cb7e52c9a299df152c15f5745dad9b11edb1ecd902c8e99e05936b93968a233bc8ce695a87b0a1f8644f9a6cc87e1b481b835345efa854c9c4a69da3ed742579478507cbd16a29c4c44947c2ccc265a094f70f64999a8b879815a8e9431205692d5113dcf905c6c2a03bdab2ebd827eb192dc1d226650ec6174b099ad7b92cec5fbb4f40a95507cc38ae3658e43828f9f4fd886bad201c87b1a969384012dca2a6b529879d2a5009d8cf293dc815afa20eaba5857b58c40da02a72086da733844149717c4096d04742bcb6d0983f3c879dadf6b914149aec14dfc9f3397599eb8f9cfeea937ca2b18cd1e1d56da79e8f8d063cfee135577a7f2c479c0a26edc21efd9f2923d0e2afa643514341640bec278f028a646eb52b5274eae1c32754bf7aba447ed78dd3804edd989b7a677abef11d85557a64d066f0df50c2439a3a7bcd29de5118fc29cc6332aa30e39400613271ae703db1b15a836822b10d2e3de4762a564b65b6cab455dd3337ac6c8f4ae85ded7b5600220168cb9bd069e7d65804225b5b6dbf077ae8fc534f4b80e76769599f64126d63677f260e6521aece993e9c74abe9d4260bd7b7d1d46d8b198fd206c9638fa2d37c3a9a0467df4756e28f51be44052f3a420b16a68db90b0c4de0d6290611185625d99c24071c66d7748b4b2f264ccf7b2ff229f2f8626c938f56036ac923a52ec2b6da95e2f7aa5af250c5a851f963b22b568c69e42485dd4a937c95a23ccdc33239ffd180c9035535a229cbf05d34d9ac5ddd54bb41b08a5a96f0df0282035403bde4e6b7004e551091732f506fdb2a76b012d9e06d8515a8ec31f49a6ea52b9a0b8405628efb53d2bf1123a2cc7d7299bd90da87f908fa977bd8ec78a13a8f8eb81f53020e6d121c63e9e5149daf88fcf92a24e8ab4288424ae6e30a47a71230ae988b4e1f8a79da2f2ed5ae5ff79feb4162df2646e6f633361d14c6b049b9c6ba2b6e04681f594db9a40d10a8a68c50459035b55e876117760c4df119969d3a2ce32aab8b33b0250686926c65095565f09f49683520445c5bf9b2fa6037f94c8de2f237535f9af29156c15f09418737b22d2345377f9cfaf8783172cfd981bde3110578922cea1d22b0a427b1a8e891485bac7da90e52503645da690ff3fc54b9aeed33816c5cddc3bb1970ab992ef64d1e847ac2415d798a59dbf2709b4048ace1afbe62ed6e30811747cbb312586a658fb316253ef6264cdeec7d20b55cec34f5031d7bddb686d3abfbfa1d1ded6c070d37c2eb77389349e18ec8a3546742308536cb73f2f5ee3946392e905325ee24a00ccb4009da85827519aa522428116a9e59cd45bd57223ae181bf2eb1276d79f2901955abebc15caf2ace35c224016005ae49017028d1a74dd5485dd71c32faa7ab2774383126c26ad8590f7fcdb28e8b85e9802debb3d151dfc708a8896503edc71cf917e95ce4d7daaf2bdd931d7b3e0e283202d0fcd929e39cd1398e8867bf675ea9981a99ed6b082f1369fb2c8e29214839d2e3510f3a6a65deb67cc1723202f90f2ee0cc734c17b85e2daf33ffe2d9060e4c819d8252bf2efd667043bad6c933807cd32934c0ba3e54d96118d147f537c6e7d30ecdcc75c9320cdc867784fc5649f439f53a9aed9242578a18dc11c27d8e8e6b175694f4613ee5fc8992dcc5a0f4a7dc60f4405d042e1295f90dda507c2514322ad5223e3e354325ef9ec0b7e7b93723559b88cabe651275001887cb1d1d4afdbcf3bf4208063ad0051ab8db493a6855b507402b57a7b9d98025e49b28799432e9d6d62ba1b75058a4fbb0c16425058dc16be5a423910ab88d8e8d40d7456e94ed228333b20ee4a3567e26b14fa2325278474597e03d34243a9c38407451b8c5f36b5444597bab1fd4754926cf319922b99febffd407a57f0fbd875dfccc0a3d4ee4b83c3e2c4e6176367f1adac5c11da91075c5a43ff0731c80fe2142fa26a77ab9641cfe4369480df5d9b173d963767fd9b8f1f048047570c241bbc522d34172d6dcb89fb09f5193bc34523138766b086e449f094f32f3a9e29536683599024c44f49e6cd1ef313f22fa0a3c668f9208d51049273782436ba40312eaa2e5d62fc351fb18b8bff7d816c91717a0c99c80ae2e0d071bb32a9eba81793e11db418fa80da0319ce53f676c466cbc121221b195f65fcc6689d9ae904839456c3e9d9313119b2153c4260cb4d1fc1ac6d8241bc644dbcbdd8f564aa77ca062376ac88c83d9f284bdac41a048db56738e9e248839b8ce555f0299e0f6fdd4fdc40f9fb968f4bbf580622a91400bfca5db6747c0c85a078ae4baa88378724a71ecf09ff0f5996a4b5a3f7e38501049cf7a3f494c7c241cffb405b57c5450e27ad9c3fe71382d6b19b1373afa7c4b4af5f5f9a82c903424a0ed77a0692e9eead84ef0ad27371bdcfb5cfc1a200ca1e7b65ab40d219f7c3e0cf3396e1c322eb8cb05013c502bdab9271dee27d25e70c7964c847afa4ed49218c83a7748bef43e4681b586f7f8925fda488116e01b3129b7cf125605470c0328504f3f2c2a3c4f7f514c76425a39c87b9ec4e7183e9203d291d1ba4de075d6b19ffa91b6ff1f32d82a69f87bda0eab5dc7950f2fe9e3340802ca091fe96caf2fca80f8a5b55af2117f49e8c1e9a06173ff67e26d767a43e269975eefbc7bc06e6375ada682214ec342dffafbfdccf9c2fa4c612151f654a48d28386cda6a2e3c221f03bd0f5eadec29880eb9c108716f4161e1c9f8bcb138cebe61e72ddd98fcba025d46e7e8dd68b28168227ba5a0fbb5428fcfe8e86f6480cacf64df14ba6c88761af04a0ae405bfa4be3ee906b39067f4385b431b59b9039361c61ad30be54a1233e947ee395d94680c4aeaaa2bd9fbbdbb30b3fc122ddd8d3884ef3809713fb73b489a920b6bf3ea587333c056ec121dfb6dd5606bbf64ff481d745a76cadc0e968b291f8d00dd530d89cdf81982ab31adcea9748f3c45030d449b1a9ef8b72ee51c81aa7013a7f830d5f62ccae67b297460001310d1ad2d3f0a24faee226bef5a9c911be9f81ba742e43bd2818c6f09f8df1da3b08296555d6d4c50761631a56482f4426dac1b8874609174ac9a940b35ff4bde70c5acd7be7f78e8f3ab898874467b62a87b920e365975384acb82adc89320d16ab45b86e2f371d496512df2da0ca836350848a4e2edc079905def0c0c2b8a3a2e31112dd498c72c154ca344e2e927549f9bd6f599546d4c954add509ed3fc2172b30d2f160888528e911be7f3661a9d8afe01f7adca132289fff0742b7bd4e4dd24d8990ee022b7be2d619c7ef1463f87fa447eadeae27c8d174838fa08c16b60df9cb07040926f90c722ddd2a71f173bc34ee7d7bdd8db2a9736c066536f4e9e1e46ab674b882190753ec53457af659fc9173498987fc1446e20795be53ee21dcc22b4a907979a9f4000557b643c3a66b2ce52c9e7a32b4d188f94686e5187360e3c036c78bfe645b9eb04cc34d94398a49225661aaf0a7f1bad24b4da1369e0ed7815d574e11a9265aa327674a612bb7cf374d75021a7ec32b7b67f8d201a3102d34720e4a4304da13aadb9251655d275e6cf50ca9bc915786e6f8a453c083188c70841708a192644cb51083d32016d40401dfbe6a77f44d23d7c792a2c08c8c186d705dcb6c1e2e0ceedb0dbb236ff3eecf0d567494a2b568bb5b7a5fc9541d534ed3ec5fc4becf1038435edefeb70cd9964fb5da4b0c79c7749ed055e1ac907ec1b8dbb191b86677e64f07883ed504725c3d023c4a24de93dbe7d4e4b78f4aabe1dbe8dc921a3d57fe311bc3c5f5a7c266abf94ac431287629d82f86b5a683b085255be651726c00d42b110b75177b0528159f59b548cce501ea3aeaf5b11ce2f4a638bf434adba60953df1988be2b7097845e171502ce4503447ceaab3f4b21e1082cd68603c495573dcbbbb0c32daf7bc97e3dc496772f912b5f56bdb43671ac033ebb72cda0ab7c14057c7dad11338b8a6027d58e28e8bcc8e6a056855891be3856a56b1401c514e9faab2ffc3b6a4a676f04a478edb0fa725a1eccd5250c2f5e501de28874a21d0e65626e2cdf462102ba943e13966734d2f33808e81b093a37b640ecc855dc0a3a33d6e004df97a07eab547502de658ac9f8a663900fa6d0d2452ecc6027260728c0db2dfb9d1fcd04de912ca045a589ea78a5186c2a4afe9feece866f501e9ed752d0fca354e7eade514a0e91f8f10c55e3548b24753599d7df0d16103ffeb2b53916d868474cbd8008ba9373915cd6c4ede4c8da953413c864d2549edc4c2cb0e4970f29716b44c36bf5446139883111bd81e7ed46f89064f16fafe9a84274099fe99efa0aaedc10e8959a0feb0c88a39c7a69a86d8d8ee0195ecbf98ac5cba3a97c1f932bc2a2947919ec58cd78cb8be70f5cf75b1b6aed86a9f6bc2c067fdb5e509cfa51061c15b4206cd5c2c21561181806014ad40a898ce967d0f586e92a50d9198b14576eb133fe70a0bd4fbadaab7c628e5b3d1549892c7e0487456284d501eaf65f26304d021398c06efaec97218ccc4fdc8f1a1bbab8c0d9c640d00e61d72c826fe0dbe2964195ae9d1eb3685e9629509dccfe971fdb792d78f18f038e38f8b8b58c44691dcd9e500c8f4cd49157da20b0981dde7f516946645a77039b4281d76b839d9dbf9de0925dfdd792cb132b2f4fe80b7357d4c612778e39aa974d9733219e8e77a21e57dee79bb6f81e29f0e63c53c6ccca1c259720e1e1911aa4f308e293f193a697f81bd100172bba0f67b8232302d7b0b7c6af1fe02628aee8f3ab19d0771c34591002a9e08980b52d588c801632dc531c1731ac9a76678348ad7889703d84e04b8e962e49beebd5e39b19bde4ea68fd2f067f980887fc374b75406421080315fbd1a289620b9f4e494b8999512bf9ad266e88a2b687abbc7ab403d8e0b26d3c310a7dfe8118f699b97feae06dc10c344eda7a2297436e17a2f33634b66b1fd27d5871bb2139e9e3773cea1f143a09f47609d1f1b86944750a27a025e84761e031e1867794a2cdb9a01862cd56880b085d2d27329a5162866b150d0e54eb291e9dde793246b3deeafceeeed43d8c269b87fa1bb91b421c4e494094ab6b299b28fac2014b8bf08628d56f0325287ba5e3a563a30aeb06b36aca6760a1ce64bd2a2788e5f5eab407e98b0866d56a1135b6c85f4c4b48fce9fb109c0b8531a0c678811571539e81513345f1e63049da83e2e4b49c684aa287a5fb98668ced80e07f7994f7ef6c285d001112434fa380b2d469ba1f60f0458748f27ea18be355aa83cc5c652671a6480fed33c26ad5ca8f8719087dbd0599adddbe158f1a121bb87a69ac70e9fa0c6e4e110cb419fc8c305386dae0e5d1118d4c12e5cb118272544f294007196164492ea0e99960cccffde09179b2e05d4fd64e37e9df23f5bafd2ad930072c7f741537259ee63aa2a33a43827135104e41b9657188a524479bf92042e2908618bccefcf4de62525ea2b90603d7d2f6b69ff21b2746aff511446657bc571f16b20275fc0df5937bb63f904c5c95a1ac8003df3a4cc5c1694da96bdbcc273b7b1445ae16d2b16da8dcddad1347c925732025f1a72065e6c91c7ee4dc8e32f521c6f18f826381762c32711ad758245ef6781d702845bd11958c7a0b8c3c67365e33619d975aa7dc5f7a504f26f5502c846965ef1ad96e2e82f29fd3f2372110176c0934850db1e81542e1f1b566ad430d6437f7b2bf732fabfab4113b84d096c39f3193747447627862d178d1b8f1bdf6d2547e89237a110e44b6ff0a6b53a388b5fdbabb186ae693962a44a111096a15e09d468328c16895eb7490ca391a7e80ba0ec3937f71b2fc70ebc483f55d72aeb97c6d23e6866f074cd14fbcf45ac89f72ac4054f309a4fd962a8ae489aa12a34e48420282ba2d22c413d31c4834700493b65832073165215bc58a72dd3e716d5e8563ff7adc6bf0e0dd79131f69cb507806e693c679e22cc91596c32157ddde871a13d4330d88c230c2ea37d6a7a59f49123337965678b3619950d13c6a00d73604769cdd2ba74db6fe11ac44a3df14634134442db4e33ea9f0da7e6de802d5ac5d6027c015910e98ec2cb0a289023bf38e59136998071c95c52c04bdfb8aa96404a7febf2618609478980fc378c664155e9a7f5ce6ff357bb296df184c53a1b4e416c47191a871036ac4ba82cbd5acb6b92b87e0d382aa9760bc701b9644dcd3099b26d946ae13d9c79bb183bbb93222842770f1d8ebf1581e5f031f79ddcc6d81b1801979d92cfee3b49724085714f67a7f71903f9c3c4c589462a7c5c9353e13724d9741487665abb9249748d688d0776630fcce9c2d4a2811857cf5e7c30bfca1a96b8c2c008cced99970b8ddef0075bb01503aada8624b9e5a6b6a02c1d5a73cfc2dcc978be1aa7bfc8915fd12bf7e7174fc06f316d8db4d9508d7cf995239455dea479367fc92fba438b0390d1837bb41bfaa0fd72f4d8f111327fa853f42959ff73bea059742b4d538c85ed2ed19c92452d11724c8fc37be63ba4a84880db6f7f3dab8a05f68ba49e22d7c238a5b145b6f10ce2bed8f73f6211be868027bf123edf8d27bab6f25e8f1929048e7d7486c8e719f7616e046f5261b1ded9fe62a730f0e47598a083e616bb9add19e335eea0e46ec5fd2f1b609edbcaafa195ee69f1eccb7470b07d2e33bf1f44e1ba2a75a395654248ddf7652b42a5763e35bbc12eea7366c2d39a16d36d31fdffca3120f5cbe465698a1b211c9b9176fb5e8ce102dfe298350476c63d7a5ecb787c3f0ffbc5658dd91bfed078c360c5ac42ea74a0564b80a3972624315d08713edceda22efc788c02cd7839292993cd36f4977d073a57c0e26c1686d00bfbf78cc705794ef660e667bc407dc6b36ab8f48e617c8c0530d45e1612684f4702d1cb46351db61edb00997e6f21550e8200a554d45fd629c830f022a2251464d1dc796028b2903812daa585b4fb431cc42655c30be315daca437d8420edf91302effb473683f91fb68e5b4c89b658d131433ee4502d06d44872a757f3aa6bacb9d86ec2efa453d79b80ebda41d24e282109ebc2b097ba82f305fad5213d7bf291287873fef9884dab08638c7e48fe2a3a7f820dbceb5c726690850176aed8f503223f103aee8f2182e2ea7ae8c16a00c1b40162aa3a556323220e77f9055d1e96ed9355e974dba11a5f98c0c8df01240c20e478e39c059f0941de66982665ebb1afaa2c77e9bc224ad240f51285555b044bdd5689e8a24a447416fa7ba6f50d07f4ed1fd1d4bd0e2bfa109258bcee0dd3cad87081ee94fb5176300b46a53b7bd40017337b9f3d21c461f8cd668070e9ab66845807fb32bac6d00cdbe099da6d0e025d41f8cc1c67d58a3d177de87025c5330953ecafd0a90263d7fc1a8d80a24d3200f0f7e6442f243fbec516dad6d26f9c4f83b615057a784aec10ceeb212da0dc40fe78e6dcc51cdbd2529cc06015548b3bb158c90a28bc3d242f0b37e9990fb8fe8ff3c718ddf99cb39435431d15a5dd783184ee6c6d1871a9f6cf6d2e09b7e4dafb31b054cc057c1d513c019294fb92e89c902a09775e1ddb835029d884f7e88df4024500c940a884a4889cbb27d278e89aa6e347c9bbde7c3a459ca595de23ff753d4b1ea8f9ca23ce9cf8839bb4e03d60b0ea51f4a70633c2d1e0ab72cfce4ab654cd1834ddfb158b7a25e281017e26c2bf3e45ed59296de3d8c70226f5f37023610efcb1910914647ac5be8406490505a91209809da2e77a1da3de5cf4389f61e6e52836d84ceaee644bbc2a0b9a63b9106819d85c718e511cfc392209ec4770605f085341af78cf583bfeb445308aefbc4f388a9cb60dfafec121f667105d392a0989e8b42bfc12672d54f3a1b5a714dd954c0efb07b4e77bf7db4b7d2e0d50646e3a2e640849ae1c125dfe5fc855a64c716c97795293cb62efd5725d3f2e3b3fe00bc59974969b55d1fe99d1fb425c90b9a4530c3253925b425ade5aed0288cb934d1ae860a5719178d5346a3d4bce4ee67b45ecd4e06595d72bf9402548a199f92862b2646e4195ffa8ba244e0f8aad78e065d74b6ceb635099f6868b70155bf3ee39252a005d94271a4649ae3c84e1db013f749b783d0fdaecca5df72797fa4f16a4e6ad6b63bb92c275b411ae7ff4718a55bbe70829e6f7120ad64f396ee60e9b74f30de372200f2542201c96082af70c78e4ce5e381ab701a964c1baba7e7afd705eec3ae49ed68bc5db8d82ee8ea0f70b013ef4361479259467d0c0f2a0856556e1914c5b077999a4ce464f5b943b916c04039361f00a8e97003e23194fd4b93bd13eebc1dbb476b549fdbb2d230f1aacfc861137815a960c271ad3f0a35669b5c003f9d36ff2b1d0216394ca305f7a197b609cca170a8c3e068bcec01aeff257f54a326ee437a1f85df445f8e3e2361ac0ffcab2b034f5838afdeaad510dfd11a928e2e4aa78191adbbae0f2bfd6f5cabd1f45981acb1527c9cac77537c3be0a2984ac222c77958d1898d891ae2a4b1d84f4cc4693662f9d89c171114badcf6175034028be0feb284769b6322e88e3af8c8047cb9a98243d1d7a3d1eb69bc50f0d42e71e3fb5ee023ba238836a51e5bc94b7264396374f1fb0dd2c76ec0cbdbe1060c21707f3510ba9109d3d8c1c8fe127dd6717313dc13b3c786e16e9237377f0f61f4fee04cd8ad59950f946352a01f5180a3fe947190b6c995f02060b37f1df5e1ba05c822243e3831e3f7e5b6a59fa618ac874f6a2e6dbb46edca4d5a2adaa4cd14bcf6053bc025aefefe3d4e38d829691ef44343ea6d9eaa806808a66cc981b2cd16c34e6e729a2e2c2c1a90402004502bf74b701838519873c4566d18e957ba1d10588e5415cffa994b726b06fa05fe21079896094724b9d5aadd3a8620d88a68cf03e28370a235c18da796614cb126a0109b6f36bd073b18f2494b3a597102cfa5286302e7692692909f84a8b9f2218f57d4254f6024ee0c4b45c61b959b0a30f90d9bfa02477891ec5215d4e2125cda02f69399e192de7e78b96db5368397141dabe2fe7f89e4984dc379e937b92be278523ae43a39cd3637e0d86dd83b5f2e99ff3d1757f02e60e1a004573f6ca31a039a029e080424209640cdc9c15c00724b6a1118cc321b374497f726ee269ceca10eee2755340480a010f90abdacf1fb54980b600c465e6c0b5cc4180a2ab98be75a292cf4359b5485aac83b01b71609fae57b861d47a8a59ecc380d4e7acbbd433a4be0a4169d04330b2234865116b3dab9f85468e2e885a8a93b1655ff8a93dd5eeff35b112b06da25428283bdfde087f54a2d427833c1649c4d65f4284caafccff70aad78bc70b6af8d7606ee5705781eb99781886c20a905278519325870d07340b9dc7b5a79142785fc8c0d55254703fd73a2e025366ab6805f126014e0a99bc2517aa5992c52785a9c24dd5aa4086c1956d21440dbbcf4e1040e48f0d73e2012beef0aff19ea58e550ff6f6e4d43070699020d919e0b5d39c46838802ab0ff75ee35ea9d8ef85b42c952c89e6b0de6bed21bccb8adc811254682a01bf5e611742e3b58b1c002f27cdca7fbd9e03a76bc13f8c438d12700b38c09a05aa3c751fd7f928d5840af4c66f9b00a8828a1eca2e93093030ca0e2e1998b16eb7d10aac19ce91ae673d33e21299639fa81f101a1a32e58b0ca0ed109a95820be89e1d439844f965a4141711a9d4a5111d87de62c52d24803651b81d4c823f06594dc3ec04b0ff6b5a7f2230f1e0bc1b0e27134cdfe0a620651f49c4a2a35241d8ab46a901e57408266f7f4a0a57c7c3a1940e74934d18235b15b1a90619965ba4a81b87dd0df84f73d704acb80ac6c1300456887d2a2d6bdabe5d82e944338c980b6beffac5fa03517d063da8667d517074b160a22eac55c97d049cc2e74e0c8793de914d40589a6fcd1809ae876219e29c4540d93a990ff31520ec76f59d872a02f1437111fee64fa8676e5cc125bac59729af6df44c1a7fa6cda471c57f26cd17b12b16bcea983511f1a82dde2112410286f03e7874fb96ae093d9b3527ceba85ede7435981dd869fd074399f12a27b400572bffc84ea2f1ad2fee512f8e421433f8acc0b9ba87f820191347613c3db44bd0f40287cc196d1043ec2d936662b7e04d46950eabaa0fd1e0a5f989fc73fbcc6de8c4900731f11b6653e14330eddfaae8c4fb85ddaf8d6b532df1b1aa14207477b81027bbda10a16358be84504010957d3bfd3ec49f0519c1aaef4cc10a4276742bdfd0211c383d1a013be0ed0374c30419e2670a11f23dc44d4de40886ab47625a25ae8be69d22b8e52a158f204277097ee95a87ddb2256e448016c34fd9f204504d1b15ba82e896285bc6215aba7d53d3a04e0386c0621a60b830ee69a79ca5ca882fde3a7fde557c1b369e25155038a0dc2e7fb482404e6c045fc7ac137cbbcc51b0e89ef98fdfdc635f9d47a2649f2c56939f37fcd4a05e3390bc3b2256b0478845a95b3a42628b823231192cc48f1a400927192b2f29aa40a0bcb3523c797bd5b868bfe31190ee3a8f628a8c3fb410229d00910b5cc5b745a9b5d108384a9ae9e7114c5e3d2b3ee91792e78e0c55fee246d51513c7a35389692faf5e96aba2a6afcdbd820869267bd0f2b97b5a5a74951e122b969f16a2164fc07d4ab3be92de04d6e9f04f82ca2a13aad0995a985692be088bed9a62a69031204dd0cec4dc2429508777bae57cdc4a906ff4f223970ec1603aeee982b156fdaf9c57c395fe5c05dd38fac1c04b7e8e8fe6816d0a16a55fad53e97504166099abc5c188f40abeec5dfff9a4edceed7475330941aae58da83b55282a955c09110eeb527d0a8dfaa85b42354e11127fc70d1f65ff7fdacf780341e6adeb892000b31a0578415607b5d444712ada0f5882b07a09ab865b938989cd2d48ba4f51a988629dfc810ea4039d87a6fe22529ad33da97423a8848cdf17fba5ede2ff509c0bde574120d8d18056ebaeec101ba5449f76b99e4bc706ef9ab107dab1f3c66dd67b8dee91a8720a6f797e90f0296bd28d06c80b597d13d38b93dfe4f54e0caa5e50fb573672db669ed99b99a3a805107fe9d8da689c8dd395f6026b095528baed1dcfb8dd57a38e989de5635e574f69bcbe2e35a0bbfe9e85da6cda443f85634500dbf68d1bccf205483191295881f0fd86f9872d0d573fa35914692ef8bb91a7715c0616642dd8f510edebc5cb7189f902eacb6aa675cab536653a16b43508c36de6ebc30eaead1a932199eb09121af05d0fe3a56a61ef50647ae6eb0ae0b280651a0f4421cc3c5a86cd2c47d5a4c4e23b489edac086890b7163ea0abaaf4046f6db0a5fa3baa8d5d5192cbe2d11440c7de1262e695081d61f90a25959bc5b1dfaa842f456b2c8ab00c6723847723eba7bfceacdaad6570f255dcb702a9fe1a73e736a8952f01a7448862dbaeece0f5c14722d735df1d6752bab4b7e27ba7cbb96f535bff8dd3dde668b7f5433c724017a4ebb1f8d30df6bb69fca282ce16a2dae0c75f544c8a534d8f4edb6aa6ec73da118c1379218ab7cf1ff674e3c0ec982aeaf4a7b4d9bb9162cf991eff22b87b0562687c1cf259be243b89dcffc10106c061194d32f9dc6dcb16632de68af67f436108bbabd09a185120cc1bbaefcb39ee81ff273dfd109af529734958d8e749e474f2151b3c9b4331e83468f8767fa3299e53eceefc08855992f7e8d7ccc137a921fad062bac93e9d490d53434d2c80919e0d46d4922d98d4d43a983929868b42f989322635e91ee4af63b56076cd562962eeeedbacc724a85aefed00f5a96d371660b820737c0ba81ea47c6e7054e9662cbb535271861fa4b89e36a2f37cee85150233a3068c15554652ee508e9be790fae0a145e369722ce3518d15843a872d8bf70af561097d4584fb43fc738e638ea739e2beae1ae8b5f2ae4495548d5be91a25265fd8797ce71de64169dfec305f10e9d8a61cf4af2680060c08747a88cd5af4309ee6f48aca5095cf0ff6ad3d9a47dddb1323d22abb631bfd4b56e71a0e58d4ea54da6fdc7f18409b1f89b6569eeed6ad6235e1a261001c53f0f499780aad446b838bf2f3a8735eac4b7b4d4831019e844c5eb2f820d64b40bdda1b260242b5097a1b1dd24fed4e3afd1551a0636c7a5994557e70446a9238189bc49a51118c2e3649b332c00c667a0fd37f473b212d36d1efc5665f9738cc8fd7caf668e8584473cc12649e5635e243bc2ba10687975689b8f0a3aadf884112636bd7e0c08164a29e083f3eaa82c6052314f21dc4ed478940238a68860c3bb7d8bb1ce1ba64b80bb29d3167abb9b54699673ba7b06176cbcd9d0409c61a94f4e05f6be802ca12e5cd2b211037e558059d604584b0e9bb617421ac0b9015fc4b7070c736ca9e9e605ba0d5718793f08f48ac1077a527127492c18655b4574f6da0483daffd13ba60aef2804728bdfd5e670b589a92cb9aaa0af43b89ae31b5ad0354a5514de1333ecfdd147ed44158debb74fc4235f2e9506feed30fd4eb1f08a9d044e33360384288bd33358f9500a4a321956c1000ee2b86e68dfbba3c665acd8e19846f19ec395f85bca3026b7719b0d0216a63afc28f0a30099d4af6c144c81b86fb9d86af8ae78eda80e8243d3f1737bab5fab7bb486d41f9099986f680f81b21dab3bb593433e55aac4f80981a05ce50d26a658274b8e5a4d91ee3218a708d222a818ffbff57c92c6e2ea1bc90c2e4170cae52cf4f56e005d2f180c31cff6aba82b8aedde10a0250b0c057e9718a9f40f9898547dce74b71bd658add4894a6f3739c767bd60aa6c1e9a133875afb507028298da51c71736ebf7909e64176dc8b12b624ab81673cd25569183ae6314f05add4eb600f0dd9c54ba7a938ef74010f6b85c650322170ec1e5305ad85831470c074798ad45cca5467fdc94ad5779e429fcef1ded22bf074c03714446eba887cc3131562b25ec9aaf702ef8b3927bd2834f30a36c51ca8f26f178fbd19946769eaeb3231bc82375c37a4375075cead79f98f59610ef61c145c336a00af24268d97a4b9c8f8bd6a2b32c3a318a7cd2b97eda63d08967f46eadf8a01cf007377ccb2fea64e3a16169926b26f6eada7f6df11507a751a8eec652d2a6323d4a1b422327ac05bd4c043873b792baa1e9347741d74329b90c3e08c0c14e19785db4035bb825179149c806f091edfc8bd56c7ae9388ed46ed8bf97a8dd3394203589756d81560b299fecfebc460b3f9cfb0c2da5151b353ba477c71d649b85803b664a501a20c4bb3a1380937f5df33cbb406c888c745300011fd54124d360c061b03e7fc6773ef92ab7dfa9384db4e99ce88af4f548013d80edb9b566776f8f55961ac72867da2400e64d1921230c5880da320a9d66043b19ca0f2c4e1b63d28c00f96cc7433b80bd1b4084a0ebdf1e18e60e03848ee087645485fa09cdfc4b7cd710a19442a8f8e5f31f5137f65dee085818b8c42a871b4782a128cbc0aa05d5c386974d159b0fc27da46dd114dedcabf5086bc3c4c74a8b1752790e6dd7c0ca33ddd5fff098a53828f04174adbf880d5ea7a9a1aacd38ab0a7d0fb6ffa0f625a4a760c4ffac7f0514327e7ce876b567fc9838c30516ffbe771df08fa43ddc3f51a90beb1f57c0c6d6ebc0638cdf8b6c32828c2f057f6bb21b630d337719aa97e3653da552a505997e866816eca23a420811d13710cb064ffcc6d5f80afbc540d122d7cae1c27d06f470ba67666569029714e1e162f24209bd0fca6d4b87b738d38225e3fe2bc27cc54032e9aa93aaadcabef3d0946f113aa10eb392e60afcf748cb8051d230e7c15f3cb13e69df753cd49490b2847f8d2f05833f613e8e9b4343d7f1f229ab8c3f29bf399ab8d0c140f7ded5e838452c80df413990ff93bc868fc5b55ad48f0086bd9806e18910aa17eb2a4db6640d0686df67647a04eb10bf3891efab15e9ec674cefb4de9137d9fc4c32c942900bb19eb8da6dc4d43cffb44df4c123a41a0176e63f42033d574437ca21f05254ebf4e1fbde8a780093fc1bdfb44cf8afcb893d2a79df92c9f45cf9fc839d283366c8944143ed18b98bd15f7bcad992374434d5a51102df4109a49e7674820e089beb3d687accca1c8108dde5b8adfe9be3aa5623e317e07664306e3e4df344978c91eb8e206862eb31e5bcf34bb0df524bb9d262f31e0da023c6520461aa952ff94fe03a97a443f3e306bcc8ba8e945ad98e0dd2e35915b1f61a22a03360e4b57871126543447e20619f336cb346cba6718780c8a4a09fb87b296be77500f795ce03087011a1a7effbc5042ad1948e3f55c26e3ab077b7e7c9d9c505a0524883ef3e1be434d39dd540bb70aafb1a4b54cd251186d907ec4c36f3f2a00644778a7aac451d329998e2ee8d81706294d3c1c859acabd28143c6acfaae7ca13ed01861c35fd5f6e5a10d70df0c96353bd0fd0b5fb0953b74a62509193bd8cad15d362b3fe16d03fc397c213d50593724f0716dbcf6c1caed5614fad5ed3ad4ef59e52baa9497e0721b2a388709e83fe3062602c4f8e9baa60a94f12203fe5ed09496533c5b224029f502f140956ac952cc7ba40dccb9edc5c0f400e9145eaca21d626d9290eac36672d714a195122fdae726445db03c04185647cf67803f63f29c91e7cad63498f62125e596661f8301514b94aaa2aa48381f73f1d8cf2939ae238a58389b9e1518e93c8c6beed86775bf0d2c56f6fa4cbd1bb8f8ee6335f357bc6291f32f5f8b2df44ed38f63b01da54a37d062e9885e7ddebb0f481fc67f27d292376416d4c4699c69fe67fba1b1c787d17fdd1691a9edcf4097093a0ddf2c20a810178e3cc5dcddbf75cf19b40d9e6d173acf511868ba0d6137aef16bd2003fdab021037cc99f10ea00c16e7a8135e627af68e95c89abdb42d54151fa8b4d55e95d990514d898a18487ffc076d42099d84f3d9c4b56313ed64b046a09ccc9d1d87e3b725dcb583dd62cf22f01c6244304db65dab2571cb67f681a253c4424db602f719be7acb5b79bd7d0521d86fd8d2123ad1cf29be3b331b920b1227eeb4c45462a72801abc4b4259b609646125f8df9bc12c9474d9c850683a211237bedbf65d1447e98a10aee1e512caddd9f991f84712c64520a9774704068db976f6913fa7af71692f5cb40f9eb920849f8f40b914434985ace87a87e8fdf3d6099089a65296415d35472e59048962d1e4d7fa71a124b589513e29cab28f37ee8b074be564cc320814f5125ba75d847ed1a60f9f6f684ea53a306bc378dafc6ae9a2b6865d3ed478c45b6413d55848e4dea932ff93f0c92a4d733b4cb869b443cd4803cfc60d49fa29007f1627b96caad3c459b1df115ada00969235d604f6d02f93416c235769a6ab15362ea72d1788eb1e16fa7f597e9527cc910929b93036621a8c1c556ae804e0549fd89250fd38bc0455a0cd5d5f8134191a37df5973ced0658365110275151dc2056725cb98d8b1b7cc1977986eb10ddda4619b30f66566ed47cc2775b6da24e510a2c935ec6476c2ba87a1564a4d11bd42f06568014a69e6fcd7f15424ec5a7f45702fa7bf3906318c27716d2bab83e3f1f4d58d387986706a3c0e68d55012fbb62f44da2af2182c05266465df15a7b60ea962784dc9ae864bd62b1a82ac2097605ef2c9d50a7642a78455091a51c940a1fc638718bdcc7053f0c8b1578bfdb73394c4292cd11f66b12c6225cec86f28a1b03b20a4e4aa499efb977a4c45806cf5bda095839c2ebde1035ff8758abab0cb7ded5302109f1cb9d3632a53fd88aa720916fad3b83d2a3c44acfd15914fdff9b1e50fec5bc5b13e84971c9d7a97b10778140aee79e391851ef93d815d270cf62f53e3114f71f1de01b3fef02ae17e485085182d679cafa61e4ed6a55e77d780865f23de0475aa9502abd524d15b517cbfeaaa07e453f6ec057615f221e70bcef75e63e148bf20515c5437fb14e90e8264b95911423995904dd340fe22f1a5effeae9fc4aed2a2c3af0d187f93c9d88ca9600029506c5dfe65ea49617eca06f9f32ad40d9db474c02c1d9a261d252b4804db3f25bbbf4e2dfc0f59a67c432b9a0ef666d21d66f3d63c01e2f948bf5b41165fb7628d35fa3686278a693b322cc520d260716b90e4b0946298ecee138d2086d05d6067e71c8cfb396215ff3897542d62af1bb47f52449a93ac2ab6ddf918026702711d3e65cec1819486ed8a307e937dba7ed370870ad41fe87ca8cce8bf957a254535e7828a2d5f6e5f550904e361cc9cb3544333d15b706dda5e687fa3f4b67c56394f8020021f625076205e7ae74b198bbe484e1b341875a6686e4a4206b8aa7297d5e69368dcd5dcb710c56e4e93c3e10bc2050621b527b35e9ed5c3bf25b75b37a34e9f95e6339429fc430c0a342152caa75ee04162b8d6f0833a0cc53366dba60fe218ae299ef28b7f304b8c007e581abf58ec1bfa9ae7b692556c6effde247a209f61eb706134cd86082a317664b97d8d3f5e315ea4d90f7b2c7115f35bea02c829b326384d500f773509e6bacd037c6c52bc2211a26b34c8dbcd68279d2660f1f164dee0770090675e76147e39eda3bf0564639c42c01f0b8b1c55f007746fde94acf5b6094164e8f66fef42bdd0a18b110007dd6bc2ab3ffa8936f7db0d71abef105cd1cebfca4a748e48b3a13b534df1d6fc185fd70615060b1a801ee11045e20f59b41df6a3adcb9b461d0d1ab7a228689c2965e1bcdd69bb5b7d922a0d392de3f1d16e22bee6990d3dffa79a029589b3e3118c832d5d454e20c5415f0db501f111e7c5d34c7fec4219e7c5473cf82038d2a2d941ce6e0731f000c28dfdc2b66358cbda11cfa51c702a68ed0428159a7860f3d217b648ecc5d80e2d55272044e20ed74a6dd946803ad464d929d8b90ebc985c6009d450579d051f2071268beec218d4b506d2f042c741977c3e697cf21e798df862f7701944247227959616774969b589d25fbba883d9bf07ae547f955254d292c9d162d74b1fb6149effc464b26bd5ad95f27299596d7072542f4b9aea989de00ca885c06d1188b4c2728ab4e92eca5848544b9dd691adee53b62a15e1adce09c898ccc25299d63597655ab54fa4add731b06538b817007b341e08255ca512c54fd4cdc38da76d092f80195c79e9a45df27695ad1b231b2145ece4747cddbffeca2b10395ee521a0234bbf65815541ff438819aec0aa306582e41e280c132c950506dd3080c86fce369d58050157b0f96a66ab5fd12cc464b4736da6c8533c94c5cebc317eefc80fbf075532f9ae9850481e2ce6a3bc35a418dc3e7d051d5d6dab984d04d402e7747bca353a327941edaf7e766bc00cb6480b0e62b786263ce3a519d54d4c05aaa180b1e137e9dc8bbbd87a65d0831f6461a4e8926fbc09fc4f6eae50e3230cd6c3e2d0da679893fe359e544ab7cbdb1caf979bad2c2d7d6bae6e00de32f90c142b8605f5e96ed49d2827d2bc3c8aa2166be1963e79436fdf6726c447b9e9f10925a56d55d58d792c67314b6551d480595724eecdb5140941e8658c5b90cb49ddbb01783d8133063c06727aefdf361891a8d191cfa17027f6601255a3f66fd5eb9513635d86c7aefb452001885231b251d00dab2b386d00cc8b63bb9225de2c6c4385c8357a7d115c0acc05288f4a3d14bf619794d7984f5372ebfe702ebf49029270b19b611fc2a9c8870d725aedb7170b1993ea2db81a5637c08bededeeb87fa30170016f299558b89ad8fa6363cfa4040f77b14a1801b09833ddb0646d8fac24db338d733d354b36a04b370a305194a1120ff0f9da0ad435968bb4bdc25c2641200641ac28a4e4005b106c2f2711df758db221e3ac9d229bb166a58158842b764f2e51181386cf903f241cfbeb58030eda24d1048096d789f0d20dcb0e6edaa7b598fa08f188bad86a07f4be68dc4e0b934ec5996acca69ca634fb03bf7e7ec689415db3cebdf6778f2419edb8531cc8a24d3e9779abbf9094dc317546494bf2c36d8a211808008fe1104a2739140d0519d42f053c62e939b7043ec1c95cb40cbf61a02881373968c799a23d92e58468409736f30668bcc11bd6c2d63ec0d860f681d1a1a48283507f48ac9eb5fef2d7d0c2df3a03241f10c8608e74978ce0adefd68c7529d1541206ed201623664168ba27dbd9bbc73520434b33302024518b7c136e5aa49497e09e12c038d1115183a24dc7027df1cc1b9f96a209412ba23310c7604597eafec99645c5cd5d5a118907b31143f2cb9f205af6550211a014895fee3fc3fa97df2b70388baa9484051f5b698d3dacbec9eeb3bdd2c4ecfbd29e82206d5dba0fdeb3ddc543b1dc245a215d9527c5362bcc1b882f8768e11463254dcc80d039e7f716bf6fdcf147ecda59ceed818ad14482f8941596dbd84360180643f0651cbb71621fe1eafdf8864f114f714d090586a07a71bd7218c578d4efe3a177d479c594c39531bd7c6ead7b4145de4f096fe202eecc5e9a45c50e62cd59499c0655d892a87de9d2b845efefc1bd3468ec6357fbc67f2befbc68ad6512b1e8991c2216566714754ed31335e8ddbe1a6013c708f224cbc1218709bd5025caff91209667b86481cdeced74848fc5e537db0a7e7022e93bf2af604318fa4aa02d4000e7d67ea41b33ea363c6e5d09389f880bbf08873c4f729d58df28d7b3513f21d8ec8b3139c9e2a8e48515fb98fab72074ac057e5da0adf71f16b26136df96430b27991438396c11762c4efcac53f1c9181f2da0ea4718b2d7d722e0b9fd87c13adfffa5a3dc804644f5c54631db4caad83e6e1bc574feb205e8c693d46e3831e30661c9fc6339e5eeea9d930b1a16a75443c7421b121adeef74fe0470fc52cdac928436ca1b85ad84d0a8828fb852ec819b3a35501e8c57b90decef7aca84b138a0b605ed0fcf89d2130fac8deae128f37bf47f1aa3818253921160934c526d0f304618aa79300f4d2d98c0fda77416b444e307c4f1d17dbad7108c02924bc6cf4b16c79c0cd96848af351d49d10d12f237bb332839402126c1dbb480c18fc1e3ae6358c1d14bcb028bbe99e75e33efc323205bd6eb1f17dc2996b86a6b1f53927da426af8823b4c25313e08d0796b1a01a9cc93af796eb3dc1c006f74532e066ff3414b257f1024c893f335b2f9053e883c80d9e7bd068a0e80b7c1cb6fb4810637fb24e6dd5ad826e5a49cce4319969b64628f0161d31eab11ee6a08b1a17495440943dec17bdc9b9ffa3d5252e8ac20f71f973a7342caf89e8902ddb594facc1a8e0315fc57429f3d9a9c15ea03ccaf8a07e54fb0a1d1435d4f3d72fda546150670b70268fe8623e78b80bff64a8e0434d8f2073d8cd7ca15a95ae70264bbb66eebe9bfc91f508f75dd40111d403fdb4031c9845a7e6c3c64a4dee1c2bce054f026da7cd2f3f21fd43724b4700142fdf3e6433bf5b0daf9b9f001e908b8d45f0f087233bcec0e1a9a1b46a27b200b7c43c958014380e2733515184790cf4682c473b03af671a2fd5d5d944296b69ada972d8d0159b64ac2cf8eff54a31f5ed2b22add56e5145d640512de36057badcee7619140060c147b76c9539151aded6cf6c65142da5964717cb59f74641f7775483f877eb6ecd64044f0ed538aaede3bf3cf7474b9033a6f4260283764913cb5b23d529fdffb201781c71481b2876238341934c32e2f90e597aab1f1fc9a7738f94344c150a82c9d51527bf9fbb898b4df6eb7b578f26ad595b76ad87583647e6958cd553cd214cac36322d7e256595f727de225481f10f200c3f2041512e430e60322eafa80c427defd6789f905925e610514a08ecd80a60ded9f1420b66f5a85c8582f68c14c451b8072b9f32122469a7e08af135ba33516a92c0cfd490e17b70ee003d6ff28c86f9e2bcebf4ca37571403f8c82ed27f20dd1044987cbaccdb5e60ff58d222aa199098fda7d5ac61fb510ca7d66eb19ac7a7ed9a06878818a15fdbef9a62afe2e0b7077f173a4f19a3454a213ad9070dbc6f07c040171f5fa1dbdc3f636e50131fd40eb09ffc4b663ca816f29c499e23ca9350749522b6ca308d8389b818dbb469877052ec98d53bc7b52e1b70bfd29565b27c71bda20061c2500f1979df2e15011ba595bffac36aaf168b9a5716e347f5f325f07f073cc4fae1c83bc88fdc1bf0f6e67a983e89c7aea43c2b53887ee88afc22d0544e11027126c3098076c7aa3628c02eb16f3ce17a608e603e0de3a0b11c035308685d710c61c93e0741b06ba5203f69b97e1fb4bb7ec87cf2143613b5ac6bff02e6cc2d8931eb9b555c647bb314d2333bed22ceabf8f59845b24ceec3bbd5a9a9f6299d4c3bca6789bccab305ce4049f50f675ab79d055d62e1da3516b203a0265056aabed84553fb30f47810bf546ea5c7f04d7aaec5e98ddac484087ebf2d0d7831994d0f664bc5a88f115d19b750eaabe38901e75f49c1ab65dc6b8e725cec59fa9a230b9df560f3182aef143eb38a03be2d04aba606dbbd6a5fd0503089dbce9c438f3d7e8a198002c4d469ef060ec241dd88d8ca3f873eb7c00a12c98498b8c2484015091c1d45b29845d2126f62688002e94c5d02771c4400460543388ec629b5ff2750c5fe3525c782577655c52d0866d2113377edd5089cc929fa224fce1363325d7e44d0ed5beae842d87e34c316d90ae97f169d081bd9745301a8a36ba0130304a4298b73e1a50e4fb155552601118b55fe4f85fe21b697a8e8d8a151e1d3aace19611d3542e1ce6725f12cb56ca69be6d6a3c3bddd9edc36ee92b9aa976003dcd0c299095c5a20d72b30861839f192de2e56659e967604d030f2484c6adf32e182d2e1504811fca3ccebac6953c83eae631df69bc1481f95b95280611335ebf7c919b4083a38a2d6dc386a0aa2b6661801d2668e680929ffadddf9798813d5dec9431dfc95b5e97bb46bfa15b49cbabe3c226610d86710820500c02c4ac56fa058f4c2bc1424619e5d67312dc136bc8c31ef9df21179b12395ef6ae06388e4a9d61532c7c91c8119c12625ab221f1d656b25ff2218808efaf0194cefcb5811427c4392cc07c594c6fe24e01b6c00f0a46543120e46eb3e07eb8bc50efe05dac61179a181f29ef07e9d5cf5296fe8533e26083c0ecbe486792386dd8dac286b042b973a7cb72d66450be04ddbbc6f6dbb99367a9032713b7781ea75bae9afefef37f1ecfed52f63fe59e1c53e848080397b64d43c08c4fd84ec75610a60cecf513531cada1b0ec8054bbb657eff69597eda88cf2dc68b86ecdd14822bc2c2ad210b764aac97d72bde4e413cea5208449dc6bf722566c33901b4cbe0e506246775d3f7dc4ebab8f38abffe7fa55662f3b9aaae8965145ac924ca3891514e0ca56d722c34ac47d00a3f6b630c428f777749d0489bf34dea1f21ec44247761b2a0b485debb38c4bd75ab10dd59cda6cea7767e74b94c65031a3106047cfc292e9f33c01658b245e9f12f63d5074871c8b8ad6173e383dd4851749dc4e75c13b031c577c2251141a6321916034a6014e91b36ccf610e043b87ac479f6f3d60a6dfe3fa962b13fc6544a39a15b11c5d2c5967b1edad2287ed30daaebc44dff8402cb4bc62ddc1eb86d234d7819ec6716904c6a9c008a86a6bc182e376baabebc8d03a9a9e38fa3699cd85e2f0faa42110f48661c72e4ffd7f9e3b5deec81f32f515b3e978133085ae0c7003d8c240405553814fffcab4b18717560fc5f206bcb5867447da42757d249f2f324bd9f3163283d36307e1d23518cd8923c85d15869b5e8537fe20961651038d7f8af2d9c68695504e301c2e9ba868d3d4588252ee6ecb7b01c3c92637367f1480f6f90c74035273bc880533dcb41d1f36a79cde306585dadfe27b4d0b127322b21169fb99e814841b962215a23c90fac1250b20ec4d990a6bf630072fdcbaad413c50d0bcc1eb2a9e99577d3ebb39868a38ff8ff0afdd0fde1dbd9c972ec61bf417e313ed448e1bd851f62ddece269a058fd2b83102254a72be60ae916f4b65660f828df3098c592a3a5099e95a9b0add6b6b8e5184244d1e27f1ac8e571b96f239d6911690b67d085d7f25f65c47da3d1d0508a21e8dadb98645e23abb5c1f417daf51a6da77753b1cfbf1302c09ad435b677d9a1841979e58969ff301ddc25800a41b949f715b24cd0c01136ad53ff1a630bdbee863243941e3fc7ad742d0c8b9ba14d4322e7d35541b4a5272223c9e98d6379cbae07c07b2feab6c4b32b15990fb950076919b370de1df2b99486b66f06f6b9dcf805ae7000ea8cddfcbe1e233e5dc9ef319d3f7da20dc1c93ab6dd3ac27dfef960c03170cef8000a06407b8488c7cb617ba00a7ecadbf7336646f750f50a9ae1dca8f2a38e779ab7565b25d61eaa9b8a2267a046b5cc1817aba85d4f1da008cd395c2bfd15bf719db5ac0589a31051984543df3db3fb2721237d75b7697014dc3832c216875be0642883ea80131580490dbb54f91e6df2d6c4caeca0400b60344c761e5295939fc48c3cca8e3a6c9b0408785f5e10a33d74abedfeaba9b3b6e103c42de5cf1c843c61b8fd86dadc6d2e89afd6db58b443579b7abf12299ccc498e514ea27b279656d960566256050eaed6093e62f70a9d20a383ad09c6210e20dfe09d2ce3c04a566dcf55f1ff3139ebe0a1f37afb6059c28c6d97dd3eb73cb9c2a440910d2a7b0892aa9bedcb268418e8af082a232df3d2d5a8b781bfc08a00cf523e65730a4d5e8e94344452c5316af888acb73619ffb483e281451bb905eaea6366d87eab844d9bfd567a9386828162491b1b28acc3868d2482c7cfe010897e56c1a4f2111502314820de957724c7343891e696c21dff807a97f6bf4f821139e2e5e835da18acbf80c137bdc8b4a748240f692b8f76a01544428f37a0284d8cc2bc95557a0c83f985273b225bf86788b7250597ee5f380310c840a56054c1bca933e9f40b354269508dce4cdcb8c32705969422202ca899153099b06c6f59d467db1dafb377c209548de2b11b5b03391219f6c6a4bab61ac38776d501d747623cf2cae5d870e055300ce4a6a351895c6352e13c8b8d3d66ffb0cfa0cbfdabeb467edc9d7ff45af8da3e8c7087bbd64a17c3f0e2751498c780211c314f363d728dabb26a9ad97d9ab2b9ff8e555339e9d082b22ee2d0709e363dec9eae602cb1d2653959a191af20b76d77ce5d04fdf15144504ca659fb1592058e138073e96804cfb0af21fc428b285a9c1eaa3dad8314c4e29cc51339fdbb5b1e3f454fdcbc5a205a53b4d5db8bc07c011c0fe1ecf6a5837c211455fb955650443ab35c6212458d8c07f3722826fbbdb56766f99929401ad0b700b760a3335db935b14dc949f1c11d9bfe5a4ce101f3d6108ea9813061d0c31ac9bd4d993e43ef8325036d40e3458502e1a20140a8542a15034345a4aa5d28f8f6832d9bc894cc0dde1c176d9395f3cb562f98479e26dcc560c862018768dfa8913062e4de6981306dd07039d574b57b2ceb2f913ad282d5c6b4aeba755a5956b01390bd52a22fbb7a0b488f8b762bdbaefae7aa9dd98b5e6dc2f914aaeda7ab9675a2a954aa512901289a4e5a596fd5f6a2fb697db0bee4bf1226abca6e984f9624d9fd40b9297d90b1bc3d99c75de9c658373d6891db058215c9608506dc13caba65272a4c8102056081f3b4b448b8de1b2bf8de19c85e29a378f2b7130c15104470d870c8462050a152852a04081e2040a0dca9127baec3f83ce67d8f1b8785e343424cff82653c81664226d84997cd19631345a046bdec6ecd1f9d12927755e48942d5a6b49abd62bd39f387b92d8276b1af5d3283bd5541f7314f2027b89bdc84a2925931257d65e5e2f3b945b4a2d2596d24a49a5bc954e4659f61f65a39031d6ac9bb765cca34030e6f479fd0e0a7b627c8d3f6c4efff10596a0eb9a3e27505fd0e8129d8847449b381377a216118b6845a4224a11a1883551893fe8025f20ec0bfa763530e8f235c1b7a68fcd579d170c41cdea49029e3cd82e3b27de1f061d688e8d9e3057bc8df97f32efb33055a4cc16cd534d48b375eb165903469e395bb56f48997eb84f099f940ff74d197db9efca0724dae8bcb287728c872b537bfb6a9fedbb795b3c2bdececb7db4efc857e41bf201f97c7c3b783a0f0bd6f9c15fc787bde9bc747ee8c07484e8c47488e8c89c55f32fff279a34b199676b49f3c49c2d9a27a54c2d6d15f3fe76498b27c69a14f6a6c63c614e017a80ee013b08b81ea0e401431e407b408c0a10152b54a8509142050a152754985099512952a700657f1d403a743a760b70a958319e4c9f9a9ab345f354cdd6c2353aa5519fd479226b84b9758b95693de2a643870e1d3aaef4aa9ca2438702742860ca942953a64c9932450947dcb2bf0d36d8c0623c61a2f81bb2462a9f5e9c194fa40d9b1c6386594c892dc693e973f3d76cd15a4b1af5b7315bb6d6ad4563b6aab472ad5aebe705e50c379f0137c3cf0cb9da0abdff0c5766009a214baf44ef4f96c8fe3358a933c4f79fc14765d55a002d9555eb0caf2f80aeb6609e6553314195fc9153917248f6af4f8064776527624b48005bf62780cd5937ef4f801b0170ce5af1fe04f8115d8c36e68a67619a7fc244f1221aaa78815fa078017ede8beb289a17fd62e6c5c9f4c2be78f1e245455522ef59dcfcc9f4f937993e2bce93a7ee974c9ff3ade9a3e27cfdcecd99c28379eabe799264ccb630eec7a080316fade2dc7f312faee2dcb731bd13a627f3d4fdd2f490347a7f647a34d2f46a5e9346efd7981ecaf46e9eba2f7a37c8f7bd2315c6fd90e9cd2a0e9a5e26f94af1ec10a31ea7c680108c00cd15ef8d624423f975e67b45f352c2a021d1e66b0ac8c305c93941783f727dcf475de5c464bee620e1b9b6dcb4d8b0d4ace4d0a8b072669e72b44b4d39aaca35eaa88abac2bc7953c5af702cc4c2c0b146711015c532c74ad49463a046311560c040d1ffd32967a6235d1686585b3923b36655aeb5657bc81ef265bbc16a04921a90d0be96d520abc108e8693542480d426a8835cbfcd4357d522f9a34fca0e145832b07971cbb46837459802a4e0ec5dfac307b587c0f78077d15e6ebb4839e2bbe07d58ef9680e2c15461057720e2b545861a22993070801e00e0b1994691d028dc8109e64ff1d9aefd4766c9e47f2e4206152a6395800bb37cd5f61feab3053bc889a3de8f93da87654fc8a8fa1490cb6188888e126830f32b86480c91004fcb04c86d8ceac94a21e852a007f1526cf146a8e95aae31f024904783be8c993ab39fe5f0cca3467164393186c3110515735fca085cf189a64ff186ece427732f85059aa29c8e072962a2703ac5739311982d4554e1031dc6062b8c570fb62b8c5709321b633b333543f3b486aa89566218e2d361126b4b32d5a0cb48a9333eb95f72d5bebd6a2b5300e8542231d20e8d87488d00182ce6de5c3cab582ad82ac622d243a361d22746e2b1f56ae156c1544e7a673d3b9e9dc746e3ab755ac85a4854405908aa0ecaf024885ae575e5869f4e7738aa32896e7ccdff3b5f0bbf7c26bc1749942306be6cd2cc2540a31cac4a9b872fadd7bc1749942306be6cd2cc274a6304aa6cb74b95c28d365e2545c39a9b8423295420c9e3397e6442e2783c5fc5de5892cd9ff44ee8433295ffc17c5720493947fcd1caef8303b484e245329c4604895cb02742557717258a9475822fb9f643092c90998331361cad08d4199d2e05439d59566999fd254c9fe34389a9f5e792f8ae348daf032cd3773ef577ea5a13173a0b931494954126989949444761250c9a7242bd14a3b20994ae189528d264acdcf0a330749a73c2767f6cd9048a452a954229d290cd289930454aad144a94245e66b4e9a2838186819ca887e62a0c963a5c2b852c2a0219367d72897465daf14cdc9e363fe8ce973fe274499be70bd70c18001c55eb098ec8738ce3c49f2d03c49dab89934cd172e2ce4aa723932c889d550abe107a65288c12f67d6a510839fd931e8cec5aee2782d82ac46ac060bb3c6ab464fd77035ea8fc2983c413c59788078ae346a65894b9e3c4294698e598b510b3f4dcdb27f2ae62c14ef9f9239cbc61fe68abd3c056b92fdba5c59f59313cb0902e7ccd02ee84e95532d018a30a1af869a8511050a56e5ccd02eaa25c09c99983383c9998572665fceac73665e0d357f7284c19170de93f1e3604633c7ace2c42a8ee738526539c7909a034815927f8e9072c332273526b4d9dbacd0edb8f07ca14bf64fc913647f514c11b02c4518c9fe34c09c86180db25e8dd0dd17f2bc4bfa375fbf73f32ab0103b83ac42e6c8254820918f4826a289761062508441896a30512c8cd38b9e17ae469950f2e478aef000f5caab6267903f1646ae57aa9f46c925ea4ae504d397aa647f12c8a7b272645065ceca89798a26da4178a630f099a22f9ee9098604429d2490a896a34a8e9f1c533a07aee2dc60a2d8193b48c81f3b238794aa724294fcd3ab1c502aea4ffe09264a3e8212b2bfe9fcc9e1c2b1ab383278392bc70e3505850b8e2d15b5c1c8a92a17aa723807aa7245b2bfa8ca0dc9fe30aa1ce6c95da938fe3b48ec0c9e285418fe3c53388780642c3fcd99e528fecae589eea2e09a65faa4f0c10a1f9b5761dee058af6aa8351a445dd5f0838aca9c85ee3ca54465a9a6a0cae5c41ac554a8ab9c2060a0e9bf7c7a2ab14cc6cc41baec0cd58f8551c30faa647fcf41c595435671fc63cc1caf8ae38fee9c95a3484d4d219673ceca01a4a68238c28f9c58af72f8a8a89f290c28d99d3c93ecff72a62725d9bf3cd3f20847b2ef321172aefc260f90c9a36b9ea08ae3affab13378b4506154227021fb5fd54f76d1990356718e28d39c9919635671fc5798d5c625e34f739664ff9c99b3fefd7368a4ed09e985081159b3cc5761f25ce9943f0cc9f39d3c392f09654ac260a490164d37668a176768c615a6f92acc33c58fa64d7ef3ba5c3ba8c993134d9e2c8df2e87876640d183974f2001129537246845cf62791b43f39eb95573649c925d95f34d578976a4832353135b6c6ce60b07e9ea946647fc7e73f4568a67ecbf74f22199fa0692bce7db3344f5ef3d47d1bd36d9eba1fcd88b107aa2b8024644b02c6922be96b357d7d8f48af66bebe27eb95ccd7f78cacf8fa5e7d6f8957f36cdecd1b526788522f885cbd50d1aeef01a9abbb6bb4ff25f376886df15c5ab2f7aa2e0f565be3d7bfb9da02ab50a92b8fd6e80fa6e4fa574a5d79d53342f56cd55342fdcba4ae3c5cdf9f8bbbb6daaad516feeafdf42429bf87dfb179d4a72c323963f4670d8bafafa2ce407dad4169db849171b870f08071f93a91e4e9442ad56abd4235f10040b3f87e200e43a2ae443d69aec89ee99342e4834265536541a5537941b5cbf121c79503cb096222bdcc89fd3821853983426573966a8799ca56c446aa6c4054361f2a9b2a0b2a9dca0baa5d8e0f39ae9c2039b09c58ee47fd6834baa92297a68f797e0fd8c63cf5a0da5971ee763a2017b9dc5dda398328535c9a29b2599ec815b34690d896d89ae4fa126896c559caa013979e5cdfc276f4eafb2a3fe514a5ac4f0690eb8bbf39d59432cd6a59e35ca552a95c75f429167d5af65bbf3471242247174314b627369bcd6603130283c16027be1ada121a8d4643b97a5c2e976bc58e5c2e4753953259a552899e0bc9d1459a10cfd89ed86c36db0926040683c14ca1126d098d46a3bd88c9160683c1603698e776905e7362cdd55ce8304c8e2e923028637b62b3d96c31302130180c0693f39ce73ce739d7da6c369b0d0683c16030dc36d0c510bf805f697b62b3d96c239810180c0683e57e918e67753a9d4e776dd66613436bc3d6666da0d57d2e8658f48548db139bcd669321f396c9aeceea7456a70bb2bacfca423de6d46b999c7adde3d5dda0abbbbaabbbbaabf32665e37a45ca75941b87fe9f4e7d5b167e8a5b86e6b465a1d3c3352af364463a3cd3719491a9a9b9b9799153af71cef2a674aabfcacf95dcbadc5e9335c8ec9d1e4ee6e1c8fcb94456014edab2d89fcf57ed97dd87467fa7dc6d501e712771a3a359773c13d71a3de2d1744910adae04c1c8bddbf200cb1d829f879108739e7b153181e5422f51adac3839f4a3531d7a35da211b230c07604d77c8c1d0ac69d4499ed00343100cc11004cdeaa0d7d62ba8038f746fbbdf5315a351cf964aca14bda647cba8b3306aade95d2b8346c551a25b424997bdf6b552482790d941cc959816c014e1850bf7de1a490ae904323b88b912d382ecdf3045c8fefdc285ecdf35ec8959f6924a9982d10f445944425425880ef4322ba9942918fd40944524c4f56a8c18bb8c34d18ac8023b44c863a411639791265a1159e07d2822b28741210d3013ac96b06f2122c2a0900698091f48e30358fbb0b40ddb1df601ac7d583088673e1864f78af0158076f6c1c02ba2060e4f5cfc09d9bf7e6749f6c345246dd4964d0d7b4d53ee916d4996247b4956715c96dd7ea9a40bed2988eb794ab277def3d2ee7bedd7fb407cbeab0a62bd49655c33cfb443e895dd2bea21973599a315d494ffc91cf95057231e56300262a482da2adf7ff463f4436d91ef3f4a416d89de7fe4a3b6c6f71fbd463e845ccebac1473d8c50505bf8fd47fe231e6a2be6fd4727a82d99f71fed505ba4f71fb9702e63fab4e43f82b50ca6f3f435345fa21e06f523f2fc40f981530e4f1fd4cc27e171ca31a81bbe0fe1425242490829a1e2f8d798a15cebf89f4a26b35a01a432194573f6f03b3067e8092f674889f20c25313a43552a8ebfe80c35813c434e18cf109573267486985071c2338444c5717c86967086a6549c2f9fcc101235e56f32434ad49483f90b2951cb1ff70fe19c65bde2fc74e5fe10ce5923d7c835728d5cdfe75f83fe9d314a5c23578c7f3a72659f652be3227528c84947865e3ce7591fb93f7df1423b783e4238d1961d728f6e1ea31bdd9c15b39319dd72c7e870b99fc6fa7f4e63cc6beda988684bcc6e748bd19d649fbfaec70475aa63747e9e74570962bd496b727745fbfbca247b5feb8ff52118c83309040f81f141024949cfb4c9303fce32bd3cd56f8ae586f9c9fd9eabc77335eaf534ea9ddeab5194121fb39c9a5e303f2697a7bc1345fb4cecf25ede09e2609e0b344d3d9d6a932b09a5fdd4e4c26172588dcbab81f8d91b9a3d3c8cf0832f6293870df4aa45c6f57e9ff77ddfd7f7fa4589dc4433585bc7c35eaf0885e34ec0ebe1dd3910abd72fa1acaa72d64896666d850e6251fcc0107bdebd9e77ef773d917f0f7847fc90d9f392b1237e0f7827f4327cb4a368e217de195f347b7a90b13396a57b1545fe75a5f2d15479ca8a2b15ab2cb3e8e2153df173f7333dc3f2fb6ac85651749f46f7677ea2d993e47bf14b96f5d952e5a9067f7c5134eb8ef8651cfa1e543be293efd5aa6ad549c36c5f1c6501a4e4bdb7efbdf7da2a8a4653954f67b632f933af180a4db3e2bc68624f9539246d88f93b5333dbc7b65116c3119336445395ad0d315f317b665a6dd98ef9c3e04b8847be16a838dc6510c4d0ec4982bfb7a6e89962bee6f5da5daf280501aea18c4d7b6dcd7abd5714e63187e6a953f79479b03b08e5c94d9c1c327b925cd19d6407408691ebf798077c7c33806600cd16f8de7bd1c3f7726c1497a17971e4644c86a09ba159368abf923872726d14a7fedfa7e1f9d9ef1cbdd0acf7c3b13cd57c211377aaff4a29f12742e1f8b2f79dbd336d40be27763395cbcfc8a9a659de575baefa14cbf64bcb03daab309b4e5f4d1895454df5a3eaea1b0600705eb868515be0f7a76a0b7ff7b3a82d1537294ef36d0c698cd2a7abdcaf6a194adf2f7a5e2e914c342cce39c46048149163d924991830dbff30cc8b69fd666bb3e8f4e4e9473174faf003e5074ef93b7d4e27a9ea785f324befacd7fcb2c9ec4952424bde2cdbb72fd3588a1d22e79164621e55c5e8150d4a7efd196e38abe6ebdf20de983d494e2faa3269c4889d99a56761a6a8a9317b92582228b73154101f2cd012e4c5025d105b10264194043912a448902141800471b1600b10b66c73d6cdcd598f73d60a2bc47dd46016881d54800508970a8080a801a10488234014016208104080f0a1829d0ab4f8a8f9a8f9b0f9b8f9c0390bc5c53f5ed6b43e68b78bebb5e565e5b57be57cd07c1cf151c4c7101f407cf8f0b1c34bf7c2d243eba1f5d47a6c3db72eb6ecdfc3d5e3d503d623d683480f590f233d663d90f4a0f5a8750922fbf718e285b6c7bab6ec4cb0f3826e267062822326b09960d6c4ae092d4d6069c24a13549a90d20494266a4d28d9b2cbfe22d88dc03582d708605a78657f1e371e381e3f3c723caef000e29185878e47108f9d075c414b647f1e56be5009427005db8e87ed6302c6c34707b4f078754017640b6212a424e8485091a0214140825c59d872055bf6d7804d03370de034f0c3042c8da5b27496224969e992b49636496de98d891b64fff4489d21eac874668dea20d1a1e9d4749a34caa3d10d44e1a543d359d2ac56954eb9b35ab4181897e5e9f5e0ad4afc54404a0598540057811a13afac6262072c5bb068c182058b152c54b0dcb03889c22bfb4f6002139880ecea72b1ec8fc30f0e391c8070d0e11084c30e072e3b5c3b7a76bc76c09c8552220bd91f072d18932648638ade9a3e3a3fba270989e2c104ae9df35366e87bc4f2674cd43d6fa83947aff3027f854f0ae03004871d7088e1e05202a70414259c28c14409254a1c51a2881230257c34e127fb43e007023908008d3f8d56c9016569e9ccd6aea5a4b5838ae31fdeb345ab38de84170420f07208c09cf51040717f3bd9b2d726d4b27f6dc22b248a31efdb983d4924d0a8bf582dd9a21404f99e3b4ed81890176c89c15eb0b3b15bcc498c494c49ec48ac486c48ec15dbc106b9e59bb36e70cefa1f1b24e72c142569830d2fa22368341b968c463136c86c3062832c020ea84788fd8cea117ed810ab814a0d4e6af8a9c17604ec081f47ec60c41623b41881c5082b46e08c8092239643966396e3072ca63c822b872b478fcccb45a24c2b94201c386060489ed1c390366e8e1953187427cc9bb731577cca7cd46cc15a445a3223ad98ce6b072d257586f8b5152a474d7a25ea1539d6b46860d8b9abf5ead58c8e1b8086b80d811be267081f45b40cf12aa2bb4043301942c91047862832c49021800ce12ab24508217e9c8522264666c6003754ae5b0b9d8e2b8693184762d862cc62ec6268898125869518546248890125462d8612952bfbab5caa970ae66296fd5be85aec5cb85cf4b878b9f8e102e642888b980b990b1eb2bf8b1dea0cf1656c8479043df22d08921e098a31267e9dd888497386f1a40182ffd302a8c59116405acc5ac05ae45a506921a50594164e5a3069a1a485acc51015402a76262cfbff4fee813ecbeb3ea857a2e7d2abd17c3d15b2ff63a9334412a9345a5d99c3cda9ceeb544f6e4dd164227960d9da544748769d1ff69a3ea8b73175603ab1d641e9bcdc93d22bcb6a2d69d1ecd9a2a16e7f7bdcfb40a1e55f28746f7b26afe48f7c911ff240de85620b0a8542954a27be640382ef05953127104459983004b58ebf8d09c3aed13f61f6b45cad039e745e2d201f9b55675a9e38d313cc999efe46738267aa6a4cf2f8832b08491ecf7d7556b030aecc7f248f57d36974befccbcbcbcbcba7a57bcd53fd280c0c3d8ae650c8f33c2f4173f49e19e3e608f49aab50f4ff742acbc6358ccbf274fa475195ca7bd133cdff47418a3fbf491402ccffd7619ed5533a529cf73cefcb53d6fa3769c3eb5b3a69e3ba87ef47dea8d93b5f84286f267de93dd2c647da00c1f3d62a8e8b03a3afa6eb30c6188f4cae73dd9de95428fa5f869e90b22ccb2f3ffdf25334558d30c61863fce2c8f3de7bd1fbd17b18efc9d00391284d9f7a42542a148539d3ffd3293c63ce66dd9817afea057ae339cf11c97942c23c42a23c7dea09f97ec6ac5974cb92fb63f08b5972dd4b4eefec3afe710c1493451704726957f78017e8fbae6e1cc7514646c665bef6fbbf59c73157af6dad7bd3be3cf572a636bfc438c801ef9a9df1fd7dcff3c2d0bf33cddef996d6b5be9e79bff6b8bd82f9fa36fcaec5c4841ff34df2c49cb56c9df97f1f7f6dd6f9a9ad896325fded08fa282de0bd47dae0652ba457b05ebd25d2abebd9f27df90fef7ea892d7634c1bc4dc3eb0306c064f4bf3174fd37b1c66dde5ae46bdbfe729f4b5432f5a1201dee8ba5e85b913d03bf625fe35f1bf6977bcf1342f924edd5af594b31c63dd49848232bdb31ce2fbd875ae2befac51efaf775ea00f6f6e8671598efece90d4669ef781e0477e7a75fffdd7e52cf3bb7cf19af7ffdef7fe34bf7b5ea0afb946fbb119e68f09a5e8d39bcbfd34fcdfec9dd24c4f39751d2df7943b4bc79dbe4b6a4d6cbdba4fa258dce79d9da57d6067d41c82e6bd8efdebdb7f93c4276e94e4b1b5f3d83580282fca7bf37bece07ff375fc9b67099278f8f44e1dffe69b6709feac5ccac715c75fa6d12eaf509e6aae50a62f811b7ae57e5e2f02afa2d1ab5bf3576d5a8614945aca14dbfab88ab6d4951705df878f02f0f1eb90c47b1dbe0f5f07f0f1f7f7e1ebf83e3c75808fcfeaa91e1bfdba50deefeb7d5b20a63c6adbccb447b63674b6998e998788b105c1fe3ef7bc7bafe7fe3538864cd087d266d1ecfb4de2c067ff7dcf664be2c06705f1d3f0f6818551bfcd8a731bcd95c4d66720fad7effbed33e03bebd9f6ac9efa1715942f2ae8958d01174e20cbfe9688770f0f76fcedb8c41051b27f0c3bc3667febfa9d6e6b0416eecfd88f5d38f97bf173c00dfd1d61f1efcb94e0f8f7ffa657a2bf677a01343be0336fe042a943a4e35ef386463b74920793a64c39fa94a7721447fc219207d71d2cf6874c9fd1db1f1ebf0d1f5b12c77d4c832adff3050a7adf7b3dbff7330368be240d03f0481920bef705aef5861aa9ec802e218cd0a8c5e8bc01778396520c89e0776fe805dc2b149e4dae28da67f2299b6e2993326882230e7c240ef17b2947591c4599cc22298ac66b8a591c892f231866f165bc2606b31833ca90c4d2681a2f8a864674cfafe278ef8920fb5b1d0f85056bf22963654029e05ea13c6f7bdfdbd9b7b5406ccb2b3ec52a3e2d6f7e858a9b333d65772b2382d6835289679950ce9ca52302762604cfce9a9ca90e5829820f9ea93542f366773603bfc78603402b8426ed45e927d7f6ece855d76a6db7fbbd9ef77d0e2baf3bc6221ba5d1fe8f09655a734f76b4077ea78df26447a3fda9ed796b04f4c5c9593b9e589bad67edf7c8f6bca146bf681455a3b3ff0d63a3ad6af4cbd8df6bae29b0a3e666cec23b5d6f97a7b646d8619fa82e20a322517adbcea39f96c684321ddb9e36ea0bdca8f51ee55f733a001b357b99ca181bb5e5901a051efce08008414879026ec759f62b6edf7195b3bebefdf254f14e7ba1e68f08655a77f9bfeedecf3486bd85fffd17e29c85d2f191a2cde1ce6ae8c14fe2a70ed17f6709be177d09c0d4d246f1472b73164ac788fcd1f7d8b18fcd1274aa539967a24c6f081a7d52c676dfe9e48bdf21e854bf8d555bbd752773c3cfb4240fc0c3e626d2a8b5fff25657de8f88f29ed645811b8e1f44791ffaba233a43cf00d1874e1d92e8003ff43a6006e870da98b3c6d3de074d6c7e432847274a87a87aea9ee4896200f8f8f1a9c3379e281da1173f74dad8896200fed0874e1dc2b4241df031203cededb4354fa119b4d16ee39b5877e8ea0e9d93281a6afebed0436b6badd87e5f114a7b366a23895c5ea2fcea7968f64c8f45aee40142f9eb81569eef4be24af63c89dc8fbb9f3f409d449624ae54f96932892ad5656111acd47552c4939cc3cd17d62bfcf7c507cdbf69f47e75377328650e98c095c3ee91d1462fac74acaa65ef5eb9efa0a7bab1ec9fe702ba65bfa37b9ec5ddf72bbbeeb56e77dd668ccfeabddbaedbf4c23ccf7b11c9e34581e5fb6248d4ffe2660ed82e199fdee3afe401b099e20cde9a9b5e79173cd5fc2ddf27f47fbf9e4d8b918128ba0fcaeedaa87a9fd5da7e9b3bb4654f0ba59fd232d7c78d760b6c740ecbf52ff9f52f1a43f4b450822fda192e366a6676b94bd0c7be8cd0add1993f95a00dc7cda128299e019ad1392b849b01c2b9137b8261ab3b323977999ccbe450641920219469e8f6fdf566600ddeb2cd95e409e1bc10ee1bf94026973b34b34c0e15c71749d35618a11fcd5407cfa1b7240ecf183c7bd81c9a81d556f8232a33404a5aceb41932a20254d2cc1c9e660edd42b7461b9f1d8a320394bb86996d62a11bd02d14a557a08ffd178d9e2a796ab4df2f1365db8c76346284c72cba7d7f9b492b6a2a6903b27f4d85f9be3dbfcff33cef13c550288a6ac5b965133ffcf0c30f3ffcf083678d781f123dd366d1c75012f03d33071cd756d423410edff7def779e0f75dcffbbeee5cef7e201836f87d9fbb83dfe721f87dd98322566725b95f1f27f9feda8a7aefd1681d169fb6a63c0fc47fdd3b53db8373beb487f5ebe0077e37c9073a7f9ebfe0e301f8ddfb2df96e57f41b41f6b720bef7c5bbdeade3581f6355ca9c9121738150e65e0feba065f7b4329d8bd7cc55e59565653c286d8bc4fb4308875bc60988c39bc31ff00f9ec31ff00fa004765c800240d88c00e900f0047fb0b0d0fde1db817d32071ef06f64ca0b5c3ccac450a9eea783d25e7f81a236df1f5b86d7ef84be7ad7b3fd70da8a63b39ff7074b13e5e09a61fda9b82cbaedafb8992c8bb76537d49695b9ac88d5ddbed9182c8ba0078b59d8e739078201f11c786bf6d2ae8972b75749be6e73561c48dbda894e8b95d9223748e9eb9d39d87cabebfe8df9f9947c4a483ddec49b78136fe24dbc8937f9681fad6c91334251ad386e719f6dd7ab929b9a0bee69ffe14288d41afb62dfcc655053fd26d35f50531ea4a20e6b54061e0317c28978100e031fe2b1da7a416d7d1fcddd05de0217e2419c05b555b65e683137e235c8fd2ef33eda47f33ccf33994ca6fba6eb71f99eef072a4486972b8b94296a93e9d0143c2d94d6137bf4b450564bda689151f070c036e1852e99c77d9bb1593a0da47c6bb400459adca40d34dfc677d6b6fa45f54de43d289753969ee28d8b91bb3aab779e6a5c9e7e95f62e8db1731619a553fd535c555e576059c82092cbec494e454712da85b890b72265eae944ecd5afc89f4697b26847cf3465d0f43cddccd35d5110b1de34f126de0466d3b9689e83ddbe1f9e11c9d14b0c8ad289a6e6068599025d81bac001c088ba3a018c3da559b5af7496a036d22c1592bc44d544f5441525d76f990d6ad60ecb25d73dfda38510c9f52dcbc260360acc4e81d92ab02b59ac9066599b256203269805cc92fdbba798350ba8cbe56e3f98b3aeecd3d686b66dfb6d41fb35a92ceb4d6e5b053ccf50df98d1eacad08b6de27caf78b1775fb77ab528f9892bbb68bb73b6daf221b55beb0f9ac2f014863361481386a830ac09c313616813865fc5096a540467a0088226380365f73b83af4e795727d03e1df822fffb5e7e7ccffbba94e1a74dfb9a28c31679a3c8f3c6d33e913951dee963fa9a634e9fd2e823475ff8fa7c483027ea3b6d9497b3360ada4246ce14832008865ea5ce5f8cc6af06b5d62e95653a6fb83edc15d4a0bc517192d0e2366902ca4023e04c342a5f60626448a0ac5761febe50d65c22dd6bf612d297ae017a492d37adde0c70a357b73f0cc3300cc3300c49a550087e18e31992a421491449d690e40992b421491424f924f9e119024ffce1100c41b7259e7e32056b60ec4a6ed19fd67503dcc1aee401cd5028d6eec753da0b65e9499f621cc8328927137701f55ed228307e8c4d8c4f8c53607c83b10a8c57606c9b64f041901482df18ffbda36bb60d8fccd404390c9935df0e89e67d300ccd7aaf2863c3f82946f26dc138f4f5a6f8be9bef53f17d2bbe8fc5f7a1df97fa3e706cf17db8e2f0f4f9ed520c82a78d9a9f7414548bc010fc36c3272f49921f68daa8a8f0b4ae46bf7338c0f829788ace2a8e46af89f2e7f4a6f7c7fe7887b984aeda12dffb4421a0f4a4337cf1472373343a47a314a3d1cd68a462345a311ab1188d9a28ddc9f376a3deb8505ad80f03f40a74107c31258a2d44d18528be10451c51048028c21045952886a2f145d50b9ed0f911518e674fa3193449334565804d1aad619cb3702c86bbecdbde57d42f9ae9e8d56c1b4dc12739dc2bcafd9efb1c63bdaa604dc666b33fdf0fca97eef9f1d393fbb95d5801b3a0e96dffed4299362cdbaf24d397cc938ed29fce12e820bde92c01fec1b8a675cc2833dea0127cf069ca6f0b65f8e1f9ba25f64f0b25e94b6f7ad3e99a48f70b2ad3329f666a73c9f6edaed11f08c9d5083e886501e46a042657f23fc695b657e30cc903fe2de5fec94269cfd267a5bcff2244197e3f69237cafb645698f7c9a3535a2587bd5b64ba4af5f3271ce53f6966d099a240fd8a4517feb0fde2bbd026a1bdab7ca5d422d4fce3291befbac3ff9fe54d6c959a7134fb9b97bbb5828c12a9456d62b9cec8f8d340b4f199164d7b2ba2593d44beed3e8fad39324f4d0f740fab0bb9b88ac75fcad4932f1cc538e4f77f5ea9edddda0ef74e5fdd477cea569a08966e7e265193ac330b4a57d72851287eb550ad6f2945e757a815306bfd1ecdff746fd116b6af0099227341e8003b64bfe4039c301efd225973f7af147f14fb992ef3df81db67971f9650aa4a75c36da3cd6bcc0698a1546b346648e28c2d50540f617eb4f76b1c10ebbc3b719ecf09e35276c50bc79a6b8babbbbbaabcb658b63eec6ea76a3d12a949566ebd513afad3157b269b42329c133c534ab2b8728fbb14d162d9945678171597ade9ef540512f19e55b6bf20d5116d9b9d18de61b59cab469beeb947f37695ad3dcda9ad6a76d49a7fc2f15ca7e19d0b9348a7e4c94a81a613e6bb0941f50e91169d67b466a0bbca0effa552f0315cfd1da7c97eb7b4c94e08b36678535b94d16d9f6541dce36dca1b5216b456b476b496b45d68eac2dadbd7dbd0a43e2487a648e2c411f7ec2c25362c4700ce370ece626a738860b4da1b4df397c23bdb2e70b50f6e3f68993bafa4a59accee2ba76f314ae6968e7b2bfad82516b53d6b6b0d685b52facc5b11600d6c2b0167716a02cddb430c49fe22a210e61fca1b0a71ffbeda6e89996aa106e504c71339b21a1f9f53e1087a19ba6f97b4bbc9ad7e47a1f88c39048c3e172381ca8c2d9749648a84c278532c53896ca53de2c199e72d0884c0638ab382e03e9c70f5dc9fe98452a9d780a064f8cfba2e0bb66d1b8aedab2fed6667b9b779230974e39ceff3bd32f7de8c4675a7e78a6780069d330ae69271c3695e5c9eeae942928cb8e63b72d0862100c4130048222088e204882a0e8da2e1bb532590ccf62315bcb6a8bc51812e105097509d90e208d011d40b6a9d1eaca6e31baf8aa0b173863ed9585a1a2b941e5cd37a8a419bd56f60dc0589d65612e97ab879dfa5fae2f63fc96006b19c500930ea87ed3cfbce9eb0e494709c500920e28d29f9ef475a774f6d8e933b5b66c366dc66c13458375e5dbacd20a85c3953f2b58f641a1ec6f1ac6b769afb252dad6f19f316db932c531dff52ed6be8bb5ef62edbbdba74499fa0e26d7d293ceae3903486f3a6fbeabad58b3ba9b746a4b8d8ccccd69d3527f42097e6a6d5acafb2d00ab2b77ea8badb15696e9ab35426599ce527904e9b448647f71c6e83151c6e4fa188771599e4eff345485711e1365d33c753d26cadb495c1ccb96457a92d9344ffd345aa5aced8428cdc25f13cad4fef8a894f724d5015c1a3754e800621065b01fbe256d541c02d4b06baf6418bf9ff23e48d6d85103f5213dc6e11f2653648cd66c9ab3c09a97415dc3a0699f541c22541c7fb0e62c5b049bf277cb046b840de77db5b646bb94a9d3faa7ab34cbf4feeddf356795de7537a8a83f397bd164de2e2b4ecb7c3a67a177d6efba10860f89205cafda47528bb5adf775ef7e1ef899fda20dfb7c9efef0edd7b6303441b65f73f866d8f9b60f2c0cfb65d3da07b8ae42f258fb6dda3743008220ae827f1af529b74facc3386bcf7ed24c3d8f670e3628ed5b46f3145b25d7ab3e6dd46cdf71965edd1313d1f50a654f1c6b54d6288ab9647f558f8c34fc91bd8465ef131bc9a190ecff2da14cf1a738e638cbb28f71f68217b412e855eab81b11d881719df2a675ca1f3ca794d6fec0f5aa2aa1bc6f47573ed14882bde1388689f4ea8a0408431a6198c370270c0b10863384214f8d108cf52accfe7dfacc4bdaa99c7d1e2b0ecd1f93b2fff6925ef5ce58fb6b0166180930d65e7dae4f929f94f2c60d322c6beb945b5c76b7b7ecf596258770d4552ba906a8ab5e52517f7c360d07d67ad5a04d2c00c63360cc83710d8c6d607c03631c18e7c0b83f14914a620d16a5075fce2a9da08c04ca5e0f9a6106419b4fe9455b5a2bda18efe7c09aef9c453a710cacf9d7206ba0f95acb23814671156bb10fe941b36bd671ec46038e56718e28538cd3615caf42e0b7eb556affbe839f5ea0fee4fb3bf3d351f974123081ce2cd9ffd3f5aa1d89ec958571152ba17a3b81a73f23cafe9ed2ab3eafe33e24e06a8b94fdf14f6d79f60f65b535664752a6a191ec2f8af7de0effa2bacf10367d4a6f4d1fd2dff02f95dfe9f40f9ab5fb436fdb864e1fd3d3686beace595ba559a5b3ec54a7bac63e78ba39d9b041f278f77e386491453bc652b93f87661c7316c959a4f386c7329afbf4217d68f60d77d2897f80b28b3d36ad694ec3b82825fed0f77f6fcd1c40f0ac11e632fc32c6f50afcd00c738aab34094f69d49b74e6f6afff8a376e90f68b281f65cf1a61c6b846611ae34a9289e30832a41c1f11ca0f4a794f64ff4cd3d0307eb7326dda9266dd685aafdcfd3f2394b8ec6f43d290ded0a8d790356e9b678a1b152b58a029172f7000004395231a0540003174562c1930b466940388410602d0b009b50c9010eb8dc74469ffeaced466d157d06bb2cbf4ed6b9e7eaf875fc92c76c6f7aebb9fc6c8de8b9b1332d983c9b856f0481bfcbdbf5974d893b9df992f7b3573b38cbd020a4392272479eed3701ce2cd598de24cb14da7a3a8844c7449452b19a201000000008315000028100a870483e168228671aef714800d76a85268509e49a31cc8739842c61885803106000000000080c401382a2002da1f5388ae64ba89ac390c5bcc9a5000eecc8e8a504c9d1d5c55a32cd239b8d4f247d3566dbbec5e23f78780f0f9404ec2b3950068e604bc993141deb302784c8e3be976bfee21c94b4dcfd0a951402be863ee48022a4dd6a771d7e7a32b303bae737d4de993944aa157f36be9e0968de5237b05b266fa0839dc7788ac1ff5028bbb1cc5ae97081c83bfda3aac3ee70cdafd1c0f3003f844fc348c01a33dcb55cf44751601f0aedb5a18a2d91a012b08ae1c580b2b84838b2cb976eb208b417e81ec975cd464ff407b309ff6f16341343d93b304be8bec59ff4231fba457fad203cf89214bb57e5bdafdd21b6495dc804b232a55eae703fc124721392333f695142352ad3971e5028b6df91b574633d50b447b6bdda7d477f5e0976f14ccead18811bb49c42a16debdeb54909dbb0aa202f62e2d9ebb99513830aa9f9f327be65f43a6a15ca9c68b5a2d8278a4e4c9482c07a45153014c7ea5a4a4ad7fd3a653b366fec44b7f262517f6a5a5dd7bc7628e32ea99b5b2ee753f9d22c6acfcc283e66499e82c9bea1f791e5468391261dca2e4c7f306a570dc3e961ca6cc73580a29e66262d7e84dcbab35a872e551b17753868097971b03f02939db70d84b5cc36e15f0d161390c1be1c4dae2003f03f4bebf025946fc30cdebf92b6ba6779ce07164e569285b82e9c13ba75b3abaf70f81e77cf1a297c303877dced71dede0b7355d05be27a27b20aef51eb46a731640431444248aebdefcb4c1306787b8c46e55b585eac5bbb51968855c43260ba79ade4d80b5682cb967eb9fe5ea8e15fd84a77d6d57f2814e01e5a3693e80c469dfa610aa6635dc9552019d2f178a92bb27e307b6c58f7f6416326691dc928811f599ef405ff2a43950836e9e75e495eec33a74338b904971edb41a902dc130362aa80ac806f0053c4ae19bc0eb922da43e8f0040f9a2e9835656c62ed8c607ced9340996ca1e86e9069ea69ba3d464fa85c97fb535b57259130c70195c4dd3bcaf52b862446e9f7a7db1fc12bdbd839e819098e4f3dad8765040e8a11f7861211135d71a96a39103e9c1fa2542f3ab202a4bb6c262d3876d2837fd01b9fee36c431075b2ff54ee3788ab640eda5dc60888b1f109ce13c047e88ab8d0fe1037bc603c55f95c9bf03c824cdb3ee63d9e5a9947ee6bb3891084a6946214f7e5b2d485cd2f362182f082e6ffed560462081c347f7c1cc1b1b8da914cf8c4ac2e7b75e7036fca27e21b6950630d36be8d5c5d9b6075096e2c27f3a8d78ada566742f36dc0273411857adc93eb2ade0f143afe2d13fbe8bcde5af412a58c814c81493a91be3c4549f38ce22d110a731bbc87ae0d98078299f859815d5ef6c877ad231b41966601e4b3cca5a0aa48691742881695eee9481c05cf8e76a79123d76099b9c8ae9256f017682c53ee1bba5f1b1b419bf02a74b6ba3952ab21da23dbbe06799855df7230e3fff8993e9057999e42a910dafbf1672efc079975ac2b1a83ad39fb8fd27a983dd1bdd6bee2ac8b1bb2dd7e9502c5fc0c02b27f9e0eb013cf9bd9e76e72d91c7f2428493a9b7d0272de6f3c89b3d760f1f28f0ad0b3d621ed389703005fb06431df0522222ffec44daf384687fd1bc0582e1eed78690451063a6c6eecd02b91395c34da64316951d788d8f51132a1801045ae0606f90d9e080cad44068281d5c5a95c305019e33dba7174e71831cdabf1eec8758397fb08c7c81bfe526001990581bc049446f95b021a1ba1ded237908eaeb714c39c320fdd65bde9946018c0594efc9218c36f5a54b08ddcc7f654a9d54acbbf611b680b5cc34d0b27b5dead1afda7546bc88e1882a27b705a6771e258717315b469296d7ef467c1e898e4f6121944172ad1aca6320ea8148620e9d05593f8ea0b0660052d8f6fbd792b518f9b6fd2d780ead130b99951ce96f6dc35d6f9750f4e4b9786bed59e4f4192a823b6d20f01f76df393d93dc99c90bd5697c6cee5a2ac7982b177be053b090f42b594de75a31628958006152267c17b915d26eb11f2f15a915aa46cff3734a236c155f86c79b39274681df30d81300ce9904a49ddbe81a7d1af908cb6dca66af7465be34e88a81351b88ea5aa8bd2d5574e5afec6306927f91704d132ad39cf62bc8d11dad44741e886eda445ef247fb531ced65770f3b79980661367c3df87af8d75277a3640c85376d75e590c2c7f9b42a067cb7a26f87f0e5677aecacc8b8b56a567ca65b3c0bd3bfaaa93ad0c3d18e76e4c544044311a49fd523324cf579b050e11c2d1480b86252594298bab4d596d08df2a04c8acca123555ab5b57e3723c368e8ebbc8b303643f67d62086d182859d91ebb3b121b4095d42e7d653b55e0f295b1a1f89e0d770642f03acf5317900ddf8dd0b79b3bed95c575e4586e2670d025c699e91d33a51121b2d8c004dfba2a6cb1c2f84e1dc078c2284912e80c3a6e37496783eae82d1492b66ce57cecc475751a5d9a1281a644fd450a334dffb84e2cc828f19fbcc3dc33208f26022ac6398cc2e02a9040fa103fe82b6a4d62fa9ae8fcd86a82d78159e597c531a22378de8d69684776bf25fd375dc4922db1d1008300741a1cb9b57d388f8e1195d4994ec327be3895c93fa66c1b3f7bdd6371f018c01a9721d72d3ee67fc753b58412a8a85b9d03c061b0f52e90148513feaf4d017839d2093d12f96717bc1a2123e820787c9efc64c99645c5386c591d92e1446cbb2560e060e2efccb2cd7f7fa52270012f40cfa2d2e1a6158870ad8348014342ef7361756fff43162000155f0622838c1cd340bd2ac2530d1b80d39e59dad77a846d079ea68c0cec73cc52049b854c6b39d12fbeafa5b404dfbdbe26e2de8a3dca02180d86fd11880c11517ad282c61172580ce5d52732219890e6e0bb5e599b375b406eb64bafcfc29d63967065d692ed73143290eb164edb111fa6a9c0ea3afb9fa9519cd8544d9b29fa6a449610e35ec36659a4b5332fcd27d4991289a0013e39cf6bfec18572814c8f129f95ce9433521865e8ce940994edbc67410930d4ed83fb2a541f844af541fea416ca4c303237fd2df072d0fd214b7fe024b8c99333ff0972d2c1db332cfe5bebff91d80211278f12fdd7102a68e00df0172a388a94c4741b951e20f9f68c6f4461c450f052c87084530b199ea307a7b67cfc32ae29353865960badc648d9a50ac4d3a3a6728934ce6550087aa48e31f0d9697d5669f3b6a3561846f72b0fd80660010b6b9b1d54b3f313babd526eab334a994305962cdb33337fa77fc459309441de8a27a9e3f3ebc664743024e8308da7f1c3fa5f6e4a65b1a56458fea9faf6d1afed32a925307d04a234ea2467624b2440a8609ffe669a246ad4b65a880bb5441a1f0380562d677491d50e967d115bdfb526f314e3b2404dd339b8854bd27b6c388f7a45ed1e66877b7d3c4b5fc83eaa7adace192599be8b91bede3e7b12f1acd7680cdce9d5e4a77a4333baa640f68055b1330c628a2d0a2f86e041a14e99e813777f2eb41729bf40bbfe35a4355939a4278dba9ca1b04708c57bab9177e12f2d591f0d433098b18c42b8a003fd0b71a299f050485639242557cf34a7e7a76316fea844eaf6b720665aa125826ff08ab18360db4651249de20292ed61115268f55a95923c2bedfd36bb93e36b143f7a25ef042d095b9360839d3a3fb8f624ae3c33df6c461bcab4ca4e587d2a2a6e704b3cd3f6721bd27b0386871cfc9b83a653d6d4113a3f6b53f4670b06795cfaf4b85eb70d00fee6d146cf20367f2d7a7e7d9b407cc123c5414b80eb2be81d10001e3fcca3822b4193d3770a21838461e3d16d148cb40570397789e72c3cf6e9d7077b50800947fe2f38ca289b2241cace258dcebada2b50911ee671c7027883198839cd8793a40a1b3a0c413978546636f5e5b17b5b21f55865d7bfdf3dc020b5e20e3e16781c2f847ff8ff996b144361dd4719132014ced4d9fa8b7ffd51082ad649143769b2b80451b36e95fe2d51d45b8df51ecd192ce513e670dfebc80ed59b646dc0321a0b96d11a8f2c8c6228c620cce72cb30993a8986bc85f08554b74a7128151bc16d64c5ce6dfdde88102c668860a589474f7c68e790118db54e05213d12ca4df0b82bb79390abfc00ad2c5a4c6ee59670826edf484c8dbe7b08f329f92912cba6156cf7f1ed54d0743083c7a00e529fb4c757db4c9070266cd208b29378a155ed5bd571e5051e18f1c6ace9823c65da31334d278b0891e2ff63df5bc0bc1f9acccaabdec6d56b06270e5dab6fc346230898d4c4d958d6959c7773244719e03c5a6433c0f33b929ac12701d049d741e1521fa5438c689524472e9268e625617696edcab3c16b7489bb0f71686f18ff2a528980c0183eba8293843131bd68b18364d1a28313190426e9d401a02fb2ff4a23aaf1461ad458232262b3f1caf4963520755b7284d052f4838a4883661c8cb6a3e77f708477d359727fe324194516829b163c2bf8edd58e8f89e8476ecdae4f690e578e059d188f3a1e532737278f8a8a6872beb66deebcb94ae97d34c89c45a3edd2cd9f24eedc94599aa1aa793d345485b9146b25c9039d912d3cb57027e1e5187ad173278910efcb2a16bb32be0befa5308fa27ace0e09281015c9d3f3398a6cfe5c9d77b2d7fef347661bd9597d758a5a47d572892092aaa370f7aa611b48383f057ff76929bda9353ca12b488b7415ba1ed43e343b9e3d4f8932b4c0f3b850e8dbfa2ab12951c8d3307a9dbb0dfd4385cddaf720c182529950a56b60acd76277112a64e72bb010ffbf5bd102ad275db3bdb6e3349814e3ef71c6cd94d93581d225be776441d6fc9207b75cd25fbb9f671faa95d6d221be33ba34c166ed4dfd8092603b8f468733da2e3dff4b8b54e5927b4e744893e2b77ec9131791239c35c023f5dd8a4e3baf10ac4923c785c98cf3ee511e48a02465fd64b4743c025de6a749d86d23734e8fc167c812141e7ccf9f3a8b09285c9574a4416e5d2ff58851f383221954c051c3b63fb4fa31aed7e9836eff6f87a90a5315a214dc8a875bb63e9e22d0a71c7d44203954ee38dc7c1b9bb176d02d6cb274aaeadc844b623dff53edb6f471474994d100d768a31b34f6f49e2b1728b9c5fdc79f609e966ab656931955c9cf40df00726bdc70da16b2937242938834b7a8e4db5592773f43f127059091fb0119bbc1c2774f86448b5a2a54192bfa1f9c8e8bb8e149d12cd86c2d8e64e13c86c8e6c8e6b5519d53e3664015f0099d6e42c6a0d32ddbccd0867231b5530317340de033629f3b785b225f3acddfabb02389e0ee4e430fed330ec1c2172ac13677eac2a76bc3f72ec597aa42588ec8c0761438b21a29151c33147cf5dc4c0bbbad169a4f1d163b7ba072443ec53bca85e2995cfb15413a5519cbb3477f103544deb67186986f7cf9b46c05ad6177a8d9eaa4aa3bda891aded9f740693797343dea1777efd510a8943a8cd6b13ff47bc724b6329bf5a92c902901d1652691a92f3cd61e32b5e8d03adf638492a02023579de7d9d1e3bf1095d241f958ba6a76ad204e97aff6ea5391eaac2ad354fc6cafa0aa360dfd1866fd56620a91c128bc632dbdb2fe4fc5085a9cf0c1ed7b1f2faebe72ff18e7e9fb5d2d903e41a30b720179abd0b738e840871e7ed0417d101f601b1c44836706aa5c314eb94b9fa7d375076b7975ca23baf1861ad8708d70e1c036dc7ca37c2e01683e5cd034ce6814340d0755fd6ba5f33b316e88ea6d08c642060ae149d6cfc11956d8d29c5fbcfd3391e46e6992578e4e1dcfa3cd2b2c9ed1926260163f81c9fcc598eb87c10249544194408bb2911dd4e23333d3923eb06ca0957e569c8ab495341202143e1d1b72c776d1c86953809519b8fca1ebd58b3575084c7e13a734277724823cc14274cb7b1a5536de1996d39b21dd9a7baa8cc8b702d11dfd6e09f23fc442de329a6b6edffea5549800ebca8f15a2a6171c84e99b8a602a4e5b6037a9dff9284c5b7dabed443b1124106f378a1d3d3fb1d6dee5ccb7ffec609a22330e6efa3a138ec98b276b594b6a6e9d870ea6f14eeb59834b97a3e460410714c1bdaee50659be7f8b5b085912789d2f5d6a7124bf34c914113f68f64d378d02fd2bb56770e724bdb86907cd0afa5d0874193bf77382cbc84df0d31aa8add50d6122b159c579b7eb44e888de4457d5b56595fbb1b911b608ef0ab5a0573d54b382cf64707553b96eb951dab8c6125c8d0e302f4646b14b4095fe61e63192e8b1a512d48582b8bb6057239f18c1632772d042fdc5485855af188a92a2c8e9c54f8a0a2329e9ca37f26e098123054bbf345c97d8aa6bba737e83e9ac0e74c9f46ad0eaee2f4bbda2c63cce342a69c915125eda824d124c4780701a38d000bf2884bb0980c1816e2ab5f4088e31f46071a1d51c5cf8ea9fd4288ba39ece03ec53f1078876e4e867123ab3cebffd512900345d61c7a7ab726388bd99c528ee108cbe10eea1b2a07bb04257a9880a959428702f5e4b57a942e5084a0953e844c2085ff1a9ec640999b9825e0dd9caff7bed244af7b230b521ff2a5b96583c03f0793e0e2840242cedb538ecf6dbf874f9d9b13215d5ba2b20df9fa854237289592c5486fb55da6eaf36e943f7b4e5b8da98fad114fc48c9b87b7785668fb1035b715ae406b7326fa1c09cc39e8ef3b4eccabc29a00a5bea6d81c8015c40b22b42700b39995e31a0147705be35f81ab9749b7d733fde53e6a6787fc5923bd220db824b827bc3984bdab706667895007c170275071977ced7ba4d2d6a843736e0f3b8d6a136e8185b734545ddbda26f41a3ae60bea99852218a1d8598679f12418ab67ea36ca2d8b5c6c56da1b1247dcba9dc78f5771faef73f8ab1e2d9928ac2293be0cf25ffa7d06273daceeeccd1abc556c37a5ba3353a6ab478d4aaa7be9cf17bf88423d5f09e1c1dbb43e1969797101961022ba91264412af038cf0cb83232e169ad5a81ad8280dc4e8e3cd1c7783a363d22639e827e6136d467b4cdcdc703cc0f9891580ba177787c6c1a0502ba3b24006b98eb837b7fa6a4da0d426727896cb4263cff64f32147f36305c44bca25f2aa48b4653ea6b058eab63a755d536453f23d532434b8267150f7523b03dd27df3091a8e6fc2ca2ca0a2b777ecfc3ae76866daf5949589d313b3bcab65958eaa202a69a82ef308e1e4de3173a65acdfc881f4789d9c3a2b9cc087b10f9320368d52e01e019e2a6d591973ad4c1f5c1a6d92b2ad97dff3251293b5324c6069551919405eb7aab9b814e9b9c602873c1ff36a160e76690bc7b474164143adcb4c04492a650561d98e325cb7837f5260747428a54d00165291133443824249a1b3d6c5aa9ce6af035cb8138c17ffca1266dfebd75460b46c71209ee8aefec0ffb0d98dbdf9665e5353e97743eda612f2f9a93b54db8afe9996a038e7729b40c53fdcf89526386bd1128d23bcda07d5e70f5d8cc84579eb58933787d0971daada661188604cef7377de0048c3ac9c91ca5048be97a964bf7abed0405a56ea4d67b6bb6cbb0f976dc445bb679b46fafc2e303227ded01780aad98548d261dc5c4b0622ebec416919b00eea064c26f4895ddf1de28ae4c60edba0711957ad08a36d76b467f2469548cc80afb97e2d637c73fd8b4cf9cad57f8b1109051def98479a6904e1e19e786f7947f90237275a92f185c4b36ad4d4d7cea6917eed6121874c157d365ccea51bf9dbfdf81042b7cd60c9eba1c14c7dc4cd6c67c2f73f5594fb4b25eebfb6f132c9cceec0bd39809430791a9349aeeecc64c40fd0eb74ff191bca5068bc89ff64d4099b4ccf21cb39a2efb3af814cd152bf6d178fd4b66cfe2d79b383db14da666c5f9624894e8911087a493f75e186823aaafd635b363e621238d5ce418d1f4ff3ba3b17046d2ade0f1dc8dff5392c80fefd6b6e2b078df426f43a0a5f7fbdf636a739a23ca947e8e8a88875c5003153419effeb2bdf9b8a837aa94e0938a6412ae209910cf255ba4592827823d1d0b0a0e5536ed2ce284aa6374ce657808a9cbfc4d6498379896da575b63b1d5289f1015673ceb79f2916c6ca0fc1d261372df6bec751d879a0a8927cd2516a6b9b8668c6c33e4df7a568893259d3aa84c506d0d1ac0f4a4a7750cfe1fdbc5bc7013a0d65813313bcb10c4914a96340f7a3d01655b8105ae9c489a96c78d2a3d18723f72d3e5ae4b145fb834340b5837accd50712281214f019a48b43fa9a4fda635e60e044f135e75b5be995c9f3db4aaced2477f71af73fafa7d6adf88cfc9f31ff70df34145a3c152ecd5e8d96b1663c6ce0f385210adb30ec6a68a9777a31f79f003b82ff639a4118a3219769fea674803ca452fa553acf55786eb843b7d3a254539540101a8f2219afe882a8f5723f52efd1b732d8d7e5a70cac72475f9b3bc5b6a4bd0467eccc95c923b2d421c5bfa21497464d046276d01eca782677041ee44abda38bbf6133aaf572528128bba8c2d3ec60176f47a31e6eaf6c270e9646a08a28843e378c3ca3a34f316ab9d44d20d11512f16a4329e99c422681974cf9e720b33a931314696f62c55d3ae8d105638b72607129d6389b56cb58d9f54e350c0aaa8c80dec5cbc6a71606784bbad8ecb4f80b98b768c6ebd84eac481e15234d814e7ee654c0f08f13d1740c2c804ce56dbdb431e675c3e01ad3fb16407dcf190acacb32e1c07328172981bed16b2bb2a146b431780d0846238b543202fe8ec3f5abb1156b87dd42664ba7bace6927d2a4e66b144c2048e833e7b24d992bd4280dd14ebf8b7b3115594d7fe238f03d21746367c5b04a9ee57280bf9dd79d80c16af87cd0806c21011a2fa0086901d855a0eb6c2bfd6685ce0ba3abeb4fbca9ae1b65821319884dcb0f6e33dd939150b545684cc9e001a41859bea5e65579a8f55565c5856fff99de25006938df236a3a5ae58be81d3e0b7e314206b3ed4b53323865cc1ee7b3cf055f6f0042ad0bd3f313a4209fe06e6d0c6d6575899f496f891656ae1339f952d40ea817c9ca1f186c93f03ded0027f70f0ae816e44b7ccf7697cd743700cfc34c5377fc6643f7afad370d6f38436cb1552195dd493274cca9bf25d020e1f7c44ea57dcfa0e4755462a6542121621f823026d285dc3d70bdcb789c7599dfe31ab9c44ea1d8ee2188293e20c4feb0021423db9b6fbb471f0b0c567e8aa08e85cea6ef32f4a2c4f598d5d00ca3257f6f48b45ebcc96d3502bed81c8eb7d3e47ae4e29b87798cf1242f989b444380d9a4f5c3082a98589a34c6435c4e0bbf5f3789455241e6125471ef5b2cd3629d1492fcbd05d1893781be1d9fd73e05bc0fa08916d09742a6b1f76aafc20373f3ee1104a5dd4bdbe3a288be36af75382e8e92457955e0d75a9a26230487b0db1afe6ad640b91a4ddb12615d0a5673da20db94ceac39a67d99f177aea4ce03ce29377c9aea8094aa4a9a524105458bb5dfa476943c2261b97751d210695a819ec8add51a01683a458f145c367ff050f93605113ec11db7b34dd21e1ef2514e1316ad88f83987dbdc08c86ead4294b30cce32ad255acd1c0cca61aaa68c9187e52cc8127bf6e0c92ba3904d0549b97c3f2c6ebd2f0249118144cb1220291bb055cee5c3ea959fc32ce71480252d884af24055b8e5414c39591cc9b7132bbc3721cf243749b5366192362cb791d2ec1b755ed20517d159d3d62da1e145ef2356b0c3e730c2f2c8543c25e9f49ff87a3580679333da8d510d4168fba091df58fa5011bf3c4b14370c1df22f2bcc1f10a979cfefe82427ce691db487449357cd831118616d45c54bbfc379305e963601ca59382add0c225bf5ad85be77c1ee703a0925eb2757e4743683a7d133583330034bc43b2ed104ead06bb93176f0500981faa443f5ebff6ac5c8489a2e17d5cb9b142975493d6d4e75912ed0233c8a13f5113ce951c4733c40b849b792375209920a4da00df178e8e6c33f30b9ed953718aa0acd2588ae4d764ba6c167c19702805edb063f935a2fc0777dbb7c92da6a5e3d78f9c53dd59b32e4caaa458830ef1e4834a92f3f43025fad779c00e4c55af995672b7586a0b53260c266676c1643d42b6ea458981f84de79349df39e140dfa1f1cf56695c2e9f4cdd39d13d6954715142fab844ab020037b5ecb43c0f917e099e823e1f4ea9bf54cca63f2a0519be649eac3940782826ac1628cbadf9a868f9867e3a32a7eb631b7e85d4ad92948108d760f223135d4580c67db1b65db8f4cd6c5570b8c6a7d11053a63434d22118217f9509647465490ef7d3a9a548c9cb19ee563f51db68a9c1ce539b0073a8b8e90d9e3b2f578b34ee83b84707b269c77145ab7c9774d5838acd0774a547ea5c206ed5ba539ad04979674f96e7516d7db0d66e2869f034fd04f40e856f64c1e3ae9267fcfe27c8d2390b9bedb0498a6d10a4d84641abdc512b1c4ac96c916d0dce819de264044474459b8ad41f402682283e9ee5a14bc84830fa7b02e1247cad0f96e64c50e762f8811c20cf408c571e86d9562811e40ca116d7307a66ceef53706c854af92a6040eb03f61123ce500903695ef5c0de81eba22c6244de0fdc2f40841f4303810e978c95966d76146b37c56a7e3a2d772619d0dd4d9c26ebe231d008811c32ae4abcbe3710873039638882205163b8a2e1207f641869a9483bc70f95f17f4d6482be20ba2221c3a45dbb2719d7867be3c11638a4bde00d73a2666de9eee6ef12618542e9da414a31b49564d6bd09036dcc95b4305bd583dd6981ebdc5d8bee084403e3cd7f17a9ac418919d1d05d3d0a5ae142f0bd6e044a7f7392118077a53cf45add0214fb16d0f5ec2c372177a23e3d390620ba4eee8b2e0f4741a1c349a640f5a83faf949cafc9494eb85a23d18972eb6911b0db9971e4d305e40039e93c53f3f0187fe50f01aaa26ce263826070b2e020dc65786230243211549fa42b849b503b1a3b9e787592993cb9e733b0465706105270ecf721d28db1aa438dbbd58957153ad54794912b76188848d2f3f05c203f8605315c9e0717ede874bded459e28a6e10a9fc422d7b45fdfbf7416723da55f05ade50a5a2494b822048dc657f7da0a7b476d52dfd943f1ae166d56d3466aac2251f2ba5d8215df9644c94ae0a87cfc2e4ab2ac36a1193062e615fbd55e357402afca2b4617013d5944e4223297c5e6be42c94c1a8539a281991120648678720f28295c23f1470228760859a2cc8b7619416b2f77850d40f3bfe05a486a6e469f195c6c4a6f2ffe362e0f7599faa819a41ab5b36ddddf7e958c6830bee98e07ec5972dccaa89eba5c36edca3ba1f46b50a1efe5b5ecedcaebc88e95ad1203d29d428496558d2c695ab05364d9b150cf35e7e88bd889da56e3d4e2d4978b2d75e6ddd0ff8c8226e52cd02a77f65733738dc88b92aa20a038d32a3ed023eed2de4ec7b6bce35bed900170eee09119dacc11f8946f7663387c3fc7a604034ba8beb4a4addd67b19c4e3f7e967e34ae8504f1e8cdd03514f7a0ae5ae6db9e6b56642cad5029b3c2bfd16f38825d0127d5ac3e05c7985a75a7800a9ad9062d955a87ae9de66485aaf80001c6da491b5909fb765f26b08e61dde05a07369e291a7d8ee0848b2c29b10f36de71e98445496e4590c16b96bad2decd3451dc389a1ceee6431053520e2bd65c52a4ab9dc64a572ab78fbde4098ba9b9b064eb08768d201afe2eacd75e579f60fbfca1d23fdefd01208c30ed45eb108a80d201af8536ef30681dc34969b65dfc9781d4d22c4287baf414c2f0988ec353b54021c1004331ae832471e0d9f98a8f5d2e50dfe9f9e243004955953817450c1cec3ad92c0e3b0372a43c8600f0bd7a7861f44bade9498d4e7e042efef99169833780a336dc339b2f8de0d17415653a7a01f0dfd7e2487e9990faa61ecb8940847c7114f95c74e07c1272051242a4862e77164e9e4c2448d98ab94f6038c03580e79d5008e9e027819331d9ef3247e45fbdb49845789465294771bef51f8d004dcac53dd31305380cc6efe81c28f371cf0d2ed2a5106369c120df6fba8baf12788856d293f629d8f5055082bad348358aa2375ecc3feab691fb31ed10b2263f6215cdda7da1ac21bef0796c384a15a32210c9b0e65a07177b327aad96d8fdb3d8ace00f27a304ef1664ab535b7d68f40907e1899240f7133be79c0736176263873c5d3319664560ca66d3dc44587930d346a5f45fb4fcae6c7d6f81b09a7d8312e21ec0ae34ccc7f23d2132c1b1e1136268502d8917cb367e51fb5e1e5f181c44296396fc35edd3b365ef84c53af8ac44cb6c95274030a2c33da141b4f923d574b250a7de661ab8f09d0f74039dd777f2f4c9b6c2cceccff2bd44990400abc8564675e517996b721b2326dafd61028e5e9cb188a34d031aa9914aa774a88610e3f9b5a759b6a1cf38d98ae379d4fbc40ba9c43534b2e77765025c53f6feccf40dca40a2b6af38a773a2a5109ec96d119c84ccb4e540bb61abb33cc967941ec6f65ab0e4d8550d0c0f39842a7fac308934fed5586a9501549b405932cdc815213559215ac81bc9d99e459ad192169d06ca336b12314036142b2385fd8181a4195a64170d1d9284f87b988c678efeea588f0199c65ce3f19849909a90985878ca3bc1ca7b0afe75792e48900b6f9cb3b370128a20862e2e19e7f34c4d325bd544c528e0667f35c421e3db83556fb7561d65c0c57c487176c15a569e0b00436ab177a2d58dbbe722c84accdd66b7e678c83b9c000126c037052498f794ed5f1f8164bcf9124871aa3f06ce5ae9a6034d0072d6e6c2698caff2ff4a7a3b34ac28889f2abdc8210aaa843d866cca9f5ca8cfdd3d27b3a0f217dc041eb5c4ab081254deba207aa40594ca9e674627ea426b8be01555365ce585d7535c7616ec7eb08731d3e156c58a59da889de6a2ff3248ed3c087ce85ffd6390dc832479f52ec40b1ecef41d8a9a4bb9b4d9d886950ae8ad4827071dc58d8ea62536794d29adc28a333c954850a4e62986bf448cc988147a2b2c970c023c1c227fcf74389fb568f5a9c32cbe6ba5a003df0572254aff89ae024ab16d1c5541d155604934208c6245977530a7eff4b570d7ca6dcec686558c12f0a31fee8773140b7a2283c6cafb45f9c66f8382a386b5bd511433140778389e8f1c3a10267d6cd02130c5ea1d72b02620d95b6483e00b9fb19f52d9005d446c061eda90823a79069126c409f76bcd0c18bce3c68ce713b8e4c0bcc694d65d6848c11f149698b88a7e408ce2f26c155ec3513b2f07f61c836cca206bd49a95a8661f684bd879abd33af9f320a510e12d8969631a9bd4e53889d2e5416356e3966272b3921d5905e1422c35b940d8362e2b8c5d711284d5c549bc496cc392ae511a49683a44fa14cb3a8d738777aa413130316273555370580d7febda7f46e112ee231ed6f4a31c2de2f18e43c2ca299c4e282d733bc8743d3cfe84a317f02f0b301993002d12eff8a80ad3f41e5975166e08dc27a02f827b831c930fe70b680c2ef471c4b270105d609d25000a98cac8d11105bb5cb861998a632ae21a0bca9e8c8ea492f7c9391a0c2485061a69b8e59d5d9732d42de52085e17dec7389e5647cd08f357b828dd53ea9963ff108a6c209dc0adf7aacc13c9060b006cbeb78701a23dc1726701b89b29e6244dca64db006edec88a7d9b5139db8a46d4107d94cdbc684a97d514a9e729add6531ebaa73083033343d5c17895a188af53da5b3d452c2abdc1acf227e395f0a6294a637346c7c9b0635dbe8c056befd8871b7d02f099dde77b68983605f50b80eade7f069ba2ada62f8aebf4bf8bfa0f8d1ae4d3233859fda4c17bfb4fcb6e6f35429c11e6e650fd4c4067469c999f8a4ca94543f6ec3781406d6c792f515755492d11491321097057ce08f04747194bfe86712d2f9eaa991a01ebea00636373217215df046c416a3d008e5ea9a6a28174f2180eb8e1453b0d61a4b9f34f1ec46f72845838e97bae9a63441860d59644b0b6e0ed4cc69ea2b6eaed2590555ba7e20e74eacfad46b9eb4da8d99a2a3ae2ca9cae22692226a840368966a5ec1049ccf35c51e5a622abbb41608601cca19b8f310f459c822b35dd5df6c1b49b970298152568669fba3c3bf30e268568b4388a48da93d8205d155bda4c1147360a3eed78213dcfb800234c67756b107073f1c7145e490add12885a4b689d22b521a9f852f5d54acef918bc410439533504c227d14291610910445fdfbe027f3fbc5fa780c5154b3d536f2beec381364c47b29ad244a43e1edb926b9a18468af437895f5c61a2934019de616de5bc0493483f7966266e6a41346924494ea44c7d99afe2ba1af78ab92b648fab892afb83c8cd98f8d6ec875d7b40c2befbd9258a2350bc14d5bc5438c646a32b10c933ca197a4313a34442f0f51287280e7328fec50e0e54f487441ee1efbca93a5a11aea7548457954ca64f95e233f56b95cab03e2e48c50bff32350faf9b99e903ab183447cd25997c2945b591e23cbc3b920f586e3a202cd62797be7f46696e59fe0b4b733d7ddd6b21393bbd24976d40be8597247cab9d588e1f81417807840bc6280cc24f5563c398d49bf9d3a97b542e7fe2853ed818795ed994014ed0dd0fd3cba275279d8cfd0c9371003cb9116b99aa2190044de990c90c14d2d991334d921c4445f80b85585f1c5bcb17867cc6d382b34d1ffcc555b6c5bb0ba80e2810300557cd38e15c052070e7b045b4142454064602562a002cc1ffb754cbcd12f95f6614fbd16e203e4212585f7aec79262f17d49e647e04d79c22985b9f1b1c018dfa7f0005dcd3ba13e4a8cf6a5c0d85d881598fe62a07ec434015afd203467bc8dd6e21a462ac654323a8aa38d3e688bb75e4dd6fb809f77f455da9d352de0b2d7d433b0b9b483f6b0fc71a20c75af73a66a617ed2ceb814420b3379b78121118cd0528b997bbd58924875619888112d46ff88b4b21a2e2c017b4d792ea61fcaf0496a1bb545b813a45243309c541a35aaa95891853619289dfd59a91f41984572b8d77f3c9b63f66474387a97b080c6243086d020bb01f579d1fad0ace7ec98cc0a9d53e912896bb6f37b2465fde1aa6a1797d7b2a979fccf9e30af086422a0d2da14df00eb88a8f04526c3b75977fab71a0d658ad103075abe6b4efe45e44e345b8791dd454112b22d361f9c143022da5422be2330ef23577ddddc27ec14f0b54464e2514553a40d771e38b966ad2091db9a9c010214df6243151272c5700ef98e618dc181d5bab3781de7e50d7021e93ffea1986c0c0ec3124fc9d5485ef680872b98bc9e29640f31c7da2a7d3f0bcdb1911cd09ee2e093a5f5d9f69902cbe554e3a51b0c1c2874dde2b52f362bdfc535f00251a9ede275afefe7676bbb28dc8ac148c3ff36e807904f5d3b79e06d4181a5f856e8e81b84d8f7e0811085881034dad007c93d09d2a77c1a9c30d59f965e9a01b5920ccc17e4bad7bdfa4c316b7ce9a0fd7deb40504c06a6a01ca292fdac76dadfb9f46f0f32ff78b8fa070ddb65f253a49a9cf85b04a6d9619ed67fb7498f78d73b5d9d74de259add3790de452e5907f05f00c81f1b216a9da28bc698634908681b2a6b2116dcf9fb42c1f608bbb7c80493267a284a202b2db4942db0eccf7a4c86ea6c027e31d2b12d27626f46455e6dfb5675ce556b74b38757a555920790fb3dc3743150d73694441a1a529b09a7c958154ed4d61c3c77e2968e4018052607171843f753dc297774a58b47b6d805d04218544b9fb01a3c171ce3d0fa91b3e352d58cda2d89b521b6d8d403d802708cde711c6ad0916988c2cff24389b1602928da0e2731468f295051673f895a325f7995082eb2388efce7c1652419da2a6e4aa06d5c3d70fa2465bfb1282938f8f14092950380e822a9391d40f62e4ae9dff0814173b10d238b1a4f835780ff7a5ecaccf41391112a4773676f379ddaf9b6f9f12dcede9bdd6ee4aeb3eaa5227f01dd20429e10475776c741433070fa3a3c418c4372208eb3f970062a452505c8b27fa68c067d74c0f70e6b3a1475171be57f01f0867a70056a97bc40a5580a3d50cc258e2902adb403cb3911c026aa2ffd45168195f8aed3d5f69492942e588877e6f0675918cd47199bb743c3e2cfcbb5edd894bed56d80f0f98ca8c1b86e13b95d210f2593ec837ab80fc8fa10584448e999e68a1423dba89eb3f286beb0324fd3204e0a5fcfca4368d0da4503bf9c71bd496928ea7419b3f40ac85dcda38786b903d8f07550c18a4b9489b35b2a0bfcd0332a961799757f661906654ce005817200b190d33dacb40f6166a3f28f53a95eb1d794960dd7e2a928199b7d33df21527eb71d350806fdd59d29cb9b169c5dc0fa252210690f796e74c432f9ec171fee92713827759a7bbb0cd7826792025398210f6ee2a1a2c9ce7639f0a2c2bb0f7744fe1c041a477ad5af22734a2e2b76d121353d8745b89092fb025c7947181d55f42b2eee0b5a7b5053170a55b96803ad0363d6a2a3127ab9915456d0a7a4022fdca0aa5fc91349fb25b4645bca353192f43c4b1f5db4c3ac9d8c41696e6a0be7e2abef44c50d5307fb7608b402018a4e8801d256c962d2716460600575f7f5762a374095e4227a4a700294acbaba69baed01732943c15f758c69c21f4d804f56c5df503800063092be427fd34385e0c7b1df9fa99d6d429919fc7f7416c898ee8643c936cc38396958a9c8e544cb9aecd2161a309b0437899c11b7535b026772859583a2305a863553ab02e0d701e35e0cb97fb352e87520e75e17f4b895ef1b905cd3fa049712ca635eeb95a0ca0565a0c52095d52a06a50ffaab55b300f943a2a4214f21812a741d23702c16093e4ea9b6379c885114440fada79acdee53c79c0105938561686c0037980276343e0953ba271094050071aafe217a91fca3d009750994dac3483544d8a52c3e92feab6eff2553e9278928a5948e22da8af5b41ce0b55745b9cd35a065bcbba34fcc40b08c0e42ec15ed6fdbd8f3e24e1c417912fa24f473b9d4d83c549d7dde2a3298ca9194b0ddfa5416848f6ad02bbf8737493eddeb36d49b509e43cc59a46a8537ad972601343ca873228c39f2e0b55ad71d8b1e63f1568d8bab314d37b70c29d99c0e451deb8e837751360524d0507f93eae98418eafb74a930b07c0631762ed744b641b16b1726cc11e960f76739a08de532ef7ec6a13e7ebd5dc651e164b259ba635327f1c8ce0c2d2c34f7cd78d2a75d5038226d171e39c481c840a68aa6ef261da91cb570c0aaa3438d7de6f9ae9da9ae3662b6e8cedf853e08d6a25eaef2ee7bacbb7eef0189ea111e3727279788e90f69c2d628c62fa0afd4d4677a5ed0169602c2f0fe5884cab4b95eca827c8bb698cab4951765fbf74214c39c82c2df3cb322df69061ad0e963a8af4e3dee5aa6f3ab039345f725617ab1477b2ff4cc204ad6cd21d6ad6e1695a9c42eb2e0bdd6c6898d1c2566a607bf6f55355dd4592100278f2b6a29fc74a6e7e56e6ce3f5ec56073c491df3b1a08512dc5375d5eaf423dbbc08bc1a724eaffdea87310d6b148a127746f6dc3d3e5a4eb2f38b31bf4c88bc1e8f2822b534d51beb82d46dc23f1be349668056e04533bbfa55c12f5fcb0a227d74483e6c52025d3182482f7c485fa0b1091b19cc8e375a469b0098cc1eb1dab7d9e6b7133c18390dc07bc37176710da43b3e78844376054a8271eaa09170e742611143b486912d1ef7657b708f227a96951940b93e37c5e4034e927f58c221b8eef9c4faae5b8e835e3864eeb07d2f51f6efcd0faa4628fa6e1fc49edcb889f1b8e39f2e14faa228e7edfe4dd89043801cd433ca7689326185ddaf24edf7aded5e3e08873a4bea3c27b63bce91a7f52a9e54cc732d5a2862ab42dd69134f628742c9ffb3e3ca715996a767c47ca47d143eba9bf4d0bded68028ace5240e327114502acde512ece1493538d2f8112de48a33112f4c9f8c4f91c62ee8018995ed6407ab551bc6a7e818bfaa0374c821d0c9eefff229d293d85054a37b4307caa1d162d483f93354840fc751d1f9296a113d453d34928bc7293ec585ce6c0bb799bdf429762ae475bbcd7676d7535f2edba649c3bf4bc0873982561b2d04abf33114587b0d743dbda3b3264f99b39b986780dc95133f45fa0eacd897645d039f42c06e22ebd673607c941ae6ad9bc39181a51d454b3c55649cff3246d93deac2f7d8391cd30dc88dbdc11fd4a39eb22361044fa99f629ced97fd81c30757913a4f9844fde0e5d9cba88c215e5eea28229b0c5e15907397e695dc8f43ccc0a1d2942603040642fd143d6cdc4cc51c2ea9afbf5a5ca8f28740c986e4e475f953bcc61fb479ea93e607fb5db1506248cd0479e10bad80faf2d237beca53cc3aac860ebcf95f435f909712d69f8012266f9c0e5e63c8462431b806479178e523fa22d22463dcb837addb90e355666e488e5567101db83416844c1d3f6a6ead922fa7da77b50e897c9d5f4c61bc990931245ea1e8c0c367ebe781246bf8c3ce470422b90dc7b1e5e43f998132c4fd3054b4cc806b56c037583043a9add953d9392c23b323a85c419fa30767fccc8274201571fa80f64d03b7ad0fbc47a61430acdbf2c6979c88d183187d42d5be6a53d281689a7b809a23a85729b13031a8f6d7ae133c2fafc021490712d14637e5337f585a4e9d2ba72f85afa947e9c0a37f5f13834d7f66259572f6335544ff7d6775772830c2e8f61dd948d70d1c6601ff0e87de2fb305e365c0265353449b941aba5be360d363936cce5c4769360a581deb5279bcefbd98cb7add5d01324486f8b226994315cd1ece41a2405e1712d57e6784b8fcb5417fc558bb2afd25e89f2beeadfde1a4cf48e11e4cb48d0550c4ad2ee0eb1c1025adf98f553603808b2c52a827e7c42abeeb67acdfb150e06dd1d7f5e24cb68a06d584d92ac686fe83095f56b4990456c16387ff66d1ed2a1ec6b32838db78e02a3503448143ea0727007715d154af07a8bc9bd845948a75f02288a57f2bac03a7f9d0eec0fac0b17855cdaa0a4934c90af382ab6767c18e6dc31df4b83d3e253e2dc265d2c974c057bf112d1158d167a4412bfa8498fcf2cbdbe4fe3949bec45a613fde516427f1d896a5e047f4722ef8199adc4bfca451583960128723a4f438a7bc98df50e5bce0579472f592e5e7b09e6ee218bd603b50c66fb4722df47ba032e4fccc13ae2dee24a2804eae453f4728560e30a5c245ea3d7a14d1c919140c3fde6e7193122e95d70a6886bc9f05844b851132afee1b718e7a42ff7cef5c558e32ad8e542f603d612c343cda25d5d16aa1646e197a68b3c3d8234a347eb8126eedcb7fcc5edf0f3ad713c12b73a7f30395d769b0caded5f383f0e564f08874e357c39e510947c0cbc88c9dee58d97b3dbf08df4e06ab081d9d1f545ea7c14476f7b52aec2d4278b35ef6e3f53a3f50799d06afec5d3dbf08df27838b48976f75ec719170fd2d4766ec74c7cadee9f941f872327844ba3aab612f54c6096bd9c7ecf5fd46e73e116c64ba0729614f0ec7e5b314a1d8891d91d967ac1a7b6154385d962abd5170d94f1d64b521e2108018c156dc5cdad3d8bea055824536fb59ef30b3add12d7dd73a94b232584740f1052b6f1e72d9efbe46286b4d804e8187d6e92d58f064777d44ca41b9449983ed29ea5052b5217eee0baf527285c162f41e9095b477be97d76231c2fca9d1e56b6bf4cc57771f46401c46ee0d23920ce3dc0be32b0ae37a4e183defe6c2e4f92da505b6a10946e407c66904c6d70c189761deb1e500c2257f51442548c3a824b68e7ed152965fccefd57943f4457a3033d467592f66e51ee392719b3e907cb18dea2739843ae1df77de7af12b74b2ce0665465c4c99414c27f0bcf69ac4590f13861a5ea1633f5613795b5be04099faa15f7aec59b268cfd173aaa009888038c16c3df52bfe4c5715161c15e1f71668d08f2e6727fbd3a21019a37010bf65550d73a24869f5ab0982bbe317360d8bb5ff180189e106ca0234c68e06889f1edf3b597e228617e316c07449ee0c43d68f052a60f487eaeda9af6294c014bd710caac4df4f4c462e04e6b5743e4eac4545df818ded5e9b927ebd1cc160b0901f7201daff76c5f87c94f3627a5b7b878d2ca7c027deff4155fbae727da827db64cf2992d9b10bf47ecca23801ea607b4ace41f1c09ac31dea535581680f8dfcde88bc31976e73403e77cb4e15cf6a4d9e2355c7e7b306e065b41747804f08ddd3f63f76a18b1d4caa7b2411e046bf145bf4eab2d7ab64a11ed864f2aacb90ab719625af54796e8a0dc600d3ed12d9553835403444b39f3e68eac4e71e04fe3e0dd052b4fed5ee65aa28daaca9eb9a871999a4c7344f0ec332bc59447240bcc193252a07220d7d4ed2253d86fd05779e89570afba0e9657dba7d5eef0059b5b6e0654ce09423488e2e3c5ccc6abd75babd4c8888a9625e9e00dde99a7a99cdf4cfadf2c717ccb2d7a5c51f6201edc95ff25d206c6b5748812f59c3e48ff38ad2a1668f009dc1389561b40cb0c29e59a6605170ea4a9d2e740a2bd9623b3a17f20a612b756bebb04a3002d3507b9c39ad5a59ecd8de7ddbc516d2d72eb946b9e7b6701ef52e74fa44c05dc2e5a19e022e8fd0b122eaba0eef9f81d0c99dddf463d771a26ec1aaa6a3a773e0141e62eb7438822c2c86d7d23c66f3f37c010bb56adc0b1716583c890af517f05118204a1950871a385ba37bdea070e38065939edfd50d96616c4d437aa66177384013e522c9e40123cde09a385d5513f2a277f68e8f0967c62825f6e2a3c8a0f509d416b3dfa0c35091ff220146b76099f582b1b5d302f43d5be1f8ca11a007caafd5f3df9a8959b3367a98f8593d4055f6aa0df43c43f10b20abc1afac4250c4bc3702474fa29f950755655cda869e4744b1981f2b4d64d61ef78e39509eb88d08a6bd82a0e295fa24810bf6622384995bf32d146ee4b7c7b227853bd670ac4c4374d262f746ae195dd7aa198c857e3c9268e241deff9e1fddd416341ef6460f659c0fd9923f02f1b2a76a31c93e05d1cd4851e8d03ee43cf70f6131b5d2b81489bd27e1447db5b0d02d198bfcb76662d6ac551a065de04ae94eeae9ade7a95bbe601d3b9bebca2f612f492496f967cd04d71ac2b82554e8119bdc99d7d1241a6b008d080b86f60753c61d422ca9b1d137e7a560162c4330a3caddd10be1cbbebe5576ab603ab720ca0e6236d79b40eb37855fc2e950e3c4df7d22602d4c4e0c91a6646b879bcd799076c1456b43e16375feb236d156dc0116e63e2b0e54cbbcb4d11a0f48de3456b530fba69cbaf99e656fe5fb28a547c72f34de075e3ba603ab77e9ae7daece3cd7d9c97c49804e5ce0be0f6006e92730bf0f4da9f735eb7ecff08db6539c0df0cb26f288419a6ddd59452c67846edd2b10691d72b5188e961faf09beb1443e56075733463d9b5b4ef00051acf0db8a135a11271cd1ae70a428cdccdd774db75cd660b779605d831f40cefc6abb7dd78326b9e586a921df3053e5061a8f24ff55ab9bfc16d47b968f2c032b4e3c2b598e7cac3d3381b2068d2d16cfc5daff60e956fcf6bd716cb8b57c56c95f6b4f60b537bfdb5000a1b60cc1b5f260aaaa7af5095abc0170c7d8be86741958df145d1ed147b1adca79d807e9c15876ca02384db0c6c8ebc75ca28ca4d820ba86791c9bd2587f5e111e4c57dc608f648b1d25d8455bf6cf4f2c9907b039713b78bf2cbcb14f954dbc0d9dc6614d93d946d00698c56b9f51e7825b56b4977d87c10522a43f68b9e42ef9679b4efb23c3fa26be5917d03d5c48f27a6469e6992d3c3f3e2e3a4b5901fbab1cf870cadca233197cf8b8b1582211aa741b4c10387e89d423309e36d4237dd97ff25f89d7ae370d8142e91d2ecd834bc183239ef740afeecd6024b75552c473b03f745253c05ec2cecec9bb750436f69d93ab368bc1f724b128534a2c883dfa516cfd4b4fab2917ed06ab6a13c21a0aab4ba7eaa517374051a21525b91535a41c318885593ee51a17580e66859554b673da8ff34dc89e2484a5c4a2b0171692be5f5d204a0f2fed0cabb78f78c06e15ee7df9560e0fa5cf8a70219ea6c4b675d36aeecc5a40cf02526e747f7e51845d096a5a1f7f134e264c10fd0b8bacbc079c7fbfcb03c2eb0dd4685bdf7003555f8420f4586c5ad0220ea93b175954411749f11884b6627e8f19c57ead6ac607053d24bd8e8099a184618b88b737ccf43d901e42cae0fdffe2d46b998e7ea94e7ae144cd366a96ac02f60290d699bbb7e9d158cf9c4198ab5007b56bb63ab3a6af232d5bade6a8bc7b65135edb14296b9c4b79ce21e172dab3b1976a4404317eb77e52bc0438c6084a4a83146200957e76f3576ff92927a30e55ce092e1e6251dfd40d561d53815c0978d4c2274da4d04ff33fa430ad11533c0964a5c9e9d980028139e4b4950add940ee68d23c0ce76283973dfeaf0091ddafbf227ebd32094565b1b44061ef65b4ca9c45576b5bc9bba8c2e6100b35c0792d0ef203e34a7a308654be09a0cef50a4054c347ad0f50df5e75317eefe4bbce0d4a9e56e8aef11b595e281ddc71133804d1dc1d6c0f00a4742585dad1d71cca0274e2b178c094bbb111471e797040c21b42d97057186a2290928bfc584690743b45f27d601a964815f8348125a31efd5b425890e263b2193ba3ea9580c7fed787cb22212688ed95fd632b35bda28ca245110dbbfd164e0463708ac201fd41a032255383e1c3519c055783b1247b3cf50772868d7858302848bb6da5a4bc45d6b01e3d73a647e8a469a27f989e526c50b0a2f36c0e8d028c4b8cb7a89e1521cb35f95453b8768584dba78caef9046809411763f24c1809f20543c1a14097d7f4306255fcc37c894730f85c6c7807edb081448f139ebad37887586406cf449fb3ffddb3e465faf904e29dc031b04e4c63150e905cb9c3ca94d69d7672af8caf25e02d1ab1922d91ff1fb3122fb1f7da2c055a60007361191a3c87bcee9a547b78edccf137851fcde433c5d004c0744875c1303d86fe9d79de72f053b618218f2a4973eb3d1a1144629b7f006bce84048d2c2fe4f9fa1bcd9af3cb041e0036d24aae78757d14de71d225cac69e541e4d0ffaab25ea04474fc7cc6d43a21283c8d53a19c724af0b998446a0e861db63f95f9472576b8132376bb6d3298f46f5a67a97f33ab0dbf36bfcb6523e2ca441ff45a8d846d0775494b23b83830cfcac4ad8bbe18b9c98021b4fb2f42c6f7b14eb367a7ff6aa2bb8984a7062323f1e606d62b333e65e4cf83bb9ab27f804eaab939f8c1831f70d8c1b64f5b8e075d1d49fa9c8b5508a3f7adbc1111dcd61a7280c7af1e7a80f7a29b540c741e92574e5357690a53e0755a0095e4327b38d311fa2ee95495b4dcdf2f7e774088a7509febcd5de8bde1fa98b084fa11e941dacb147d71e7e86b667abe4725689d25ed6b6cb4a64cb3d137815d9b61040aaf0411e57cef804a2f0e7e298120c8c23e87a2c3bbb957962caa09513a7d4d1f4ba2b94e8d6c41ca4d139aa774f8353d07b1c225c8e60f7cbe87b55c5645fbec1e4bd33149900e328ee783dd82a3a244278e003495cdbe7a0322813170dba23407bb8d901b5d391a70388f67de09d01afba8de62969ae600833e2bc2bc9c9c5af2e3691f537659fd00a0856c382a6af33f05425f8aeec350f466700f241ec550abb0627585a216588a70461d568594f29a67902dc0249a9a836ef20907307978ba94756d0f3f2c30259bc08a0504d700a84d3b6e7316aadaf59785f958048eed585cfb94c00523cf54ca1c85d4f95f8608b099b36aa56514aac15033b33362aaf258972bc7909df804a09abbc6a3dbba7b71e5c741bb8acda056615927a81a12a5bb44b0c38aa5db1dc83d253a720d69f90daa27903ac6adde9381b9513e51c845785c618365571b2ba64b1944a520df7b37d073e1f48f416f2e41c5faa1768c8494823403bee8961bd5d6707becebfb7d9ebdec2f1bc24e323bc1b274d305cc186859d4538683b01f08a9d20b795add74a395d739a0f12065122c83fbbd4c63842d241db525d4cf8f9ab831abd62900e376f02c5cff334d0dd0c06da9f08529413a1eccbc27c6ca5265004e886b19bf599a2919a385ab3401c0447595cfd47296ea7399938ae61b4cc1ebcd5ce945c6de8f3d74c2f8c596bd9cd1f0b2a8b104171c30567eb13ee7a483c9e640b13a92eed35fec4412d5ad16185a6954645c24ee238979b47372dde3fa987d54c87f82cfd671d233171a73b406f927353a9ff9044bd1087a141eeb3d418c52e68e090239730bc9ebbd416e58d893367ff4f44588be4b9ec58314fe54bae474ea96ec176e8400f14af52f1e57bac6b680c67fa7a5b17424be0875f706f48351056351c6781ea0eccd869382428718edb24cd6b119dc608d0be4894896441a28ef7276ae815230a383fb36c1df8b3fc13da5e85defd71871c2312e8f88c1fd214f9d35c819dc052bba99238e236965ccb2a709cf7714102ba002cd90d523797981c25374e5d64cc6affb7659eed1e7c40282e04a642aee08dd717de0914431181a536e6eea3e4c25d15ab2250cf442cd99664960159c0dfa6de719cfb3aaa8f9388a73d1a5a95a55892d2fc677ea661004350511cdbf8d3ac6a611922b814a413c108be36ea31387836c252eb68aecddb9d809278e4600ecb3529f537d8e594f35c1569471eab176f3e5883c6440a4439dfdcd81519355c780246101d036a7e6d52279a4e4b30a412562dd8e3a44216eb44ec428f870bf8617ce024a97c2972efa6780e2055ece826431b909aff64529fb173fe5ff1fa1139d57ce926c87a285edd1056f8a5300ca63c3835b16419af7035e08d8d562c0cebf6f6a2051d03119d683e0c5a0acf4b306b6dcaf8ee9729d05f5b1957d038c2af7b6fac080ce4e98100f6b47cbe79aeb3a779a57446118e4ccd69e2ecb0640a58414ab7a1b5b2ae9adba6dafdfd6741480402ed9d80a0dbe9c34490f267ef2d498d7084af1fa00d63166453886bba0df5b26709fbc028205aa087ec2aaf16542addd45d9147de8241bc32896dfd7dcd7d923d8612a61216c9ed428f1b723a68350ba06b804a5f54e071a0ec889f2dd572f8b9f8ab54687287b9d557d3868a41b05af5ee1a30b9847f4afca9c3c646e4d7d645a9d1a6f4b6970db88ae81db823332f75e55562e0266faa87d03236348476fa0e229456ae3410a35f514eee9cd70399f776ad970091bdf1ef92a372e6cb632d8fbbf4e9b2fc4372c999e4e25eeb46acf36124da3294bc4a7e0b4adfe1b24eb8ea19a524cab86b99ee99ecfc989b8a1e4aa939476a0d8674293d8ebdb8177a67abd089d44a8a79b34b32f3a33d1b9fa49be859eb80882fcd62678d44dc5aee708f11069cde845b27c7b65bbf34b28512c286fd964e7e65d89e11b2027512d431ca35eff7999f7cfd3dcc63bb55d995cbdb94c06c23f62acea3735c45a5fb5195f1c2d614dcf54e6fd8a4fae99970dbccff0eb8a9762e551c5589df8aad314348f03afead27dd3e5356611a9912cef86c537f3123f91582328e4d9aaee7f9a7906acd654742277a7f05ca845c862d4109355f71b166f5e4a844d1f010b9309e9f3d7b1f296d1c27cbd0bed54bc9a398cd7e9a6ab0994c1570a22993314e2ee1e87780ab70a1c5e0c53714ca8b94e985d79cea3456af19fa48c39ec3125147b2c87a7e31a63fe25327ea0b2a0b303bc17c4bb4de1021f5a4e795abbb2f1a4f64733cf68686527a76065a3feb6fae9c897c2c09f2b42760e1cf17422f10c5a76f66376a6ac74d2593a09aa4590280c7b483fa6bacef0ce917cf5e32575787a84f8528f2904e21b63619491e36634c9b0575929a285764d263a196125eb0fa996f0d46162fd36cd7db16761281a5ebd6dfdbd8b8dbb5cbb7c847648c7e8369ac7dfca9a3ae63232f8a79ce54c69a98627fa443c4da4e16c5b498b783257c29e7434b93e42feee8f1bc79570ba15e6c6189aab53018585b6415ac8f95b07c7e9a501a3c6cbf7aa1695c4a7aa6c2e264c6df523260a1cf68f0f1402926a6a795c8b5e5bc2f7042d0305310e2d0a4373c3086451b727a5d9b54d4598889fb283fff65fda9b68b44521b195d7cbc1bb84cbfcd1ecc8f4ce21037877deaeaf20eb931dca0cffea454a3ab9869ce6bfd650b43397c4e3afe00bbeae268f0e55cda98eed7cd5986e9e74aae14f800bc0e96fd25a60dc2d6b6b59c7e8af754fae88e6395c5c180a8b8621a12fc953f533d9272bf8e72a13a58cbf039eec4086d2d1edd799f5a68e9d20832332a05f13a27cb000f9b6f5bce3413f7b64867a7c05a6f649fd3dae545455ddb8a66c506f4f585bfdc408dd7c7e6b96c2801b61a31decc9a183930419fa5493ee6fe820d85a996f2835ecd3d5329f5919b5bcfd9eaffb25eebaf7de492c59a228a45b2557b531636fb4f48e59360ec7f7c4aa4c37951fe0438d84573a3f6ccd653f1ae0ce9eb12bdab98e30876d0be46bff6c628167f9030ce54648c64cc4b51c02096ed20a49851aeeb3c680d3d8734435deb18adf3be6bea6edb935a2124fc5160cbb13eeb55e57f64231d8b18bed643fd90474e3e2a4311a86f269022585562fe0717ebba9f6725787d309b5596d2709a6545f50ac599727e2971bd43870759232972c7c49fadf906ee9dd411a3af87365dbb2d1ea39c41682632aa5014fc93acbbd2a8acd97720b860f25c9f09fbd2e2c1c3a28818ef6dd23820effc0326f93b46abdbbc4a5f38e6cc99fefb4f0c0177528aba2ad1815465e2e533f8ebbe4f8b328c45fddcb7ab7fda4827ea83e86b621d5a0e1fcc8cf02b758f1b472c5e35807974b1d7cc9f5de7169f0580d78a4f0c8fb0d8e766f938d7691fb7689bd225a9c824e82a912ba9a5898652ebbc37b90cb79899b30ba6bf90bdd32af65ca241d2885834c693ac8b3cae9a635ed0f74ff3ae29346e1e2cfd65f678e60643dd9ccd4552280c1480df6a755c5b277652389c3bb17dfca2265fa71258ccfe02c91a2363a22884d954b0ab71974cf3f3d958d7cfdc44677f219be61b09c894e0801fd8a5ba3ef585ccdd0bcd780f814c584fff874a21a310f1d1bbabb1325d74e771863c09690c8d40160465ecf98118a327c6b6e8b30fd744a613ed807132a6463f3439bf9e3f47e589e9a42f00a70473323201411b8c30eb3508720e4ca04cbaf08008633f188ae126810250c86cf28c636a5ce342b59e22c7ae4f494733ab03dd67593b8336476d18a6c917ef0dd7263b195a0748f16dd884d69213255317c27ae624ddb465f085b76f2ef71f631f56ca4e99d03de891c8fa6790beaecd089bddfa8b40e34f90bd03f05a5abd694cf25aaecaf75c1682ecb0d1db4ddc66e471c3693155e7279bba33de1a2baddddbe25d3d1f3949ca9c2a987a538d07f8e6dbb51c82f5e133e6b91b1158ede8aea996f5b033e2343e9029387cf0c5d74be48ac3d053ebbc0ae5c6bca90a0675bf5bfb4695544ab37d4e88d45bbe112bfc5c8e887815a2b896575cb50c446abed078d4e52735acaf5aae6522da74a014533465f1bc25d7eb44e5599bd0a37ec4e98f49ce33e8de332fb46198762711486c96fc44fcc3dad45f5e5183ab6fad8bba272f0159e7ab8d240be61fc24b7fbbe93e41b2a54aec57de6e8ed9e4d9c6bbf69e645007afecb06235f5c213e567843f053567ec97d706aa8c4df6054f40d9df8deadf5392a0928e25885eb6adb4e2cf4af1d4de89a219c70e6a33ed1e4b84f8fb4818dcacdcc3106836fa2975fe05892c54aff2b939aef2784a3aa609daa939fc4eea879fa3833a2c2f6d7fab5d2aee506b1cc4bc734b2f84c2a21972f3a5c3b2a9c526eba2036899f22e3d202479a9098b5ba00c3999de146752398d78caeada62bc36e49d0e7956644b23baa8bce82de168736941d94eb15db30f10f82724016b071b16372c1da0c4287004f68e7f457e17fd7a38ef41a327026f48d3a306c0dbc3e9c6c34a0213832619afd5582b48f548ba8b11142e06efbf801f1209c97b3b0e9cc87539eaa3ed938a0ecf9847203e3687165802c83c7656863066266cc4472a9cd06cfd93c82d2d47c5dac04ce6b1683cea98eb310a7261022ac502af7d17a66bbe213f2d1e0a08ae4217e3143906cc471445f761d524b47fc54552943551e3d356c3155af591997bcf3c2aa5d8f0be2b32a6ce825f07e14dd73c4f20b34eee5080da88dca3ec2ad6c517556a204750cd8df39895dd0232bb3bb51aaa1da6bf89c755a8dd34e47cbac8c5ba8169d9b25c60167599692324b835605c5c10cec6b3c07319a7f1e0b80787446333add4dea03c306fb110997a434a0187fbfbb4ca9858c8eb9b4133b8f89a49b9a0d106ab4c3ad3ec6a6ee4353462267b40eb10d6aecfa0e0c9af47d8d49c3a149f5f5ccc05c657dd2e563c76b8323ab327b46d9b802dfd5ac4c3a2f0226bf8769186b8a825325b649c5ea4e035ba1ac889b1759fdeb2d9bed480e4e5a1061759f07ef0e0140b86b60bc0870c646fbf013ddd2c8a37c9e20b5460650c110fc3f9291f6b2bb0704db09f9518570556fc2377242a3470535994102f41fe3d8f7640477f5fa5c119b0c48d30ff1d121bedbd9e75ed32e3fcf646749c9b74666a6a90ae94a5ac0e4bfedc12ceaa0b38e8e2b6e9787b93f19afe70a546a764651b08ff29d4ad9c1537e722a7b5be51b6565695ef9c3b16c822cfff61dc35d5243ae9d5ec9133d9875aa79f92c34f05d652ac4abcd6574f94a4f191493defce835c6d0d6b673808796b084f48ef003273f2dc4b3d328d0fb3b5de085c01d1a32d865fbcdf2394b3da8cd861883e729d29d51ff09a473bddf4e12423f551d435b2117887f767821d0e58bfad88c4f87ff164db2e67cee8c34d96787f36315c3495ffa46a0998bc6d52f7c60db61d8640105e65a34e742734f51b8a2b0805bc171a02bd0e8107ba96eb6d081a3fe19302f2db342df14cb43d628fd27693da4500d501baad387f27a58da2a32b8f10c0df9bdec76386fa600bf084f95e8ff35d11f9055b512126ce68445387a6ced4c99f03a76e3ce1405c55bd2c716af031e4d86e38054c54ec9af3f44300e4e693bf1004d2cd8af2fa45e7d65edbf5ebcf17473cad9b9ba3d8f4c9d3a4ad6845bea3c1c822a015725fef4dc58e6fe0286a73db9d4dc49558d3ec5097b7e49a8bde33b414d72558a28dda46a6c3d3dbd31d042f737b23ad1d60ae54cb95914b4c657670a5e6cb25989a52a41dec978d9bf4d0ac17be1b9f789ee8f84d2dd3effb6f9bb6dfcdbb6d494ed627d1ed2788fd7ecfa5dadeaf7c47dec460a50354f836570916735ccac08b7ff197963002fb0e3fe6a33326589b17abc28bc0e24e2341a600f4f32597e9d53d7bc33fcaf49c9ac8eab0e6aaaab703a078a85563d41c1f57160c722c21e9b5540af2424b836aa6ac1e805f75243e2f9fa4326af4063f04be178c9e3fb0ac1c08fd773551e2fdb0691d4600def252aa9044b6d66a5de95ebdd83f1d25290e3c82d2a5aed89918be3cde7548becaf729197c8bda0587e9516e47ba319965b8d75d3242db88aba6abfd72ca5718ce01ea52a781dcc7b1c1335f72d0e17c5a0e105e041175166115ecd801281cba7021902835724a6b200964b97971a4c5a4572ff85e665e87cedde753aa37d460f787fa3978f36e763b98c06d10cdaf102f567f08e6aa02fa9fb7fc41a47cdeae1fa78cce5f5453d57a22330131afe84de9cabd5236147ff4c181f4faa6692377348ac46c2f9dfdc8c919d3b11a43efa60850066cf8084157f3427ecfeb3b1c8cb13b3e526beec11a2670e9761b2ba10bdec6529bfabfd8d335d6312eab6c8bd94c565704e7cc7727120f899955ac066bf8d32b5ac573528f92aa463611af9a816abbafd7deba2dc178c42044ffbf73738c28c48fb4f0571e200727b4a0db2e9fe07e41802fa7582bd35bd99a2e9ff218506e2c94ab01f12097352a5d1a573cc552ea6ade041d83e27c474ab993b1b3408bfba160d06810197a8a7710e7ec238904399e916131129711082cbbfe4fd800cf28363613d0b33f8453d44b78bbc287de383673a8408078d9d477599cb050a7817088d170aab5b8816c0a61a56f27940e83520aa0d3bbc8512484256eb9453ed1d650d6a09f4811858ed6e8b477a4e6b39dde18ca2342b3aebf86aed979340498f2af002e6b4d85c17bbe0395f73e3c5e3e6d482bc07cad004203d9392a0b12c6aa5162244a94a2aace447c1f09fec81b0bd496700951f977068365c4cdcb3eb74c80fcab44aa30f45e0260a8fc3db9811bb23b0f1cbc040421a2ce28c3de4016356625e864b77efa761bac4846c6b7c74e2e97e9ff89a7f19a61d142ff0ea4a86f4f6814ffaeca33ebc9ffbce30a5878d006291d730c4ba079a33c5b968bc7b718eac9087996098e75c184b5018cac845bdf01b58c8b7c1a3ab00ab42ccd4022fad902f73047cd94d7c3ff27d93b791f444a958bfeb9a54e320acec100b1ea1b767ff8b859b9aac33e741c0b6af14b4f9f98ecde5ee8a55078431c7cea61ab7ade8c355306abac2b514d235918819946c1ac625123f6a2ba5b4f04a7d0621d25d953fde645c623653f43a04dd89de1dc84a200da3ae6c6b7238404a32c2c0e4cfbaf9718eeac4596fdb611f345d43b619446232f19f472de71e2ff220956c83a536e752161c18a80d2807cac0c6c23b8b82903f852d2f81a148bce8d3f69f86bbc2fef3a057db7342a6be647cae5d63b5b2fbeb8e1f0f05aead63c9d612b79b44acd4a1fe22aaae338fe1c219a7fa32cce0be0d1081da215555b11f4875483cbd0fb9f2186ec7b1323970a5824c63ca7b406e28f597f1c4e85dbcc3b6c5e024971f87c7e117723583f9bd86004941aa21a53bb3f13a75a01673f247970f0e14b924b318b291a20a762c147cb567a04191ff30c09146e1bc89ec7e46e40ea3c6ad63bd0ee1adc2f8efc91b7cdf06d0537dfefb86a515a7a676b1c3af107ebd9697084a504cb0d98343f596e23ad739de530f92a716e544c85f2aa01e226d4e15f359451d7baf5e5197950d242766c610bc0010a94e4ca5620ccc3d4df386392352064c68182b71b6984733a7402a8b2e15b2d488f416928201a141165e4c20419f52d26fb5ab386bb6413ed47bb3fc1f61c5623a5edc139ac1cdc0686ef2195cc2522413a4420700d81fd1486c5c97810b0279b761de14dc35742c11a5d29693665a7350dc98d00d7c3cc325a3d10ea385f4288359e541db4f08553c87f65d37c355d8ce38c9c806f7c8903cdba6ec426e2ad26084908290df2002b574605c10018a9d31f47912133d1b333d323cfd0af3f06c0bc60ddf39b20feadca4f7e4dfa32d2208e92b79b5d2fdcb1f2de7259159eb0f8cd758249fed36181e1b40797b0a2087b3c46c44550cc521c8b82534740be884d229e88ff9540df848556fce11c731d4651ce85f1036f5bba3fb17bbc396d00727e5cd2675e51dba6044d3db02ba554ceac99fd63139de61ffe501b9eb6501a0649eb49e3c83d73bc6bf2a8e712e6bb47804e69714f93bdcf4bb2727f1d15eea9968b58c977d37ee25a89eef96a34ada4304a72ab14fd40b117e42829083957b151c69c2e240ab90fce6958afd595c0cfbb15fd79db993b38fcc1c304b475adf1322866fda3283f3e47a2f589270478a4fea0d881b36106318735738eebc26f10a7aaff0dfa6d51ee25db3149cbf09216801ebba21de80c530240ae1d1d0f9a9adc8113ad50b06e181aa1cf699f0e4cdd035f5c5cb309d48b48893f1c15cbc20be701cc8e93d6edc16e4d21a160f64870d48859b5b000f5ea9363f692a00ceb677757579a6f825b0367fa005ee9b742056f46028954d56209d2b7a80e95c3c842f122135e502ecc75e54beef5ba524f19f8bfdcaaa70b7a431c60fac0ea183c3baa6464982cb8b988750a4f950f456efb367842826c3ba8677548a9457af2739307119d2fdd011f145c786673ae8a1f315dc7ee21f87d71118a9312d07ddc40813383293566e27d524ad5dd8d8e5bd36e9bd002644f9e0a1dc235e5bcad06090fd491cfa43477f0c5f27561b8d08fab49725866cea4268ee969fb5634eaae762c9e30012307ebe625153f32c908b827924822e5de8bbc0c0fd66e07afc4003baa74b724690197c4f4f378d8ae1674f33a873abcaf2a97829b7ef86f8b1ac43649d330865c9271db4c6c6f6adef84aeea3313475714ad021a80961c78bcd5ef047b85cdfb761e7937ee11862bcb1e053bb6a24fe0cae27078054e2877b523f895a10b599ea058b7926465cbbe53f5722283b308bb31b0d4fc22334e42d23a869c43533810c89b5f8a6962d44a1ecc7b3ca5cc5f93949dcf78c1919a9e70b2715cfb7b81891a4d359f118b47afb9e454dd432b4cf7d0e289eea195153fc1730b9b5ef89615b997f33289126fe9e6612dbd1d5431c70506f32398856df30e0b2fb39b4eaca965b2db8790416890ffc675074edf2adfe108d1cdc3b3fca34836ceddd840fb5c5d68abf02c6bbd906ace8569ffe0934c810966f9d7a8df876cd3531987822f9930d4006a9664d3651dc8fa0656cbf2181df23a73cb8ac07160bd6fb1b5ebb5e3200be69e6f945bdebb1304d6100812623cfc9a5f63b7fd77ade4c0daa699bd19449022387b5ddbe7fba8108b0df02454826648dd21cc60ac576f74bedb31b4133e2750f044b03070551ff2aefed6a4932b40fa0dc54b6129a8a5efaaac2de3f4224012d9e9001e2370f5061ddd48df5d35bc7e5a23d23065f566ab08c76d78ecfbbcb2c7a4aec5e9c64d04c5b65b9b7b5bc7d7ed25899006fd1e35fc09009b373db7c1add3309af695af4043885d4d619a7f2d705a01c30f756ffeb98a20c8adc23ddbe6548c0265e37e8ab7139e4ff7089b69e7f4763ce259db57fe1f7b7be3ec02d2062ca724c562b4a9a93646e95e84ce3470d0765fdf6ec8797be64aaf7a10708221295434a54404fdf6ff9ddb30cf69d4137b01d8d1925c684f88f3529bfe2cd81f54080095186941ae653e74394664373b9168b331714fed135fd27f4a4011e416c74e437acf70461140fd11b46305de4b84070d53205c154d73d97061298338c3955571a419aeac8a8387d8b0f8e00c499ce1c27264cd3bd5916764f5812a0054804807b8e463296df32d73d9c45feb243db301c0221b9052c7ebe3dbefb5bf1b69dd444448c80e2c0d8f0c050d351a05f37011778110c22215f67bef3dd8f71333f7909454b8788316424a2ebec3576fda2dffaa9b817423d12b0f33fa7a6196de49e5fccb7a08c0c74b55512aea51f024ae182fd31e02c8fd4ace3b4f6f755f2b7a379c00fad74d7102e857d52d5ccd54f2f46ea4fca21348241289448a558cf155355bb4a452a9140c8a5061733fc4855993033980a6b023879a542a55851532f7b5138c41d2c8a8c209ba6099c8940d3e5c7852934aa5aca8c172df2387984aa55231c822b369431127a9546a05459650731fabc21fe0a0934aa56cb08329d49a27b953a954aa065ab8a62085224e52a9140b58be6051a10665d049a5522e1003cdfd4a068d934aa56c7031d1729f66d136a9540a0675c8dd9f4b80508724a954ea063be00328f725145e4d2a957a412a95031570f1924aa55cf0540a06d00a3c30c353a9140d8b0ebaaa20e9ce6ff1d5122db2c87dac7750d5a4524726ee49ca126330b02e6f31bf2988a10f19d62c213796840c5246c52456c4505d570e47fd24a9f175cb770f20e36cf018431786c82fc608f10e13d823f34020cac19c1c20409c171108746dfa733f1a4984392de71cae2accb9cc870359c58839267dd7a7172386b71705cc421c4e6e13549ceb9112c8fdbc421afb79541293c45be5ecaf29a443fe1c36813a5109f686f3736804d23479af87513617f9f3be79bf1e657cb2e3c4ba9cf0f38764a7fa8434f6bd52ecdd8fe73b3a7a3e07d227cf3f9fcf3d0fc9839ebb1c0b4804629edf3097c9e8e4cde96c90e66e6d53a333ef8ac43252c00931c4d9f976ae9c0bcc9ea70df5bd0bb3b044fa2d519d4b75ce391723847ca8cf89752258ca79b3f239b110ab4eed4272c9f1a50885ea5c581ae608118bcb2d44d568d3ab30c5304f9ac1c61f65389029736c9652ca476047eba1d65802eb6c3829ba54925ac03a7948e710d4faec43d54f4c4959458e324736d4faec7bbfe788f4fb40d3db0434c1f7094897e0a77338e08f36c1376185ed6fa492bb0b49ca99c9f47b0fd68055652d09556a132c391b32b0fd0d93a7f817637c2f937f59bcbcb442cca54f7d52bf9888a277a9ecee044459b874bd98889f0bde0d781be38bf1c5d8dd8f994cc75286d5d20b4b524017bc1893bb81850c91d829391bf09008962663524559cac13e52e97a533b4fff639e569f24eb135b0751f413bb1ff5b3e20a9ae075a16853ff9d12f262cdac334f8b544d27c6aa2ed5c4863ba872c5a34fdf1d8e99633ccef879973541c5ca63bce6bc15d181a45ce540481f7d473b881201117ec4f8e82258c12bf62a32065eb178458417a0f294ff50c129ff31fae5e5f382c9cb91721403611f0da4f154241210688af7e4647b071bfa8e1e5df47828208af40851ec37983f248bb7071261e76cd4e80a3a682a750974b7e738e478149753cadb372cbfde2c395c294eaec831e5ef0ad2e343a9344dce7bf73169537cca7d4d9ce4689dd82b8a1997e9e753ee522ed6a6d7a6272acd0af497f3f877d444f68322fae8c63641cd7eb6a7647b369bc5aca84befee51a04f7144a2795cc43f58d24707128146a53c94cab9e852bcca7d386d8a377eb0b14befc68a46a5d08c1e512efaa84546ba14e3cb41b9db4392a36cb2e3c5a34394d8e5f724fdd6b8c2d05557d53e58d123cae39fce23f5a71f450ffacd76299ea54bf1d8b3a35cf4cdca8d59a03b88d26e15454fa74bf1e590c16ed6551245cc9f1ccfdd30272880679c903eb9962b7d975decba2e2fd6998c7536a275365ee7cc642a29ad977272bb1cda330f56deca81b72a195fec183df2d58d995ed75b949fd2d2c808448db9abca5af8e00b8cb3305b7431c360dd7b3c6abff65dc0021ac26c26c21863742c1ed75dc42f221d6293f8456c129d442796655531beac077c842fc94b42071818887210c2d24ba9ffeee4bdf7056631a50f49cfc708238c30c20850d42e2c6336539fbdba1c9fe8123c05ba042fe4ae4b56555555e6f9580d14ca960069d1be7fb62322185b7492e5296c29b35bc52e2c169dc4f8c5cb4da49beb9d8bd572a858eb2b8743084cfc227ef16e48479a151119d62fde8d17bf70e2b487656149db79b797b779d1e3dda2c532b5de1f29f136e4ba5e391ca05fd6c2db93f5319b91f7bc769344a2cb32aa5837a5df01b5ba24bfd34f3d855d6b7b2ed6255885c166b86daaca663a4291d8b1634ea89794899aab7cf57cac060a8950309a21a05fbdc7a7459652463a08ea0b0b95ca18efa169ded93cbd60e5dd0fa00484f1883cad47239cebeb3a5841537c75611caafa7c09a22a2c6ad33c9ed3621cc884ba81973de09e5d911dae9c8d5c3b63a2f316825cc9d48875d6a3ca554228a584b2e173504218adcd9edc78bb4026d2ef354d7e773996c06e36df5784c660ab724b01ef9a0610d5b94c1f169c94524afb9fbc04667a58b1648735d62fba483d5897e4adb32c4d255b525213d8f8470351454878392fb34b49830a5d56d655ef5a07e8d8330c6483c9f2a54a1a2ea294a5744d308b943f8012770927afa64b12c279a7e425e9927c496a962481ae9d8b9c44aca65da8f3ce65fb192cbd3bbd9b19e85fae5254064b65bdac5864557f4b6a8ca119b132d5d54f7ca87a57b112d0141fb185e56025cb8659f0eaebaac0852ee4ebaa24615944e8d78651ca381bb38b9b2ee80e16baa8c98d8774967136e26b655d15eb2bf243beb287338c8b1c3dcee33980b3115f2126af145d8a87778a977a54b429de9281b052bc54e3ed559163fc134a44ab5673471c82ed6cfd7afc8da4ed8744b0f09bcbce467cfceb8c3757861c1d1872dc9c1672fc66edb0b01986857f07106139beb31d7190538978b923caae54b0a9c9f3d52db15628b1da4d9ed76e204afbbc860351f6f35a0e44c54f21f2bcd64473a2ddc1e1c02ebf693eb0dbcdc9f337e7eadc350841e37094f274f4b91d6c2ab197920a834aac0f2c3dbde5beb1dc0c91596eb6142579dedd20728a9294544cd96d9493ca330aa39c3c4f04113bd5ddcc1a206f3fb306c46b98087b6ba4a4404b609fc5a991b13824b09badc1d9ac4d626b200a89c3917dde06c1e1c06e6bac8dc98a36cd2bf2cc3c1fab814222a8c4c203207b3e560385442832522546fad403c8288bd3a6f99c3cad6f35aec8d35674ca083ba7bcefcbddd7402111ca2845009a65812c2b645922cb42b1ac9165a55816c9b28878522305519d04113b44ecd43052a3265ec1461fd8218a1051e370b8c06f4234d9c0cbf5f1baf56cc65e617360459f2c237dba2c187690e72189e57ad79415d996575ba999ba261579be6791a982c9822b499ec7c9f3edb9f50d54ce46db32b8989494c5b15df4c9f3799be3707c524a70863c5faae1f9e75dbaf589a989a981164602c7f38fe5f9a4a4524af0b2e5eacd191ef23c96873c2fbccdd4ab5e43cf8926cf9f6870dc381c34f2fcc9c8e98a53cd05618510833083d003e107420ba106a156230031353135998827b508bd88d8b935525d9a313595a6ec46c40e113b2fa64900dfcfdb4b923c5f4528a314924a8c950dbc3062821053d327f8f9182c6290381c55cc10a012fb9cccd71a33703116e7dd9870ab51835c8326cf1a56e4f98a725da3eb4ab92ed275a95c578ceb5a61f101113b10f53e5fa38a3e5979fe2589c361caf3355235a8c873ab5124cfd71910b64078082f8418421a10ba4018047cc5b218067b9823fa1b8cdc99ef5b048e7d41e270c0cfbfec381cd6e78f108f90372276f27c7f94381bf3d20b76274f29ba34ad97caf316e79120cfcf670230e42991e4f99d26ee90a7fb95c9582f5b47eca17036e68413c2e99ce4f9251c8eeaee13010e3b9b1a0084519dcbf6fc622c2a5827355a5222bffa66e576b4931a39be94490e879d537661fb3be093b1317ede21b2659197837888504a7a19296dd9a4dcb8d4257937b7244a89034d509dcbe6a2b5736600066fd5a9f5ee392d9735de94c87d186b42082184eff3d1b710983c4bf074d2178f509d4b9c119246958e94d8bd1b12ab2a0c13bfd95730153e529dde075c20ce06049e09bec2524818c78657c40b25b274384d4028e21005147dca34012f1050bc7a979aa830c4a1b99440a8840b2595cb642a1c67c3bae912b4b8d8dc0dce8b29526ba5b1bebe478bd058034df0d62bdc49704ddf527737bd96bb7137b04b4ae0e0e0c80136a99c8d4de662880c9bcc26a61ca70d0a9e3a3a38d98bebf5badbc3717d6531de19b9428c62d6b57265b3246f01772a24b1ca2256496285a4c2e2a257655df3a29e7ebc9f6c31502b993a4b688d75e916d44607a2e8122e9a641831551286554249d70caf84159a16b1b151a2243e2f9a64a8648b880449d39af762bfd8fd30c5a20463bfd8340baa45cd755d530c4d776011d87407a2da499be077526dbdba175b8553a3937492d8969225ba04ff5ec4a174a0748861592b96c56259322c6b8665b558d62deb5a16be7136de92f9bc786e473f9be9c4493ffca44b905231c1e8d2dcc1916cb017de1e17d05a1209c608213412af8858442be04ec490090e0ec48931468aab9a67d35746ee22c3575dbca6dfb6ead697e813ac6a8a74e98a4ed234eed4c4587d1b65e73e1f2a2289454a998b6eecde0d5a139140d474f2b688c47242c1b81b963777f39ecb690ce528982a8126f86fb6c88bb1b07b3724ae6abaf4036703fedd0a08af5a4286b77055840cb3ca08dd813bb97128187ddade29181d99044929f02e2ef10e6f2f32f0560ae22d783b8637123e096ff6a31c1aff0cbc5518bb36cd1002db18c43b62d7261907c54fcaab9bf2da0d618c52ce4969555991cdbc3c229247aef2a4dc41d309a040024dd17ac115bf884e34fa2ccc843112331e2f8f0eb3199947d7ef23032ee04ca67899cdc03c9ab9802bc5370f5c297e8e5ee9e889ae7136e2abacaa5cdd2abb2296529aab4bf39b73e6aea4941946cc8a31e67841087375619613abdd9dabdb79663c46d8685e745fae3eade852fc28a5e2d14680f44934c4e556652937d2697c2b65393fc48d6d9aa771e7f19d13ab6eca81f4c9b2b208c74f9a3ea53ca2845642219550e8f57dde96f74df438c8e2608cbe69796cb9a7e5282d6769f94acb63b45c25e51981c92d3c486fc929d7aecbd9953d7dc372635c95bbbde4ad6f424db369796b9a4deb53cbafc7964712de84c0c416d897b1b7603a79c69f5dc15e55cfaa47e532ce82720bc23b95807fa9f4f2127a0ade94c85bca85c0e4d06190d05d863d44a15028147a4086df1e9053422117fcc3890cefa029140a8970ca4340320c85429b12197e5322a7e8a060979fa243c88137e79c73f4d047b7c7ed4c84d50cf4404b0e7dd3728feeca0282b8cb7f04811d34b9e01f58cc78c8e9acb311ba3c5e18a143518b8acafc0c95cf5051411102b385b01098ac825d973c9f286f619128380e81126f32705c9998948018273d06894422c5207d85b442c22a09d7afd4acaeacac1cbebb05da31e80faff4c03e8f65d92b0d7b95bdc25e55cf422118252a0acbe8152506e97864c9a81e1416bcfd5884b712047dde4d084c48c35e3dbba66dd9b5570d66323025f4ce6815763e843798ecf429d7681516f40d2683b49b92828364c74042607286abb77c076cdbf2cfdd94c82d8f99ccca0c180c6bc11ea530f473ce395b5e5b280b2c86d11574a630995e22b96920aa6fda14bbfba6696e685a482da216dcd2d2d2d2f2ce645afa660576eb1b2760dc7081d3450e131d2f9ad0a14f176fa2dcf2f78cd0d0ccc30c29d0a739e7ac0e13dd4745bd2b0f5d957b21b1108410ce29b0cc7ac42c9a532412fd25a987159fc665e833e531313c60738cd067c5338443585e086d9e13a08de8b6e0ede596cfbbb2f2fa56b2b222b3b272ebcca2bf2982436cf5dc90bce78654f07827fa749a6d0364b6cc4ca6e5533c27767a40e620f310bf548cb1aaaaecb9d59c94d2ecb994523ae7cc9e3babaa925266cf959665c518b3e7c6ebba2084d97361adb5bbb3e736a4b129c7523cf029a147a04b72c6096723be81f4490af1d15da35c8e72d7a820bed93c12e2c636c14bd726970b2906a272ad0c49342ebed2dd908f514357521ea2cb3b0abdbee5bad0bdf2e82c7723e5118e225e99fe7afc4b51d12751ad1505f665ebd44a21a1c9aa76eda128e312e52b2c9ff1fa20a1a73cf4f91abaf2f3421fa3a7fc6e4e64f95155b9d08ae829785b9949f9c45b2874979dc855f528ed39a194314609e1ec7ea43f9594932840bae8a1fb72e8be4c8a81452a787322a7bc30b2e81feb521e73e20490f8087891237cad2feb41fa147d86665e187924a55c11611e2f8c3cc21b786154d5a3b4e78452c6182584b35b8aaef25a8d54443776297497cd883e725d0a7dc443f4d145b87236421fbd30f20e18baf2a4bb894e2fb32558947899e5f250660a7839a4809772b7d04758336243f8d9250ec2f2110e825d0e91213c446616ecbad4225fad4bec9e4bbccdc07108cc1230f1ca5d960094af7c0479657e45de95d061cacae57ce810056f22c82bf7bcca12d079e53201f32128720ade3c1f02f3cab70865ac6019f7c8b8bc32f0360466e9398459822494a04b8a02bbe2e36594bf8cf289fff04a0f6be2edcaa1d035946b0f5db3ae690f1ddecd893ca78805aea8880e8424c2a3faa9fdf3141494bfcc87754dc35be828285be828af28776b98cdc0daa3cf9bf29e4fd901e1bcfde80609bd121da58aee32263a8b7090d0ad8987c81cc21ae8da2c3f7773c29359d75f66fdba8d83fbe6c2bb3dc3585596146f729458eb4cfa860abbb99c1b98ab4b240381a8a6a9a485a4f9482310687aa9ec0490198b0abbb5923e6df14dd3276985912b6ab0e81392ce6265de652d7e9ce63c108703939f535e988585a9199d019a1a8bd8aa7294be395b4a1863845076e7ade2f1a1452291f75a0542f0c2d27f3c1e293fa24b794f96cdb8d3c73e4de9daa64f998c9ccf642276f77aad125bd1c9d3e864fc0e18efd65c583708f61164193dee56bcb5c47930cb490bfb473a8cb96f436290ead8a56c27540eaf60a787f20e6f3d1cb5e2e92f2c9bb1773563823a19a9b58e5e116fcf92d29d56eeca9931e79cc3f4f26ed63dba6f22c82ecbe6226ff0433a88f5116427ab5f2a3718ad4b0f3dc4433abb5fba5b8f32c6a344b7eee4dd9c73ee98254fb319f7eb4f62f88ff67741ef1bbae7d6c718b147eb980f792b46bc529d1e5ecd08158265eca0eba0c9a3ddd8a60c6f42b0ed6931431fc4c2d861c60496298dc7ae2b65aeb60fc45c7d1b12618565ebd5ebc322bc849574f24f0bf9eae5e869d115aedaaf15c3bb61437275ebd66a55ab5ad5aa56b5aa55ad0a2dcbaad6557d475fd7b2b04c31bcdbdb025e12a91e8c82bcbc1168b211d961a10839f6f38ac963d7755dd775e1f73c593683f2f8f89a3ceb346ee817caf19d7f02a25eeeff192c3148a3f76d91b1a292f25a2b4a29ad6e90ea4494563007a95e9910fd8b17432f1f8d8bf0d6b99e06de3a8f1ee9c5782cefbdf770ad5e2b1f784554b95cbb831e7b07b3d23fa68312d0e3fafb7b933ecd881dd2f9d55bdf50322c6302cbd7e53ce826bcbd94f0561a4208bc9182b8cbbbf5f950cd66e48354bcbd8c092ccbbf9ceb7d1d74fd733db3d73d17d6e4fbb42c5953c92cba2ecf2c7aef3dbc452253c8cb92f149deac0fe920281f417e31eb0133bd2cbc59dbdbd1316362eb8c72fc2d3ac9d6bc45a5b46e6083bca35c5e3752044d8d2232c5b2f304a471945f37be8c099477bdca6650fe1d90c60d1d5fd151aecba0bbbd5c7b3d4700706393272edeaae3adb233f06659f0467ae9e52587fe526baddacb5f3e55adb5d6aa799e7d83c919de84c06409a8f7687825bba806bee49450725e8de7d74557336285c0640bfa75eca19bcdd80701e1cdfee5685da446a75c76726bd734cfaf5bbc718048f6fc836187990c5665ce66ceb60fe4ba15e1725d04210e528f0981c9990fac1e663d64aef7dc98b3fbae03e0f56145bc864b4c25e15e7e1735aa7a6c62659728df07806b2dacea52bfb6cfc9cbe952df7e6161c3525fc9d673d228fb3679771913558adcaf3ae912910ce15dec520cea169de48ff6aa618f8672d04f205ac1f6a0ff10e1107cec68e52b94d5cc642e4dd3362ddbc3d3aa9af1bc6cb3aa55396a34476de6a8c91cb598a30673d43a474dd3ac476a1eec9c8dbefbbcd8334f6ecc7d07ac9787ccf4d7b54eb10dddb869790491c8a72513abc6be6f6532f4ef8270ce3927adeecb4ea0b26dc246e7c546cad8032275dee3e76d024897e25f11f5bd26ba1437c7c407cc0e1f117d47cbfba34b6d82c12f5d9a51b09bcd714e29a594eef3c239e1dda39c16422b71135d02d246c41f5d8a8766880ea7be891f40e6adf784389c5c1f85cc42c460240fe95c1dfe889722601c8eebee9bb359e2aabc1b4cc6ecb71af9bd80e4f484421e2941337bf6d65ef9ec3be014026359cf7af26e32894cf2879d8fd481a814dc0434553b7db268fee04e960c9c4563c9c09d408f6f02a240b13fadd90b3f8548eb9257e6e345610a51e8cf47eabc8d9407174f95932efd3deb6ed140540aae76ac22551edcc96201ca957070a678d1957670a668d14053913e491d8b05ee24dbe04af131cb36380907779a833b5d7b4dfb6857668b26da1b9bc40bb3d479f9ddce52e73dde97251c1cca0e363b691d2f877304d8509c3ba24eead1ee6846b9220dbbda449fb4c7ffe893b58f289a116baf1df47a598fc5ae4bae4b10c7e1d01e4f6760ad86b7f979ec9f0b3f3709468e7b100293641977ab5c5fcdc732cfc76ad912208c6608a8ee88e849885e4517489be2cba25b449be211d15f204a84a54ed4115dcb8a3635b66890c478a923bd6854116d8a7ff8c507990c7dbf179be85377fed1a7a62738a365d777d56b18e5dcaa0c1f96b77236c860e1dbaac129d0c9f2efa2ef3d9aebdffde45a61b406f6248924c3cbcb2410152f2f6d7c6037529604c8f22496bbf409bbfc8be3e2069ae4b723b29417ad97b5d65a6badb5d65a6bed8f689374f9e04de2640fde8ab0128674591e07bb6159de353c3d7de9a54f3532fd948f7db2320458d5a427d140ea605d4d01eb52531ad88780240ee45e50a2c7eaf3ed524094f688b7aa12591b229140bf2d952abc9566aef0ba2456bdc2acc3813d5ed7758d30cb53f1b5b200fbcf7f58fcc10e9a7e388867152cc51b3cc4264c52dbc2f956e523f226896f458d82f615512a05a6ee9dce5bbd2c266fe52173cb45af214c882bcfb82e7faecbb45b39922bbdffb2b8d2c39ce9cd9d5933779c70f95cfb10593eb2e348dc224f0289e740023b672af22476e0e74cf49a0672d4dca39e0a89eb92c8715d12eec927b97036b8e06e78414ec1c92a381b7289bcd96991ac229345e4b57275254ad6a342c9642ab50407a4c3d4bfaed471366e6cf2c4e2c5c835b81b7dd90620e4fee8c9288b3b3b9936d149c98ec49c1c30b2e8c489bc3304555e198fe4c051253b1295b84049ec228b38382a198452381724608eeb92f82c72a5da84c58bb174dc8d22198bdc67c9646abd57cd850512019872fc75a8b9034dfd1c2824be913c8f47e2eab839ae83a6500aba2579ce6f570d16b0d65c78b3210c9a3bee33775a727b2efccd898ee2e58a2199d1a6643275942d4104fb28f3f1494115d690312c6a91636431268991c9ccc7889875659e0af4d166d890e9d7858615220f71966c66665c9fd8489b117e927b081a2e3575edd0a8a96b47e5a62be70283c695738191fbeeda54f2b2b9efbbbe47c90f92e56bb9787bf9f72dbf788b79c6755d49ba40724521f4015da92b75a5ae2b344fa6f3e4a3a3f3a4b2301b263636d266490d44492eac2d5e8c9c82bbd1974caceca20ace466f3173c43fb0f022267925f3514515ec488ed72b6de48deca24b3aae6492e32e39b0e4a23d50650ccb25190f99a50d16b6ca58e9e7461eebd951399dc321447639bec5d0f10d9491f87665f746e2eab839ae731360e2bedaee6117c44e9e7ff9fccfaa8ccec2f219f81f1a6f11e242981ec45d8678e973d03fa7571bfdf3f9104ee44d5f2e915cd883feb9f6a1bb4191432ef3a18556661c84b71526ee3fa053bcadccc03d2e765dfa80ee3214993ef41d3074b7d06368af95ce38fd30611ffae77eabf2ca0cdcc3e290f6b99fff6ea18b4cb7a67fae9df44a3105bcfcb1a6ef68d0dd40b758336241784824dd654c98fec1414cb738c810ff9cde0d8487c46cc2ae4b425c1be2a2975c46ff0c21048dabfc83b7205c5c288d04d078cb69b4d096cf6d015d0bb5fc430fba46a3e52a2dffd08342785369197d4e3fb805e3abe07f2ec6dbcb1f6dc6b58ff66755ae7dae72ed323eda47c63f3ef85ffe296ef9c32b3d46146f579ef12033cef2d159669c65741696cfa07783e26ad206865a4eef36246696c738e8ffcb7c8cce7216bccdf8ef36e37ffddd3a835e2113f0d7ded31bba76379bb587f00e08dab4affcde20338e627f8a6d975aacc541667cf496bb697848cc3330cb45df01655c9b3f2eaf881ee36e5064d187c86454484ef21098479f91f540c9a3d77b3399948fac255d6a944bef0dca3ff4964d0fece8a39cce28b719e512c9570e445d357d12bd6f2dd1b0b411d9b4a965443b9a0686338c593516923e39b9840776bb6aae2cfab455a97c6151a5687c2e8dcc89233a8ee9d0712f266dea0791c95c978ef6cfe7589f42ffe0edd2a9d1b0b411827d93364f808e69ff80348c7d07a4d9e73bfaa2d6d98f8587441f4884114618997ea54776fa0c0ff140cc187631df0c0a2257cd85c5854408ccea5c39d20647fe42d2a5ecf2ec42e630e993c41716f2aaa13bb07d6953df18f63ed581a5b5d65ff7d299227bee1aa5e31ebc5dc75e319a034bb30a4b9b29b26fd2468a1d1bf395733545e938f6f79275dc0b499fdca5546437d925f3513ddee792bd22d2069ec0a12e34b82b0551570eac4a1b10ebbab852fdbc9ab3515f87c084c8e2bcb48128d0850677e540947326eb8d737d85375b2390af534c1fa7c8d7e9258d5da23f9203cb25990cc4d2e65981a5cda3194225c68a8b1e49e5140200d8cdf622631b4e968e4bc9ae26c95d91644785dcdf6aadb15c8c65f36e7425220244644072ae1a598f3b6f74d5c55c69fe5deb4af3f507b506a244ce64233b6f964dee3b011b598f9b6315801f01c89ab87123938934c75ca7c8d669a9e2673db991c9c8256e644ad497974ce66232e7006a0e131debb151396ee14d08a69323bfc86192e3562adad4f808982ef561ae1c263ad5fa7c0e80bd64ce46e65a035173a74d5d65016432b3ce7ba5b0465d35d0d4f517295f45ee95bac2c65371d540544dd5542d028310c279026432f1f36635e55253bf1793eb5e3a574e8dd24be6c3fa95baa8b88a440bc76a4959de663e0020062188a1882e910490bdbcc401b00c20233524808800993d92e331477c8e22b21ed67cd2a55497fa46643213cf1d1c58acb7b993fb4664d58d7597559d300fbd34653211c74a44353f569ba01912a1cc51ca244d9518fd0820618d4462faa5410f2400884108632041f8de1f8410c2d71f0384f4433ac33b08894c4107f807f37cb47aee5b74e2308510dad21d1c89ee202ac60acb3dd5b195eba029c675d0a4721d349152ae10980a4514c21b097ff076bc9530bc0981b9b010984cadcf430bc62fe217ce8606a1aef478ff34146c55519ab78ace9cb76a4a192384339b819db3190b857ef95dbd05186a3dd84ba6b32dcbb22cebf39489d0ca02528e7208a4a0641f5d743b132b285280cb447890b3cb47110f297a9d0ef693d243a426678799e8220b6f446872f61d9de1ad3e7449ce061cdd631f9a7db409b278b3782391fe7ae10a6f2f2896aa6468036a5a537bc067f75959807cfc0f89a37baedb86e182ee56010c088b2cc800e64dd0371767effe9040140a165555c85a108984e48936f52b054a3f8954dd3514ce8b87849232a5503c2cfa448136f5df43f290f4857a595cf82181025696e4a4620a3cd128fbfe8bbd0fbfebc2ef7d7b48a28814c98679ba5ac2b6c50acee7aaf7ca5595aba4a8de4adeab1c2b28ff2a37a4f3c3b37a05512048b15bb755d383ae8399d28b3caff49f576f8bfc095dd726fbf1e08ade7ad0d52ebc9a119be1ebf3f018be5ef1f6b4e86c662312e4c2db3b147258e120eff4ef144788459f9e4bea065ee6c0cb92c75559d9e1c4bb778f97c505386892994ca5d9ac2c8c5a3cacf3b8269e71ae54650b98a115b36ac6000cbbaeac9fab3c349bc130e33167ecc416cbb06cc6c2b7664d50718213540f86653c6c6c32d4bab4abbe5a6bad9f8fc5ac8a5d990c5d0096cdd09c6532a08c0199e7793c1e8fc7da4ac3308ab1b391653274019f6c8666fa1ac26c2613ca18e020deb219ed699aa669ae2b0fbd96f1a899e20ac23e198f9aad89d98c477f8b15d55e86957bf3553ed44aa67aef7537c43018b31e9855e38a128e48b66ac3ec47673314461289019f7b2060ad65c5acbeca7eaef2d4efe87a481f7395afba2fbb4b67409f7b7e02edf673cfed0fcd92d98c3669d6e3bd99cd585a8932a5d9cca7c2aacb80cf3db7b21f1e98aabaee0cf6fa2beb8159d90c56653328346302c3ced9a8d98c28570cab6eb6bdbc3032965923d82c9b79b9f6cb1cbc3cd99f552f8cec3226b0972bde86581b78615c74257e06fe9d485e89f8238844aeae42b8735aa6b71caa3abdbb5e5d36f3c15d55d65ea7d9dd0b237b3c1e8fc7e3a9d80166400761d7a599d0414a64ed20bc39b1236b78b377f6c67feecb9e6f44a0c4f036bacecdebc25b6539d3bce8529a9221d45aaaa1760a6c55513aa7943142f8680aeccbcec1e3174696c1ab1333f5ab196cbceae711ec75de0874a9ff60ebaf22601a85bdbfe3007daa50d9ef8f0ba44d4d5477776953d7e8d366631751060bd3a67ecb6f45e4abbe2ffa59e1ed882e75115dea1d50278e41cae71e0aab581a8561282a76c9afc613b0aaac25919accc156704e12a98a4f588f22be95dc0ff3b0b2ebd2a49442c136d128123445d47166acbc83897542b2ea7d653ed127507ea24fda137db2198aead1925eca78ab2c6b5a16b5accab22ccbba2cab5a1666594ff4c9939fe853f6449fb0fc449f6a7ea24fd7137db2accab3d2e3caf47376cd1584ee280703c447c560ab7eb2c5586df1b38a96b311717c8ddfae2cad6021b6554825f6c5d3ea92b67892f049dc81700f7613517a4a5bca532cea524b8959bad4cfd9d844ef1ba574562cf49234b1c4972fe7517a51975844a41ccbd227791691cb9ba882a23ed1aaa2797b59667a22b9d22bad604b149728a5cf8fca1ae57440acaa83efb9e7a6670b92e5931326c92e5da278a547a478abc00a3d914cf18d2b2fc34cf14a0f22b90a7b25acc26e9226bfd7387165e5700f14aa9b27dd5ea794524a29a594524a299db0dad173ce7769bcf0114208e1eb6ef8e0ebceee611e9de1ecea09d5d58e57976445e79c73ce3aad0c0117b53cdd8f989ee05f5559104e6b7664e2f1b692d94cc44709dba64b704e182f91bb92dfa5c7a373639a4508a6b21c43479d48f37c106a9a5743692cfcf6ae9846244d5c71f965339d814c0147770922e5f33d1f609cbe9153008973ce39e79c73ce39e79ca1510a76730c70c2d95b98a51a8d12e2f32477ea9b203e43a1f998275e992792e74a8f39e38c31e5ce2c44e82e41cc091f0d445549382152e6839877e92d0081a8529be67ccc514e17a30c396cd6a844a4170b73c48ccbb5d6bb9c7d73382f2383c862a4fbaea8f5624fb9a2a7e460798af264c9b365d6c845e43927dea6c0a4d73a2f2985447a6c32fa1c1d1691536aa4b0e494142ca73c36ead5dcf5a97a4acae128e5708453ee4c497974323399997247dfd18d9d74639348070cabc7de9574b7174f274327a04c951833fb5665a49c7d2365194efe886842a2900a9da489824dadd2258cac1834c68c8132e70a2944f3f3a24f33748f8007d861b384125d82372a73e6b70687831efe3971389c2806e9a1948f48186584b79843a28b3219118bc8252123eb31435846f69b171959c907cc544445323299d0163aa239e70c85666886e656a22c1385ce94eb9feb737daecff5b93e76d2258c3ee7536668a2d090136a0c0c36c15a8f91cdb064eda64b50c6bc30bf2610a5023107519a4d8c5b1d81221c1c118e96f3041c52f6d0c022039bb765bc3935edcea1545e693610a5823d365b65d3258fcd53462817857e6b9ed24f1aa220cd7e3c19562f8d8b0c5f75c164c628e3a8670801bedf03e3759340242372827571ca8efdde79dd04fb1ac3304b2bb15b8d4c04110e878311439d85091663c97d18fbcd295f64509d105616b9520f07a61c0efaf89844a6f28b281a2646bc883176139e5b1e21bf6f577e46c85b4582fcbeb932e4d4a549e8504333b195a40457771188a25db4e99d098d1746e890df2918f9bd27f961216f52054d90a92210539c2558d8b15f74d173a5aec8f5131faf9b988ae6eecbf330baee1cfbe4a1d5ad55563476e9b93e58f77728822c7b529ac95425687abfed6edcca61ce3a1b9a33cdbfa9f2b004728f3ff7a0a71a419673baeba1dfd18f0895cfc5f32612523296c04a89d1ab820c4ff126c4ede42bd8f82dce545d82d5b7a7021a03fba2783e2ab8e3a35ad20318e458adf4e8c7bb9d4ecd07a50051f1ee303e3438977e6d81fab15c09ca10bcf8b49091e572f6f2313e41443af6fa0b534aa5cc8c92528a87f86809238c30e6e527c6b007a485b18a1d0ba37899c6c03ab7033b95833adffbcc1c4f44be0ed49e42a6421432fca34286af9f97610af02280529e73ce79e7a6200537059889c807a7605594d2bb2a487588a34663a9a354b68431c61823cc31c618adf82a9ec618a38c7408d5b96cd6e198772841229411368c314619238d305615c5dccbb59273c6b72c41c532a5af4c4061dd07e5afeb3226a0c8f2138abcb90f893608b14ff32852bda2ebc2b44f4ba4d920f39fd35b0f84b7aee8e3b9d8e9c4eeeb3171742e9b978feaa239df18aef4b80e7f61ac4b31cb8abe981f16ff69d90d21ecee6e9b542a3524bef7def6f29b0237063ff5ba2e7dfed900f4dc8365bbc56caba75a6cafb5efd96f61efdbd1ef73ad7a4377af887b2b78a1c3b74586af2bb85bfdbc1aafbdbcef596d0cfbb316c36e6740cf24b6619edb6bd7f38e812eba5a0e2ce8f6d877340fd02f7c0405c736c977917dd811948350506e6c53bd4fd6c42ba091b6e2e58aeb5f11fcaaf87c7b55e44dbedad76f1f5cb1ac78c32e3ae8f5a20b02c55cafe10dcb557b7d86b16f42b01cb39c09621f33868384f0f632e8987dbccc0f84837c8efd8383d8cb8c49cde2ed5591abe75aaf174ac9436600cb41de3bc3e4dff597c96077d9061efc7b2b7831ee55916da83d4878a14aa8aad02deca3a390ae625dbb655deb9f6b2d1289c5e5241697ebdaebdd86e4fa4a7d586b050144b2a5718048f6e00eb4640baf64d633eb1e6c0dc9dab5579bfde381969731a1ddb23c2b15238048bef0caf5209ed75f9ed77b3e9f5bb75bbdc3eec16edd1e5ed67561cd88d5b0100c5a3808760f0e42ba102c5bffdc4dc3967477158b64e16d645f2d48bbada05bdaada5d58f150a3d3e14b28f7db2d67abc3db5aca584aaaab4ea7a55ddedcafeae8a3722791b923f3140d8e3b97d8cef80f662ffdc4d0856a3a621808896dd7341ffdc7a7b372cdb434fbda7fef3ea39c876b69a122eaf680f62fff94a0ffbcf2dc6eec1f2852b673f0423b5e706a4feb87bb2ebe783da87b85fe56cf47dcf9321de2ee0a626ead27b93a0f6eb6701efe5ce207531c618fb551e1a28e3dd697e73c75c45ead2ab1c2f63aca049527a49b183a6e6820d131c1cd1fbd6352127201bcd3a9dcf8b27bbdb1ed8779c3e651dbb801828bb18638c3146189beae63dcbb38920cbc6db902c718c22426887faa494b2dbbd8644e2eb7a51d1f1354e9c8814c7ccb0eaa9aa9aaac6a54e01c8ce263b3738537f9381b252423c4b079a5c4c65f36e74a5e32a9deb04bd599bcaee7aafaa9efaea9561d8096c8a6a618952463eb02f8f2e1a757d462a373894b48233f56d2a9b1a9b9ed8452ab14cc6925610d1532ceb7129cc6e6a405895dd73dc97049a904013e8852a0af604bc4c70a55ce9418723ce177ae938ce4e4ee973e564f21ed1f19903c9913622a584d97ca45da453a938f39454c871ca5cdf2bbd5b3487c9e647f19ca73766683d8bce57d0c94e9326f3d64ecad279b7b38efb7220ce101c8cca2e2c1d26161b72df9abfae7a8f60d70348fccab141e23e1df7c853d22e5092a7a4105fb1d259a50805cb711d249852ed81b4a935d2060a8089869df5d02acdba34ce2c73dc4adaccfae7592fafcc55eab89a0672eca159b773acb21e52c77549483c772efa58298ac32123bb1c4f91ee7672dc8a459bfa7307eed85ad35a9048d6c2f8ebda23e32805730ec78cfcb21e51768e3b4e9c3469a2a393938383236faa0f60208e67d18a219143c76b4d4b76b7e23677e6934ce113acf52cbb4c46d224dd10834920121ba8042aa9ae5bb395f1e8d7afc6282f4853049a8ad418e99291192f29e707bbae952b12f725a1e3b6936e024d4d72a77aa74b3bb9a3b331a7c871c67add2a63d7a539fb60d67d73e6d8274fd623e6eaf5e36c7bac995d9f2acb735d5945e9c5eb438eeb9c002cec63b1a802bb5d39d78db9de233a2eef911cb873b49256d238d074d3bf72fa64dd7af54982b548b05b4de59aead376d56487c3e5f9a44d7d2d9339826d265d9a3b9d53411e6b51b0eb420dab58e6e4297d7df009f6ba9d2d9ac43e5a04502623adf50a9d60ad571427d6b273e7fd63333c0c653216a645b0ef5584d5cbf2c84f3931e770fca95847c1b1386b8e0b718ec01b780375604e4368d16ac9b668a4d5a26e8ace130439de95667ef20f3b1bb363b0c042870367f7eac5c4bb5f2f66de1dcb7197df9537b2617c02776026f33025827d87d3890ca4935259e593551616d20136915f9981bd40141544009d0a248e82276102e87e449fa2d8000c238c1cff6864f74a4462712941940eaa2dd1c48bb1647e47763cc7f5e8b854e44cef9d3e3febb4fe45892becca1b0b3b29e1b4b422714db02395c40e1ce35d7624a6d01053d10834d1a0c1c2434c5e9be38a9c69ce39a52bc92a2bde4290e7732599e775494d2ee912b5668c4772c41258cf617ef2a6b9e802870ec1a3e34a90b4e99210aceb520e99c9c8396594596d24642a4c91582c0896c27e2c9e3bec47ef384ae38ce4cee68bd1a218526550bdbbe874450bf39c2a548e3b67e39253960e4b76afd495937a2fc7954cda64d3a525d59537b5535709a49456965876ab3cb1d36ca673bcb4044fb5cf85aecefbb9570d44a5c0099d9038f06156ed22474e4cab2a93b95ecd28e48754198b9a9a984544d2af6ae70a21bc52a74b4c729c8d0ae755062eced0452565ee1c47a05de76ec4ce2f422bf321a9357f65338d6517e60bced76ca6737e8fd2b91206f23cbb636252cfc56485359bc7b2fb32c8d2793157cebba14391584c8f582775ae6472a5cd25d1e06ea801b3e4b31ba79c326a0b66a251a31852e52166cba940c189e0390a4a4910c1c582745c9f4cbb7757628926fa14c5065e18ee3f8040141544081d054f22c7a940c19340c215d988c8b30834b5c9c54c2c6a1ce2ba8c049a261225b9a715ea637597528dfa25fa94795e2fc4e1d05eeb87f4e9f3fa47e370845e67bcfe19e9937dfdd3c2e1b8afa6d7bf2dfaf4d7bf1c8743e5d5e595c6ebdf13876388d777aa4ff8f54d459f84787d2f71385a5edf5670a8a9034d7dc4b7e642ccb7eea2a65173676b24a5206a176914c551db08205c0cdda200df5e18b9521b986f8f0ea86f0f8c32b818cae4f4ed9d2157aa63c4b77753c4b787a30417439f10e0db6342ae9500be3d2cf24bfd83818ba9aeb8f1edc920d74bd1a82a0036ea31e062aa2d6a7c7376c8f53f1a55d940536f8e0900dec3c5544c36b7855c2b4cae7f6954a5034d31be0d91eb837031d5937aac5156fd7331d60d2acaa70e44cd01fc08bc559f1c83b74fdee664f262ac1cb81ca421f7690d8e9a51cd162fe67a327a01704dc1d8a0f0663365f262ae9d77c27daa6304b645e0272fe6028300f889cd00f04d2af592bae2c55c5b5c5be4fe8d2b725fa900d4d8a8d9e2c55c57d4d8c206a22c1d226c0060c3e4c5584f5298646b4527dbfce4c5584cde8d3e9327b96fa520caaa81377831d616ef46df5a9295ca28f80695086f952de1cd926c98e41ab12aefa8aab6a832a9444946b12c2d6412d1756591492448723f94eb61e6e3f9618945cd640d866532a1ea8272cb3db263c78e0b7187547916d9813bd523aed4af35a977a3a6aecc83b383a3510527b1e0b6e04afd1d577ac199c8e0cee0d4e0e0702410b9cf07674abd18d9440ed90404eba60b2d95df2b8c18914b725c24ae6b2336d945ce69934e4ae60a6b59c6436690c7e648ff5ea9b4e2461d26394b6eb8e8c2d9100319fc90fb1ecf277b6cc643664dd332ed735026931df4aa61f2627307d69aa7239974898b2eddc8251025713ab149a8148d35e54d2e999a11010008004314000028140c878462b1703c28aa8aac0f14000e93b452704e1888418cc31032ca1840400400000000000000060138d50e273debf883c241e499633a066dc70dccccb3f2240b1702a0f51cf21862644e535ee0f45ce1d3e848cd708c75aa82cdd1fb85bfb0fef2d19495625233e315ab40f5acbba50db520c6b0deb9d11ab5856c0b89d95586d378ff1bdb99a663d0b59da31d8f21480131faddc0ad5af5c0c0f4ed7b86aa34735048a0334a8f0986e7e8cb6fa79cd9870584f57e53d00d8d0254ca26310b488d80651524208d8e88b591dcc708f00722b78ce81476830e53a3dee5a5bc71e61f8f1f1f7cad33a8cb077b5b37f762511ec760d5d02877aad7a6820ec8948003ed336820d9e35309eff1096cf19ad5282f92a6a849dd2c8cb54ba8dfe31cd6cfb541beab0b143641b193e736308bb7c642e18eb7d6d0bf41d925d93148e7264da3f74eeb59c7a075a323bd2ed9734bb269624ca8a96a592614c7f584386e53d57df3257eb0c178d73e2b5601b43d3a68c265068932c8acc148fbad47eae4c81eedee89def3a30cfffd2cbe47f8689906ae863efe3a19d35606e13afa447a1974244ad45cb3b30b04e6925bba528f25eaa34706090ee3c28bff62eff24f1fbb92a0a4dfcea17b03f9b3d301c4598d5d148a36b7a4f2bf67066b567d4da69d0feb65d073a5ddc873b82403369932be44e1385b673e4e80d035367cbc9741fff71a9ba7bdda4f7b9979ad2750fe0b2435006cbae0b6bca68fc9244f8e7123e21d92171300e2df3aa63619038d4c0c1b58aed9775cec21a9a54b3d4cc0e3bf0b832d6ddb161196b8a8496769e10cf9dffd4147d5f7db6b0af98a389f08b1993e9020a8c73d9ce2e2d6e794d607add6278d0d23b08ee95de925305af78b9bc546b97bbab3193915afbe819b4486528a9f3256ecfcbf9a942b6edf78c0a442e197064ff345f8b01042e05fd993f74fce3fa814012cac0d4718909b9d88ce5cadbdd07511a906d31925409baffbe95f2208eb22b02d5f38222fe4249aa4a618db6ca7ca95d5556599e96c1bf92ce7e5a98602b99605df9756b2b39522bd20c1686e4b64f3820460ec84392a1de97db1cf98038c0595ae1e2d182e25bea5aaf2f3e160fe89081c5847d11dc39286d8df81555199b91b7fb2d9245bcc0f25633adf1b1cb3bfd3e3fcbcd76f176818d3294893267bbdbe7e714caf94ea75530a9ad786816c4a7ef0a1987031ecd6ffc1eb2b12ee8f4a2f29e8c5c5f563386a84ff80d0052000702c51d670095bae1a980e02162515d263120883555483c4c90374c361db9b2066c3ac85ce11678ee5309b146b5e5323b1039587598d0467f2faae4d727dd3524173558aba39aa83f363c47f5c9aaf8a945fd7c144209a6287fb24e3c82ca13a63920436d9112b3b9636e2754acd5cf503ace2398f3cde7adb38c0c4d221694e1b5f209c0e9de5b54587387e12c4b8448acc5e0e6c235fe1960dfd10809b2132739187c669650cd854536e21dd7b17bd13447fabbbe311851eebfaa90af490705099fea4fe792835f7d76ee2bd287d91fc353e4599370c82a6e42f599df76993d12b0eed800f430d06e1f70bfc1af464aa3fc852716b8851861775d18d40db747b48a4c8dec3676788a3132239e169eef60a5dbf48c28873240b456a0b8a8a6cfd58a185c2483fed74e9c714084fb922e0839397dd1357294b69b634b547e9354cba9d5ab185c93d6c19583698c65036db6bb6c26947767cdebd111afd1002afd3cb9c7da664070ca9069bec5bfa04d0769b5a1c57abd5e122a6069ad03109849e38742bdd23025cfdf72a6ac492238fe49ceaec05c87e3465a9dbe57e339494b7a6c93ac18c4ca5202d2fc936e336069c2eb19924d163a4bd41c203acdb714713c09305f389cbe37093bdbaf8852986b8416580ef24f4cb88a901aff3ebb816b942c4afc5437d5074fcfbfe1ca570c7494e9b9e1f6803d9d2ca7e28f96ccb48cb7d5094661e0c1d0274920d15865e432b8e64e1b086e4ae5e3064bf18d2c0bb2fe1c8b432bb0024dafb14cc5414de74830a9fefdc7762d77a255cb77a84ba8c10533587bb2dd5cea07111d4ddada416b638376e11d810f49072e81e79c3bd7f95e2fc03a88e2cc922ce2655ab5178a6d648ef0c7a69bd577206c89f5d056e06b82821d1127228d9edbdb051d1857e4da224ee7f614b906aa8bf49a0108b53ddc2fed4a2351419a92667fb9522dd5f8128f3c5c989af070951a8eb598a6233d30d83d5ff1c3985f6df4cad430865d1398d50f16c692721d3a512e9f946e2bf7add6bb162574f5c3a2d08f42f6b9b06307a52667eece4e2fb727173817178a7902470eeddf94619e20971dac549ece635ab3b963d44d9f23fc79ac4ed27ac4bec43c319b765f3eb7bc0c2e9d488a4c598388367b8a380bacb78cae1da70f5c4487bc875031472d296301a2e1739cdb5598113187f3c467a79741ab04a113cc2f86c6996318af42a776d6bcb5340726b8c9a2fdd0e71f3cf5ea4738ab874948dac19062734f922409d00f7c31461efc6695134425a3ef04d20921bb2a0ad06dfc47d0fc590fac921ca21e16241287049680570b5cd683cc25326b3d06628d20c29606adf14b27885bc982eae0d2422f9290974d30f69862c1a81591089eff178464f17d45ffb22ea5e5d961241dbbdd3479aa1f9d40ca723ba8a72e58bd3240b1c21852e84407d20234aaffe9bccf6e0fc7404c75416021cd44b1649a0c83fb88e3c052a26f8267ab3d4fc78182858fd44d0baa38c7372cdccecbd9ecce9b8001a981b5092d4d0f8373e12f1b03c5ad50f08e69f6d737fe44ac74560600df210d7238c01ccad891fbb693eff4906d7a8c3c22be2d9d76cb04eda19557e9dbdd92d4e159abb994f0e9b6624af9abfc0c956ffadcb7851a8adcf7de622836f1a52ca641d701a406fce6efd32db6cd1f87fdc961fabe152d9b893dcf1b0139b234c80ad332e738d50b924bf4d8e1c649d995a04207ab488b56dc182a43bb554864eaf2d52f06e44060320903e948f6a0cb05b57eb400812aaa7112220e59c60e05bc9292a6c09d90e53408917a9ac1b871c6fa10f91a89912cc814234b20e6c81b2824db49624bad3695b2380bf10005f53ae97a9bcbc9dc26e4dc15ce62c3802c2e9875b5378210604e112c2df9778e20f49c770892073ef53390307256d9ba79c9bf171335320ce131aa0becdd192ec8e29c8c898772a0c12faa763a8af6bbdbe734c520a4b41eb73128115be2df7793c1b5dd12062065bf168ccde14650de4af0a8e3455a235984c4e9f112ff6881451129535c0653dfc389531cb0a2ec1bad8a3a66689230a96243941e1cfe840c9e3df70b82fe53a6264c3ae622dc26b6d0ff0d40ad46f20cce70ce10073305aff8f1fbf497d301db97a1f2015acff4dc29476fd651d44a57e6ef65ca93c7f0f2e204bc3713cada245eea53a0100c5d8eea0eeff21ab13c8654820d56ec0d9be141e639e5a0abf7e1e2eda0bb8236eb5c22afbae084ee0d7551bcd79137e48995d02b6ead8682f5f78475968108987180945fdfe1af15c70e1e1a3fd6948886713085a2ce807cfe4cf04a1f55d1c92a8cc4755b709fe7d37521aa066fa337030ff04add2245ef9a38d431aa3d513763de5d628b277e6e7bd84afc10afcbc97ac6d2375e45511f61f71d8997efd5d08e89c18e54c4bb1b522eba1e4f8194d17fdb7fff509e5c13c90398eccbc7e124adc640a520ebb0261a01f8b40180e3e79d6113f6658349fd849313f6da061489f4c7cd3b1b23a55efa14a7c739f100aca7d6ed9bf674e37824cd4504755367d0c3fc351d0dc232a284ac293ec4833a085191ededac974a221ef2fc5ccbd11cb37e992cb4bae115452f41682268160200fb65e45479c1925da5c241ba69379f1702014a5cbdab17e1b0ab831e09a2485ff2c3ae9673babc89f676aff171fb06b9bc644f81e33dea8c30e461fa306b221038ed6de0fa1d63807783fdca4ae5d6bb6e6e7f5cd373710eb9943136458baf9a43a910fdb270fcc76ffd1fd22dd994d60d9a7ee297a40ad1f79dde05b9c297a476c326e740c993d8dc3a2ed823870e06d4298fa4ff2e5f411104317341f7518a0a9cc69482faecdd184f724fb53e65ef32c71ec4e101cb7c6b3c375c2904b8921271d39a2323297ddcbbbb2ff61e46cc6e59419f2a4f68f6f50c8498a9f8949bfad6b5ce4a40f02c36c805af40486dd9da3d8a2cfac3ed6229f7f1ef8b7bc9e5c5e2cbfbcd202cccbe6500fab6be7762c8d8b520b0c8911cc32ffac11b4e3d3a265236752b585f04f18b0ccd561d95b35ddf49c77bf22ef84c18b112136bd15bc5c2cbc83108803ca0ee96434362520915f2f922f1f4e087d67c7760b5150a386ddd7217ebb6ebca2a326c3fd76bda399c5591634743604309257ff815af3689b9bde4fcc68dc7f6bc0e02cd33670e6e2beaea5c8ba7315b988b83b892c53d26d6ca2bb8afc0bbf3b89ed2af22a3575f309a1b20bbf3b69fd10cef58238a6916889015633d4bbd32d91c5c83ab3042870c93c66f13a0b02da500294655ffadcf63b5cbd8afcb17a4dddcbaec681b5fbf59c942d6b8815c86bcec99c461eb4d8f019e4032503f65f58d0dbffb1fa9768b0d6da7f9f50a4760c15512453dab09efa87d229bb0581a8c22bd578efe852dea14005d1cdc5010c1a5b31848aaf021240ee2d2eeea094435362093ded4492128aca9dc88896bf3cf6a9b2b1eeb9feec0e8ac43f054af247fed758610ba357a71edc52f63ce6fde8189bfc1e71cd1ec0a21bd8e6217aa7b1e0d3c0b8805ae1dc24f93fa5083aa3775d9245a5838baa2fa9d48a7e6bea033c427702d6a7665dea01eebe5ff08279cff0f81da07268b1830d2bc10df085125f1ff5b898308b40d4e68af55e4dfffee7553cb099ef7d7b6cb540ce71418560e9c81331dc073fbfb5e4a86408a1c693b5becc54d7db4ec993b520ad90d99125aff0f0ed30fd34bf32b0c30728afe6e9f0c251923b791a58413f347183381cd5b2f87084ce92569027d96c680d21b19f26c4fbbea15f4a53fa2544ccd6445e990929a0e8a0ac5da6b65ab0a639a2d79a5ce3c4347f5dc02403facd06acd0339db1b903c89d84b3e7ca48972f28a2aaec1f0a6f136da70ea46d5b7aa3777a6cf7b614c1bebb5daa616ee5a48d22b0c21224102d0e08844e45d247999bb9955e33c2fc8aa35918be8d4d5816fa1eedfd562238cc3033bbef143ddce9f580af37feea591d335379229896f8851f075f0ce0b5d1b5d949319bf4e0e1ffb6f092d12638ece073ed415fa7a21c7a549408589a15a627ffb2ccd76bd6b4d0626138fb703771e96759d32c9818cd4768d01f1954065e0028b67d7f4170189f9dd52d1a145563f98c868c35d92091153ce36671841efc4771ebd95de470042c92fe6464912bf1793b7a9b262e7f58c1d925ace1520c2693449146cfcd0d12172be763ae7a7b5b9ad2fbdd22d9fc0a1a6eb1440297a55d97f340c9dc947e7cbc91422f68f332b93a7c60c719d6c9a26a3e7a40b2c1329e77d11a4024835a98aea1dfb240d2e3d8d5611bfb3d4ca02aa47d7885705e92db2dc8acfc49efb8f3268ab1f6a242e2c14676c2687fff871c983d02ca4cd16989a0de22df1f6aeb0460b78259868dea040862c7678476a9c8684a888ad36d6eae56a64589a165a94714067b52b226ff5013a2cf7291fb9db5e94293b73f529d86584c5f5800b3dcaf489869f793fb7f38aec596863fd0fc9a2629bb8130c82b04a5afd27939ebce98e37aef190c9de0bd418e748a6d3ab7ec150640ffbb8fb4728aae129e384a9b1ef61815c33740514f12964f47cba148b419fe86e2a0a30559c3d088f623115e8a5ae517542ceb217f006cc892fa5ada272fc9c3a992b5c095d4b5b8848da33bb04e28355a31c11b150be802a4dbc0818205ca5295aecba3dffb66898f4b801de1785591647e15e5b9e13d39020d721fd8a62339f2b52ca4af31485d656410f28c9f465dd88936c5753449fb264327e87e5324a003d0916008bce94493ee38fae4c2533507156e4c899556b4e2fb4dd4f0a3de450ee9436a16e9c78d6fd1e865b8c8a227b26a51bc65010a4dae1c71328fb9c839164000d8b5fd885bea5b3ef53bf9fad44c5eb17681c2f82ce2f2be5254dc36521a60500a08d8acc73f4739f6cfdad926b64fd6f67c02d5b061635ec60c921b0c12cf86c59f8f0086a6791f9885a0b0ff3ea943c4111dc2bf8706891e27dbdba24fd39f9d53ec5eef1bb0a7d524b28587bff68cb1191923e880ea75b7a54df8ea8e9c02298088008a18482c12c0a54bb25e800a8b0eca772cdf39aea4f5fe3a5c196f490e7613f22363517eecbb8d116cfd3842a7d83cb136d67d2a88c8c857dd8e8ab7592ddcbaf52b58e562259fc4955c1b6251b4605e126916c975cb7ff043b01c1d2a992c1d7ba9618ca9cfa38f558554c423488be28fbae395de74e3b42174a761c63c72a42d55a246113b4367b2f3e1d051351611c36b4df53cf9ecc8b73bd906acdc51bf1c91e42e6307396daa5a8cfb0ca10d3017c0b30da21aa211fb15bc87ef3d06624ebdc2a963dc22282281239ae82bd709f37e3c190a4574881ba54466e731cbb747a74fe33ab59d292cd8272480bf0a2e5948094aeee16c1f1b4f31f32cc5b9a98a050addf351bd548382ed2113c5fe44bcd862e6118d9d6a85b57af1cd7ae376695c0af274c82d8062e759b4c32c18e22cd6b671777fcbac8ea3f9df598ac00025555d3284bc80866f273709b66738ef3ef429c6994791e1b5994af2d643da718806e14c8ea2950f883dce766aec6addaf8c3b0ec7937be72cd425f61cd0a274c29f426dc98137b6815e914ec288c927e6d680a70447522840e10440db83e51e7c6c6b8fdc0fc86e97f65528877e9b27ba9b031842c55be285a01f561223cf2770102b52c99a1bc89cb7b6d51252361de271521272855dd7008698c6695283807a56269dcf6785ee923abde26e9a7a4a037402a8ebc337585cc84f7e55545967b6892017deae4913724ca18cc966fc376c196062d7853ef4e258f53e30e088c180178d79dfb429abb8ca8be38c13dfb1858134157d61c5a7874a7b0656a7ca02ace23a94cc4f9a8fd3fd23340e24da5d8523cb2b0f61bd774a99d743640333781e5af61c445c271960eb6984cb8aec4414d2beffe8d965867a852a0d3618c62f0e18180ab721bd1fe3b2539099743273a502d26883aeb1c948306bf85224b594f9b0b7cc9e8951ee7341e4e5e7c102c4c07174a011de9df5a1a21562832cb53cb32820c3ddb691fd4830c624b29a85322f267687889967372d632d82f5add045c5c2a36f53f4f087bd030910200ca099105f00a06b975de24be0dace7787cd57aa0e6bf4f4897e6b6bf4746b548ca9a02beae2999776a85d00b123529d100224e0bac23ea1222401b1d34fd419219dbed6ccda99d36153e4a3dda7ad1c844320486bc81c22cf4e3d88bfebdfd87549d89039511583aaf6183dc5db5ea2bf19145b0b89501b2b381d0442427786d41e42176b86f2ffdfbb197c0f7b1ae2024f1012af9967a45ab38df8d3851a9e66e51a4e61a1c1238164ca113362232e3eed30dad61be62bb22d71e6134ed4bd726905de91a09aacd62329e16749ef7a95e8c80c25ed2a44412591ea9c88602596930085a356a396dad0c87ec914d9a72a6ddda2b1496c56fe83d02e2c5eb3c737da9f56b6ab071a556cc81b8aea2171197ce681f14159a5f8b5461a0f584ae423624f7335cfcba819870f7ee0c81dfd72ae62bd32bb9d5c4157fbba9bbd763f2f717fd6c1b6a94c56ce712c4833ba3f4a8fa3bd88b7049dcbe9db1298a34c25cf5614aa47dcb4e4a848410fc56c8e6de95bb52cfc5b58a9ed8d84bc6f0ad3875c82af16084ef4e17d2104c90c8c1054b8da508e4afbe9ac9faa50a3c18c3f22d6ee0ccf555da940ae04501096a4edde6d718aa1896c0ed3e8afbd7780c01b6ee57aeb219a90ff0bf3a6911c052f2a8c2afd0f0871c340282e98db77fb298e9acaef389295386e847ef0baae76c69e702fd98e43c4271778bfecf2bf3d61d8be058f0c594eaf51e4d17169b864508355b7a805a1f207d7e9edd000e8d71b5c1a7edc6c462c01baef0fb4f9677e6867d3cb59a86d3f9311a4247f65b2bbfd84f15803163c7ebe98b243f75e62504800cff6ee1a285d0c0a008c7f622286ae614e4c0458cc4174077cedcc69d506165480937adc2fa949eef76de88d0cba905baedab76355c48acf01ac8f91744520f4e3c0f1ea7740a42a0bcda06116fb8cec5a7f5e2ac4f348759ab217147aa19a23579903daf96de0ee331a2053be4295a2c9d2e15aeb593f92beadf55b3a93e7b07ad71cdedd85309185950b973f1b35fc57570efe929032f9e9f36cc06bcd11b15e38ba8ecd73790faf6257616d39ec971692637eba91a83af1fd4c24a8bbfe083bdac7f1fed1681f3bb71e5c4d109d6d68aaf7ee431b8082c31b402760c148b8f471724ff7b67e7232c311d004c4123ed1140142447957d592e818a12585b25374a0e2021b0ad870e1655972c64ed0af5c0c8d5a2960fe24433bd497083baf999a3d87e8f6985ccfa8af2491fa1830e8c7d0d502ccca18692243455f2cab9886c8a7810e57ad36c6b3310eee7ee2f7c74ef657caa16389907c4cf46a23bba718a44731516ed7d38f236e97aaa82600e13a04c125895c8ccb82075be9bd457424efe46b2a9083885c4205a459a16fb2042f63201212f8252960794d7e21feade077514809fba043bfa6b6db4f0387186ae9cc91399a08609b69dc78e601b63d27006bb9b5e46d88b3df7258f05fe22203b2cdb153add5ef01a01339590128ab84df50ae39bd6af0d8922a576fba5c45ec2f9eafd9b9b85df023d9df3a0f190738df4abb04f25f0df2219d4204f75e4a44a2d2b0ade0e79f70840b72fc904c51235fc7952bf8225c9cb278192944346a2f13601b2eafd8250c4c319f85749dd9ba06a5a8234d6a48a941fbd8b342fcfdab3ce55e9a612ca8a07a09546a842d35a9a45368316582d1887238a162d801d36fca79cde1a64d945a2d840a351f68106ebec6c2c308e9a2f92447741062da4664a15a03dd29ea2fc9508b9511f282d82da1e40f029c44fcff44dfddd02e85e9ca0a88d32a2603ec80440954afbbcc58e43c74b99f36ce59e9290300975bd6af5e3731ac781ac938845653eacb6a1261f54f2a125cc1ae6c8c2469fafa2500aaaff7333cc9553dde495cf8d11a217922bfb9aa5bd778e35a825a202cfa9cb5cd5ed1a2ee2d3a8892024384d1b9bc40a36e8a0435d68d0f2da4dff4c1e0a87851dcc8ca375206452608827950948a8ac0846b52c0bb4005c545608effceb0646a408d4338107cf7d777ac0de2827bb76a9c0b285cf03226cdfe2bd3b87421a50a22fe281e87a3d8aa73c76309b0156ce2088f81994bca6a370bd746a462e439ec4ad1e34e384c513f6325ed8dd2400f8fbc3bdff75f9a120aa3f1ff97c1229284d16d0f4ef3424df3369d933ea84a9970aa34254d5902466d60edf30a7628d63a1d802873195e794d43fa36117d70a4c1a1e60083c318bb4004a18572115585acaadc980392f38d4c06e41d5070342413015dee054773ac9b65a99efc7aabd829716a73fd01c1e7d3c3e9631c25d5fdcb950c66aead2d9e1690ffcdd83baf16b8b55d5662a4fa64c2a8f8d1d0c050c508d28d3f0617e628d659653c1fe16588e577551398addfcad305940d2583dd736088ab814c94557ad2e2420c94b28c82c5668e4e5e29fcd9a1b8491544fa5b7ac522efdddf20bc47b760e51fc5bcb67daeb20509dcaa3b4d6ef15914eef6b7c30f8bbbbf8050e8fc0b9c439f091577d59352f34ae5d8a30c8d7c7b5090c3408f476ab6e4e858d3431c7d6a19a1b2384d0a9d75ab2036f26feb4638fd2ce2842a0eaa8a87c6ccd09173a50ecc5062cc44426312aefa4c62d0bc7a36b5af02c355c2a9259c118f4a48264df807430176cb9f1909dffaee7cdbaf8ab26fc0fd72f07f6b48fb672116ec5a109443574d27ed01f758152506a2011fc439201f7e21f05a77edaaab59291bde3a07cc6b7c2b501f190cf992ceebc23012abd09f35c831450332cda70beddf69fcdaedc4d00657e83c106b1c25bd90d66e47190140423fdc5d6cf78329ea9ebc7a2542712eb3214697c5f078df868e541564b7c28e4fc83e49eb979b0b31bffb6983f486d5bb349e85b304f0ba6fa970948b0d9278f0dab657ca46362706e6814eee239a8f9f17291ec4230eaed8fed3993839f78740d3670f2a31f12605240b13dbc5d63b19c91698c8af28dba2a9aad525cc5732399dc65c0bf267a73c6af2cc304167171600fec5a57dd81292936a8a126113d769b88e63012cd56b874e3f6e7a9a05d2aa7792ad73ac44cb10d504ee0ae68ae870e012375d39d4d4a0592409abd54f368ed3367acdf7239f778fdd391b90ba8edd9c1f909ad0ee6c9d5366e126706956a67b1a04117fbe052fd1dc52daf93fd5c39334cdecadf9eb065b4cc78d94fd8aadf36cbc0b95f50aed1e10a8c080dd35f8a783bc9909790b3f8bb431763cea0b3b1b9acc4611bedb6e7913cf47654ad470da96cd9fa4a5f7e7ccddaf5a956d5539d868a97b4adb55a3f51215d568a9c8af1de998b52ea8296aa040d39588c64b159f166c8431091217ab8ad571074fe9a9ac47b1afc4b3152873b61b94709c60ec9370f4e6777d5ab2336b03ad7ec2dfbf2f8376e232ae747a8f857ab04bddbbdddbd2f93bb58ccaa8c5e3662faf8625ef9485f5d4612c97ab0ddd123f499e3408834235f6143413d5adeb35b3743de15010036471d83162d1a4c773a9820780351d78498811513354252d6852dca09663cfa35488b0208683390dcdf28ae852ddb95870853602bcd7301835218529e7b9668a9f1d88db740e9ffb1247822f53f754e4d745fe20ddcaca38e53c460106651afac8d1af7a2abd972e8b11233cab3884d126f1c192239ea1016a2d7cc1c41d394fba8f3f2380323f5ab83c293406500f7c5240a089fc2a1ed792ef2a8fb23d2123430501a3a6897246f2debee4f751adf36d74e4dce5416f9c8e245ce853b48cd76e9ff08776f42a6774472cb3c159db879641ef3ba8f65621e6f013b5447ead2b2e5018f48e0c75272f59a0b2291d62f48c57807e661d55ac3670016de598417fc120616f340ce34c94f78c58a014b52ef7a060211a4717fc90dc8826b787d2b8c7ae986612dc08696497e8349a8b1a30bd16bb6568ed3727490438e2696c8c807db01d7a80468632bff0104ec337d28b60ba2606b8b247445f7366866312cf9f8619de93e16a59bcc1f100517d92a506a7f48b114ccd9c9b33ee914ca60c5675975a648ae6584a7fd08031815ee5e81a9968b071ac7f15d0a9c91a882ebcdf769c65f474b0c6ce53eb9f229b66d3c25ae9ab01db63012f133a06cd40536e8759ab420c4134c2015789b8cc75b006c758c6021ff25f93580710a2a26050fb0564a75b0be6b4fa500fb156dab25f2ce4668b66ac32644e5d64d9df7ce1e0a54565935bb05fee44b72caa82fd13401309b12949b3f36c007a273fc6091c8ee79cb74c40f709acc577a3fc6dfc69efac8f88831d3eea3927c1bbf4934379142f0e71e105f9676c64e8010a728637527e6ec8c2e7b8e9d91e21990b9f5d8cf084de384973175f604564ada603c30118427af3ae45ab9e2f8ce27a310001585981a4038e70858196cb80fa56aba626df9ee60a5389da75377b2ac3670d844462eb2c1faf6e8dad29815e2fcbd86d009206580b63bcd6516093ad7fd85318ced1863511e226a5d3eac7445d6def980355248d14080c81e6773432b0ea6e376350f13230a364a1112f39dc92ce03f08346d3399a046f55c32bdd76c47113dd9cd446aedbdf7eed01eb2810a91381ada7f179be045cf77c41c6108e380dccbbe8a90701bed76be3f833aa31bde878c13c4c07a262be8a600ce3082ec50a466c4616b509b5c2490062a7b2135f1636cf35375ac46fed211ee7351facb968665f72ee521106a2dc9047c968b421946b4281e6d5a5320a7697427f3ec24807f734f1470dfd591856d3dcc7c61cf0368338e494f9a9300d459718365d5b76172707b213bcf456263321a2ed3d7d46c1d17ac8d3c18a372476ded9d9521a9aa5eeb622aa2b3a7e4bdbccbc65663e58d4cd20120e888072be42d2b2dd43a05da2ed0225149c360342a14e640daa698e5629440d0e5932520fcb330a1153a4a5f1ed0b9b60f9d190ef18c49ff35f0c648e84d8b935e1822272981761e07d81c8c47e3dc9d9d780b34b815c71c8392ae99d4cc96baf5cf972bc7376c9249067d9fc4d09a0704e9b2f3ad97484f7d7520eb809211c9b3c720f2a8d2b5b5f4e136979adbc0234457c98a2f1ef4cbcbaa6dd253f2b3663fbd97c99944e8b8573bf21cb9ef31e56511bb831acb60b98d1c30227cb329438bb73d452dfef61e4fe971d1de33731c39e80882e0fe95fdfc23dfe9e73a0252667714e15b1d420690818512d2657d137709976b54320c1010cf33a8d849ca3d8ecf842c78e1f1dd8f19f7799ba0c4f238516a6e10094c292469a68ee54b899d864d2eb9819e0f6e8583e234c17c75fa9089d191413ecb7348b77d4d102beb0fedefd70354203ea75f77d06cd616b117b237fe835ee2ad8c62797dbddffc5c829f86550ad3f444391ed10960207f983d45f703de919f537190691e1a8a8bf8594bfe7287e04f7e771bb60f54949547a89d7a2603e4a02d6764d5aa00517e1f54ffdac49ed9e1eb945468ab46cdce4e38b7a9fc006a6160cd45db536c00dedc6fd623f857d776a411bc0da9faa94b2e79984a34ec85778ae4bcb707e4ebf7dc64c3b795592ae1f893f35b4011eb2adab320c4d6dbefe19aac861c8f7122b56b65d874b8adedb00216041280a539c6997b9a4acbae25d16baa8526ca9fe20a8df11645ec1e857889f4267d9c2bda2dd065824c0f89824b3a714343e0c3e540941b9e5d49909267c41938322d64b4307b8ebe99fc58acfc1d90a47813425f13ecafbade6ca125c8876153718e093d408eecc2dc959a36abd756d95d62fe6c9cd9ed50ea2c613814ec3562f18b6aa0340b5b8bac706f0b1b2116aed5241caa1e7bfbc75c9757ca0608766205074ad04f6a9647f60b37ab0fc9403d632952bfe4862db5a3c55fd8db34ef3d189d351263210b6db81df58c5cb91272590a847fd7777ba12ef5a37bc2bf28123638ea496750e855130ca6dd679ed10c876c300adcff11740f7a5c55fc9882c7a3b608ae9e5326dbbc0ff9b8472fa7136ad79a0247a300f711a235c2828f60d638882066848b137a4b53cf91e98b57c83f2173891704ec7762135e6cbd837638ae5c8ea1165d934560045e84100f2ee3520be2cec9fb18e2b7923f52517a466a2f46993c51df39f31765acce26d656a6918d783582ba6ffebfa3e52168218678b04a208fe341d49bec239e4cd19713b746417a858b5ed7d244241a982141f8e7af0d63dc13d2ed9f0acbe1016618ee80104a11b68ceb6e6a74ca2ee836d8eb7e965e1a10125502b7378946a09c9e38f0ac273ed22aa800e31d29cde41939ef081a4e258acfeef94bd24570b2375527ae706c1cfaeca94be73ae6bf148dd3ed483cde03133e44d42319d9483144ec2a3e622dc53d699d2b387b8adec6f8a4e9a716fe7d9faf378d70940af7e49b07ee19d2e6c175af1b44a4c3c3bd0f5fb12df1bd6ab0dc08e7bed02853836ebf714e20ec704f323e08f61a0dcbac4e2b88233d6009913c40d35dcc3872b0768a7ee3f3d6480ef3d4545167999f03a07ca5dd91b8d3b283a735348640b7c28bbc4ee3e98cea5d9c5fb1aeebabfef749a71df8cfe45c16094d337e2fa6500d3cb2f9c607e0f2da50dd8f2bd388d4fdf37e7cd173d5036465c708cffae088b88885d1c2242a309f6ea7aec41d61dba088f0a2e8dd4c0b20eaf9bf5a6adab41351c352197471823960dadd1aff9659129d9f88c31bce15836a0d6a1a44734ecc37831a34e360870c22322a83436bfed5abb2b1c422d26f7f142f552d1888afc2e9e7be8bd3150d4edd81d295374431ac7edcfb9f3ac47d23d8c997ea6263ebc6b204ef774029a88f99a3f5187ed70c5791d948012a97d91d7c127f36e331bb11f9010de96e45176092c85d183d83570cdd624388349fae564ab9196277986469b8b4bbd3ad3cc819282097764340a0e641dad93f5ca04a8eb3ddd9e88f97e1a4b6f5dcbba37d9951946d07531c039f23b4e86d3e6b688f1af20625fb9d8eea6a3205dd8850e24db354c716844c1a847368a0352f0186c474b8d744c1c1ec04e0fa2af5cdb00d4c5b1bc4e1381299843fb9dc3b7395cd11138597e062f4431c595d53299504b696b4fde937cf85f86ba639f5424f0cf322654dc8c4df4a578964b8ba81701e534e2d008be300d8886d5d611bca420d321552f9556c78c074446b8139a2d7e7b5119bc2dea23d3bc36edd21e0402e8e273216b5bf80959c2828d8f55edb62f45e86e2bb2e30f5b08a0bdf1b70599cbaacdffafcc7e6ab437a24e9ef68da47fb5a3cabcb69536eb76e703d83ba254f4e010e8b3708a91ffbb20f6f3441740170eb9ae46a87a42f2d5bc851ea7fb38ccc3444da8b475a2d240978358125aa5da59223b66e04a4898c096f23938565743d5681f2f7f0e4440870681240f8f73f8dd793a6e9dc1bb09f329bfe7af16b22c53cbf5a44761c086f9c9f4acff40a2d6cfd0568669f704c4eaece984afc204a8b866e9d9476d84b1181f9043a5d256045c1a62c4f890a66146cddc2cc98a3126935ffdb03a65079faae8f7dd3819fd330972c6f5e2b231ed4a56567b347edd20cf4e29621475fe8ee1a651c08a6e696bedea0e24be403ef20054c959fc70b7960a910e5aa2fb9274fab96beb8d909e00b5c09f55b1a189a200595debaffb2cb8a93f44c35fadff20415168497c7cb5ce199189eb78e0337411e80fff6b9d7220bca14960c3968c5200791c44709a84c3e0fc33b747d359ebc4a0d23e93e200a684de63dc2ad4ba18edd3ce91a244d74c67bbf07d9b66872cf4dbaa5d73d48c2afa52286bbc37a41eb1b04957fe7e368ff3f2b400f284286c6316d037803dfa38fd1d9e99098d7d31eaedc3be4efc9ac137b0c07ca2e8647f11650996692aaa13064a340055d4a442199bfbd30420e4fac470a676898e1bc5179da0e090df35f50d0e1105561feea1cd4e70b164fe578e5d3281d649bcad181ca488c57f52462c475846f9d0caf25fe8ebd0cdb75a7f80d59b32d9858f99d371ddab92929211227506d56467f8f80b1aef68306409d2b4df61dfd91a958b87251d159e3c64621dbbdf697e1ed5aa9217cba28b99d642b447027b6f39a4d5690759030d65807c32a579142e8ecfa88d3537bd77f102f2f8e8b4f579603608c9e18bbb6bfd96ad8f4c3c8a2c41f304bcf97652ac2522fdee9f639827f0f1b8b66bcd9be1138cd79ad09a88467697f73dce6a913fb7b6732b8768e97a448b59cda85c2b9a61b2d8864406208c59a87fc603dc0787b9310cc01750e9419aa857f2eb4331535995f3b602aeb7839a70781b7546fe69c96c68a41337aa38afeaf4b1103285e5a8b6a7c850f666a0054ad8e9f09e1b76eed856cd69612bad9e83597b8c686a38281d7f16de59e6fe9986c392eb0c7346078371906bf948120148432c09588b7104c094e3c93c0eac6598c1222804e271b77d61b48b2d578bd97f9a223c491fd22f09baa8a49fa1c172da453fba5c6c32aa2b104696e49b83f4a5355526d416253013679f40cdf156948d63b99cd46ff83cc1976f26d249c6ad970e2e84afb93723520c379fa801b1bd47280e861343b41e7bb945ebf1958cbe4cbe8d709cc06b5da414632ad78f30d5df6cc6735c1e88b6474cd60fa87922fbaf79003f0db09dd6aa9b95d1de947b7ccc8f0227ddc23a6d13eb5b621191d6f8347fe5c5416281790837b73b203a8be8c9dc8554707c5538e1685c25ede7b305b821889aa37f03429f6087621d4dd768e94a7b7e01fdef00d86261220a16a63c8a415870191afe9b5e83ef926efbe9f6ef5c24f999599beb76545342d0f2d58adf2b42b61a553574bcf15a4d9918bc612c69580c19f67d7dc72820ce01f129811408c5d188c2eeab1356fd1e215ad5441f7ee4c3c86ec91d74a246b9be1955042010f0643943cb052d8909bfa7b3ef556b0757ee6c54dace72fb7175769ca79dc32adb8c653fb3c68e4cd899cfec49a6ef8affbabde705ba6d43ce374ade9a95909510e85b487b0d2bc39e5d5226905cb7b7f30a81a7f22e40a758f00361a12b778f4965545118a3d9669f0c970f8815813ab54194070bbd03c83482544cd0bb2c4b70260654f5e9c3a00216724169bf40ca3fc4963d3e4de54d93546892ff4323be43c031907381e3ddcf46c2610bb05bf7e7a61460b83863fcfc3ea96ba920925c73156f67cf916e98b3c281962982edde930979d2b06c1331ae544fc16a715a0af3302e5267acc1a0c3be6d7f8dbe4edd3a64572ef85e0c879bcf4bab222606eaab0c3bc3ff2475257842c4d601e3dbf3ec45ff9b20b1e392111b3ccadb6ac20fe1f7424c6203340d9a08631f9a4ce463bd1adc94a4fea3c675fed051a2f8c7457e06e8fd787108f35fa1c1db8bc6a84dca1484f0cbaa07bd2dc7acf0005918561c40bdbf686843f4a74c067a7a432fbca61bca642119fbc9f03228205f25dc29df7787ff2e0881315aec457d00439e456791d98efecedff15692d83451abc8e7474a17a2f7e45992b2e8ddd6cb88f1c64f09ab0e9894e6e3954f7c88209984f4e8568cc9a4f50384c9604d03671282f57940217dc93920e7bb79520d0ed1bb63a3f300752ba8903b58bc5b04200059429a0de627383b5a091a0bf4993e5d08fbaa95d82833680813ba4dc68619160a7baed58fc1793fd2fdedb4fca73f2f983fe8a0bf6374012d35b07b7e8a08cca52e1aa8eaa44b019b38b5e81f4cda65c49e8824116e4670ae391cbbfba6d251c168bea0b79a2920ea2c3a99cd3b481a89752b36bf4ed837aef1819d0229e0f2429b5b780bc9cb506dc2f1d9ac3ee0852bc13ea6f0140677ee6063f66d8db18a645d5f7a8aba6381411e119cda48d700db73ee0a19f3e3cd857b15d7a5523d132cae293d3f248c1795db57b8a37dc9c078595546e2824884cf29c9939b859670399b3677d31046791c0516f91bbc639fd50a4846f8c90acde8ca204dc2f8801273ee82cfaa1b736ce46f80a9ff8a34b1cb1f7b4a62678ae375ddc26518d6072736a03bc3601077ab869441001a6eb5714b31edf7f6d235d5696b93bca11b3b3b094b716bcc5efe56222579c2480dcfd3325eb08305b20eed9fa01e596bfe1c8f74465b8bd798b3f0b0a3fed134e1a8715f6faa364725248bdd0843a37e0d0d1630488b60371968e34c03b67b9ceb2a8b84aa300028e1557c3b2d525029ebb4ec3a9df174e507f3b1f1c3fa637721c9a523d0fc51d45c5b42bff3f32b1a9c122fb239f17442f472805d3b4c15526fd58eb64b9b4c3f0e0cbcdbb42ec9f9f5691135cf2866e001d60f8c0ce2ca0b3e0eedde3f9bd2753d8343e70b2edec66c0bcb79a1af6678b1483244b56059d9b0bb000ce85c160d20babb10f1ba06e4c4d29e3f843d93067e972d127984c88ea3d94a7cfc7ba6a7cfeb5f6a718005198a0542426921014bcefc49aa521cc38106c05ec3f820bed5bd86af587a6a837d262f8585831fcd93b08089655f7feec0379c628401d4fc84cc323e1d51766596dd77754e1fef9e262bc85a7c1dbe188353431bf77a26a4f6878854f2c389a0d40eb0e6ce157761c180ddf8ecb95ab3cbedf862be60e4830634bec1fc2e549cf7d98066d01bcf7fdc7785402b49fac85771b01c09ff926be8a22ff8f134090d01933d0538f080f583df6505198a542915e2cea08d5784c6145499687c3c511bca17085454ce3763143c4320d3284047c4019c445b1b35f06d5d4ac1aaa8ddaf709cac176c5ff3f6a06b90df22e2b4fa9b0f3ee62dd45d3ce8f032df8aa025c7d696fc695ef091cbf9045692b71a056e47e58837e77e07af6dcf1986f0cec4815c048c0de291aa2125a9576648b6ed9a21606abc7faeeed9e3e805c8ba0f598ec486b4f6fa1195fda8134b0d836f18fce857de892380fe1923908a840eb73062fe5a4e660e5bca8f70e4ba6fd6beda158ab686b4e206ee24bb79075b797ffffccc44c7bef74980831aee490513a73515b0647bffc1c7829d4958328b418767bc4c6d4246b8e04117f04a261f179959b07e9718ca0bec72d6d7ae1fd60ecf653b53b1007bf4642b67aace194b4dea7eb3212a3e20200c65e417e784c21786426c5d7d0d25241d991018e7653330d2005c0ff237da49d216c0c3832791fa71c0276ba23edaaed66281edc6086452b403609e6510efb7f303aa5fe5eaf5578f51751aad09727839700678c5de19ba2373279bf200b830b260ac04ce30435125630af0cd19de56596994e55ea4d3f77570950928908ba94929c726fcefc431a33dcc349201771009c54e983cd2984c4cc09e3d3469133b35690e01f698b6d9567e2e8082d74fea838344717cf58951ae8003cb74849985dd0a7a53167db673fbd4d1404201173fe2fb0a01e88eb32f57ae28b01ad2fe954c6d6421aaae983f2bf09af296ef66661dc578648d83df9721758f16f147e96aaa115d70959b3bd32006805298aab2df99536df46bd830c6c414a2d517de0f0ea3bef7d336383fee8cbe8fa21d4b4e8ef89cdac3964ebd7e1a179855ec7c936c3e38b9120d74153348b53dcb45d1928ad356ed87b2de87937c83b180d9d908dad5688da5b8e636e746405e5b7d601a5bfe2fc3a8bf41bab97cebbabd4725c3a56c0dffd52727c02240d1f9bb330c85a939f0b6a0a9f704dd5cc271f0e7f57e0d92429737d1161cb6e6b9e5341d7695c47cfb3fa5e6f91f0f05371b81559b069c51089af04c3e89ec53d38b7ca241c8902df785cb54bcbcd1742f6a6f42073c49fc46558b991e25f803c3fc0c9e6c69d4155fb50d412dade9db97d4fe8fb1c198f4c718433cb0bdcdc1e0d7a557b9f04f0081e05c05dfabc2ab2775bd0e6bc23a561f22bfd6fa9e6af74416f7dad62f8e271fe9145f514dbf0a2a6efc22b4d6e21b232491e2e0d2facff4545fb9c4411b6d803eca32848ed64a98a08ed8547527647226b6492b5a23f63da87b910578125dcd095e7b94e94151f02049aa2b8f96f150950c5ad1576a762b70443d87b87fc784edcce361b6416b2d332172ec4ff19b6c30da432e611b7950f34043b6c664685a632c610e61f7aeb33714bdde7a09d5e33896fa1a5ac5feffa8e8b78dd472c0caae69af698679b84800e6eb0e3831fd7d224d8f60e24c5153c0ba8a38ed052c64d3db67ba983363ef774bc82ff6037559f53f30a0830f917b445dda1a8738bcabfcead133cdec5068a6891837c83a3a08afd8c7cb6bde4ded7a0d49ce5c32d1c8a585200b37c7187903f792698ae6126f9c9871de5e95a9bd20ca0f1e2ba3cf43021b0266314b87f951a1f7433a3ceca1b545f5d90d422045c3cb3550a8dbe77bdbd6d00a7f66eadde33a96af8c84874a66a6840a28a53b539951893ade1500d108343738add97004f069d80e26a86a7cf216deeaeccf651e690a4f03b437f2c25ba30ed7825a3a64ca0ca380f60ee311462a8b6d541014265f01a87f83d0caacc7e4a8072fed55290a98561440cf9c3e47e284feb623d09fdd1ecd66b7edf7537fdcbe4a5e66154fb03a7d5b0c423faf2f1b60eccb396814d6921cd9ad30d3d776e3f01480d68005e300b6f2aee1242319479136cf838104bb0a2a0db9f0e5c8c7252b9b0260651e0bbec32b73e7941dfb6f4a175c7f45baf8fa37881df1c63783874d81fbe4ba8cefaf749a6e65d426841e471a16df30be651e5c61b4d748816c0754f61c539b4408e219f4eaa2857261751e1e4d23efaee9e290230d5f590d9a9cbd69bd4b4973ac16a4bbd5daab4883c649d0d663ed56a756d9402bd0e867b3bac907adeae972694452dfdc39710bed96e7cfd7656d2f373b8e3515180b83e21db08a57646c85684a9797cf85fc07ad1f4ec949a33f22cfb8d910f406f5fad966928e9ff573fc7dbba68a23cc933ebb92fbb3e5734b70e8d58c6b9ea0ee696066135125590a30f60675d7b5c89123b73c670a36152d4fffc1afe853766c9326d38890a72c136f83c8efa3d17242982db8775c309d6bb9d946cba6720f9c5e287f44a9a46b8e553eb8284aa51faba95f13418811f50c803586523e9571c0707c1e21d16586263e5ad1abca02781ec2ed97a5464bc8f8c139743037458c65388b9dce6fb44af736e5074be93eb7835896b049874803efcaf94db06e45d7c1375a39486b11c5e9ade762c116c75e6836d0f8c3c1592cac62b09d12f7cc405e0a32cbca0826cace70a0c10eba046864e0199ff930403af56a4161eeebd776a3cbad1e14759337d030e563481a47c010f61c4d9dc970ff7eda4564673c577198cf4bede3fbda365918f43fc1cf58776d6ddf947670a406bd9421d8d067c98882550e5c7b2aaa5530ef6a7a8430c944ad6f2d604eb3cb1e5c40b67146684f8441e83fa4671eea8443b86edb8318d3032c81383d3de1b815b7a0277a536b53a909242501a6272094049c3a815025205d02841ed8f662eb104d4330b0f7134e33cfc0ac29ed01dbea4990300e527b50ec6f0715a1ce49982c8b5b114741f5fe1d1d7773bee92c3bb0ed185c36043738e50c8d32b91a7fa0f7fb0a089f5404d00863a6cc902dd61b9911c7edb7848df62d9ef459aa55e5a5b47c77c3b607681a7cb713b7336c261ef7da8a8b214537dff4be7eb9b0c796d8b2b3cdbcf15edb66a0dbb0b8adee102b0240f5367cad3498039e376e7645b8efc7c51243c0c0498b858d074e63dde1c062d189d0ac82745d54074e5e5fafadf2ffc3a3597598dfe1ae2cca5235378a37a9f4b63a955edb41afaae29de5bdf9a9dfe2894aa64adafb8e8735b8d81f8e13e1f759faa32657f6796521ea39ff125b133b4974a6e0e60e1fe6eab9f8bac7681bf1ac5bb06997c62b768d5d12380011d04480128bc955268f3f7a27eb21d334280a73fef25411bc84b58229e26ec95e00a6590b329253940bd0af00e8f541989c5778154bbd5e1bf3fb817b94f32927c1cdc5b74c289ef9735e63e063f5659900399e1b52e699352bbfc5d295dc1167307b56da082df3068ab56c2db7aef020fb5232f40e74251e66b4dc49282238efba0569f3fff509ce63c4b0221be7b17c106cbaf9d711d4304cd33b73827f4fbe73de65edafb9528a75fca330eca2cd28a230df671a13535113238832096f049d2d93c59f45344c3f9c0e477a81bdd7f550e6aab94ed4945708b1b54a0173d14ec50c73566e9e92f5e9c949a3816466a47b4cb23cfa9f0f957ac8c7462292823f833160e97f43da91f5df2d693443d6493b845e81cffd1b2335f0a6bd940c7139a3a507966a5b0ac91b40b64408bc2c72aa172c1735b58596469e9adab628957ea391c1d8a488ece31935f87b9cef9969f88c5011b23af2f73f1b07dea4ab44c9105e49eb116840f86ccdc1db5a2add1db04765b7f396258e300f2e3a0836f99f0110ced856f91e949f70cbc911f59b43fb204bf7fb0df18120c9e83fb5689c97f771f39dfd7f1bd899f4699c51c976ae2df39018c801a2577864b5c286eff350466809b53a86a0b275722b8311faa4b72f475457bdd26e5ed87f5ed88bc993765d330436eac5f28a9182605a8920c0a4ffaeed01f18882ded867836c57be74d3c1cf3933e4d1cf7990572b33af07cb9bdeeff22e3054566a3dc9499d3643ce18e846f881d086364f4dec799d2c94aff758c148f070f5c6b9de0ae3c9aec9950b0ae9a19ed7b612ea1d70c905df5f4ad7b61a2310f0029c060d96d30a3ff7587d961a237a18a0c2bd9740b9e0ce904cd00531658d12305081b27473254bcc73031ba9bba2aab97b758c0636edcd0dec2e28a3abc42c376324aeaf816f5bd2dbeeb7019c0171cc66e5ce6c91e3b1ac7a6ef170a9a7587b772b699785d1248689b03ad0b619f837b5926614cacd6bc83165a951310aa2372c88a2d5445ebfd0134ccedb904bd483932c10b6597cf0caacd78c3aae3a93f7f40c0ce2c203eb2234c7b402e1d1f4c09d8381b384355b427d1d6448604d86a96c822b1c2c508132d17aebe016de75e3cd29d8abd69e1893534deba5f645b00665713a976cf5d790f4d2a3073b914ef32971b362e66c6d2b468b39acc4f79c2a85a5b5da4065981356fdc506420fbbfc122f8103ad27d1b0386e7126de5fb299a0a8df5f725f016b8210bdb9ba6eff6a8d760b892d478d23399a9813b9dbd4b95e14afef41fa8be1262128eb4b176c602c9c036059c16a8d1f5f74cf28b2ec95f2fd7caf8e8a6bfbd6357615ac0aaf958a3d79773833d6ad61cb1c938de87ba18badb8456f6c4532a4b62888bce4039d2a4dda301101a69c6d2dddbfe7aecd83c3b193fce5b52f925a04bfbc68ea21513d98b8e9926ab4642dd4714d69ebb0839ee919036c4869eaeb6227dbcd28a75d695c6e74977a3dd415bf5f9ca87992b6f77e4e515e4a96c01bddf1bf0a37bbbcfa5d4d8559f6cc20e2e93aeb306b2b65d8024f725c5556f6f2d21a534a77aaee6cb214a01327364a10e271a5ef7f16b7fecb105c8fbd10c92ac642cd67981c8d2c83f5b6f8755a39bde893138a66c16d9e68129fedb70f17181cea252ad8747b81654c654b7f3252b599d1ca302c55acb1de005eb424504828cd16d052a5052f09bd658674f5e92ae75955717f5809a082da19338a8f90803f0665a7d5d855fc011dd9eda4c0e9494f36675e62026dd5f6099d91481ef86a4ef8cc15a84578583af5a4bbd29604f676631ad0bc5c0000c91bb49213416442624507c4d0a27c133ed05154b09a4b7b49675621c973c9a054bd5a6b29da527d3e66849aaa4d28e63baa887b55d65492ffe2653785dee793b0389380c6a7b25f9ca0691b315c8354f3dc2958d78478f2c341ae0cfadc8dd211fea5c3ae7aa8d7efb76f442a1586e99e1c3b22272d1dd41cca12d8f1756754952614a42be57d0820489e00bfa16edd028d78c58f1a79fd134060c056f0bf35cb48ecf00d058514d8dac617911b30e532d4c2f7b5caee6aee33111bab83858d0388000dff1e282dc2f2ff0ee473e16199c05d0690b910c5937a7f99d5dac70151aa21a5d66ced85cb50e9280a39a41fa82180738d2f593360a7b01bd724b9bd782bab1c1524e7e6878a4ed9380fb0e0e8f0a5f070aa3c9406b081caf347996cbc4be6062bbe762fc2673b399eb95942d29bf6719dde4b2ed3ebb189dcb22b47805fbf7859d5222719fb9d99463b8aedfb49ec12988a00d0d69e530d7c49ed6041a3212e96f6d2a0f6226478c4126ab9dead9ea4c5b61ba4cecdaa9bb0b4fca4e4ec6af9194afd3c986f8cc908d61d63d92021c45d55ef84c3ae8301a83c37d12ac008abaa0adf09067cb69a72d479da960503fd599cf9c425df3748d1d0c5901b75a96d50a03b42229758edd4bb1ee8b2c52c977ba13e2fa9ff25f79b59ce17c87909cc561b65650a085402d3c98af3577e5b6d35f3fbbf68ed9e33b4bf8c6afbd99bdfcc7a2d19fbdfb6bed6988e2a1cf3e4c2df91cd947f8ec8f0a0bdf4282c6ec86af29063282714a8e50efd15429d3713a8f88db928ecbc997658588f6d3aa01be3c2e34478b0ccf6d281cee6c41276126cb8254a11ff5009b3a7dd22e1f2a42f94820efe75f3ca4d6807ff977b1f898ab59b67d79fd8ba011932b9973a9414ec704b69fff4c868e5719c42eeec930f5f77895fb4c08231e0fa64f4c2bf4630547891a4be6633fea8cc610c880159244bd772ddcb6682b3b9e630c5817838dbfea7bd6232a24aeaec42319446b57ccf65c9c846907ee5e5007d68bb141c6f1454d41f1c5cdb141de3bcd66869e01e3578338d2f23f4dcaee31fab013f40b3f67ae23a616483cf6c78d6dad9b690fcfd518ba36bcd916777f3de4e43db6d98adcf89c0f106fa1596ad967f3d434ec220b900952040afce7e187b57f5806c23466494bc87e3f9a22f90e8ea5f7316f0437e150e76f509e18a9ca23e5fce71a72139ee5573a0283e79553a1116248721c9805d99fc262057f8b551f51a611c374a006039bc931ac5f10ec1d1c0bee600fbfd50c66657479f42cd0fa6c3391c27d82005afc5c99018bf690db041442e6414df1c13c7c56704759040d0533fb120676bc60079bdb56b8f2ad617bc3d2ff1043279fabff3a1c8fa1266dfc1ab309559b66ebf51912533d2d0c317f6a3eb9db371ca66518e1d13a65842ccf3fc3f0a7ace56bfeefaa24a8341126edb88b4d170d4e732afe81eab64346ffe9131706b93e908614d9f18cfd6595592d1cc8d70ce79e205ac5986772c6a227e63ba74114b860cf13fbe4cc284a88d6063c02e582f204bd619a33f6ac6e684a8b2c845cc9199951a0eeb064bf08ba82fe9b13d34194da04b48b8803b9e70b05e9e8b5ea016588592a41498a284736b0f84c5a11a2c4303891552374c4b8e50084d1d5387975fd3e5a863e7800b732df1f4019a99fb55e6e1443b68aea3a62ae599d7285f648755889bbb1d8f3e9a22a4166db5c92487623cee59caab7770b8816f7e2d0e968667ac0d408fa44fa67eaa67c15c3cc9c72b90555167d90689f7ece445dee70101a566313ae5e56cd3a1a62694a3a9cb99091b40475f42bf02d1a0f91ca35876ef5bcca40ed6d748326ea3460f44f1f8f024e689c527552f8f1ab9316b04f9020b733fc6c4af8fcc6e183e746398b0126b65de52abdf6246f114460778a7c7a746bc4f4fb37ef9335aaa73a734e83ab97dbb166bf794ba5b26fca086903a6e2b4a182bf85717ef7295682d0865b647cf9d50523cd432a54895340fa4cd7366d4e043885aced3151c83a152ebfddbae16531dc34315cc0933a290f2dca9410c993b4a55eb923927c904f330538090abbb0e61b296bbb0193b647c76a7c71cd5655ec351bbd36a0d88c4b559056d5e46e6eb8db3521286007923a037296876f060f8b11b4243215bcdc5b3237ccececa4e5ee55b9aab4bd182b7a778fc21bdef0476068ce6e010f8fe7e1c9ab3b95dc88f4270e7992b39b399d30fa155dcb3c4e2007df65f132a9e0bd2b0d294c1c954d2821e0c64f4979392d850f7978171bcf991ff3c2e8f13301d592a1cc0191adfed98018796f987f0bad5a479e91641f8eb78dbafa6cbb0f6f46aac78608cc83e66f60dc6980f535db290606fc698417015742d36331198d54f48440881f404f24a8f840aa17478983580cf47e4ded987868ccf75cdee293d2546df683ab1d3dfe7cb427ad310bb1631bcf4eaae2832ed7bc08149e9bdf9b445ddb9e60ed51a9fed4d7b174a47051de8da15a91d6fa6fa11a0dab57917aa2c5dda70bad8c6214192ac35a17f56e626409413f9d85373018b82d004d6f615740199a82cd0b5959130790a9faf310dfd40f7393604f4335f9dc83a779292354565123afe452f3452a430762b5be26817ba311087521337a18292df25920c51705fbf28d77717a55818a2568400264a439c7fef553cf8f8963b9cc2528ace84f48209a5e5227e189cd2e40e424c113e9bcb60b9c9f8cc5210df4c39172b1997936d2a71be4c893e277dbde57e17599ada580f17556d5c090c2bd743c89d875d2ec3710b43c4a76bdb0881e1cbf5206dc182c1302cf97765d72b0f3aea5eb9802094ad14b3ea6d65ca2e0848a145b6d5ed44996d92d9b865ff2aef6656c625c51a8c85b1abe88a7454578211bde51991116ada408a41edbfd4598a15fca8b9780b1db44d930c94a7d3ff8c98a1af9d221daa3fca5634ce645c8f5e68dcc51502cf00bebd7fe7a7fc4a9b8b43236aa0bd03f5745c3044792773e51990f393ee2baf6bc8faf22cfadc76492f39c20980d58de7e062fc7fadc18b2b5e60a560e24a69d1f3d8d0811e252ba6bbc45f6c6552f7682c95eaf1594cb1aa470c79296e55a3a2629d873409ae4629e097c24f7c7efb265d9e9108c2f508af20b1c3eca09dd09f1efb78d57ac03674a588088dbbbfab8ca2becf11af57bea562e37aacaba1bc2182d8b8fb9f601819f7a731c8059a541ad6c9f26794aeabe590fc551b426da1f822512cfc85100c9462a732e9b427aa2da09f7d377d06ab61766685cd6604909ea07b459033f403a5545123b4126b3b2ce127c67ad916b240b79d7549d4d4bb255f1ec944d7334db9bd7c391d3388bd56ab57d3bd82a3580fe544ef042a105d70e204471b5d51afc9371a2987421418c770c6148978fff1b07842a87f5dbbc751563fd48582bb1a5497f77777e776bf7ff96783f6d5826a98c89b9bb38ae489f31ca7e43bed43b02347275f209d9d558174779cc8ca7a2ad14ba9a2f266be9c2acbaba7893b47255e8746b5f85bfeb53dad9f2cc77c88253f0f7ea61e10dccbd04376021b9d2f6c3d7a91a52d5143439f9facc8c15b5c446eec27c7d48c952ebe733033ec0454ac0e8243811d08fb14a2409d4caa50dbed581468c52332a2ee667f8295c3751aaac8589afe2137c04a1dd5925bf209bab95bc41bd654bcc21b14a92c8b910053019b2ded8b7e4c8c62210c7821cb3c2848f1f8fc9018f41daa75fd6d24af657f759de7613cc0fcea483c39cf2fe719f314a2da4f74abac1d96c309efb9b06302c339b86fe5114f7f023ec18de84010cee0662a142c17a76e04da800aaede345ebdc06ba329cbd93fb6edc002d05f54aff2f98bbf2973288aedc5fe79c57efaeb3f580b391f7ab30370032400f320ab28a122d0ad82a54db988439d5a15697596a28f7d4ca441052de328ee638ac25c0b8048f7181b1813073dacdd7f8406a865c6dec299243a77e64d1a53d5f4503d0dc958b45dfbe7cc232a36f734ebfbd0a193eb556267c5fd13e1ef21f21c9975ad3d7e3917316b7aa4203ed0c61cbec8a1c081263bff7b57bde5cb1ed548088a52efd578f72ba26496047e6896459fa39ce04766a92ca2e19dc2b42c92934e4fc05e2e9b4a71faedc30300ba4e50c872a02fff31d9f5be901f1c7c4ae5190237c2cb29b1da62eff892ae0bcafb6078e3a3a4d340e2226d1a4262a1300a0373895a6738ee6e283103ac3479d6a83ba3aa454cae3f2834821aade458a259fdfa04034127dc8846d8a89ac85de7ae547571fb5806bd3e05ee24914157992e4cb069b29075c5451b15cddaa8a4ab2a5f4f622e6692e261de01621c48c3e61b74cec0a8df4870c0d101ce2b97a48d03e8fa256b16f906550b7397a7d0b11b10f703d44367d181d5cd5f5367793244778e8660c0bea399da6b329d2f9a3b4927ba4c4b7eaea94a14ad404c343dd66baa4ab734e034990a98abdcaeda1dc28cbbbe069c54cfad48606d3dab6f22004e8252ffae786f9db810daf3efaab83cc2355d4d790701b3056c8c0408ad94a62acc47d5675c19afeca84dff8224f4e9fc975041c74665aaf540e3e187aa4466d463afa5106431cfa681251fbc9c4bb419f00cca686ee386045c96ca1f17a8b6d4227cb1c25fd6908c2a5c70f8e3b20639c70510bb6436696b828d5e0c6d70a23af712680c145800e422cb3d3f7cb854d244040697e6b717d4a220be607ae8f3b09ab0e4c0845712a280f948d1c4a92e0e9b7d1c67bc632b9aa8663a04263671fee5cf2133696ee6b67929666f1d57bfeb687712dc67d60a6d8a54678e5913f987d8b500b8f39f5cbc20593794b0d16888431757da3712cac467eea7f8fbd90d03f0a030e9bc2b6db0688f85fcee9e710ad82ad54bc73886d16a865d46b6c2e341c7e1ae6eec2e98c5191ec356a6c9eee3d74263d946cd0069abb4d5776dc3a2de681c79ad132a363e93f5bd2e5d0af7c79340b6f304a3dc210158b1bb47e1e2b7dac620cdd98e5134e535055c5e8c3fb14f42b04db53c0bdb6502bef14438e56c49c536fcb528684ddac13b06e94945d67d88a2c038450f35a04187818baea4623d995cee7eba2353fe3efba57fa67e8bc2528eb72735abc5294c1439a3a4ef94f2f94b542412bad8c658785707b341173bc47551e0b29ad67d80ce0df46a5d536cc8b94d818e3a20e37395a372713f1ab91bb857510a1b227f1f10f60ee255bb71a73d873d9b17c56744397182c6e79adab7898c4e177b6be147790a48c6d34401c2b669882b6ae3cc33ab8be45313290824cde4220e141319a3399e0ed8fe763351dcd6aa2eddd167d568ba60d920a9f8337731fa54736c69109631d5043e750a530a59207981de7396d78efaeeaf7e883643c74de47f5153f9df6a1affb39ac4ff56b3d85fd44cf6a79acfc92326582bdaa93568bc0b5675aaf9e5d7f8d764cf68ae6762b1ee01c94cad9811931a643a8a53f1694e272408a00f49e40c8e1860a540750a8eeeb5f84a6f9e042109eb4094843c98fa8f45f58f97c07d86f150173c47ad52cf9fc80d30dda7008125d0b185c4e196249aeb88d738b61a47e11ca063f492337c95253414861e53b20e277e7ac6a0d1becf45c42cebba1cbb8db1b1bacd53161054be000bcbdc457d1f5d02c81635806556125eb66b4da4bb196645a321fcaf4212aadafb8beb229abeb9fcc57955f04ee17e067aeb352037e69c0b0805c705a002e7024041e315a2e4818888bf9e188a278c3bcdf29f4d9600721a038b451850870d122b810eb822ae661b7e66590bac71769c56f3ccb9055375799e8604f0077dad996a7c53d2ac00661e7b437a2fbdd34de97953c8a98bcea5b98569b0125fdf77bf32ca3642f0627b9a9d2d3e865eddc4da498df10eb89078be54b7d5fd243848fc74f01c30b910e2117db301224f1bff6340be6761260847b756326297c87f02b6d6527c5e4b6bc7008a62e65395beae6cc4301070e536cfac799641e164b072787eacca84471a010c956179e55e60a878969383f4b90434ef6777a7721f7ba5298a73e8eac6527c19d1e4fe2925a6ce24550f69e7c5ed5d164d7ca905e46a5952fe67d5a3b0a1f2b9e13137fe951d8c0183d4393576fafdb343e595ba379ad48dfb0dc8c6ed0664e3561bf865ded6627c8ddc215f130c744648d22a2ee49978ac748d5f992be1f29c243167b4c5c158245a04b15525003e0c0e80995a5d5688a6e35fbade661ced5b9658a946458f571016c111c4b040f1895308e5d96192df22561fc6ccff7a2529e72fe3114f251363a1b1c4f739345ce74266cb4e9466c65bfb11e3d4c6be3d3457c779405c782398c7711d028b8a71f4ca2662bc6198826477f406c20ac9a742342b8b8e87d73a63eaa7415a76829eee2e33a9704f62de1b8021ad724eb836d1474475a94b16d6f45311ccb645897b87753857f80e13622c7eca10bdc0f40f00b42e9709a239e3fec188cfe54f939df177b37583764eb0a3b260e77a2b3c56c3b0bf00b940ce6d1ea0250ea6ab59b79ba900f6b9f184b42b6cc1fc209993a53beffa5ff59dde4051c49077acd5915e6b7f27ff082a0b48c4f003584de6aa45c2fa60632373d4c6318ab463fb284d928f6a6f7146a0318882c9d72ccd815d805ec676a4aa56b1a6179b3af8f55242c3448b1fe85f1e345633cd5dd55770e19fb1417c25c21c0ab35ee111575a41f6ae411a4bf254fefc65ba64f9a5fb9de71477a471c64df2fdf0304eb6cbbd2f41c7bf27052370041188efa845b0fc10c2625920fc92e5caa9dc2c3b84305a1600dfaae5aa1c5932797dfe0f042c33302ab36ccb127a87cc3fcbdd90fa45c0459033a23414b950251773623dd72e6afdb818a31409d3916aaf3e2a88e5c3a5232df9580370796338cef6d1b80cb2697d71793e39e756d13d68d3e7bcb58d818623f6d93dca315f4400af50748a8daab983cbc0af1a17b0303e18d417b11ba39469344cf569b530e894f19da893357ca4d22a47ebdfe8f5d2aa0ea673a398704544fb259aa283a823bf1529df11e5f75ad4064b930c9f4180a12fe0ec279abedfddbae9d90011043aa8fcdeb7817568d77ccd8c128f2185b685bbb361efe5122487f6a8e9b0903e0ab784f085b9e2a1fb26d82924c87145f40b15dfa8f19911d3df14162cd3ee5ac1a8b96c67f4475e888e053f1ce3126b8a8d379c3ebf9864156b180f76fd66b09d7335dab5240b1f5c56fda050a5caed8141c37cb47be124297995a1f895365f353566805a3ceb695763bd969f3ecc4073adc718a4a42afa71f1792fbaa4c7e7e4e6a9442202aea00da540c1e1f748d49120bd6d2f57c1f31ed2255976332dcda08242817101a080b120703e5d889719afdfc93698fbd77275c01d59bd452947acf4e71c1349f225bfd0c813843b6e01a338fd7a75c8e8e7d0071a3713e91e4cfd9d185f0b66681597913fbd6a8cbfec6d8df981f2c62380bfbb08456664541ec0f6654a96528d606f56d791a0624801a1a6ce6b3c5751623d1e8d06170503d48a8ea05f499c7e5841f6bf972ee2fad19b4d30b5f4dc9c58cdf302ad7615f8f3ed0627b9b3d36a550784e614ee3a77149fac57ed4f572db901c80f4ed9342b60ff73ff21a3cdfe850140df71ae480b0e048b050f70e34810c365e89664c8e908d024546adc0d91f684243254fbc736d83b59db0f26a7ce81d6e93473671a339505643079de1bb1dc0605a4050782c5820341e289af9027bf55a73c6b7e3fb3d6bb7f2ad0b498a350920e336def2b7a41a4c95d1aca92cc2b57e7599235feb1aa73acab4f1dd0c7541a604169bff2efa6b1cc79cb78e2db90160461fdba08cd6bf6304501dd27c17a86ce38ce65b56721e22264fc0ad28c39d1479105633af5ac9301c446068fc12d98c7f2c2568255bf379a4100e74fefd23fc1ec86b47750ad67604eabc72f39e2581ab4091da4382954d7765046d9b299c3a2007b4b7195f526e0b8918c19c9b877368048114805390360a40ea9e0c6cfe869524856684d1901b71c42b6864c9ed84f9992bc6158bb8d0aea2cf278426305f0d1b7ed768d9aa8e6c3677dcaa6183d173a0296dc00190df15fc1b5c97b88128cf5e22fcaaa04da9bf3643e0516295da085d6bb1e7b5063ef5259a4046814e2425534abb04b630d6e0880831ba3c7d70383b65acb4b53888deef4b893b807966e81f36fe1178d59ff639eafe0d0cd7e014d151b831b004d6c3cb2fe763c9b16855367b3bd3f9f522a3d882b8d18f6ec2014177bada729633b03d5235562f7ea95d90016d273b9b26833267f79adcaa57fd695fd915a33c94050e9a31607c0314b54bb04fbc8faca55038f54947492da3c61f6794bab4589b9ad472b722b8bc161d3b481034385af3b767fcde2532138626b705c587402bc8e615b1f8363d895fa890da55bbe8c1bddaa01e8391f97a1733055bd63270d25b59c9c0c75fad1c3d7f5776b165e8a210488e9804bb9162ef35341aaa8a7eaeaeb7d70fd5451f5c82cd95a91f56d549ad4c19f3541f3d74cd595f6c294d45978a556601199138e314d1a5b4d47d9bb9abdf23d95c5ed6a47626d3ca5f8ce0bb5f84b7ab65016d64433fe7b9c58a7eed48736f6cdfa699dce7da90f72c3e1a78b458b1477430f98a9afe929d48c8f6aef29758a4107b2a69b9e2acbcf98d8c75b2cb0825a50c6e789e13db3be7a61f02e5b57d97c96526f8d7a1ab94aeee242a287a327a33da03b07c508c842d449d12977b0083e3caf626dda45574caaf4e79471218e85709d9b8e237759bdc4a9da15aeabd9847c2b92979a5e316e59f02d6b5add450f79bca119652edfb74e8916474945b7632206755d6982c38b17b77de8a6b137fb2302a382a100b1e080a0fce36121f3d47f7082721d1fced3dc42ec44d71c03edc6021bb52eab17fbec5bcef272df448f11d356f89c36c5ae35f0cba8e4d8b64263d8784e04066f6443afb464e0658a6b9013c5b1df591100382d878a939d1a940e7d4351552100a477d00a95400229efa42c4c2f3069448836dd9fbcbd81b9a198449f63e123c761a3821684989bd23d021307733e3bfb7b947612ac916c494ef2bf2107af8803394154f4ea8a2804513d5793b50d04773b0775334a03f248382e57b0f1b958e89c3fd638a310d029fb7744f4ae898381a5813f5d8dce759bcc66845cbf7e9921d705a6f2985c12a8c7196c7cd3a79b7fcdf8bdee646bb9cd97add2fd69ac15bc0c6e06bb65d5696a37b4e8d19aca4cbbb6da5adefa56313a92e9ad0ac85edf8480bdec19e2c8319d04ee5e0fa68c84e45063e881c6387a711375fdd1b7973aee94385a9e3e36b27974af1a8887ec7c164c92dc79c53011de99f74fc2b434cad4a7a4b3a49068c33f6fbb720be89c7847d34b79dcb92aaa49b37265c7709ff09d7ebc9966af8edaf5dae173b9c7e7d1438fc1a8bf197f51fd52bc53c1b8ec80b093c7ed5efe6c9efba60721118f576c5faeb306f688941dfbe038a3c4ff6ffa7a2a7bab99e597c2e941f80e2ce07f1ded918ffb803ca1f7e8b2ce162a418a3ad86cf674dced158d69cb799e0ae07e95a863594449c65dda69b981dfd3e78a4c55d20e8df178f7fa82864cfbeb6622f9331288f87deeafefc5177efcba63a299f6f7110c62affc80a7ab94176656c237d062da9c39dd533fe9e674c3110660efa187f018eb32e06179af3e3ce521fa39691f95fe643cee859190fc580cb3ba67e47f1cd450dee80c15257405c8a80c052efb466e2b4eb0ff49e0e9ecb2120a3cecb2cb3f99be6222509e66785f3e422d4e09efcc991b8abd45161bc4dbfca8a974608aca98a519b0708d251cf7d32c3675cf7c8a53c3a9e783c7c9f4a32f224109ea094d3620ccaf726c475ec74d8e828cf59962773a7251c0b924dc1dbf5568c9f147a596b375bb69991e5bb7e37d2f6dd3afcd131e42e1200998ad7ce441cfc7fc38ecf2109ddb379c91492b0a90bb6a6a2ac7387c388227b41b6efaf6877e57cfbbc91bd297834b5e536295eae56266b614a1b12a512e8e4a087f16c84fd297c8e0e5624b22103341ce38fd345f701c21d01d823c572be66896ab4c16d4dc4ae3d0eaa5fdce4e925fac7d29eaed4a035960bfee58fc7ed3354e81f86e7bd03484ac6bfe39afd7567418151a6c6ed6e72cb36eca8c7903f917953e704adfe9ca7841e23579a8210de671f41511ddd0f2f3fc857b3a1af974c868f5c89ac41d26ab0014896c1ddd8c0fdbcc53738c07afa21d5532439404c61c2385047f84d65d4fb2fa2519b1e7f83a17bfea474a8ea7fcafa54f3e22bf1d718c825520205b97cf90de11d4139cb12602651b3a7cc3f7248c7d35551036ec2d833c4a718991498e11b129dcd646727023c88db3d94dd06d417f55ceaf2caa645eefa29baa8dac33224ff9703010654a7bd7d82e7255d2d7e5a5f2e7d8d7b21ea84ca8cfcaacf69f4f97db54b18ccab973dc9dc9a567230748de75efdf9b36842153a194b2073ad38f25542855c3ff47f4faa58f6b75089590d875f688560fca8689ce6ab84bb90fc3211530e92dff18bc5bce8b25ac5ee1c41d4d3dd6075c9a2d45ecdf428370bf8048c045929b601856ed452090d350ac48fb5ab6974699869e0d1699d69e943cda3cf4378e2d1f577144300e98e5fc568f6a3f0d3de3d41a7ab7f34c23e57d5e44e31c38fb7a5a484a7f266f971ce093208f7db32ec6d74f12564ed1932da42211179952120246c584e82bc1ac48807e0abcd6d6be7081d7b8c208f2a20d8971cf9809d4356e08e42d5d36f9503e5acc857dec8660c3e1cb3736f30e1997e895c6b7b2b09a79a43c19bf7fe3830d51999fdcabdca557114a38feeb6c52ca5ebb11f9f3e24b166b82b10983a6869b2076a94c3cdf9072dbcb7302fb414d369ccd7ba10e20b3e5c41b606066099866a41b182568a6d56132f46e87e123f5e0d38ce4474365fbd044dedd0092734617004bd7961d754725b630efe0ec3bd646d39fb04ff70b72be589a9ea2beedac7729c0726ad9539ea29762b160090e01f069b7b4c98f486cf9d6835461c3c054604b19e2b56b365ab9291fa46560ad493b104dd2e4a18c655b9df4aec0f43ec9a7d61439406839646d00ccd83628c540cf0ddaba61daca59c51b0832b9cd6dc408e914d806a7002bd269768584edc0c2f408d92a5a889cb0e3c6115f8fabd021048ad847f768c09f1576a669f5dc0109a4fdb85ab9038c8558e9b22416a0af4d65096edd57dc8b58c6fc01709a2c771f09b1bce9ca6092f390152b5da766e4bac3d18397783f068438d485376ae648a751146760a49324fa1d5d1bab4c8be3213902ddd17e406ec7e4fbcb16c2c770514083ccccdc8bfb84992712277aeaed021e1a02c8035f0f972177cb6e8d3da13c4d271cb05193a2cf6d1b37a9dd3f5e548f917deaab00ae070c9c672dd647b8f8a1a6bb7ca8b64e98b7382a999815a5a3e499e95306a9073db2dbee51dfb6c01d7c77e8d741993de9f4aa9fa27177d905f244fb377a921dc46c5408d38160bf57cae99523d0da92d123eed7d8efcf9a0bc737fa08d539d6db4bda158904a8e3b50789dd4bbb9af309706120bd1d559c73a87223369bb34751ed05bf7ba17bb29c3925c91c5e25ccc2ea99dbe05004233a20a6af929acabc755b49c25faf5f3eb3d92e329c867ed1c6324e9fc140f7a0f0298f3a5779e20e227e29b67243d58af8bdbc8dac0b3dbb262132dcd041b425c2af431fdb05ad47414154b00667270e6713514ca5cd96dddac337045e3dec1f24f6a8ad675ff74113b8a8295178e390fc05195129af7707e19569898692f3d5bd15f89ffd257e88a493ef90820523405eb29f5a40809fcf1daa5789d08f931bc0d01dab493d0a6fa95713876ee1ea5c0ae85d41c38b547bb0e0df63e6c867f51aa1652da9a428337871a5b0380ba6f557607549608e3e53d7a4ee8c60cfee0fd6abba58a52c04a6c6253a7196d69354de7aed75aa5e03648fa69c2bc9df6fb2c91884ccbf04a44814076e2d110d60470f42150c2793ccdffd8afcb1f6b0308fb04e8c1599974599fb690a770c3d8a7ae9c2cb54b0aae4d6cbd08369143fbfa9e102d1b378708e78e911996f276b06449b343eb1792871dce959700cda88b219e3a6b4b958a1aea153b48eb6f2f580097ee16706bcc7419bfb4a857ce7041eb8e107c48901baf91390cef5a23316d063e377e6f5850387bcd5df07fa16e3bb3abc8df15bbe11df3204764817684c78de687ab027a31f84dbec207b8789d8e63fd685a91174dd16fbbc9b880fb6774ab685aa04a6ef41a5610d37d371876be261bbe071b93ec87ae2bb38a9f178a7ad769a63c5190a30648fbb0c0dbf9fc0aeecb977417099312264f17a33acbc993a3e1a0d4efcd88da7fc2dc2b353ca724513543bd0eadbf0578ba96e4bf9c5bdbbeca4ca7d9207e14deb6e9960f51a2fc442cad6957e62fce38bb4440ece194f66dd9e70caaee43b0fc56aa22835aa18a8e3771105e3be696399067c3a127b8e8fdf0847827ad04daa3ef5c2af177aea1259bd8db216c0a33c3206edc78852b118383ef9e5127f21515d1509f57f4f83fb862bd405aa1bc6afa826339f22ae2f150c9eec361f82f006bbb419e3b4276e544f42bbea09a5663d38d302530f2268c1864149071cff20bc975506c2869423e20d6ec3b4c173b279d3acbb51801da6314ccd97e4898557ab1b7fbd37fa1def6619488c78e05197f5c4df99b1cf4ebcc8e88037f85f0a90e2dbe59fc9493112ad5ff8bfa4167b4adb2984ad429cc14aa43ed76cc6173cf85d34849d977415f4f53795a0f15241fedf4725a95df69bdff4b5777aa59f13a12ce0c9f0073d4002c6489c3530310108f6ad17550013879add2755f73e34c71874a4ce3487cdfb04b0214a5e19800abd26a382f05d76bb51504a5710d04351f81ba9d63bb0ada3a8ee4db71a00632ab8e6379ccdd1da819f6a7b1c04434f4ae1de1e8f3a4bde615703845aeeb510402dc93e1d3629a2d18dafe2e2585224fb575abb0f4aeb6be84ab4d008266516fc62d69c43296d15fce0878ce5b7f338b29864cfdcfb8f3b8d03d4f5131cf7bb893d12f4fefebaf48d78acd7fcd794ee22189e1cc656e857906d1d90603e8e2c03766e17483fca3dafe430ad60357d7bb0db4bd02ecdc6c49def3e6ab68d4bc025137487687a646985683b5d8921d61886827f7d08fedd6373599dd99259bc48add0aa4e81c867fba37904cd9485f7636b60514a8705e93f066d6f12f3570b5f096ce8990f37f1ea33db5f1b441bfabf627d72b602924320047a044edbd990b20e2ced24d0857caa36d9d02f088240d63dd43b9ae0e1d51c5b114d868b2ce2fbc60e6ef2f820320c3f77916512ea819ee7402e99b4ba6aa72e622a7996e4c720466435bc0890bf7dbf86fdaa33fbfa7585f4778753569723e46303605dd66303d25784327decf53de5883deaff1c75ff3d70fe3c76f83bbafe1cfbff79e25aed78b1542d821db0b57f983989403c5ab579228183e2715bb9725c1dad7eb5ea2b90c7735966c730b050a3c5c147495807aed2876694897d12790cab7c39cf253f6f6887dc462ea6923c2c90925c604a9fa8cdce03613b93b3de372305bac20e08b24d3ad09e0af3139645a15a779b28c366091abfd3958b576d61fc48a44915950c0f2bef1ccf07fc678c8e24baf49d8cb5509a3a8fe13b867c77147a9d7d49594a383d4a6395d6836d7089d58b29e2b4f27227431e9e11ed276bcea79f28cf3b1d94e2dd4d43f166f908e7a7274a9f6af99be1d4163f815e166f4128a1b5529f112a6dcf4089a91f1c0455135cc2b51e2bd473b5df179e18dc2bd4e720f32658c1f429be85bc1506c7e12825380309c9dadcf8506bd959c03349780d59c6558894ebd4c95d15151c0b400a3e3a83ab0433cc4b8d6c8ff35ff949d86043eac180607c1cf0e04be463ab21cfe32058d901c1cff815ccc8e2f0f16c85887bc323ecb3e1ce968a1b04b0b66141a9ca32c3349373267a89e7ad825242feb5edf306c96d73e651df3a4fea2bb6db37331a6ac24071edf3a1e797c8c0e9ca5c1c7f3e5f2619844b3adf279465ce21a664aad8d26c244748d6be926fdb723f199d4fbdb82c4526b1ba7585ee5f69b7c0254a2a293f7775e85eb1338ca813eb35d96e3dc5402086bd97ef9b383c4c918b609c31530bdd5af317d1257ad578af42915d12e6e50825a58eda8a98436c09d41fe94f265a444d031e90dd1a13f5dbc6918680d0936daf76e4fa297ae46999f7a16ff466d8e472e70b50f5cf1a287d6ee336126eda157bf7d78364bcc4e31f128763e855ac0de2cf47353b059c336a0069deaa84cd9930da88b8ea3aef544628092de0cd874844537daa71d6ae5b8046ca14895631907138fd559f57914b702879c9699881be3b8a8abcc6b99c1ed068f691ec66482a131698959b8272c5d6025e35d5735b38047dc6edaa2938c97d5624cadea7d68abcf61c8cd8caf21fef61eeb3f74dfd3806bbe425d17c0ed5261370c97fdf3dd563ba871f4dba9ed4f5c0793e7b4c56c3340de252cf63e58f5809aeadcfa0905850c373cadd501f9a518f4f0efd3ebc84ef9a28813b9ac52919be5478d833bbd76fa367387248e2a91cff45664e689c5da1f60ea0f8c2229aa744bec767419dc0a86150c575ba416b3b0334b5ee2d4d0434a9bf5c71cd96bd20620d29259afaab65c4019de0c1e8b09a0b4eccaeed8d943ca1e2399d06e88e5b56d27cb9545c5145a688938f7c4b5941907edb32f62375a64c0c118473cfd692a369560ae147d66a2ec0a59fbea460735e276b9598711dafc7cc9df2c37600ddb10af1bbfe9e919a82a3725bf3cdcc7c29ce0c37fa588eff17a009fb771016acd3918dfc1b92bb6dd201008c08a59a4fb922e1b7db26f6138f433d61d6ddfd2c9254b8e7b75eccf49a494661c89997ab1220c68ec4fccb152d9d66849dc416368aa3914aee0bbc4b1c4f3ac6442e9b02ac77ea65b1ed770602df3b4e5df0006126068e9727b6ea4365f95e7246889eb0e2c6403ef857af642d13b8feeceff2f14523ae78b5ba6b31affb3a2f85709e818d6646046e87e0904b6dfc204f793fcd7f541487fd924de3bf293ffbee92360d269a27dbcea413a6ccac2b0c1ab4830564646c594853023bd3422ab3074fb20ec287842553a539554e0c30c455b71ca73ca7e657837b0432cfb79a1a4709a0865d7d3444ee9ceacea7bbcca6500afe77378ec89969893b7d3c7aa03376d512d93ae0941136d7c5c231d799d799c156071eae0750cdc07472d6db1499cac956c95ff8ab9c46d46fe6c39165466adce0359d1588e9d763e189dfef4cfafd664d72ab5015d5fda401af2230f28597f868c600fea6d85be5a72d9920e8ef975a449a6ade7eaf4e058e8e1b9b233508adeab766a86745a4bc5ffbf93f77bc72cf8e19a46c8f153695f72068e24b645ecad90def88ed8c0b395351c0fd2e2016d2ce1dd4fcf3867bc4a09227d86b5528282e381090169cc1bc994426c6ab67e10a7e7dbf695489d13ab1c1570600db9e698a14d0b19020a0e147c2e9ea55a7377e751488b0cdc915ed7c82488f3a2f799944768066c5556c67e5602234d96601d054ee2e98860e5c014eccdd57c464954df632e07c6b4c74f600eb04b2ae879c208315a0a88fa928edf73d2b8e75ca9535521d1f48b2d909dbe1a9cc7e052a6bde73776f4ead567681cd07f1c259622ad2393dd99da619604510e6a8a3c58cb891469e134790fc6e0aaecc1ea6d8536f5576d76bd26c776dc8a9f330f33d0d88840db09e5f5cbd9c02e042176e437c379be2866b1d3d73fdee0ecef3fca72a1011c989d05654e26c7e31af2bb6837018a12793676092e20eefca3d69f5323ae74a44f9c18914b62ab97464c4adb2be6ce560f673288b406a4be5b05ef4cda93ff84fab44ce5145f0b357f53c11ef05b7d0192ff727101f71877a7f882b622bd292956a5c8bb15077db3f199de2e63f18a607755a53f37d27ec3a829092be347bfbabeb50fd163372b809b7fc3b5a1b7ffa3a8f1ef41a18fddffd2b76cf4addbce2b8698a937d7f1d83eb1a389efe0abdf98fffdcbec26eaf889b2b7f379b02b1f709ed1996eaf14ac8acfe04506cddaac95e08aafd785ac380ab9071a264775789a55d6860edf15ce5ed32443251a4a41141049af7b0d66dd300a10cc2224ebca0aa1207b2fe0a6b587a052bcf060aac6d114bd5a2608842da2281c50c0787529b25b4b4e8dcbc7277afc09d2b0e379320587d52f08314f7414f2cdc07ef9b03305da333eee294cff0e890cc7c64c55aac56eb0ac6f27f6feb0bd2613444529484819afb853449107bdacdb42acbcb5d6c64131426b32495db8bbbbcbd6cbe69ab59eb32d7f58ab7ede6f1bab8dc617ddab73ffc890b7eab5e2733a1f0092f134a2e774c83084b1110cd92eb4b7cd5e17b846aadab5b1678b9c91e5c9f7e810e6a119ea6d3bc41c0bd2dc92b0c6f7558450262523b930663eb52fa8bb7823d2aa501e7094d7dd1cfdd179d663fa75c21dfafb54671c4a083c6e3b9e813feacd887db1d527acdeea73f839ccfa37bf1ddd71ad7f2c9af594efcd14dc6b815af6375d6a757fb36ca3e553f77c8d4169cb3289307ba55e17dcb1f5640ff5ea8d62672f8ff610a6b697e8f4dded192dfdb86d76f9be1a9d5aa1c8f7bcf4ee781078842523cc7c2b4cbf0abc95e01242875a72e056b6dbc51410e5d11d04e249acea0607b7a725f767afa84e544fe71d0dd1260eaad9eacb16b5450a325bb3e989b56e8e695776365b993e260f1cbca8ff4c1ad5c8a8e695792c251ba06d779204821316e56d8a247b55d2bfd94b1dc51d1460ac7f9d23e01869093e8a4561ff237c7825119a3b73583d796e9699def61cbee1d0b050c375d88f81c98126e792101e424ad976688cd9916c0d3fac6b8e0b870cee63c71393dbf3335bd3d91bb36f723243057a7634790a60457513e7c05221871d84ce78daf566a71ea1fa6c9608817996a6f306c33ef5b60aa4609b86a98ed129a403e82436828350dcb938fb7d1a1cbecc1d4b6730494811e63be96a898a21d3d0ad459d08bac975c222c26c92791ad0448fa4d9aae3d8fd9da8ae5be27a6827d20f70783d5a13e829ae210525a9b220a48b9fc32fb12f5158293ec2c5a652a4e32623503ecf0835b182de14133c40519c007e66987ed06ed9b801007958eac55b1a050605a9099b663c09b05178a8f8885058ee70d0678ba4ec81e13ac70e46bbdb7d4acb98aab240d44a5966ed1c31dad7a667c4969a0cc02b3386729bbd84c37236935db1e0b0749a8a20e1855aa32fbfbe1fc483d3039776086f0a479a998d2fe9bdce367d9b1ac6795f089059aeb39695d72ec8227920cef0c04eb1d90fa8b41363ed9048f16c86cd41576006ec389c8b66822f2bf9aa1d61284835b6c1b662c685c0bb520684a1ad56259ecfcccb7d85416ed36691a7ab497d0f50e00226b97c7d1c31031909b9346b3b4b5ed4ccbfd3f174defe4aac5a088999a206b8fd0737a426ef945532049cd3ccaad15be33ba0df3c089c380fb6843749cb80002fd752ab4168412d5fc51b96783294167f29a1f85101e42c93cf1b9c6bed214166cc836c04f70aa9ec9b9e27d46855ccdb6e58c4d05d24228309d9e5f4e6ef390d750e454d3e3030dc8026cfa4f1f972a7b3cf108224ea6225607d13ef7e62cca420fa523b166d03b51f12c9d9622571d6948089208c16dbc46c9101083e251ff7bbc4c76cbdfc7563a70f086011c158905dc5b334d1589a142ecf902ac60dbc2923d127b75aefbbefe1d827884dd7a721a4c1cb4088803710d553c442b1d4b5ac732f44b277a364d709b666a1a40f39007572e3fe44d9dc43e58d6424a3be07f62841e3d65d34b8eb331d86d6af43167a9c0652be245321109a8d60be0abc99351b5c8fa1bbd9d25805ca1d0f76633fe199a5d05fb2cc280ab340059941ff92088c60222bb243b6fa7906b922833f261d070ccf3f67fab450efcb42cc3074d82f23419eff74d7ee6d2a37686c1293d55a5eec9a0de8cbbfccbd3188d5042011b9511fcfc64baf3dcac7f98db070cf3983a7365141369c74b449822ae6a3e0b6fa186ad910b1bbcabe84e18372b8509d8eb3e86611373088d2d66cc051d15da040e34a3f63cc657e355ed37552060ddac9dc07193fd4b30d0eb49ce2f6bc2c7f6ac070e204c7a5011fc153bad34613aab3a7947124ecc8bc965ca3096556b584087ac26d04b753b3d940743a51c16caac635ef16b11e7c2e312fec248408635845e88f0e539c2acf387c7bdce51872fe7020daa1d86bce2db23d825e4684f059dbd435235908e0333c43c60d033d3238fb39666c3b712aa25b0c1bb2091421fd3c9453b6975461694552a520892afc9703756a6ab0de751164abaccaf0bcc5d68b1203325231a2f62c1f92135eed3077271a5b19f1b84125aa38a06f2805eaa2010f77a40d92e79b39fa17c03ae00e13b93c69da4ca204f5ac020683fd40ecdf3e93ec07c41ffbafef915c05f90fa017e1aab1ade28d866a4a99c9b8de6e52b2b608fb08b6c9e1cd025e920fad5706910d83b9449f2b8906e6e4bd3ea63b2a1916f03984f1ff8bd2c8ad8e1bb4cf1660e62210aa5d059a96610dd9fe03b5610d8484fadf07d1e1cfdd595cffdeb412bb011bf2a9c73d0abd5bfcbfd1dfb9fca7e9189d7bf77367c846a9c04b26417db7de136e9a1b1258b6563e7d76331f7286ebe53261eda52ad4c36c4aec7d8ea0e2481e6d1a0c079c3dcf8287aaaf8f4b6be981e953f713a26a24e103578efd813e2531d225366e09a6d67dededd2b65dcb3fc90c2787673be199dfa326756b1e812fb3af2f08389d86ab3d9b22e5b4e56211ec43207b5a252e61c68e3647dbfffb8b123649579ef43827f2c86e9b5140f9c7bcf531863c92b13e6b9940c26ecd494de41943ff4c3cbd8f241387d923c0286c23c08d98242cc250db681de56ec0a7cd0fed158ff6f6cebf958db2f283c9017875381b9913cc125fbcad9fefac3e666342f0ac440c7b62e688a16108b79804c14f5e12b55f5cfe1db84ce2e07e6f496bfbf67c1a66b9a0e83f2fd93f0a253795dd6d2016522e68508ea8b13f132712465d7ace5081c4c606eca92cdb87cf59df3fdbfd187af5ce1e423492a74f3f721a1826d193f48efdc22046c510b65612b70c04dd194203953af0defcb220abde505940b0f1d00f82bb5ebc32c6d6c0f64c535595c417cb0b04092057efe9cdcb2e01aa8b4b9721352f7e2abed6c123990718fe277725948a64b38f1373a1e20991dafb314d55cc457af41d4bffea656e9e953762f5b1b7f623313d6adf56f82cbf9b5db683986dfed960e4bff07021d09bc25aa554aa964c9e9203782e72a0d3bf4b625da5cc708a9b47c64bd41cd2d02cd700b78a19028e6384145c7fa2090ea60c591ee288d3e3c1daa4bbea54fd4de1354dd320d16284f3fc73a135c8c33fd171e9733b5d9a0c3a48fa91ea5eb808f6ef695826dbaa5fe3f206672c02bb539a5f15f550e7fd2eb5e325fd7d602bffba54ecac155feb578816efa57e5fd100319b9e7b718f118f337ffe8935950bacf73132f75f105b82bb247aa95351c8eba423d170b76f7b6e2907edc14efc175e27fcd434b9c72000dc94ff9ce9118319e62f39c672ff6e75ede825ebfbc8489b195ba87d8a798e067da6f683dab2c7f197b93c57b2db6a1ea3720bf71b02122df0135ac154f873ca8c2f971c3f39640c99d3ecdaf0892f0b475c555863638c0429e5b5930d103dd977286720acfbb330be6c820e572f135037b5aec9178469f0fd2a2554e0b6dd01df8ae6643dfdf30990637cfcef62b2fb1757b98dedfde0d40f5f262049fcd9242a1fd4398fc89ecf9598a8298f36996d02c641618ac838a99c97227ba74407c68f3a80074c6e586386f1278e5803a1d8dec2e03a8aff3061452cac13adb474d32c629b3c3614f411e3d07787ffda8f5bc74b8da69106f78cc6992d9d3386e3454d9a8914ef193f07fb25e05bd871fa6e368314505dbee3cde069a2a2b6b95a33e40f8308dc2c9451c799a6c622d688c8941f0febc5785ddd2db72737c46d0d39827f0d5882f56f12024a1239643a5a4cc69af60551c4d8cd9ea39955232a789166fb2bffe8a0057154f2dc35415c17bef67c0e961381fdb11b9b1b572ede0106bfa8848a35bb33130f97262cfc48c69ff240b2d83c3a904ba790ec7400bb3b9937166325710a05d1e1e4c6ae6cd2399aa69f1ddebc223049764a2700479ce1a682f73a4e53d83dbc3f5eb56232f2dd1087893033445033ad226945b305855550779c43cb39cfdcd3ed39e09d33ca685fd9f092c9c081c2801834a7f3811ee30fa080a9e403e742c8b70cce05978308a3744b6a669c2f99e6df734dd3b354dd3348dcf92d63b695b57f57ddfbefff7f6ff96526e29e50e2d0936094a09327f83df145184d7f06ee8808029823e265a569acfae800414a1430e08c0e1008fea6e7894c775ec3a07f1b7777bf0ace7fa40115a9a1f7d86050859cf08adf2828dbf61cbcb4d5e0cd597c77c2a545f2f6ff11eaebcc670f63a43f5d50ad5d76b743c3a6996e40b8f3de3d7f8f26cda604e9250ca722ccd56d3149d3475259146332f3cc7ebd801739b1ffde6731ce75f2a46a010f8857e8d30d2e467709987e1333fc3690ff3daeb38cdcbe0393e08aff9d16d5e8ef3da5bbccd613e86bb7c8ec7bc0c7ff917387cff891042b82c7de19f3345d0c7c40c32f8ccf05496c6d2562e9964bcab480c1b2c95f58c085e158f375cc137c15d35a8aaeeadd679aa5c411549699aa66d84b5ca12fd729887c97c4ed7f449de16b96af0ee5c1587e3b9399ca9d3dd1e77476afd7af3b222420081483d270be2aeead383692123fb09572e706a920502cbff707574c78c8183232f8f5d86e6662b4e51dc155ede001ef30570972780c3fc00bcc50bc069be86d79e86d3de069ff998cb7c00dce29cc4e20c40801a9f9dc6cb7e6c7899ef5d411487eea0399407d5a13c4eb151a3421bfbd8bac76c326d7a053b9936cc2a4d5e6bfe1065dab0ffeab277b1df0503446a81f0eca64c9efdc1b31f1bf4bbea2f655a21288446d6fca1cae459df6ae5fb5bab4da7b788135db15ea5aae55ae556b94bbb95bed217b228651e26a3e66b709b97c16f9e06c7791d6ff1390ef32fdce5478f7918fef22f17e275a0de755c26c314411f131478221cc7db9c1d6f5393672d1444bc858264c60ad9bbf88781e401e0383ecc9931c47b8feff0ac061968d09961b5faf1f550a9d4688442a150a8179ae3d1a13caeba570c9ce1556338ed65ccb07918cebf601e46ccdbfce5948308c2d3f105f3a013be2128b82c4682a2a86ec7a33bd7e1194feeaabee3b860b8b25af982234f6f2db2f4a6c6d29be7d4833bf5e02ae71a73305ee4c8debdc4e4fb5d567bbefc4d9bf6376588265f830c3338cdd3a0334346fa2435d030830c3a3364a4bf923c0c06cb71522d4b3ec75f1e7bcc8feef2da611e06cebffc06e6352fc30cafbd8c99b7b9ccc7dce4b3bff033b84c4f11f43191bacb3c9c2145ff67f09dfaf69f61a739ef2a92ba82572de294e17de71d77d52241280cc978994fb8d2eb29cbb22c4b9769182f62b0f3e524242a4a93a7c165fe85cfbc8ed37ef4dacbe0343f83e7781c4e810fc277fc0d6fb179ec380f6bf1301ce66deef2ee311fc35f86f00abc0edf4f5a4b9e27849308e1698ebf7b4cf794f0290c99e44c8e9821237d922021de2593798c86d257fa82c1195e0654c27b32e8b8cfa73023759f8cd47d69eabe4fdd4792ba6fa7eef3e01a8cf1ae2228ce06e3c54832928c2d59ec9587d08123881ec9e832d3a6711efbcd8f6ef3da6bfee53b3e08a7c0e3f01cafc3691ee6339fe3423c115e811fc2f79b376e688f398987393287c9f266f96d95736d215cb94ef2ae2cb88aa038f4c6a3443c3ac4a33a1ec5f168108fca5cc19d7356d6fee6bde69d4716b4404bcab340ea3a3cbb38a9e3ae7a6d52cf5d75d50b57aeff5ce00caf5a52ce906baebd8cf6325fb87251a9d4088542a15028d50b10ef0ae219bac3a3e3f1388524ddc1a5a6b5b172ffb8deb8ea759292d79e7e0cbe5792bf4197f830f40f83fbaf2fbcf6fd7a75f9308890c87a730557b953ee9a98b655ce248877c1a3a901cfae9b4061a24d4cdb56517159b5cb7c8ecfd41e3bcdcbf0968f79cdebb8cdbffce66738ce676ff12ffc65f4fd794d1fc7b8c2f2cb871c0a53047d4cc0f05b4bea37f561a92be8739a82977633f5569d971179d98c9749211b9211c3364590091f8c344d3ff5f4d64a5fbc2b98f3ae2231152a4cdbe8e44b59b23acebbcbde05edb19bfc4af33260b872fd4d4990fcbaa987e4d76b2ff391f5842ba3d15932f54aa65ec9d42b997a2553af64727914e70ac6bcabc8a32d1ecdc93cca1362277914e72a7255dde25538ceb3f8cdafb8cdab78cda778ec5978fe154ef3285efbecb49ff9ccab2ef327be1faf25cfbbe142bc57e03fc73f05fe496e784c100e83c3d3979417847fcac3e1fe38c69545c54d3d976692bb498434932342b5876ba50f3721acb913a110aeb90fcf8097e643262b84348742a8de1655756fb5ced3d45bafe9476779d9cacba4507919f065446442e1ca7593234c72f7faec65eacb743e77c27d43654b8baabab75a65e95be5d6eb2ade15741551732aebe9eda68dc4c959fed86a49d2db8e11c78fb6adc2e48541bc0a283c886bae209e5d1fc7f30cb6ac286eebe0c6abe64a69f238cf4c1ea3b4987cc9f38070122052579114d3865357d0154499cda83333ac956a26859a99118d7bfb4af2e12afb708dfd0be6fb35a27fdb538cb882a80ff59165c1d79beb6f3214dc6432b8a1422dd908642bb88959586faee058fe4dd6819b0c04379909d6eb84f5e60ada440f6f904b1bfdea714471aea02bb85ef1ef13f867bd6e92da21816b45a0c4de015ec18e01143f3109532fd43edc23c25ddcc32cd83f1684210e59d05a45ba189c53c02cd831c02cd84de09da8e70ad98a223dea1f59495bea6fad2cf157ab6ac5e20e67d96aadb5d65a6b3d7e98a3b5d65a6bad750556d1c315bb5debb61b8f236681f6ac8fd83bb8b4ec57db1102d8176e9d901ce42048906c05279c10f2031ff480089b079b07a1d64ede5845d1e8e5ba77f9a2f9c28e1525bd87918f4e8e461f78586fa1fb50ee18d92b039f219f216b9a66132b9f934f132bd5e9e4d3844ae5a17952ad3c3455406c4dcaad4fca59a2e9a4cbca4a6f64ca34d3546a9a6e81984d9843664ad5848feac7f466572b204dacdcfaac5643ab26542a55133eee530e2202e127eecfc90527b7404ea9f5c937968ffcb4f293dfb29face3b374bbb4939f38bdb9ac27bf293fb999aa6e2a3fddd251a5d487723d478e12a53796397293e9e27aa63d94487e9a8e42a53797d5aed21b7ecba6269ab035a4d347a6e7f51ca9d21b774d954c5b4a6fd6673d79d8846d39913ffa6914c9f4666d63292dbd78d51149e210d71e4ccf1e9a31486ecfd3ad694379e949a793ed5472522a5e95d7f2d28bd2f1ce4c1f7d765ecb4fefe292a4b3f5e39d8ddcfc6bc6c83e7ad368678952e4a1be21aee3559bf0595ddcd52545b16bb09fd84fe03c0316106bed6214a7107d3ae56c22ed158542162fa07ed7ea2a47ca3d32628ee32651fa5b2b6a8b4aa5914e533f149ca7a9db343885f60cb60c48e5fe299556703a4d2692269d9ad513031898cafd82d3fa2def72999ff1d9d7388dbcae3ccfc658e35ab143c29d705fee88969b7af3564d8ae24c70ebf55b49919222218b50c6e2654456bc0c88c4ae4673e288dc2b4553583af328cef5e80e8d47776834d425c6f70f4a2ffb61214993e93ccff33c4f3c501cba83e6501e5dd80203db58469379128ff9d4615ef59757e134be86bbfc89b7bc89b37cc9caf30ee0b2e7d17095e7dde03abce7f0eee33f38bc031dc061343cc586a3dce0afc731aeb39467c3d1c731aea9e7c731aeaaefdfa599e04c2e10846b3ef481b066c2011dae99e44c7649843413248286828282828256badecb802a5e4644163c79d990c9054c70262feb2979d9ce874c3860923341c26467923e44fa10e943a40f913e440ead97e4b7956ebde84e8a6ffff61495d1e61bfec428d7c675948be2509c0fc5f9505c6eeb80c6d72ecd0a5e0d87d548d11d16a62d96a2381457b3a2b22265a6aa383129215991ae60ad542b52a8152b60345c16edf9fc781168cf0a70b09399400659407332108c00054e107269a2a02122510ec5a1b82040263d6b484284698701aefdc01422d0e4552e5bb14a31f474a92933d82b0cb25394ce1195aba856ca49d587abea4dbc849d20893d117ae21b05e5e46475b28abd5d55143116bbac95f92e5bb162a8aba51a21c94c283c74ba51749af1e472a2114ac53b29978a59d0cb07cf58ab9355ef05c3427808cf7038c80497d3f11077620f0e221922c55057cb49d78846a1b050505cbe326dae974b556331576cb5623939127b1c34240a200ea254a47808cfb0aaae56a8fa61ce8ab54a7190ec144bb110c9a2aed4152cf552a53e75d78ae22e94131455f5e1ca535575c55ac5d098ce2d4b6435e2aebd829297d8137d2210d1053f3cfb71551fd885f57a620f67327b1128e5451ffc238a211f9ef57090d88bc554986432f57467ad66b1177b3fae2a43e9ff2850a435e5c5a13b03820a89beabfaac862e4d742df6449f0844fc21f6ae8a5347bdaf5e64bdf8430422fa883ed7480b076da15c598f638f857014588ac7413cc3409c0e61608a8ab59ab156ab14d6aaa544bd7b7eed7a1e8ab39ea7b65228be4f2a1265640406e5c39c911355265bb156620f7d3ce4aa38157fdc19c641e28f4b135d8e5df4b956ac550b1a1bc143b0100ceb79281e7bde89a7bcd8f3e199cfcf13a80ba5ba6a24d54259adc45eaf87855e6064f0102cb44a71100ea2d168ac958a9642d168eb59127fc49ef80b8344d10e924b4315c81d2e308ea1373665ecf446b38e3e92668c71dc576bfc591445acefdde57ed168efd14551aca36fcf43eb98deb463bfcd587da059af8b43b03de178b3b6c113eb3d6ad336ee9d73493a99251479ba6872515df39873c6d9c7afa1344b4e66d3369a4e1eaa85329da6d299964ad366a6e1699e4e25c7241f95d290949a6239d2a44e47b98601d8208ac4559b30843fd8025934b25738f188c4a71326cbadf179474261707c82041e0883f88783e020b69b92fcc9fd53ffdab10d614d0c85c2a110180645b73cc25a4a4893b9182b51ad4c602ed3888a17aae2a2d710d6566ccfba1d07d98f85009ddb6f38c88a7f291632d32c949bfc36fd046ee8700d8f24e96d3ccf569ade5afee9cd55150791179762c642b0cf79cbbb938bc7e27b449f38c9f23b4b601f2c8e7b58b098f5c9631fc63f5884c12e0bee21ee763aabacb192bf61cbe9aa1743f5f4d58fa17a3aeccf503dddf5a9503d7de45fa17a3aeb3d5c39cb503d5ba17a9e2e965c2c3959da599f2e965c3cc7130a0f9d6e14a1663cb99c689452f10ec661df2352559e9ec4f3abc8beec937f8052ad22aa4d9ea8d0976347ff1279a517d87af11784674243c0186417cef0aa2622500ce2763eaf7cd6992250b88259657e1212cc4ba62d5d5ba91bc4f50aff58cf3bf99da4467c259e7c9833120ec1bc995ba033fbed0699603014568a4248488a3b749e2ed88b406210518828240eed938a540cc2422ba0d409b555aa97eabc4f9ce6fd699954a908243bc152f107b4da2e485d9f942aa34c9b86a588e47fa9f2bb584e58d2abe3dddcedd9ed7ce6ed5d15f756fb84e3d960ab95bf65895820b04524ff6a44e5da4ca0256952e647ada88fabfeb82af6f901c2331f9ef5b86aeff5765d791bc4b33f95b74350bc5ee3789ead96bbaa8a19580478927c7cb9877b0809eac1b3ddda6ab9af2f2dc064a12c16cb6fb2412c9005dab098872e93e53f9ff8f9d93119f9ee214aa9ff619f773dae1a4bd19c5128adb244643e72d2a661fa2f0405fbc8671faedc73559c7baaa04b137269435c70556c7d7cb60301bdc8494b1292e45d9a9ab6dc937d5c15e71e629a77574d2953d7ff9edf5c559f579f7b641fb977d5dc638184add4fa7cac7bdf8c61ae2250b9ae5e04127f2f0a11870ce19928846741ae1a7455eca990164e1faef687ed892c0fdb03fb28316d4f8fe551b981b1af5e07b627402e65eadd5b3954719ab9eb79b99494670f51be5369a81da5653e336db298940f73642a4c1d318d21dbc0abe1c78399c355b10a1306bcc6625a85695355d3b6da5bb5f32ec6f56290599a7bdc19167f238e51305ca0d4d9ccb4ad7c6f95932e27d7dbc0521a51f496ceab1783cc56cf9b39ec79278ef259c5e71e9c7b78e6cb4066232a5c7f2be5a97094eae4ec779698a9d2300ba7f5198a69433999b255a8adfe89677a66f22c14ef33b32502e119f6713ccf5b0bc58cd1b28abf7d83131498941815a099d58b27f167da54a948e4b4244bcaac56abb156aa5a0a55ab655f512751f47c96c49b5992a35bdee59f153b16711021b64733018220b667b483e4d6a084892e1c79e446d25a710927760f85dc205715b26fd0d6c106b23b8e3dff84358b01c79e7dc29acd800580b046f408693cd076708063cfba90b600c79e73218bdb2de3d42c38154424ecdfc8013ce6f08804767105216ddcf5e0d807c70f706c43162f38f61bd6d870ec62489b80bd40486b404893008d018efd15d27e70ec1ed222e0d84b421a04c6f406b9423270eefbbb42ae7a5db64fe04d5c021fe33f3c8c47e05b38045ec61ff033eec3d3bc87aff9ed69dc017fe33c7c8ddb0c7c0eb718780ab8ddf91d16f80a38102f84db0bfcce1225246e8df89d9d168f79035e5267808bdf18d7f7053c8edf1857f71ddee6025d9aa967eb20a49992d83f5c33f5460e84355313c61cae9984c6dda59980231221cd6485fddbbffddbbffddb3fd376003c89c7f0a9c3f0efebbbbb7899b3f898af70594992cca58b8bcbcd832faf83c77c0eeef2087098c7c15bfc017014e0b44f80cfbc7be5bf4255e4e65b11054c9fb5054e6b5a6dea9e9c6a2c051eda22cf4634e2341f8b3fc2f2e6f58ef4ba27095a944deca468fe356da3741be1d43d463145c289e8e48ace22eef1f1010873f44ee854f3ec8999897f7e34ca114eeb3805ab983631dd4638ad8b2da2ab983ad79a36118a13035931b1cfc7624f5658466d438e368f7758a7ebf58cb71cebc62e72bbeeadb7d676d45ba4310b0a895b706a5f29c937c56c3dc5b4695285c5a524bf0c02813887713217334b493eb9ae8c38afb0b88c827ebf2121a1984c84b5bc8c46634c49e2bccdb9f9ebe3f301e1d9cf55713ecc29cd17c315932cc9d1f88289f9a5247fcc3025f95bd4168d29f5ef0aac18c7843297a4cb54c3c494f6cc3e53929fb188451bcff8ef8fdb0bc3179c8632a5a881f356f2912fe6e7d9a457876736b9db9302bd8b81d73d043d676ad8858e607b8e4edaf0b228c9bfaba8c5d12ec2386e9d8e806cdb476cb924cd9064ef999d5c916d3c5b22ecee10ce5bc9b7967c9776cbc11cb479dd23e8bc3bbb8b1b59a2631105eb4deff04def4a311d01ad684c149770bdf9c5158b79bfc06c9bdcb3cb365f127267d7f3ae9577272efd6c915fd0861a26666b9b1bddd33d7a57faed17ad39e70c33c33d5dd116b58de837e24838136d4d18b68c7ec5b1f4cb7925f30902a6ce2986aa287abbde7c9863f32222160814d7f0d2c65414539280a41f907ea4c63676bcc1c9bd600e9ae48f2b4eadcd0ff16c1013678cc643dc981813bb8c29e302dd9fbbb58c5e3db05e9fd13238ad0bae7a7dc6b43e3326765a5e47adb5fed16a25cdc45e33655c71fd897650ad6662a7316560dbf3adb7c7f6d0ac28694cec2bc6bcf39d77bd79ab3b4b9ecd95af91780d82b0a5c7e8b58fde9d5df7594f9fde852b3e92ef464ac17a7d057616e4db55f4bc1b1f8d38a51f9edd92cfb65cd7389fe3071bfde3ce6c8d068106a29160a17742a8d9baa6e645469ca1d9d83c0f9897039e5dd729386935129004b4ee03d22fff8c608182607f76607d6cd0c239699665344f5569cdbb5ac98767a468bbc18620bc6a8db52659c503ac380d5744d73b1d621c565c724204251faee95d38bb367e5d2311d66cd21cf43498c41a1c400d762df970adf40b4b3f086b19df5aa522acb7a484f5ead24f05e1cad54dd8d9d5bb3b93c28f094046c83e3b68d960bdae61b0cb59ef7250b5de7250ef82a0777ad7f4ce8a58939820f94a42a52092074a3f928ea48981c69c315a61eaf8aac5cfa12834435554452f01c155fae19a2a9ce93649b7de140716a68e8f35a64d845163baf8b1b1316dd85a1755511ae61e36a62ddbd8e89b22a7f5bc967eb89677e358faadd7714c9bf8230921055d1ac62312708bc62705917e2421405c2bf9ee88b4aea68d84718bf4bbea25af59f295947cabe7221a97832a4115937e2421a4207204cb601953bbe85ac4115bbc5ab848b9b0368e6d70d8fc0d67a2afa6ce68738fdc63dac434efcadd7a3dc71c8f385f8c44e38bec349ab0642299a589348d44a3696b533689f8da1852f61290c5b53548826909bb441886611886360644b420aee14806a3cf8d6368fd62adfbfdacbeed838c3bc350b4a50c63b7d9ade85b712a6a19b697943dccb80bd4230a1289824443ae909c87f98b7f398c47ddf6d963fce8359e86df21baf4312961ea25000704e4a0438d9a8d97152e2ebf655c8edfc42cbcf09b4805187e139d60f39b888418269f690aa621d3164c416f6139e1b64d0db11b66525450646aae10fd7788f6db151294de2137fcce123298dbf89d255646aff1ef19187368f8cccc6f8cebcb6b62505f01e337c635973eeb7553efd2f6ef2a11d2f60f42d5876b3bc83485b0367ec034846ba36eec316d21a48d49b4a839e94df517e9cd5b30d25bebb4a5265f8cd4e41b7b27dc25c95be2f2f52f6e49ea5d96a56ff605f0942780a3bc005ce50710f300f06c83b7bc01fcc501bef20ef0b1008e02a0a565b5c1000ec8f1e878ec00f0680f128b0ba9c4b2b58dbf3edeede1d9fd31afcf554b30bb6421b990509b1a62299f0a55ed2adf0a55ed28ff0a55ed32efe18a1ec3993e43556b91ceaf22274925b93f6535894ca6cde564098544dae76c2d9546930df23c452c2b1c01bf00c7e177f004b874f806a8b001ac61c22b802257031eddf5f47c3e1840638fe32c4fe32d2fba7104bc02fc05efe0fb4f6ad8a8b1c2856de0dcb0e89d2469329d2a6c280f8d43432b5d4984f50d36ba6032f6c6ded81b7b636fecad5614c785fd24ad998f98b61427ed89e2a16993b1d1f81ab0bf3b97e7aa3999189414c5dd1495d9eefab83db057b9ffd77f5e0d1dde53cfe1d9c5d5d001c160a60dbe4a477962660cbcc68230190e8d49d11eb2598ae6662f83a77c0c8ef22fb8cac3e032afe3313fc3e565b83f0ddef233380f0ee341861934f8e4501c1ac3a33c303caa7be1511e3a8feed01e46c8f8944567376d23abdc0ffb3075ad2acfb3e1f687672426cf02e11990150a0ab2403bf4fa308ff687677d4c4c4c9bcce424b6d25d5ac8220c57d284c5cbbb7098c7f19817b95c875f80e7f00cf0fd2897082777040edf00dfe16d4e02def6f0ec0ecfae37e0adcff6a0e8ddd0f81a3e7e0ccf6f73f461f8eb5f38ec737c870f736e18f0def31e3c73f1ce733de7b81216a4abc70bc59d942c5ff396a761e12f7fe330eff29815aef2338ef2359ef2349f2900cd0ac0e574bb9ed477ae731ecfb178c721b1f309577ce46b081d820de5a1710835a443718fe678743cd0dd557ba4d846a29a360989692b89fdea2c8fd3c25ddec50d0b9a170a5b5db4c0416277c382e685c24acc18794d7115d3a6e22aa60c719d3919aa9434bec6caf368c4c0e48e98c08d33b441d11cfacbfb8ee390d8f958868ec88d2a331b2e9ce56fbce5b1fbe3b8cbb77004fc0e8ec32bc013f037f88aa8c6559ee6283fe3295ff3d9afc8e11720fb1a2b6cf87648b0a079a1301f0adab9331725452eed56b285922dc882382ffbb9f1b1a079a1b073458d3653e3c25994471b0c58c00e0af0e11879b5e78bb398b615673165882b8cb9fef36ab8ec79361c562346d793848dd008980b0c6fac432f10ae1411b65c7f797407cda13cba1dda83f6505f021ef5618149515cb9ae3cef06ffe7d9f097779e771c4cea391abec3b39697f9b0b40091ebe82f030a57aeb7a05229128542a15028558f5c8d477178c6a3e3b17361d92f5a612fb217cbe3c2ec1516238bb971f7eb3586c68e0d19d3a692a2381b99193c1736e0d97519b386abca9830e0d5c646e6e5c5b4f168784c197bed2c4ff396afb93f7697a7f17f91bf3c0b87f9151e13a7ec27ad4b7e1b3bb0c6786596f5e1591f10b63f57dde588ed8d2753fed66adaa2558fdd680749210a5240a1542a7349ca4c78821386f28a3572d6e7f8219b481fc9911cc9911cc931a53b995679c4b4b894aa24d24b9c2214ef90c355b1100fe3005e660da67cb239e2f4305c64d8116746ad4e244b9552b929653a79cab49d60999563a64ec631ec123355945beba8b7e1cac963a60dd584915346a54e59e5d81cc7711c497a0993ca945342826c2826b84c5bca73ced964caa66cca281737b7b20deef8cd5d9e4b3b39f656ea971af229a1541431646b4e750c56af53f0ba309bf72a3321e75269ef1513dc744a43d3662a91cc921c89c6bf5d21a99fce2c20eac68ab8e29a73167bc059c499dc18bb769dcd1876843919a7e5113967ecd85ad2749ace92a92714b2d29c52a8b334e3b66e6881d0d8f3e424694f2e62e0bc5920eb650288aae597c57215cb4972c4ede962390ce6a4cc477793c449489efa97b8c968dd7e66f9387a0930c4e5d0f1c3aa358ad230f2d1a637944c75466978d5315c7f58addfb4a34e92d66e1f45ae7d44c9544794eaeca3977fd3aef26cc64072916773865d493ea6d9479cdcd69cc1aea388e43bf5110f4d1a483ea63d905c94f650e237c4db4e6f882b4989abdce46fe2fa8e4d18583efa35754a52f1aa24a9bb7c4c6fa98b577d195c0677d3fd6f44aca675d3dc9eb58fa68f6ebacb47d347eb5ba73797dfc031587e1bcd54e6aef16536bd91aecf6e4f97e7d15d9e3d36e631e6e35aba4d4db729aac372eb2cb7e96db492de03e9b012c67218e93096c3604efeb0da91c873606dba8539eabb2cdd9a30b0744a87a537d2cb5bc2fe46de2e0d58645f5bd7fb96fde5a3ef81f495c84b1d9b9e57354b1a4867f92da737c4954c61ae721738f627aa72d2b4b94658eee29a3aaa95e52a1f4d5bcb59eee2b6de06adfe66d7951db2f2714c6fd60a61f9cd0a596f90d0ca5d6017d7feb9ae7ec7fa637f547edd06e51c2ad52e2d10eb021d4b386ff6c732b15ebf4c948eb247e8b8b39393b84b1b53ed39e7f47672727c8beb39c727e2c4e1704594d94927914c9b8e711c738cc8ece1eaa319c30e33a7ce538b74c6638e4b3be12ce6d1c511d5d93efa4e5f638a435cc575647fec135705b2434242392ecde6561d9716aed6fe641a6e67341aadcb4f38fa1c3ab48bdee274ace398de449e43868eab5e92494a4b1a46376d24892cb9ea75d35d645731c7a58dfcba8eec23176fedc4478e5d4ec6711cc772cca38a7ad5abaea30e5cb3b8db5355a01b06c36014a7b53b4aaefb800c4b6e25fc03faf1f1f57a4a3fd891a3168d706c6e4a3f31ebcd425f7b6c6517395232dd88cc92943ac156a8d3c606276888480eca4399884864738383f3376ff33abe71d9fa70cd3d640f49be206cb94ebe60bb3896842cb4cf08598c7c7b0c355c1ae9db7d08599cbefd874b23f9f61b9766fa76ab0b59987cbbdd29df25dfa8ef93ef0df3fdf2ddf2ed77af7cbb7c9341bb66b3d879b77ffb966dbb49e05eb163bbe4d934bbd4eddaa6edf2c79ed9a56fcbec985d06d930bbfc6d97ddb24b2936cb2e817b65ab6c9367a76c53b751f66c9b3fb6ba4fb68a6dfab6c93683ec924db2cddf369fb0d3ed6410ae913f3564100b5288ad31a3109a5108c27a9d04e25ae9b78204c648208fad29fd88390dcf7abdd4e15a69aca5b751f7c3d6947abd315806b135251f30e40fae95743af2e7e7876b24a0cbaf450a5b53e229f1acd7594a29d6eb2510d748bf125802796c0d498a141e1dae917c28ba99ee87ad2105517f9054a4bef52488ad21fdb02dd74d82acd7cd1fae9940f309b686c4635b7625e96f254979d6ebe9137e67f36e148d38452749a65539f2c24eaa8899316cb02459bf2221e19175aa92129e9ccb39d6a74c4c72c6651ceb51ebf6932227a6180caa306da7ab489d5ab468e1abbf31ae530869252184eaf5d22f0777412184342d8250255bacda69b0ea17aca4c53b5ca30967faa6c7dce2cf6f852f0f67da45af862bdacd570955ede5bb8432a1aabde4d329abf65b2905ebd564f8b36622501666a5b71d2ed86bf294220204a270f48fd5a762c47a933a9b993693cf504ad69fabe87add3382b516c52171c8e7aa407c3d7a7cfc085796384108d6eb33522d595f5ac959c97a528cbcaaa8a8982a2b2ba6adf41553c65d454eae94ac2ff30e977eb6e53af6790dc4ec957e62ba225229594fb2b8bca5a55c995e9252df3ae52131ef80eb4e1c4939ca5ba693782d1c07c76d704acf794e8bd486b3d24d6b8947614eb952bef611aea05e97206cb99e7ade7a9d6462d72e0a514888f5a275cc3144677431c5a020d7f36c7af47ef8eecc275ce9b9b3ab773fae9988add12b085b5a8085f5fa8b10f1e752b27efff8c0983cd1e70b220201b15eaf3bc6d4115795933025eb7388679967938a3b51f7c3147bbd9919d3462262adb51928538e842b0eb6f930a79583701ec235d22f13b135245f501eca446c24208948cea5493af3cee6068774d171fee66d4c25df0e9280d96f242091bcc3b5704c53533a9269ab758af82760571290448414bc3418d3b65f467f19f728f2cc98624ecc6dd724c93c5129f45482bd4654ab96d39832f4faba47f5ba47e987add120d07a174b7fdcb505eb957a2327f4758f920f58f055f251ca4a9c3a5cd33b9d2e447b584b6e4b2ed4654b2994f6c1835b836b69032693f49382f4337f529c6449f205496f1ac899fa828c44e30f928ea4fba14d20894703394d2089272bd13284c5b3f1fd7a77d51efdc3a7c9119b54fb486b3435edac17553a451169d3c99277b9977dd9a734a64828d2dca392a666e33a920e58f2917c2460e947a41f26fdacb5790de4ce763d74cf4afaf92038daa2358f56bd47fb77c9b745273d269f147d295445371f15aaa29380b8c61245dd33bdf62196a3bcf7389a36d3474d9efa7191ab0683e28e9887b0614bc62bd63e404e128b4c14f860e2c7287e5ec5d4efb045cc2491a9838758f10d574e221fe1752472d294319677cd245409435e470f2f6d2c91085748321589cad2db1545f2d99a1cb42d409f11b6124eebf31a88de99af7d046d8d5641d872dd099f784a115948be8323ca221e47daa6bc214be669dad9e6c770b6bddcdbc92f09d5fd0a67db8adcbab5dbfac88a30110cc4c08cc9e7b570114e8b14ff7818084808075d158b7c14895491db7c2a9c893c9e7aa8046b190cb31a3234000000000000b3160000181008040483d1340de24852ed1480146ba4605650974a84590cc3300a43c8186208010410006008088cccd40d18862dc5f935fb7e7360353550c2f5ae1f5435fb845eff001653c7899afee19bdef63d9e3aea1e193328a402ab0518d701f0451e892fe53bf923ec9157b3f3045b09d7bd08469f7d515b992a7987164aed86ea1e3a722dfdb80080a8452ef73d2c02db412d10b29768c317464a53b09be44fe7103fb5ac4c9458416a5ca858ba15e2d15b6b45d96fb503103342662f9d01601ba2b387acaeec3795c457e9c72efba998e1a057e441baec9f8bc40932199c5442e99acef6125d3dd2fa6c882367bf9f62a78c1e641962df0965f2fced906efb9ef6440aed2377a987ad0386ced44514edaf847b83b9080e85e825193c1ee3164c1eb32ced37bca619f9f4715b6acad8b2d17a5acedfde7425793ec2e511628c0338c8e1e37a9ab08c732f11ed5b8c637a8d52a98721f892a93c336aae6818a3d573f46c43fc221894f0fa4ef812eec8f671a0f98a90477e75d2d5ff4415877bc8734df3866529c83b735bd0102400fb8215f7a67c3ba1f981e27c392d656c62d9f60bcb07f2cd643c9b16827ca19669fae34b1bc750435332b9b90fad4a83d1a14cd7372737dcaebf3266276cf65b91dce930e04028c41637789767c14bd5f515ca2fd7969727b7baf780ce1997f73aa05797fe2f863f17f64f6dc3051932fb133a9a55186f3dfbb782094988bc9803f61cf6c3f3930dc9d92f4beac76debb09f21307a30e982e8fd79194bf82dda05cb228db62290a9c53cc04ae364e8bbaf31a27ba15cb1bf190c5f3594c1e40a6303c8df5fb27fb620f06777ee11263d1b51121b84dca16c142621c0aada9b60117ae422614c1b45f008611fbfcc7d5b4290367fc34b2ea44e110864078e4f5523385dd92c93ef12d900833e88dcfa29bf7d963b4feea0d07b3d8d8bb6b19c75c1c71b1a0fcefaea788343eae57213f34cbf38c0b6100a9e9b19180cddf56cb17b2317c226eda212739a6fd0f233c6495f0a411c3dd847b4378b034b4e96ca7f05e07e400f7c512c3aa4f4f52ac62e8b2af517ef50d0f945801d7a80c26486452f8dd4e450d533396e4c0139e928ae8845a7f0839890feb7e31bcd1da17dcfeacc54dfeb2ffcef5729e5b9b496cbfbd8c11fbd905885eeded3eccc7f39e2f023878e131cd728bb390d909306f7b3053e8b187defb85c08ee2220f97e04746b1cf11e3a3116cd6b4536eaacd4155b64821a5f8e6c54ca5d7cc28b66f1600d9818b313c977d28255f45688a82a29022a22a5844a6b1aac4d0a05eadac025162013515051c0df4e7580b501870f03f4b7b951f3ab0d03cb5606189e72d83b7f83dbed5b9ec30876a52cf38a701b1cbcc624a44ea9a271167b819ea213a731ff355075b959b187dd42788c50d1aee8a40ffe4e1c872daf2957dfd25a712692bb185062852cca74d4401f2e7cef7285bae1c6483696496fc3501e83040376ecd330995586829c32a64dd135fc1a33e8e6b638152bc6bce5f963f99820b2f9b1d44472228d4d003780a81b4800794d3175862859374e775ddc060883baa146048c9d7b9d56042ada0b4f3f428f0400a6474993f910d1fddfe69b922f4245a09dfeef4531a4a0cb58d50edc15ca891c2c3b2118b6e88950d1c0e102418e5cdd0b5e6b850d92201c2ec0d54f4130a9fe177414555e057840114c51ef98b8319a29230c45264345e113751a2acbaf7746b9080769831c144d1ae7646810fe69c03312a895968e642b4769150f83df087e435e54e9b949ef7bd01bb055ecfa95e8ff0ef613b9e6ab0f2817892d669d89a3ea7d43b26ef44705bda9a1a2a8b906d9c2bd9584e6aed8a0fd824e87b9fc254188869b7fc53e70c2cbfc501110927251003491f24f6c2161cb6263a11529ebe023e7f84541508d044f1af5c5277bff100b52111501769e28d9f66ef8d890affc777b5b242a62910b512ad12532b168f6e764989858e90a0e6043c8b769126562c73d1c7254aa80439ec49eaee890917373e57aa2bc34ba7b3091cefb7807445aa08804e0d46ab008fd9f7fe800edd0344df52a1174485b6c88b3958834658906e5f3690460d91cb5846985c1a442e6952f80b0176a8928ed5e1261319b8c23726bbe2429182248ed505545051f3f03b83a4d3be2e0d7534b6616147f30603a63093b67e3b45d5d2a03fc16a222ce99a7863acd9570bc2a488a847691ea8ce48e099e113098fccc7526ae4b754b9e3c50c126e5c99e037c170e5188ffb1284029a849999143a38a70eac8f2cf23da590679956f83b365975390e47f202a216f6b7dd01df846b76bf12e17dd1bb110ae82862a42ca524f150d67eb3a7f144fa1d0324a8cf497829352150d2812aea989f0af544a49ed3dcd1be8a764e39304122067f2f0b22ac00a9f607dc781d4df02b0a6683fe855244d0f8d50166d930d3f6eea54f900364503e01425edcfe3db25c6d89b5a0bc4023c21e853725c0a204b2573e7a7cd7a52c25dcc2c71edb0bd9b322d6a036628124ff8dd0e244515bca1a22852e6a1f47189de5c5e2155ab1e138023cb4052e72b9c83f1f669d761a3aa563d2cfe876ba5a5ffee072a2221c929bd50662d000e53a47e3acc43ab63fbbb34cb5c841ea01e98883c080c716c02d713c404e8e32420929c044d2811ac1698abcdd23f0e5626102b87755d2f6737d6f59af3854476512a15400e5760dd6825968d6495523d7a321f52cd797258bf26583f4c85c58751b78e9444924c9b945b8d951e8613953abb3c5bf35183394ad547c2fa2caf5a7bf38c4094cf126cf610e27e21c94a9e4b6e4c4545de7062a00e6797bba308356acb318242b0922761754c8a0c685038f3e6efaf64cb1705120173a99a45fb290a04287d743cf29225547287d7ee6ad3d43cc8e396be975d777edddc990f69228d04e7309ec9644527e1c9f2f52e3150f0132607764cca35015883b18bad12b7531883ea932246004f69c893e57ee20fb6777dc61032452fed65bcabb0e1d4c04f5dce668de4afe97aeaf64a2a7fbcb586a55b22f169bbde1a5d914a4ffc0889a8d636496971e653cfd86e6fae38d2f8af401139328778e93f2b0ee8d0fe5f715fb58189c19345b10e23e9f330bb28fcc5798a3688d05acbc79c04ced0435a75e79c22e01542cdef70ccad17d2404bc616354cc4b2f411938bddc0d549c5fd85dfc2689545b75e8d281195eb8b65294873cde6bb41b4f2340cb550eadd1ecda8d0cbf2b839f2a997f3c3c339e37e60c5e118ea5c04c24ea1804d03faa394a5cc099e33ad14900e4339c80ddc7d68108fc968296c73b430a8c2ded3761aa8aa48b52e58ed136bdaf298425a16a361d5e764248db952b23264c5b29efe97dd2a1e4062d7ae008878d66105da48863eec8901536804895aa3c3b71aff5c0341821a133176ff4865be86ad25bcd21a14f641cc55399f27cb2d5b79a9621831c60bbed3eac2d7a15e0ace730e432e229b2ac1cf0f20c09b5bdbf9b79aa9bf4aff49a1ab91e113b956a8abd9742d8fba603377d967897fc7eb1bfa028ead453747d91f904f79eed52654236468d76a29be4b3acf4c19d847ae48b59949401d69f8b26f885d234fc0ee73bbda0d5d96ac7d90205a1f82d491dc3519275b999ed4ef4dc26c421ab87b4ad3530e46f640a6ffaf63a8e3f2a4ac7bc62ea20d27e0ff333b68b45bc36e85d0af10680ae36bd79ac55bcd7ab04028f858ea876f98e7f488fe0cf18aa113ae09116ab8a592c2539a94942aebcc2526fbefe7e1fa604703ac55b7cc441faecd6e506a26bced636c2dfc5b8d206b50155b72730c822aa8e18fb3c2e2092bdb6c73f616cec5d48f654e1e3512b3554c1284465bacd2077d4ee3642b6b0c52ab140b51945400916d8219d1bbc34454d63fccce62bfea09bf3dd6f3ca38f6d66646f2a6a27be26712d980a93888a1ca976553cf5638e234d0c6601f759e15f7069f001641de1ad15cff2191de6cf2fb020933eda496edcf01199786016c427b802003afcdd536cea6c23803354af3a264b921e782d423e4e827bb5c9a81236dc25225e7417833a357ad7ab2fc419660151fcba26076b380f25e5dcf34f4bfcb845b0011ed0b29caf21be80a1bd1b7843119eadb4ae74fd6ecc50c5ed69a00ee552ab693fc6a4f42369aed8b69caee8da83acfdce46ba43f2a985b99f910ce32b772c181f58a89223f1463ca4f3abebd22ac19bb2f487ef523ddcad0be89f3e13ead62e12885ddca80dd990a373d84255ba53cfd28d05e7d6a3858f4919549e42f65f400521da3be1b129d0c2e730767a0d49d2c08f8134095509a944f1a8dfd7b8ee20fbc7e2d2222f1275a760675d5f54c4035c6141d5a459805a15adfd8b2acac0bce6a1055f5b5250b1ced957e8c2e65e00c4a16a21c7b1bc5f323f709de538185a9bd4fb05837861b2c3fa9c6d8a2416876273f534dd8ccd80eac251366327e971ddda1cf1f414c0c0280647acf0660181acdaae87dcdf30e9e5d7cf527fcd8e42778104178b85214fc45179a487b0b0aba7a2ce3c9c42852e5693091229faac719e9e3eb7485af8f45a5cfdbe02c41d0678fedca2fef9065b36b151e2d2612138c31b161dd084bdfa9d6af8d70e8334a71252af3679c8c77f31fc51508b78f09e44043b7102aa2b8f28484210a8368cf6edea0c43102aa73252414cff2a9be73ead31cc93f5cf85e992a4ba16ce8d2ab03681b3e222dc1aaf0a173baa67c4cff5c72600e8809388be24a9db482b45eaeb7e7af6ea606ba72bb14e6fe56c2e82d29fcf66536f9583375bfbe4d572de1bef5a68e895aac6c81b6a1687a59ef7335b8c47c9e887305902876b2e046e68ac6762c145fa5215bb59f9e2f3cf871a6c69a52e06002c587761fa47909c281061e27b962e6e0c6478344d0c977f8af5e738552cd7fa26aae80e7f2ade661ac1ecc1715e2d57c92cbc0534b5123c2a1bcfd2ef9d0500221c9cf8ca7d0ad01f9a08d5b5a601bb48d4ac5de65d379dc13b62b5970581a0fe622e123c61b180037c5fbbf57835df65843c1b440e5232fa1f6f3e6da5de468cd15d6889dc2b9a2f631e953af0dd272bf85992b162244ce32293caac97cf049fa920309d5b0d554ced5af2a17eb2ae3d930e2ae467c8fe8a8d282d9db791e77bedeaaf7307e389da300378a01ccf384588c46a13cc9e588f09b97893582055b8a32c293b3dc2f4be67fa02ac078406330b95215f75cbde3155e64853aecb992c6d821f4028b0b2525d4f15893c32f71f188fe8f84ca5b7713916ba1b7a99ee5dfbcb75d385084b92b826775b2b074cf75aeaedc4a617f0d98d47aec440e9983c28643a4a9665ad46240221fc8a80933944a9b07a6d0867f3b7082b27ad4730b964f1b15d1a300d9939f63d17d2b405abf599a6405bbaf6699c014ccfa2b480b02b9400da1cb7f38f7476ff0fdb31cc881ea4dba12c8d1f330d31a871ac86932a4685e6b1f448142b6bfa60b80caefec77959bbc419a7400270fe024e30589120c2bc33988713f4c2115a0eea08a29c2ec18307d2160b2371441f93e974c41597a39724f551cfc38037dcf0955dcc938fdb79a294c7437c40254b1f51b596aa4562c9d2cc6529896324f0790c7c08aeb1007d3d0ca6aa399e2f93326204340b30eea28a3dd040a78cd14d9552842ce920328804b2062012c36db3012cb9fae1b5107020035583c94097056ac83d9486087d7f3d6382408deed0269e945c914a81f950f7dbd536f8f6e2a253c3c192d238c0a63d6bd434b06a0b308b14c20857d94551437583e9bf824058f585e780f7b4e13e400551a449ce2d93011c990ac3a363d37360063c042e40f97de5f1462451c187a0a1a276986a154e9539277ed5d4ef8d67f0afdf7d565d93580d4447f25abddc71ea9d3d976633034702a7ee779723147ae109d1d1689850e8a26099985f9eed8210469ac21e1015a70586b06b1162a8a526c50a3b173143ae1ec1b48426519914e36e3e75838089292457ae234cd1f8e1cba5aa8f802a2a0609107c94d22cfb2f175d2733fefc1c101053ec8bb416d7845bc09889f47b141da438037bb412fad3e591c2ae2e67e6b9b533681a1762138e10ec4dc9184df278d8185bf8cab821bc87503f1f205de61871acdaefb0d5790cdca602eba7fea8296667782af389f887cd8b22e035d1157a3fac9970937b6d2bf96ee0922940bdc3cfff01406a2af6e73f06fae7030145b75c0d317823d7ae6dd860f63f57fc50ea62fe0f67f49f5917dd4436fbbe0685c48d076a666221128fd5c14b359bc5194a9340beaeb8ca6d0061c4cf5b4208177d00df84d15b682792d5a11a50283b3799e1df9c00a2675945a0b1e56d8da2375d7fa1356895c31affa239c27e8f0ae561132624461efdd18ada99981826b78c77360c44e0147714169bb3e578cde281a0b889ea99396d1ba82942bf00d4605ef0b296d349ddae31e226cb2f05513b7fd11e701e1e2e6176a9462f36c062d9e8cc9bbc0cd309015796dddd46d85fccd305f412f27a51f14d3931360cf328908fa65a366b24222f8a35c007253cf0e3c8c9c86924b435cb8cbdd45616cd1a7cea2c488c07eb2f568f0fb53def90d7e0e7aa852a438ce9b6774bb104176bcae194573449c2664d438bd8257525658cbe1194bc111298d13e3ce53076f89a01fe8e623762a109779a523772cabcf6860ca3916a6d78acd053ba2d350c0dd64d90ded66724fb9a86262513474747670c11723fcce6251caa9db1968f9e7e5821046020c2bfe6870c7cc26f06a94c24ef8400a1979bd9a0bdbe447033c6a7e79d67df8ce8f06a62e8b7ebdc5b6f0d3c360f2ea98a068ae5a874bb79418031132e5981c50fdbcab0752b45c077b6899be332a8fb6a6059d1b617f985bf8e7d36b0acdc28d864103af30f84f31273a34a39063822576834466afd941c0dcd8f888d9653063376e5babe0da15657b62ae0b114091f40953cb908b032448f94fb1eda3124b6b95c272e2158ada2337ee6d590f8e132c4391dd54e52b6a33c4a49a4a5485aa80284592118505f7fbb0d206b874a27190d81a36eda21103a648cf39ad4652d1b0c4f3c09a48b47cda55680de03e63a05dda52547f0312ce04349ecaffd4aac020c8cc688266aae7fcb9432308c402c6c0f526e55742717ddc516c494b702f3c9b4243113aca359672a0faa2e36fce73fe9f2792c7b1bfb95597e7ab5c9850cad3a4aa4b2b91c4daa72c36339e4dfa18806267e8cc39b7374f8827a2164b8e3b7c6afd2f38cbc0bf60a7d88c5d714605cd7e6344dcc9284d0af4fbe134721d6de8a1739a7261aff5dd5a069c4b13eb8b7e344c05fb377e35313d7d098dc80cd1a5681f7653098c511ed186c98ec0bd5dafb62b05ad1297fddddce93bd50807027c412455a7856f50e3613e541ead7eedb25d9113bb382598edd198673b15c60c3c22efef17a12bf3f895a890d3a76ce86caaed275ce05842611202ed97ce0e4ad7d7844a03b49f4da024964ca2e7becc6820b01e9558e52ddd2faffbd11715af7e2177b921ad48513150e564a88373a4803cd74d321370144d087473c786132cfdbb9d0dc4b722f1b9add63bcf172d68bb183bf1c8d097df3c82168988861299505227da7d8632e159de0a0f64730ad5ffec5a9406e0d50a150871789f1fbda292630b9a0d50397dc262bcf74eee6ed71b4c4b25bc826c52c5f9f5c543dc9e64dc92b60522dda59f4e736f0910cfe7fa614957f4f81c11bf9d182875b7a8f879ee8ec5d1eca9c15e122bdd0570098b8a0d11b832ea5c0f67badbb407260d2eb27f514f508824fcdf3275e15ab8634da694f5967d4c390c761a5d807c7b0ec247279fa0580793a1e37495ab3214bc95942ba21957a62c54237f4b841df4baaf839776228898ec7ecf92986e97de7a1e586da04fe65f952dfb457ec27f6da7e1922f90424ba1a2dcc438506a403cf06c6d8fcd9ffda8dd333b15160e5f6181aacf5c770a02e09dc37c0a460b75e1996d1185fbaf31b41548c444148ff826e5148495726c2282c8e460032a9dc8997c9bcdd8109cc5e8ed3eff28c79c393f6e95391627ffcd46364a2cf7b7956ce2df05920579dd9c359e8c315b5a48a66798d19b93054cacc8ebe033796e14a28ba81e3cb3bda134229d3fe2f01e37701b9378584fb253e1837b89196f7c8a0f85b0f31e885b122ac5d238faf7960a6f08aead141c1d4e6b37ac084ea7d66e7e93792698c60df503aaaf1e30d0e59c1db888d3da2d10b8c25b80b9835abb87557d0c87cdc709ebb5f7472ab916dd13d92587c2e8f3707b7d58495fb483f44af02573a53a9f949dadc3b325606f10450febf41883157667b39b97d9d8d39ecdacce2d93d5ca8044ec3fb7bb1cd57fa9c9115143c9bd677a7fb498556cf856fbeb4e26d0483b9055e60f3898e4553c79070fb53a209bd8481464b16aa2653064d67f454b59192f56d4a33714de77f686d4de44de60576c910028c350228bc3a7c7cbdb5d49de1b7025126ac1c44d3c70c819caf9ada8a22885bbfd5349236e811145b81b92446b96c5b0348e8772295b41632ffe1472a17b768165e647f1c4483790f86e4c0c0afbaa9a9391248808202815021dc01f77efac00a3bae0bf6cf4bd8fbbf995a161c3715a9d95bb6f714193a3490ce1da04764f82659cb3e717eac4f27493c92e1516ac3c09f4f40cdd74f2077458c604ec0b32698e3a03ffeb0cc9b3de4675de7917a0f78652c25b14859ec5c3c358ec50f951171662240be7d84919fc0f6594f4598a4ee7cf8cea8c2081c026aa584caba9cc0351641effa5be6721eee2a541df87857c2ba0c413deefff0f3d5e3abe5d36df580d74dc35002adb2c9bc535d04e76c3e670df7692d0a0c224c394a558b345ad250345c8a0511919e6d6c12ff222b69a8ccc58dead166c8a085c62c458bff131b170ead59c610a2640f104506f87f6dedbe47603432a6ab4a8648b861081e9538ea6d8cfee9e4787a4510609ab7a838811b11197c07264972912f3a7aa9160c997e195180ec8276aa7f1de02f1f15d1f020418d4ea4e82611a809baf8c393aaf214d79cda3d8ba8af0daceba1e3324c410b31f13db2f759fabed4e4202e0d3fe47806986d6dfc15a4231864d32f9adcb2cc02e5e9087cff2ad6ba2c4aa43b1bba94422f692fd4bf14662fab117c36d3dcfc44a8a9133724a62147f815103a0c95bf9abe5d5caf46c96546e538d96c5f039585a70321e381ca5c1ac4719b2ce5692c93a13fe7a20eb00ad0d807c0564590520812e06fdf642c6222a4b432ca04952331c17d9210e6c8d05c403d4bad4edc927d3ab078245275f1c849ed5ce5d8402bc6bc5d0c006518cd4f18ee2046fdc81385539a2b7bf7c1e509fedc25c381f362e431da78bab872606e086d29461cffee1780b4f88b8484f806ed953d2c1d46c90cafb8f94153b5609e1988665dba652dd3be0dc0bf62f371b92d220e384e3c32a2f9516dbaa0b2c6b474f9951e2362c3bf240589c770eb3c97dd37ce0388ed23bb2bde1692546653e5ace03879020f90db633491ea75e47128ba28c623c81c296e914a018c688ba80e66a156d93c7bca84fb80171372c790807c3398f81c02824be898c266077758a7153fb0dae3068f9eb72d6a1737234b228153588797d73d17d315bddaa17ba378ff9b99127db874e156308d5ffc091138d9d6a929ea983e05ff8e95e50f01a0f3291af52abe465a426ec21deacc0217f8a21853fdc9894a5977170f3ad2d024f53975d6cef7ccfc496c238f41b3f6a1dd9029f28802b192715c755172c342037fea4e5088d1ce796210e4184b118ebc3719cbfed500528e6c4c35c973ff7cdd5443654df3be08b9c9cb93104178987307341579b444987d33c2a295dd477c4f8e4659feb4accb016b40c6b4e0b966eb82a9c1b2734aa688d438a23ab331fe775aa80067aaf56d7044af4298d83c8e7f5c8043a390d014eb142c72fc71a790bad660e69322ecd9c5c1c6e3ffd11e3c623e02ae6238288d5d0a01df64a413a00ed2955e3aae8093b46837738755fe8467662402ac3089744c9e61acefcbee8068509b02fd372f0ef9954e09ec3b61a84d1518893244d01e671c57b2a72d3edd802af7f341852fcb381ff5f330406395d2be5152ea077702ca3b1659c5faf62aac5d06a2560bd4ab91d1c2db5ba5578bd55d57dabaca3195ce5efbd101c90ae6a0c82a67a5889b858d5b0ad59293bcb9da37f998e361e0b568c548ee024f3df4855f84aba062bb4de2649be3e1f70f72cb315bcebb6ea98feec223b201ab86419551edbd28dbebbebc51156456d44b564147706297bc7810990e493a20d3ab3b6473e7bc4996f0424f0cad8e4dfad72b3b20202a8aa8b21c8a554aafa83947801ea21971a27af94f397e1cac4379a5fd21789294b3cfee0af0cc8e1557298d01e39294248cfbbb31ffc8f75921d654a9f12536720fb6f7065650584286a23b2d9ba4643909b7e0aed7320d8956f990ae5142e36a8d571ab2a134edeb5edf7d1e338c406a754645d40bcc5e6b4e6b42fe459a84101b85adad5c2a62e5d9799f2e6ae91fbcac73a5abd13c6438b62e657d93a2d9295996888a52b76ade1caee2c7fae234407534040cc1a7f9728e5efed979ee880a091ae14579eb2c12d688212a1004021bb28579e72839b649211f59912756014b7bb8802d63382c078d264f6aa1e4ab73f87c688596925d950ab49e3ba656aadb44ac408182a4748d3eb211ee6d61b48648121b105fc6e5b09916945cadfbcbc38c8651226e43632a3a429980cbf9b37bbf5a71a84109bf572f29e676af31412abdeb58083fb653fbf6c5d409664afd73935c4eafc404a4d87b980257fb5ff6a6125860271e3fc9b52e517d81995e5706272558af54898891bcedf422110bd408af8570f41fd7d91190ddb0ffe07b008553fa70c67e97a24d39b37599b7deae12e84941cff247b4f21ee5f99727de35c26fb8d937a5e7301606d53026c020b834d9c50d04dcdfa3862809ef009e38162a9a1bc1dc8db46e7460a1915698d3a16582104eed98cacde0199b4752c3b476071db1c417516cb2c7197057f33e8ee71ba08ff92c4b187ea4832f9208f30976c9c072441da0a6ba0f4d5d0f194d6886e3be357d53ed96de3382e10dc4ef18983646c03b1f457ea9868c8ca01df314d8e402c31090b3bf79ce7ab2710e931cbef36e0216db5ad3ba06a85310b4c58d96a03719d7aaf13987ac2e49527bde17e452c967146879cecc7a27e5ff3c49920c8af5e4703be9c1a507c6c454af964a8bcb8f3a7c1cf4349a71ca8de3d9ca26cb8f367f3255821c020282f5aa26b9e1d8b9d7fb20f6c49a49452005b6276d65826aee75ddf680f21f7c82763aeca4bc011ff8c0c6d50f9888cefee95b9415bb33f6d037d848b365e0efab724594982a233c2d434adafa1536f327b226635bbb608481658dddecc43044c74b57a094bde268d81a62a466590f30cac3b63d0c5a7295234eb278c079df04bce379d41f635cea671176bc8b7042e7a7a3a136abda65c69208ae27f3570b888b8d11a0825db510f8cf4a40378fad7f2943fb5824b03dd0e50a4d9d1d6dd806f69e5805286db275c1d33d372c18e7b5343aae22092742a26284591bf29d0ac715abfd4f00293a6de0b03e11e40ba7c1a72f7157be807f0e6df6b40b34c017109d82f9ba2b031685636a4a4d0bd88cfeadfbaf84ac278687c85048ea56729ec422d8f5e6f87ab510cee57fde724da8ba46f1cba0c360b74ab1830e5cf6e2101d84ad878aee2e9e01c2249cd2a3c67c1597ab2463dfdbefa8647846ccd916499b3532c874ca90bea57ba04cef248a2724a6be8509d9364568f48b7d093d3c5dd0c88dbb3651b41a30b35627cbc978225469f88028e107ea8d7b030882d5902cbbbce7442a0b6ddba572ad507de07c006323632616c64f28bbd245acdf18066de849ce98e7d819bffaaedcdd0694309414b08723f9cea59dd28c303dea54ee01278c9abc5dab7320617595cc71ac012abd2b16f36a6a2195221ea19c3a90e66f2c177a886d01ebdc29b4931c973c0daa8d6ca4455015544c46c1602bf94f9dbdab3f913130849a0a636e8d9cbcc0f118c00219308585f1788b5e79bac2fec20226a8f24d3f0cbf676bcb1ff1565dc7e08e3e13a618ac3314e4b8fa97c751f489d99f6d4c03ed1449da7cea151d6ea9f09051b123089a57967afdbe80fa35dea120dc2784660223d63b8f3b0a903120ed843aaf47126469518b2f2a9686ec46d4250089db3ba80c562553f93aace5153415164c0844397ad80f2e40fd037d447776811fd7feb8ff56f0e5b662d4ce4efd7c75d0bf58beade3b5000df62b070dfac75f74030000ca89891bf9830b4c7bedf7a268e9b9d711feb2ff186c29d2aa6520f4f716c6b1cd23db285337cf87044194c454f1866278c87fb97127251973a5cf9aa75d31032189512dbb2fccfa2fba5e8805439d71d1bb1663f1910f23db76cfbc1792374d9d0aaefa9c31780b5bd3452bfc87ba21e6b0ebbb865dc4bf98f2cdf8f86cdb04b9253b0b715dfcc988b66a65abc2f01338a711e154ac1a77aa29484f1406c12de8480906062a11e0856114390f2f8411ef8e40c1b6b4f4fef45ad5a69a9451bcc40903f36d35438c7548abf89a0656f6b0a26f25bb6885c4137cb21ed494b2bf97f191199c12ef9df790aafc5538c67db53be0ec4be4991172eb3c294eec119dd7c05931e70e124e003cddc68deab4a594f9776e7bb50cdb84667bf884601fdc9f564ff3b01619b473ab713cd2572645fb5ed69760d41ac0a3ef0a1c134722e5d3aaddc30a608089eaa648bf1ec4df569c7e1421e88d822a6748e8abe512b1e4d8565682d5aca5530ae6ce354c6451e6b6fa169c7ed49e50e31517df10b4d7199b8a4d81294455003fb214a14e30d8981c1054f42eb3545b248357bc7961490e926939af32b694630682a9c3ea6426a666c567b43a68ecc43ffea89ccea9ae33ec6c355d815a465254c1c52da5773cc84d4b3a04f198c0dc1ff68270dff42b3b88b89e503f9ed1cb54378cbca25ede066335fb0410e4eba014ab13dbf202424e5e7a7d982f6827e576be0297d71e281be17fd71445c02ce199978a042fdf2644102f7669230ed09c2a028c25a383c1d41a9c7c8438390c18057b4c6c60e284e856b2c657093d7c4480061b8e4191afacc5c3a9c9c00a22b6b0846e82b6d8ed874cd3b1e58b592c1939c4e1680aaca46606aeffe149968d720a0031cd5998aaf04dd448ac588a4d52a8fc975adf86accb940d944b7a15b09d77c0c0ae39643b01646b4673c2c7eb7a80513f0f2eb089ac73530799ed36af18c655ca1d03dcb7239cd52ace692824a7b1411a20866830d8ac3346b32171d1c3df23a1c54b04ee5c28c28dba469625489ddfefe46e5c03c534342694327118d72e65aee34ba24672dfe282786a4088f37c99c7ab89d447195275417803752f0794d95ed132b84f7ed3a3be7c25a33d508e2d6c638be023316cc2fa71e7a26b742689aab080d131444d70617ce5b74b944421d5d00245dbbf45fa50be9de6100799f40e6d40444254669b389a1aee473787a971cb23a69669fe20e193c30c26736df43160f684fca1e58bc238d806440b08684487d329b90f91cb90c7bb46c8c2d1339d01e4650e3a5822689b0718c608c6c5b62af0759147c93dc5805115e62267d307853b38fae2007bebace241e30768b437906a642ddcdc4d4ba58b031e92763e3e3b7b4498a38d3b12c3720c927f74a1ebb2c0e98c34dc94fd7eb088d1f4dd1a75e71e7e756dd7ccb587db2e50c7aaf74ebbc61e5803bd26ba3f1f39f774907439b5548b21de7913c9e0334a9ea571816c3480920e35acbb7386724bfc67b52d8ce7538fd59590f9fda7fa5b43a4e9e812dcd7b1a63166276459ef2f90175e0fde587e7d5893a3d1eee88024c57e4a905a55eda8a9d8d8525496c703ca11509ed7881aa6a23b2521e8519eca895d9b33124919728378a12be21adfeac26446aa50fe56f4136147a89d49219860e22e49c35e04f331dfd26687c7170091f937f1db00297e0f60058043121d5e2ed1938a63c217d6c629dfb6ce96b88024a5399ea1a09f063d3b3fff81155f5cdd32f482e738d38a64a8e7841b2a731b0726d31834d2137d9eb17f4177ab3c39ac8010db5af96f5e86459ca87eac280e4fa3079677cd0428a68cf17c0904786903e162d5244a2b93cc8a721379610d87d2b48627f1dfbdffbe833049db160936348604752ceca919ce7e3e9ce0706f7b97e800e846cbbc5ed0a69eebb00f3d1aa9924dbc85f397b20c6dc65f47c8492ec90f7cafd8f21a02b37ce25ab502dbeb5c74c80d047a2a64b47eb51db203f685d17a193c90450e0f6929e2220a50b872ef93d2e755a8f1fb91cf6cb017fcad2a02d254e53968714d27ab72a5fa7ddc7a3edc9aaf123910a779ba55a41f61a73968ee33162ea1ed200ccedcd0db56a9f9aacfe1d474cbd472cc1be7a71275699a7b6d46e4788d57f7f028be3c20f52a1ee819adb6edd5d472e13766063a441569a1ae43af69621d7ea0df2d7311f544ff257fbab5fc78857739ff59621deb8262acd67c87ec484fead08a781be753c3c5b6f60241f949acb55c6201b92566c1d362edcaa6e1b524e340251bf069f8e392addc3d0222e3dc7d373181fb59516697dd6920f8b8552506d916613cf112846908efb244fcd03383d79ec57fe549556b0a55c29f6479d924b322c6d8dec71b4afd988160eecff1ad83af3a1de9b0ec75c2f4cd5c3a4116b62e19a58068600a5473178c8db9fa9366fb203c904b70ee49184ed35ce117f9d031a611f17c484386282fd77d28c2f0b48b1ca39fe089f46d8ac48e428485ad1fbf749d23c38a75b0a3cab0e58b5ff9336f7a658bc5d17a03e8dd61b3f5310739ccf7c1624d59f30aebd3d8dae64e78963ba3386b42a873e63734bcaea275339f9fe9c7c4d963bd7edb7dd6b83298af7920c64d68d4dfee094c5b7c5febb1263266dd3c3d5e8fa8cfca55fff1e7c172767d96614e0f3cd7e525843af9bd3158fdc2e6a5d039c22cd79111c49374167ec713061efd6c2eba9cd62ecfdc56e30a6f030b4c6fe6ddc4e14846c533f85408c7243c49682269282e165623d0207142ac00c3a35584c45e9804c2e62a92aae454e634b84e55e3eee8ff96723a3193ff564b359b2364a9eeb81406b59cc467d79f492b56c542616cde0141f0c5dc0679d15feafd174960f0051428411d9920abcacd12215879f73505b85e84e20b2262d587b7830f78864b958226a054260601c61117a9437daf42e94c85ab290f6a0a45925044554d10e7665dc878af547e6863a07a77008852d5b93c38e5ea456f7b8f1a9cb648765582ecc00988da02031d89ff591e0a8167ed09d0396c84fc7271b9343a50012dcc38c61c93b3da50021f6ca358104272d1f4b5bae4ec0e661d465086b17f49b25277fe7920408517730b90f21defe2428afd40deda1025526f49e0fea20274226c1e6515aa5364fbd4a3ec5928fbd1a22487a796ee1ecdf85fb66b18047b0cc8708f0a2e83978fe23d38f2dffd710049a589d82e4292179a99887e867a09eddc3834a920aab6918bb3d9fedb2dedd6611bc06a228558a583143c1cc8e0bef0c42766fc3e365fa5e1f89dbaafa4c7fc0553885d6e0bcee04ef8b888b2fe8bd8223790e79dd6590e0806c0407a1b2edae037bcfeb3b9ec6a026812c0a2c491155e1c769676c8aff0323cfa9fb687eed859e3cbf215224931ae53db0409ac5ce4bc7f15219ebdada51729e6fc48ce8b4a9619a7f22b790beecbfac5d3dcd5135447338918aef8f66d22ca205ad072aaa4428af531f6cb9fc68be4aef95bbb5d53d3492b5011b639cc4ae3b4c6c0575fa94fcfa17be322d20a0e98a72602f1a7ca0e7de98f107548ab5f936ec0d390d413c36d50ef03debacdf0a5de88e0e1c20e08e4230f19c5283f4207579a0f6c64c74769798e97f1a450dee3e685ec972b6bdbd64deaa575016eb294548cfe6476220c63b32c1f5364a5e583c63489e9c9a133cd69e667fe0029dc4f83c03f3fe09a3af0b2170a319dc5d2bd906acbcd243d249268115d8cd90cd1e60498d73674b145c246a421f71fc75efafa7303e1f7114ba2779487a41eebc67d080886f2e9f94531a0104c824ba7cdf68e9b77c34b294325a64c236018c3f86825f05ab354b23ba8ed9cc533563fd03e46d8c68b3226c6abb531fa437a8ed220f8d3cc464d34a894fdcfcb45537dd18531f2e8ccf0f05750c43fb4799b35697049dbe2dc89427fdc481b0c6d570394aa1a0d05cf23a6f3c81b9144d35519ec2951c815079b55a75a98590e1e4844b8a6c165ddd6719019a78917e5bbcf0c3c94691e60161596767c40e1faea3e45f5dc8ff073275c01b70e6676dbcd6bd6a2d03632c0cceec23237ba6eea536fb23dab72db4b11b39bfd42d060f938e0e191678d1d4e3305944c3744eb23675c8590c93f3ce753ed01cb267ec9eaf14bf33105805f99bcb625a5c5bfcf76db700828301cd80c696c75b252891c50981d413e10abd05aef1cf3c20955184c8fc83ac9c9e17ab047f9b9f362a08ca1ba29207a370d19950394da688cd4cf417ee2cef0fc8e1d7006d05aa3af734c75375f5a5747e646d7d4b63a696b39e4f2ca69254d39ab63cef70096bdfcf49c3d10308ba71aca668acbd6910550514e57bdbe7bb2d349dae469f12f62f056b9809109c1399ed097f662400134e7fc6d431dc8c31b7c0acb7112319cce45d843ba6fc8c01303feb9df901d856cda64a7a3c69a0d508096c90a3f4e5d110969e0c1010c2637d4b0e3be1008b7526bfbdfc6d80e0708abd9c81bc0ee1f3543672295e81349c81c141061ee225a83018d8a802f3bd82913933939cdf8da1c948b8a33e51881d12c49c3d044718852f1f8808a2b5bba8351f7a53f41c635bc31f7d3e1b7433a1f65e9e20e89fbcc5cb2538d08069e2d62e8156035c10c02c9b7cba1c12a438726de1151530c592552bcc108616443a0af5d0f1ceca0a0b4f31e94c151b2038c1b010c05f0314b23623ec9536262c3992189ba64be4d4f3fc5d86b182b14311559db0cc9c1b320e63ec6933e8d94e11e82ede6f3edfd80701bfcd7b82ba144b59348d92b86b28abd25899a3317e12a31f048235ef017213542a80b8726987458db021b3dce00fafd0d8aacf6fbb4fe51e8ec7ec0b1f870404fa4456adc44859284a866eda9db73b882aae45095f3b61efc533b31b3895b1b2d1636259bffb96eba66eeb924c1b4e067a80aa70d7ec9a46e5985befb3b22d15235b0afeb3508c1f0e0d2ee8c6c308ee87cc1961b06958694686e75f3f6838308f794c40d0da767e8de0460571e895ef6298239f4d1d62524b499fc3454c0b3ed160ec1a65275978222c9124b5b81c4922ef06aead3283e03842441d854c080e72a40064cf027d930b291ba98a26fe48b3e77a7a267690e1256d8a4c2e2e20b8ac4a9c4867614c993048f908f0b3f12e2c88921cc21905fa981e2487d052c67a11e8e0209b8fd95c40d06d4aa1e25493b8aa36085a7c08c5c551c82b43793a8dd4bffc36579b05068c03d037d001ed8a5243f9f56a5101b1e857f6682066c4e47372a0bb88537a11dd8d2489dfbab2d11fbf0c60dabf3abb785cffad05027cb5b7ab5a76735ab5f7180ed0414cc44025aa07ea0b35d5804c9ab2c58be279a0cca81c2c2d21ac45418fbade0ab97331aaa1d172dac9ae25075142208f466d54267a40707b472e7895a33da69e029e2a9bcf45669f7c8bb597a20d79e4d6c30caaf96dedc2454cb510412e2de98fc7ba584684b34be8dfcb28e6735ac0ed6a37a156b63b6f674e55fbb74bdbd8594582e520b450b742007b4c083105808622eb72e750b1ac9c170045329e28ceb997804ea143520525c3c42204512fe670710c8bd7268348d6ab2d32227024b0dc1da07ddf61e647e6e4e6a299482038e27a9b9e16c7ca073eb8a0a807aece823eac0a6ea2a3acf1ea954b4eeb53fd5d853c98154479f36b6f43e598d9df9bfc924b4bbb9b6a98df0b602c86080e134711328530714199c0e1c47e68d91c2761195272ce889bdd1e1af97644b786ca6256f5250d2fec5ff100ff70f233466a4a1d3b4635eedf1b6638388318c7d9e0b01fea40a1ef89bdd211302e9848c01074340769c3c938dadc4673a8182fb029c9fa67b70bc661839cbcf2b6f218300f25d092a380ed0f99f2fb7c9c4f490fd16f996d2b710115cbe71b5326d58609008f0e7a39a61b7c105a0042586a458427477966466239e6838cb7fdf812225c65287806cd90cd03d6087c7db16f3582275427242435028a33bb24943e03a218f6e63c1647fe5420ffe8902c0c6cb0f9be988c884670a1ff6f7e1329ab970f55da10a555e90852de99838976f81079e9988c5cc811e2bee090e1846892fa04e7da1461b0b1e6bbf03fcd05cff95da2c980f55f43dd6b208fd6b802b78ac3455cb31a46c6e7c4efff4fec32358ac40fe3db3e28b1bb298429e2de55182eae2f0a9c859d9b27b3694d219999fb9cc566386f0db782e798b9ab60916c37f7738c671cbfc58890294c5ae20773a4cfeecb21591181251bc2dfa8d5591d331dc90e3e9d30700a2a04d74051481c3a0315f7cc72ba7a5132e1a5872cbb33e7dc1e71401891ab0378c4ef4de3b322b6dd16fff1998f92b69ecbd3305855a460ed4407cf49647c4206aa926440459838cf6b06e5d32ed23a9171cdca8c7c58550758cf09e62fe281d4cfec78f8662f56084ee5e783ebafef67b0e8c61e967abe6c626be8f0e74ed4de20337a88b95cba6e9675969821d90d5d75bdfc1ccdfcace6c6549c71d9bef94cdc3b3fff18f859bb472649dd498e44946a054f355fe83d0367940204f10f8110415639c7ad967511686b9908d6b50095c113ea4ce60d5ae1a6b8e294badc3813452a940794b28b72855376b84d26d48a12632d4e515ae7e1441375fa6ce8b1afe8bca030b7e604ac74a6a07f079cfdb0c29b0b3f5f504bdc402e452fe63181dc6339066311bc5b80a4062695178e5d8ca4cd8d8ed7a577626e0a1352666635ed29753a7a1681f267144cbe19821ce8ce20d2ebe64c44b409f4f98116e2751e1c6c984e5ac0a66139bc002126d53c181027c9fc4ae0d430c7d0a040748020e0600fa73db12bbf7bd1dc07269e7939f998379e2faf7f96881e9c564e5e79c55a4d8fd532023912c1eadb8c642c8e4540300b0ce9ea211753f29513ec5e7443a62afdd24feac431179f8848ac5a3982dd08126b79c989c54abe1b953695f4e0734aba343ef8fd604e8d04c52270450f2092ee01e1a20654b178101542c7d6d8c3f5a3e3e3ad162d253703141295ce00cff2c91df16a96523b4cd0da6a528e028e3155076db5a8c9d476a4985f05b94264a59b08d14919516fb78be0f523184d1f424d62bd169c3298c0dbb4a01d4eb138984858ed3bf68bce4a9152b53507533003c85792e321a7262184b7266dd4d72e206c492223b484605ac62485cdd4998848e48f6c4afa8360a0eee72286589adb67e2f25290800a4adf779fc0414e70588431c37474176627c0d4814580389881700c3220bf2acf3890308966af1bdbf6bcb8565c31450ba8998476a31b0e1489c9986dce41892d84e1262850f2026139ecbee8834bfcba3a399c85ad5e85175d7837a06c4acc2520f9653e0497ce23fb91b600cb65620682a21b58ea9d37c55ca4059ea0a3f95523df92b8e995bb07aa46d94a52bfb5201ae53421a58b5f051ba8373719fb4990d3effc5bc80772b131e1c8d0b99ce35775100b07b63cc148c72bdfc55e858307edb9b09a0622a9c29ee503402a0223e898f7f6a64d90a41e43a118cac298060678d94eb500e86c6a834df03e3238012e9e85ef5a12f08e4d506045c9513429906b986f78bf4e9584053d83b00439d56dd8ee4383c16c870c983c2ea4734fa593c6de5dea87d80d6af221dac346d2a9e2e0a44da6c996e3841d6e3f5e1aa5eb89e9abe563f4f80b0a61e80ddcaae1b67839fc6f2cf87d2ca864756e9f7d63f66d43961ff44090069022cf92ce2ded3ad30a7ec082a633a225c206f96cb3ccf0542e2a3d9474c20f24a230da7d330da09e3a233816d2c8b30a9f053ec5f45acd57496a634ab94ba805d3c94ac8443024938cdf73c18a5d04c900350efa05718608edd88486f90331d414c8d1bf02e771708841557299f14a04a4c67bbf095767ca323f92614989ea0fa7591a580a93dbdf8dbd79064f9a38605958d69faf03c7f9d0ef46aff6f499a9d8734e15ace75119defc988154cf178af4f486787ad0817ca5e83c52026633b8fa38ae1f2ce8690932ba3e21e2b49e0a245c88151e35fe5ab1a6f3b72cb923da546bf34c0b6b9c97646454e2014c881385184849dc040e2c4594cdc3336fa42b928e7723b7b074a9ac1a5438fdb71ad719066aefc1dbb075e86ccf1422d009754d85be2bdca4d9ab9f98d936113bf226cd95e998adc376f7caf934c934bd70fa5a639b35fd32cbb7eb539e6eed86d4121d543b34408ccd9440ee83fef7c16c6846408b0050bc62fa7c6ccb4fbef9fe28990ed091b605269f2388fe89c1471072dff3096baffe78c2c22aaa5864123cb56eded8b0b27df8f9053666e6ae829930e0368098acab324b400fc450e32613c20dfe14330292315159bf31e62bf13594d3778240627189584c4ce2080e27b22bfa35ca6c08f1af7ed433b7e4cc13d4c489a772ebf44e06d4b69d210bf73a97befbe9fccf99fdccfd51fdef2b9d4576be661406c6250a5bea23ee98bd519f862d8921c7712401d6179208248277897de1af001ded857f66763215fa0799a20d2f7e3d9c5dac1beab4531b76f700b298510eb6790922760a17d14e32371ea7c3c29170a5f459143aef8782901871298a3e55424550ec9d1e4c3a6333f255090f4c1487dcb1ca1088f67b02979b276ca6f717d649ccd66baa08e86d89870c772eae401d950fdf4c853c8d31da9fbffd57537e2593ec2c56805c78794246a5ec0af8105491ff0bc146638003a55a229ea0219d1e38021729d6fcd7b92cd38c99116225960ba6ed06dd8bbb3e9be7a2d62db4d6aa2dda623cf800fb70d3a5362769e50c1bee0786249f32bc01277accb0c27f34c4cb05820841995d7887aebc7035416701fbf78350c4098ce4bf3e04bd372141d8509ad237bf97f04824e3b08e2f4877ca002722c90ecd051081befe7381018b289402a22e87eac9e3a341e44c2f031dda23e89457c5ab7d2a63e797d34f21200b1fcab654e1ad74926b8a6afc884be439922ff88cc0721a29819b0a91fce5cc2a75d036596facdf63e60d6faabf42beb9c9910ce8cf372d00ba7954d4f483b7b423fdca1c527da547f2f245a2ac208f34a631634d4754d5aa9170b5948f721448929a4f7fd1b46bc597eea8fb8386764203ee148690c7a9a4135cc8420aa8db957923a6f116d62320c23c3b443f3004055ea1450267dc5fb2b06237cac2168a7784f5c20832f327f007725bef6041a3cb5e327f20fbe92297a9900b0a8f69be1f393768a6d28f2807fa2e50123f3cc320f963d66d16de0fd61a61743541800462029175551ca37c5ca07ca6c0c9c54ccb783da221f0dc9b3bc9cbb704c0f28a258165be898d4124b0f2d6328290a1ebf14d7150139df213e078f8883628c25435076733bb5ccdf2b96109a7f9f0fc06c99d46b9f5f3fe7dd51b7dcbe6ec04a4724760350699e62c09d0e9036ad6f1d1b8815278a552ded18f4b4015f092a3b43747c96ac373184784893f1be0d5c038053582130aa3b80f121833f120ee68ac3768ecd6c3405f31034426f94063bb5ff9b473dd6332544bc53ce4525f3e1e36eb85924f1261534fbd3b40fd4ef0df0b308b55997f7196ce2a581370534c3ba43b5bc7e17b752f0dd0d360e79fb8ce297c3c076f242a28322dd679c483a3a4f28e2d80d4a348235e25722166769a55e78619c67bed07233fe1b6daa3141c59d6d413accb5d1c7dc716deb455df275440507735b70e1f0e2844f4cf46a5dc7a574bf6b5ac6ef35763ef566dc051884126cf8739345653509e5ba5c5e2ec1b2ec2e9771189b7a44b31aaae807d73bc4d79db144fa91801f6b387631231acb57f81e00cd816443a50dcef30a9feeaf8bf13160e043c5be0ed87725feef83bc88fd63ac9a822e01dbf03827e3e15e0ae0ac0aaa7c24d0e6177ed931aefa2933e1a65bcf838c7a0698a7dc22f5c65796ab873a7bc38d523102839ba3540549f46a0230c16457502f01db922dd380120d4b104d49f5602609eba16fbff60ab893b6d0ce9ba5646219796ebd01b3d02c10c196874064a050e477b0948492f8ef63000c4b69790d12f4f7f61c7e9ebe445181f3f6f3ab6aaf7718c9725d956b067f94cfb4b5a82a9cbbbd27d2f410ab9b4f9199b015e16685230d683bd6b2c2c6da7d5693ac145cdc3dad356ada4c7a54a8f92d20e6aa8160256a246a54657a582ad574be2d4dfc5c4692696df514c18dcc87946f9ec8e8f4bce932f0125445f4b1a65d5307b59acdcddf1eef355eb028f0aa08aa498ec0f5c0fdf4cb51e5fa5517492768f95e94b40f15521ed636bd1b5b23933e661568d5a3ee9723dec615a0c76dd7a170d34163c1b01df3968d81b0b401e0ac9707edbbc2d6b443632c63bc49e99c410472e69684baba99a0117243a8150a4a14ba134ec657ff3612f1a9274e3e25ee5dd0f7b6370a26befaf27a5941b6dd6eaa4d4427b3c3e08f145d7eff09ba6f950676255f57f29ec39cd389b3015ab5e21b7df27e12167baecb264477e1587b1867a66c341c76597757737710a85d10c2d52f427c3c596fc85c3d3f9a3480763ad68c9e2f40910788f586da3912e36b99509c4062df0c0eeb4b239f768821291e4447bf6b15d039f939b65f54229fc6da0c99e00f4616f828a01eec09880de70b58b9f71eeaf049abe7e29d059545b12b8ff6573b7f6501fe9a51b8922ffe942e5a6f4c120b03849a9a8635d2714119c9a45eedd78405145bc021e8a0ece09a2a246e8d85044706a5eb96ffa2310f89d2c4514ddd74ccca4f0cd1ae2835ffa2310f89d2c54d4b40e1c8a144e53911b2b9f84d420defe86a2837382a8a8113a3614119c9a47ee5d1d40bca25e58d53e07a2c71605e2899988ba3d0804a0d2cb4f0d3aca93b4881a837189af99ad09e3c2594aea4a02ed463b0f039a8ec91eb92cfdfe6dc8cde331df7dfcfb054221713ba0d3a3fc22c521b1aed81d36f35c5464a3a0862c1b8313b7fd1412b64b33b13df753beb13f8e0edb7fa41090030ce8a3c129b7c8328e23261603bd80ea3bc20d9927402c5853e1078125055388583308e532755359987e222f073aaeb617a30fd9cfab25f23fd85bfc033fc66f5324592709508779dfca931c7e6b47d56079a250aa0e57f5fd4484647bb218ede3d10ab524668687f4b7ae01e1ce19b64ba831b575568ead23d3685ef0388b023b81743f29bd655045c2d4269d6d9ad76ca0b3996f0175b76c64ab5a1b5307819fb33d42dcb32a000ba65c93334cec368f92d97afa77035f3dd25857901294517c109ebb305506d878a0f0dfbc578d26808c03af347cd89b53c46f4830da66497b224a9440643699163b6149a4a00f2e1f8cd0ebaff801c5027bc4eac7e0431def6e1a264b52bfd50728613890d9573a36644db34d70e72101a3baaf0e473e6ed740bd5a6774e090a98e7bf4e282c4937461dc1c3c7dcc2b54cd75bbe9728f438e7173eed50a69deab21bb7498f01f1629fad01db383ece88d141860872165205d6f62433187cf0864132cce01a83c3ec6c2b2e0ab5747b48a1cc327cded9dc928a5cb500af0a0b3f60fd1785c3876a4a0d8e227a7959203c635baf04a00ae93de3526b2be9d9137d6fc933a2ddb259017a7ffe1a1e66f74003051abd5045b9cab528726aa863a70e0f809f7a40b4bda7af5e3acde8dd48cc7a670bbe2710caeb5f5a26c4231b84a4ded6109928791f56d128048305c63d65283e418900f4b8947e558b7667b34df0fa71c13a3e2a0e71418414a381b96f7efc6e0d029c5fabb10a02978f848f60779823ffc62ffce765a07f21e831e9113b905bc3086933fa34c761ecc626c379f076a293806655799289f0b2d950ee736b7b8e23f74caffb44635a9e0185c9fac9422beeb74916232e1ea9f9a7721b13032609dcce3d01b7463704d25ef6b1eb1b7e6dfedd7416201ece9fafd0f3f294afd3ad9aa9ac72ca43906d4702e844917dcdee36b054b4a6270e8e246f40f03ea5896795a309a516d0e019b507ca2d8838c3bc0a205906bb676da8f18f9ae64639c0acfad195a1b12be5d2cf782c63ff137faaf064b33b88c5a728005dd23fd4726a775688febf3fb2ed7ff52a96d646d64bdfe36b25edab6b2b794524a19c50785070707dc97749817182d726b27e478ab666e033ccc2ec0c73601fe65df78187b003fdb0778d9cee165368e165b009fb7d38be4c83f91bcba29e5ca2a32dfcdea262f192666aeb24da57e66c66431fd53dd247346f489d84d326744b7d8aed9be8166dbf89a3de35dec1aff62e3bcecfeb19b3749ba49d62e1bce0c1933ffda33fcb6c93b006f0119bada985103e7864b8b51c3cdd673584534ee671ba766068c7d13db1bf9779fba49d62ea42b27eb9b33c385238396f52563d470d34bccfe7f62ba17e53bd938dc50e367db8649ee33706464223370646492ebef959fc9ee6f6eee6136f9b26b78318366dfd062bffe64ebebcab9ff7cf3be5947584539335c383268314a2e59c38d898989ca77b26d7c8b7df3317bc60d3f73d9dbd370ff62bb60c4f8d8fe7e37a99be48e23235f22337064e45bf43739d9953509fb5e6cae666f4fb35d31bbdf0d76139d5dcc984c2666c2bcc068d15f39afac4917ab48f675131734339d5d5ed4c8ec121f20589888fe27c693c9643316335f606c4e86ae67ce591313aee7ad038e13eec4c686adc736ed2619c624371490e67a8f85c5ec9e4b8bdd3f66c790f12efbf5347b06cecd9b3be74df6f6372746ba6ab831981c22335c38a40c5a8c1a2eef9b75e4c56d267bfbdf36ff820699ad1ff7991993c5c4768b55d4da69b15b42d06fd536183b8566affc6bcff07acffc6cc35eb6b5cab7d8282619e6c58cb5c8e0b2b76f6191610556aa24e143c55011ca661d29352f01524bd8a63995e7f4c9e6de24739c55143bd99c49e6acb859d74bea7bf5123f430431b9c0055398220c61000318b0c0c2b4052d7ca1c80ba72e84d5f5c4c61521df6d43dd7b31c618638c6d67678861e31098e938e3199ecf661778356c77c2536b72b32108f113dd7ee66f655bf6e9f925907d3a0d54bf5e8d88cdb437c997ecd3ff3579924a8a0c2ca552e9b1e9492a27cfd26e9009e5310c05a5a2e0bcb95c25205c16a461f0a37ddbff26a552a9542a95de844ba5d257d257d27b248c31a74d2b28e0e1d1dd0926c4ce4e3722294762f0509f69f3cf5be5072848080a5b0ac13e45451bde8ab45cac71a5b292521e11a65cacd54a4a49b664603161d4b8e120645927825441dcfc8251285835086b22558aacaed085e24671894e29a8913ba27272a95c215d635d2128eed02d328696c72defb5a8dc92cab6f4a5f42811973009480b53264cb2f7b3562a30949d1e1f2aa84d572a2af865c22913169f70a178c2898bb55a49297f2ecc062c32909c18c03265659572b150a3098b5c16dfeba562720208c82b2929c3257e7e4654c418882de9ab944b292c7257742b78c8e2202c131eb19027948494f4fed32ef96d3f06826de012624beca3e2b248b958ab1513468ddc11d3a61d66c297eb3b7c38ed921fb04fed1f2a2a126cf260a5bcc140da1833a2a8bc4aa4af5f7a95b21431cb841f35ba9e9057b984318e99f078a1805d945fd91808f6c142f00f5e02af4e292ae566442d7169db547698b22981b292326191bbe2642a91f04fbfff79231cc4ed0d42709c5dc2f7c9d4cc5033830cb7cdcf1492b89824281790464282ba302713898b4972baf7de7befbda8ed3d9294e552a81512924f845d140a4c5d5124a93e97bdbdb965ee4d6d323a754b234ba693411141b1361d108002657847842c6e9bb8fef5f26a498b1c5cdb56d0fec8e16b105e0e1b5f7915485b41c961d39b956b517041cbf303015f830811700283a12060d31b18b743f8b03d2626fc00083800027e1ce000282990f64a39c0a6372f1330e7f27ac484dfae6ba149890c183786f044e56e00675bda725fa5d457a7b8545ee509ac0ed9b25c91418617672162d24264e6cd0d838687d92fbec5de5876cdafec195e86dd6d2f58b61c8415882d5b6868aa10b6dc5911e2753533c8701e0859643a164ba69461752510074a988b0c11eeae7c3090b6129321e2ba2b3030303037df8c370e06c602be6c57a69321d2a1e0b2c4c4c4b4d89e73c966deb8980e849f8ce6408c2773799995cc6660e5e1332d76e86106d0079995fd43871c3ec6d3416f2e2868e3fec6595e0690c6f2e2be573f1d36bd61b93460cee52e687ed85c180eb6a40169dceea2ce66337caf7d3796ccc7ec4e86482743b78dcbe1ba70416330352c37a8f5374bcba66fe5389661b4e58bede70558961a86a661c6d980b49715617769a181658506131a5429910614090d3470b7d2f05b7bb904463f1d3be1e3071b7783bc9b0a6a5beaecd34fae7683baa20f841688ecf44f9d7bfa3e2590507353e4b33ccb9f32c8763c17a7c0b46d36773e31f082ac6ca7d65a6badf8de3a04824b71aae7f7b26af321c5566d9e41ce1973dcdd5053489173c65b11768a5cf10cba4e48d7cab1145578f464bb9f0d223cc75969ef0569a52dedbdf76edbddee761fe3cc71ddc8fb4092e638eecf93f216b9456e915be434b10fcd2f900f84b46f31f0684a98b9cf82dc7b9cd6a4cfa3cf1c77c10fe474bcf7a2bccfeb46a44d6f3a4cbb5177f39637fdf7b5ceb97e1e0263ad4d2b3bf9907e9947dca643bf4f29ee1b8f1fa3f746bfd5add29b1c5e13d0e73ae595b6607a31ae13c8b4bc5889f0d3da66cb81adb6d6786f1f6babdf5afb263a0bbd91a565a6f41b0171eba76bcfa08c6e3322a49962bc591acb8fb7fe72ce66af946e1ca798f293afe62b6aedade598602b0534d67adbb8cc042edc70ce5bbe1cd8ea56b9b0d5ad1aa9158b5cb1bd41d8a727e75bfad652ee0aca5941a5a061b54c70444f545105c6b82e210c3fdd49016ecb5f29c4f432a19a281765fc11e3911cfbdda1db1f6f4a1def3fb5e50d83109e25691fffbd96a3340d42fbf57f88d00114c9c9149648e0e78d3acd6df9e7a4725ef0accd0f381787771ff51b4d73c68c993167cc991933c68c316732366748ae6b88af79729a258b79671a5b6bab797ebf2ef05f7ec31e186b3d8edf2b0f516d081f40c2e8c7b31755abdd980861d501755137ca6ffd8e87e377fa67d82f7d942daf0e475bdeaf4b8464c7335fffef4867a3a614003a9df256ce0fb8f2d345cf7c47eed812659dede3cfd97ede45d0ddb8b2b55ee1691658597efc769ff55ade9a41fbf638b46ff7cf1db95b7ee6b740edd6beadbd05664fa7a00db0fad47a056d943ae5a36e6574fd967072b79ece1a63dce17b2fe9acc01d598f74f2e87664bb4abd8d44bfd6fe81b4de52b5204dc706faa9d3290665541eb45b50067dcc4fbae598b6d0bf1bd396fa5e89768a41e0d1c7b5e25a4f70316d498167756c6d00118ffead6116f60aef0a94d62a857ee24e9df04413492c01048d04a5b4d6246cd07908691792e8e9ba4ba205f78eee8f46204ed5e0bd5a48a20423ef08af565a4f4c545bad2988bdf61ad17908a914fdb4c1d532d0175f0c7e54bca09ffae9113e3aca96f88813702ef0eebd470471495960ae0b596f61f3aac03da17b82e3b84b457602775da775d431dcca85204cdcbb95e8289abd507b50a2f667043ee8b586bfd6fa89dfd6f6a9d3a99d511b3beb66a7dfda9eeee81bfddd737b47df704ff70944a7b51bfddd06c1cc0d6701dcf3b7726a4fcf5c87133a10ad8de3c03ded37c21bbd7d2b67d437aea3d433ffa19f3aa19bfdd4a16f7371add55adf0f08ab8ed711f6bbb3c535c045f0eed3933304e2d496bae4e5225bacd5a84a89289293292c91c0cf1b759adb32beb687d0ebe7f71807c18113bb41a1d26ac4064180d821bcfad512c1083f1d654b4a2f3652a202679cb1b842e721a457f433ecb48b02124ce8286ee370a7439078a2f310522bfab9e910249a18753a0409252ac698d344df11dbb66dbaf37ed46ed48daae8f6af0c3e1f236fe46da1dbcf9d0e41e2049d074dea7408121f98e9b4feec91fe884089ea7d1d6db13c84540bddbeed744890233a0f21cdc29023c4d0511aea753ae4082c3a8a3eed470444e8285beac09da42df43d90a6a38ea18320ced61ef8d58d43bfed809052d1ed9f20367db6ec3a1d72c4147d149ac0a327e7c598cb16dfd4e5a90207b1156d44db18b82b852239e79c37fc6d44396f5ed01d47c2bc668c374735089618c37cb1cfc5788970a3e1461f1662ed9c2fe4c2ec038d9a107267a3a00b1b156982ca465510c281341c7a7c3f7afb7d3f0abab3d1d085d9515115a86c14065a8e82ba0d01ad2418ba33f35a59add9320c54563d404bfbd6fc768faa826ebff25819fbe69d792bd8e96a1d09bab72fe836779d57d33bb996b3aee5ac6b395712d0d917828fcb5dd6f5f3469c9977d0edce7ef55aabb55acb251c985ecd967cbc1a0e6bda764cf8f44c7331c518dfcdda9c6ddfbcbbeb0808ce36b682bda7a47741ba47c8d94a374cbabcd2968c6bad1cc7475bff1ce9a0d7b167b4c2888dcbf8725bc6bc2b72ad908b6dbef4e6efbdd7075b0e3c12ddf18dc230e9877ebff24c5bf0dfe84d6f2a95c1b89616762dc63ad966234ea0305b8de0aa14ba7d7cad056a8f95d9af3f468e57da52f3765dc488314d2c85a7f57641de8b39bc4f2ec7ffbd8eb93deaa3eda2bb33312e74c63777748376e6f5f2ce3c1e7363ae88d93a9b9118b91856ff85991736230600b2c5d696a0e4f45f0a79c9935e2e139448ae4ec616ab542a9552a74739519184bce449dbf34cab4dbb884712d529e582724191292429a2469f0b2592ab3145a22a7d26d76905053c3cba238109b1b3d38d50e5edc199362757638b754af588282ca258ac16b9528d4418686cb14e29129548aec653ca844954e46a4c892929e35832c248d245a25022b91ab1e99422511d81a19e04a4a15ea8713ca54c5888e43828167b2f0643c150a209bba4b8a4c0603094882a59912ad184515c104d18c5058eb56917c9d5784a0dd1dab5b7b0b45ae02892ab53ca078a63a0cf0920206f899f9fd13f2577f6614b579765b0526520b60c1252d224fbb7fd28915ce59e1aa4faf8a4c48d816c19349e52242a93885a115128161145b24b5eb5693f892436ad5e2f99970acce52a419a88c2ab538a4465c2e41372ee1971108a632094883257a44ac422e91364359e52fc470943c150a58a68c2a82b48d927ffdcc004c7551966dffefe0ffbe4756c98f761bffc04368c97c06ef111d8310f812df339b6eccf3dfb076c17dfc3a631c9dac58cbda8b91f809d6df63f0dbbe467d8af9fd9dacbf75e732fe061f60e1fdb0af8979d8087f162ffcb36035e66f3f0319bfc165b8777b16937c934bac6e5cef666494beabbff7ecddf6c6fef62390bd25c2c27302f30b239d29224b96d830c3ddf7b57be4f97601d04bbd04467978d33633219126914b3fbcf768e4a8c28032f305a644dd31cdfcdc59127bbc6b7d8357cccc699f1b3ed61d03eb6fbdd29dd446717eea6677d8908c1f9afe47b7df9d3dffd523bb418a51c1747de8d02f302a3453663ac22d1e42373c6cf6473fd4bffdf362df24dad932ecb71bbbba09969971735664c26131333615e60b4d01c08f3679307b45e522be7f213c714427a436fba3fe9cf8c3b337dd7fd0d2bfbbe7b1c9e6965b5771f233443696aef66280ded5df7de7bdc37dab76322c21d288ded9dfdeeeb8e95ddefbefbca6365f5bbcf3e280d1542ef7e01dd6b2c5841bf00e2e03e7c0f0051bb29fda800fa4db80ae108c7081620bcb0ed4f37c027e13c4c237e83f427cea3c47b943e7c52f8a62fedb0e7c6e94ddd9f42cea3871c8591f727598edc653e63cbee636cd999b6ecdec354a04278d222ddef6065a3efbe01761683dbd8b27b3c85cebcb3130bebbefb73a677a5bfb312dfa1bcb31e2eacfbee77b0650745d7bd4d0c2bcbdf3d6983bb86a3a75dd7617ad2f11c992809ef56a2f007dced87f46dadf5398f4a44a1e83ad8d2e2dc4e39bdb3cc7158987dadc35048c8b35d072a8483b6d87e52a02abb1f3f35bdbbdf2c7ac6ffbea48da03874a0fc86d6417886dee87de0ab6421c8cf1a8236bcfe95401cd677bf5a913ccf23c7711cc99dc3455b24f97a706cf11ce4bb5afffdf8e0d9e2a7edae980e9e2feee23035063ed972bdeac51bbe9cef2955515a5f64ed1288333efdc611acfcaca307d254a48b1cffdb67d87578007181fe816f82a7f8e3ce013e109deef3f6ef319873fb6a1cfffbc457bd596bbe57cd88e30a04ff7bd58be37b7fbabeebf819d3c527577c87ed39e8833ffee9e23b6cffc0a7671df749f2153f71174917c8bf376b4cfcdfaa6fedf06d2e6bb3606a0dfdc027c9af05beea5f7cd6c77ad787dbf51ac4f93e078b93cf8136befea95ef51b4853711ac68c2088810e536bc4f1c9a77fc3f8e4383e25bf769a33f96d175fbd6a771c654b51a5d3c9f72c75a954ab2737ca8a4fc11c6ea8a7f8a87d42da6bc79fce417886fd8628d7f3185baec6d1c3fdb4015363f4e3668dd187a931ca77f08b03a6b6e0c147d55340a77f1ff894becdfd74dc9eea5f0ef25d1f0ec2d3ec374695496968bfe43e6b275ff55de77a71f7d43e6f77bdf6096b8efd2c8e2fbe6a9f3a5da5aa1de42d1af5c1c7a90fbe4ea71b24753add3b6c27394c8d89e2db5cd57671d46a35c3c2ee87fd9e2e8c084f0a347a1cacacfbfb313d8aee79957eef591edce67a3a2a90ebb85df5a2596bc4a71f09536b44f03f10dc147c33869e3a303746b559df0ec537c38789b132f1c3b7348a1edaf0ba4af57d2aca616aec9b6165e2df078095b1fe7efa06e10e5606f253a7072b1bf91973a30156f6bdecfbcb616a8c7e9bf594c6f24619ab277fdcdefd52e48f20ce8afcd4ae7ddcaea79fdab593d4f5a93d927bf5748f9fbae2a7b6ede3f69e253e4cada15d7cd73e77581ac6741bab8b086954da35ee3c350cf5a3502fbefeebdef5ffa92f7956eb37f8df83e2d33d7edfb774b87fe33e8e5b64fbbe07b7eac57df2e8e27bdc07d2185be47ffc6cd9583df8b4f3b345f29cd5f7b4f3e8f4c573f526ba47f2e9cac6f7a00dd58b8f5b2b9ea37af1555ce4e3db5c1b0b9eabf752af4afdb74ff0456ef211823f7e4925825bf5bd8a531ba917798ed4ab788ed67fbfc3f6efe93e41bec3f614a7b6fc1f5beffdde274843fff373c7fdf859c2a92d598f777c056fa0dcd5bdcb451f7c0fdcae6fbbc60745d77ff4c7073bd787aeffe88f223f4397fe9e7e2f177f7df8fa6fbfc4a7fcdc71fb47bf0f9f3ec947bfff8a085b34ea833cf515fc511773888fa2a8171ff5a24a07fc11547dea2d48d361078042bd88a3fad6837bdce705faf8d4cac877f11377f0574f6e6acb153f77d87e52e0aabe7b163896636adca66f6d1d1694517bc7da3976d8de710bd44e3f45433fea51fc149ffe56d9a05cf5e05efdb84fdcc75fd9dcf14faaa7a90739b6652a477cfde70edb458e7a8ff6b09fb6699f3cbaf72b9016968ef41db56bfddebeb1718ce8e3febd0e15fcf37bef3d6fdfd03608e99f7409386c794110043fbd29c863d892e23ecab137acccfbfb383c5ad2b7e136278f19316ced6870435d732de3784c0c2bdbf80ffef7b5ce0d3a308418ec0cd1c2097e7073bfeedc190c1eec9c80094f04610556dcdcf7e1fe057c78222cb12d6ee0d19490e2ca5dfcd9ed7ed6d6eddeb7b29b7fa33d635c668cbbb6a5eddb3eb1657d5bd6bff9922d1ab545a3e64e69d746b0582585e2a739e53e8b2d717e953ff397b6c42508ebdbb7b1a695655ceab9a46752cfaf1374fde9eaf9f527d9b3d773abe751cfac9ebbbeff5cf59c3ab99ef99f2a12933f533de73fc59ef39f28f1cf8bf22749cf6fff34f5fc94d2849486f5999fe5e7f7ca6ddad2e6b7d69a56462d7f942db1cafec6f364e6f27bd2f1e3c7a5959d332c5666f9497fcc99d196f8514e4cf8fe92978b6cb156a32a95a91041af617e11457232e50f4bf94960cfefed9e7f945f73f9b7fcd3e9c0a327f91b95db0c0bc3317ec25babf5cb710d223c5d74ec62939d10e8dc37eac2ef5eae8347e77e781bc68f714f789f06dd1e1eee3ed21d4b5b53987e6d65a0ee3a2ed075c7ef81dbf6d1e37d6a2067f082badbb67f9b444f099c7af5ba8e83b4a5fe0fdd7e0128272a9b56e4e234a21fa225fcdcd90be8ce5c41417c7c626a29fbf526dbf57c3fcaee8162e244901238a115f0f410a14d423080f04de3026de105fa620595a9edf0a0701a91cf0b275ebc78e144bfff02c60ae8ccac0206cf9d9943307aaceca507061154f642847e21f442e88510e62f845e08c100623601944dce338d369a9f173f3e3e3f4177460add59ebe7478f462392cc11648264942073041921d90a643cb21e191132203241324a901192ad40c623eb9111212324232423242324232423240382427484e8ce5c45aa5789f7795e29f5f8b3d8b5ed81cf62efec21fb67076d25a03a9dc72d44776d7b60670fd93f3b682b01b577babda3f74ede3be3ded94222aad399c3628808888f9e1d234377e6221a2aa594f62ea2f478ff804d3f12519dce9c473474a4c808d190690516fdbee8d383ea745622348d4a4442444359b0b35714fd3e4b8855c4caf27b9e6a4b61bc9554aafd832a3fc74d442b88432215a21544a2941129202921a91e882856ea47e80279096261f7c5a709e1962a5af1b314353f47161789523fb11f3b4d028580709b66058d19a115d18eec581942d892c7c785f5a8388da8648768c7470f8f8f9d2ff52048533d08e2e00eba76cc223586cda1971f2f3d35806a34d1e9cc6df6c5a7d3f989edc5e704abb1d47c6400e9b9301f28e03195684768453423b6bc6f16a935342b688c8686052f42f4127267ae9f1f9f7e1fd603037267ad1d1e1f4bd4007ae97921827bf18185005633874c2a3cd368b3218a2cd400e2805e7c602130a9f05e7c4c2f3ea3179fedc5c7bef8e0171ff024240add1e5dff0ff8fe49c8ca4cdfb681e4da810f0d6020833e9484290011f9e92982cf7511a59cb80d3d3d44417aeeec05e4ce5c3eb05ade4c52b849144354a0a08344242348404842483de834e79946d2cfde2c42ec10ed1019298aa2d6804586accc2c42059599554045417467e6901174f6f203c89dbdf408b1b21a403da0b21a4da0888888884c442327a952246011b30a669122fd34f4a307355484212586868668600e7d313eb4e5cf179f4eb404a212acb604213b7bbd8fc97be2c7f776013501ab5531d443846914962cfe21da72bf461359e83580accc062cf89c60b53bb3010714560505620edd990d30a0b017228678e9b1321b5840cb5ba4df37f13346a45f582d84d54e58cdc26ab05abf21cb0e8d885674613d3e443e269b668408c80502398132c9400640ececc54d38cdc889c8870f70083b7bfd7d2fb5f77fcab8fa3c96c97e3ddf258f6b35961d268870f0401d038de8ce5c7f9fa5e8ce640c5d5a113d29132db57e8f74fd2765e248bfffffed574f41d9346fd34eb68c9a8c9db1c8872888cf123e20f155912991449196b4b5d394db46d7bfabe4f572912d2404813aa35d800a74f630c6d8c3ef91b2eebefb9ef33c4e6d494d0ee4b8ee3feebfd08be91d09632ff43aeeed8f3acdf193c3946ae6020e82acc55db639e76eeb9ef6cd765dd755b3eb9e3eedbaaed3bceb36ce77d83ed21beadb92e0e8d75093beeffb3069e700a2fb3e1269e6db62baf65ee70cbb0e8f8df4e6b76ddb56dabef4916ca498fef11db6776ffa909f9844b2e10da6c66adff8d971981ad31ca6c650b6acfc0beb4604fc5f7e59fec9ff49899282624b147e7eaf276168df7e66f8e5d78b0c19e251c29c4207451a3fee5a731cc7f5ca6dbb7ede668de10da4558c31de3195db3eef5a33e65ad0468495859ff4fa5a0721fdf3a4d70feb8ff5697d6dd6203c7a327aaa3b8c44fd662c58b9fe92d0370873749ffbf9bde33cf0bf53877b0ad6a7817bc761467434a23823413bce3035968f08b7af5ddfc0fb4623981afbb867638bf041f94504e9f74f5828e8717344471ba6d69c99c3d4187e0ae874dbc9d53cbd7345365436b315e1fd0d07fb386c66588b4fdbb9cfdc66460cfa9383e333788c9396b3edc6fedd42db5bf96b2bdb747f5227b2cddc73fcb3a59de996c7b0a5fd317afb3677568e343fe1a42d8384f44f92d61a5b1bb710a2ba1dff2104be7ef9a8851e784f77fd1ad2af94e60cd2ead3185bd28deea7dbacb1faf8734c0ca55bc53fc098d2edeb3e431d1ef5a9596fdfb6a7bd6e0c521db76f957631b40da46d4f414ab7d79ec7f536f908377e8ef8897b7ebdf11c97777c87edf7357efb30b586e3f92b4c8d65cccffa97c3781503e1136f278f8ebf6ebb764a411b1ce7b1c35ea09ff477d8da84adf8cffa54636bb7fc77c4dc73dce3f7b8ad69ce6f63b9d096faa3ad9c13637e8e3addde2b9cd474db82c22c00681495d634a0c6ec3bd1805ad3d101d0d98cc2ec973c2a45b741696976eb9d25fd81b4a6f6a831fb57e77bf567dda3d600a0066db120e8f6b75a8b286d0171505dd316fc3d721582d2504a533f638edb388ee338cd711dc78d38cee3b88fe3b60e2aa3b40708f84069f05b8e9fd4c83d45165b8aae99931da2688ba5f907a1b602dfcfcaaacc7eceb5e76a7bfddc6bafd75e547d0d83307441e88377edbd381e3db11f26690df40e7b42fbbac710826add0e6008413cdd2b79618efc958734eadbb7fcebf46b78f17d4c23033de74ecbece58d659c3447ad6fb9ced5cec01b7d4769fdd377375de9b4abbd296d10fc4d11df7bdf9db5467f7a9d9b0d3fc9ebdc6cb8d2e4ef5a05286d80f4259e3b6b15e0f4e1e9e94df7d5c7103cd43a45bda282a177afefecc45b37c03ffd89f3383df83a375beb068fd2935ee766fbd32eedd13e2951ef2e7061ddd7da0d9df4a8546cda887ad429221900000002e3160000180c08060302b124c9915815dd031400146c866a564c1889844910c5280a8330c818820c218410600c21644846e80a939c0af29c5f2725b2fab26dd2b96744762875aaffa2a369a49860a2a36aff4d2b2498aa2c5c24d31c7a141bf818ffe04cd7a0cb26466c66e496f18571c71ee513e302041a964473ffb3500092eb6e6c19afafe8a4aaa9c699413979007adfb9ef0ebf4ece24a930f3c8462a31014523cc7bc9788b8bf25ea875e7bf5037f45af0d8921d95af008d30c00684f31451c0b57c27f5d57ed7ca3b5231b7d7293b19bf01a5879515a5ccb87964586712c06f7c36384a805e26197e820f793cabef95292f485e8dafd397c25da945c3d0bcf221a2821259ac2356af74c61fec5a23ef108917127135f855de282a626b2b3f14acae375a3e6668b8c1fcf6a0cee54a408e073294832b3a6b521a1eb4c3371061c7edbd3e2d7828f2ad31812a675255ac78abb7805f0b4c26ac60ee5d6e70d2c8af2efb33ae1ce50d48c889c888e5c34794cd4203f9c8852cc08d8f227e8569f11105eccd85c3330c13db92c644cfd70a5798c99e99ed81991303d2cb5bd866c5e00c2683abe3db0473e3f598615c13cf1236bbc0c8e32bf1457097936bf4bc1c2a4011137d3691a692713d32462bf2ada1a8227ae3b551e68e5c8f67b31509a52711269e3a371cc15bd22062296a95851754f3dfaca806b3f16bb0f2fc33cd26c7d9ca73063d5860ebf466382d880d48c16689212b08d8c10a8bcebb4c46691c3f9e038dc0cb1b8861b78b65744ecce3c7db03d60abb16ed0948e6bc74c1159ee2a48f56547d95835f543ab9eb3bdc41064721ea365917d59aafdf77b06844f73268f62239d2c1fcf1b7c0de46f660e065f2391f232033b7504ca593ce215a969461bd490a26a2140120cf12b68743c492948c5377b47200761a7c5a47ca516d3ea71d031b0a1e1f4a1b3b7c1e88f4d82d6e1335e78893245bf39ae9ee727e1e7c96138b53928ca2fdaea462c0073f76adb194b9782e858b32d4e56265179e0d9a8285d4d358d95afaea445b4d02201e34d5547e487b1aa7bf0b251d8dae86ecfb15c375303615e0bda14440d1827191447c2ae4db3b299b32efa1405a291f1ab89385eb91ea4c853c7b07c18fd051127e0c0e8b500a38116c2dc84e64e0474265466b30371b2cbc19a234e390e0b670648f2317213890d0102513907ab4501960f0a6418c1603f9781414dc672995b91479d6150d3c0794b0b09585abaa5729f26608d7471f34228f206e03a8d6327d780addfd8672a5d31e4c916f8f20befe3f6d0b0a8e3045be532ee486c83dbaf9caa0ca658afc2ba0af7d075922607a105200aaf1640a292c0b1888a5296f0321a38e86232c2276d8a093070286e39efca707cb4d497757ffdf18ce5c10ade02d849698364a5b457fb946434f2a7d18d82268157ccb91520dc5d85513dd61b41c43993bf2ac35971aa19b4c427be4f7919b5838abe9533f8c3c338353c522605852e067ea020029bd49a4e75d90711113a85d8b577e8c110a89ea729786d94351a7fe0f852a497e849d0dc18aba79af6028a1b9fb5fcc2b4a499e2bf0debb7574c24d97eb8cd55b62f828c3549225a5230c0ac62986a478144bb515f404e3ca04bc1e20998898a81d5771354a7edcbb9790f313948ec04ba2b21464abd8a2ada44dbc0b28e585af1545f66fdb29c697b4a568c00d724c8140ee3ea88f404bc60abaedaf5e7461bf2cf9e0d8ca9257dc2bd4351ec660b4106a3a27d4a94e48cba218ad4e96e6b6cbf38bba6d4745784400ba9998914c4a339307a64c4abfd75ff2fc346728e85832e341c6445866f2a36dde6f9df505941ef7bbc7d63e095da15f835d6bd370e02f721dc227da39539ab7f1af2827822e5528a5ad353d4ce205651c728e269785e33d41e2461387a2ce849270bc338875ff8480f087c18e1576ce36afd5972e8d3ee2aff6a256c41ee8f436564f9e18a79332f77e390951ef9032638a8f79b78e74fa0ce935f9c191587114490eb8a9ae9efcb38bfdb972e4f0c15a2eaddd5148b94cc38b42e9dd1b117e8ba76d9c7b933b93308fe6c0af935d7e6c19930ef66143bd8124194ed7394c280a9e6b67739a85bc92d71b974ba06c50963ca07f189bd03bafe5bce92a1088dc9a53e4e76645b86159f2cfde83fc5bf28240c4bc504db3297d81896ec8274faf2c4b96e6ac41f966fe3e42c355b8172ab9ca4544e778a54c4159d8882f16d2f94235ad96b75d0ea84cb7a58c071dcd5c41dd262ad3ac86e449e8e005d17f0a169338113054b10e1c83a3ebabc049db1249504a8a38305437e446f6ca52a0a3a12abace10d2504de9b906ac505bbed35146b8b2db94114f9628d33454c26b599cc982007ab846780d4f8287f6a286ea527d13cdcdf12bfe17fa5984431295bd8315d037a0be74d5502d6334baf38194931556ae973de4c8486631a8975971265943d5db6c360b6061ca5e00e7ef013efb44646bf9e2ce1f7ae4ed7a992af36c0d957eb95df7c84cf4cbb50a73ed8e7c8d26cc46e59e82b9bd660e148cb43a7454b4474b11035574bbfa5fbc2c24e58b8a29b5ac1ec57f8c586df851397c5314ddd08deda9f46510ae2548d842fff54e8861e182dd9b043c541a4eb6d2d83f4a9b9f09ef8f4765b4e3432993d5cc073174b71549a2c8ba66a550e6e3dc5119790e3f680ebfdc8901ab63eab97f311e2acadcce12be82b0960037aa9ba6e974e8020fd2b7bafa581053a0742b62889595cd4375ed34eb3a0f158dd8ff5477ad94fcafd579a868d97fbf62f365693cf05707ba560a32850c4b117aa8fa5a4eadd967a345a92e2f54a849484e19d5babe5c41547ac3996605dfdab36e80c28c52b04593cea223ee11c0755b54de165cbbbfc3974dae0b6523631dde20c3f0a5cc522d895d1fdd7d0d40c12568601b07b9538eda4a0f1579203340c1121b817775bbd92204378bb03c91cfeb5fa347f5c1ace5d9f7b02d29975ace315d5c22c3edc1b348f04be4cecd22fce412931eb2e38c0ff4193247bec5f8e166c582ecba69e7a6e16ea25cccaec4560aee43763f790eeec11ddc9002878d7dffbee273991788e0894b6277316ded5cea272ee08ce5024762a6f194b6dfaf9b498a10b76c8b504f1bbb7f52161377c6fb04efd18750743291200269b4a60121422d69f7399eb2b8cd8ea3f2989771e99b9b55e9b0ac5eb1d268901298710080dc215418776f5be2087d2f8ac8c11bab6c13f0a596629733ec35a3b6e7a8a1cfa7d5d079e2845afd5133eab20b2e9b5bc1fcd7b710f3722642ff2580df10d02b30586c81d964469291503b13d6fd75b813eb0e02ba644825aa94172bc81ce048a2c3fb708746022ab7e2028a7f06df689c8da35418d2d2827857d60f968ed21586a0dba83c022a3d0c8cbab2e2b9f49c95f04f5d722e0bb8dd5f712c3342dd53673473a01928ff0d8fcdf0a9044ff5d4ec2620a9d0a136a49494242d0155c7543a921569b077632c212fe9c1e8e9b88d6115f005f1993faa5cfbccf3c72795009029ea32fe238ada43730a70270155b7f74108fbe1edadfa1a9e5edf7389d60fd6150172c6b07627a56b3fbe4ac3158e26a0eaacd31a4f4eba0069f360bac311dc7b6f084603e845e2f4e824a2a96ba03a0664bb9c6e38eab6174e421e1c62faa88158a3c4886a8d09776cc31cf710c50772ed4bff54a144c35bd8889e3d92854ba53e16c7eaf69b92c9aeaaaa6bc225472ba249eaf7936191faa67e05dfdae6e7b092d10ec73a436efdcdc31dded1868cea5e857475dd653757d89c9e5900779c284424dbdb4fd1edea2a9ff77158aa72286a5695992bab16de1c63f1170ebbc1b277cf6a4b2ef017c1b4028b825a77a228e8a8ba07da813ae7277b931055e5371287aaa1a9b2431b738d959f9a434109067da95b5b5b460068a053b79912223756933994e008a026c696651df497418d3caac42ce9e7ce8583246db2be4dccac9b7a37abb87ef3be2a906e0249ab767ec751f3d325b55e33e1beaaa5d65ff427db858ecc79c368b55146b7a760f6c2589308a84a23406b54a3396b6e0c0e415e07e8d50cd504febc3206510222cc8b37467fc6c323a422e0054a1961f9df7788f3155c2694a9ec42beb62759f437371cc8c36cc4e47b8848bc38d89c63728cb51a1da451c512f1f03fbe43375fac591ebfd18e86f831d7461db3915e8452f8f4644d614a04a163a3c8a08f6154e54a65f9d78f72226edf2e0c0ba33c9f2c8ffcfea78c761145d3f0238c30f2604747a28e1f5e82d30efc613fe51ededa9ecf6d26c1f980798d27db28900ea93c20b9363f68a6e92c9e49928fbb0beb8ccea61dd9b04edd698787ad75a6ae55e1d831d0543157c18cc08e23a633d62d71f285d116631dbf9f4198f3341cee41a70da9e8619265db6f595eac058be799eacd49e82111383392ebb84892156add6a290908111a9843e2528f94518cd84335a23a79a8e95c779c863a669941480f40d0942289b73fb9d2bc99ce9c1047ec3ffb9b336d94fc1c9e5b5eb48392bcf00bbeb1b6ea1f31e01f4ec3f065cb6bad5cbee5a6d3c0f63c7a63a42f0865d38ad0dec32c580e437178a2c464d13da0719b1033adba10915461fe093dd1bdad6fb308fbb6bc1122e0081f0cb2272082cb690cf47b0f6a71658fcd7235517be50cdb14a6caa3698dde8d0531b44b35822e6134beeb8f23ba329d83126d53edcba4ce2eeb6bfcd5303f28199ae5a4adced7883450a63ced636fe968a681e93f61d1b41132daa072b4c9acf424543d13c1a165562bc67da65745c14d8a952ef315ada00c880d4576f0454948d6926106bbb6bd6816fce99283770e65d38906d0a18e1dd3a597fbb87abcc10f9ecc081df3c91e956ce21fd3be5f4ae779dc292d115b723bb16c09b2fd655bd5614ca9a4efc1c95c283b654bb314c4e590685630e8c2384ceb2c8b5ffb70f17e252d45de16eaaa420fdd8e460d61eea59127ea774e13b774f93e8b7d42ae75bffa09ad7b30857d113d81eae3b905408477669e679e41690d7e0ba18535cced84a782d615412b13f4d3957ae848a80d97053c32a6f839e5a38e8b568f5351e4b1d171dbce6c15e5d0f02bf5de06eb290263265910ce8f01f71af1eca030c912b1bb353db2ace9dcdd137d9dd77708561459fa674d546aeb888eb1ac3be96e47e66c70242e782349791f385477664c2ab8e728760735150cbbc75255433c5559d45954f6b73bd5ee3a7b32447d2f17f7ba2cea54126c7a91d4d1bb987e9c1db74f9493b2e2bfb04706e90e4cdc38cec70fb7e5088b658b9c6284e3503f336081423c9b1a83860ae5880b4a3c7e86355ab079641a2b1ce8fe4df5587c51c4fec392f53bdc3b05c65ee38d367859dfb9e2052fd0ffd653e708c05bf21f94d3a6540193214704c84668c92d1716c198cfbdee4aba9b83603f14cd48fa3d3e71aced7415f3d48a9668f0f17a8ad56362da47607cf16125a778c852ac59e6c05225c11f58b49b5b373d629d4dc5903e0a413ec7608b8e06c8d73c14c36be2c1d58035c23ec0576b8cd59f7ebd9e0deb7715e5bc06e7435d5629b0414a2ad2ca1a9b804a11ba9b2e18533d60f208332409ab2a5c46270832e164c39d6ed5a8f18edba9389800701c3ec1dcf405c8ed7c8e68b8c0ec0f0962b23f0c27fcbce4f6f739860a49fb6801242512ac60cc13ce4a5fd28e1593d0f305e66de5bfa5476f704225c736a7239fd68b604e05e0a508c544e161a93c760e3f7839175c56f35cd8b1e7bf7aae1a74425395b42c817cede2f62fee022ea307b50dc8b0b89aa89d9f64409d514e97430d1186ee9cacd54dcc98eebeb5340cf7b7183acd086dce8238360489c4d695f1728cd9c892a6922d262591ec8e4ea82c11a6e47e83dd1aeb9059f5daad1c7156d59627b93b8a7ece9dd480694d8316251a6602d5e1866345d14324406afdd412f471af3dbb1737c2b650d88b91754c35f2a235ff84ce4cece409fb309c0172e35bafbe7ea3ab7640edff45e7cfa1c3e2a39d237c126e54110ae88b427074899e47ef6259856f6a90235506e10cbd6205b9dbcf2e2e8300bbc51df43a501b5596409fe8ebba8de56f7d3a69d80efbfee28f1bae76cbf3479476d90bbdac15c503e967fea76be7da85f7cc98001112630b0a07ea73e900a099eb2c465bf79a1a7b538b3250421876719fc7159fb332d7563106ecef0f9b77aa2f329762787614d748c13a7e7d3c8b048dcd8c24d297a0cc6e1d39f7f27cfc0b31067b5e496a24a1aa1e3f4f58616fcd5f03f87aab843fc5b1100b3d54702d997f83a555931054a88fbae60063d18d012cf254aed1ac17e14e0e01658ea846675a278b6c4ae1a1898875fe9805f97ebd6290965c64042fb6b1926d7a8b3b80525172f40554bf52005d8be5e08eb9060e9138eb8a33196c367d5b938395c6f241ad833c15d1189c984801c034a15c3b96167a4218bdb5232a579d65ffc545c8ca01881c4cc66e2a511df875ecac9346f31cf1458c59f382773e6837f665441258447e47e3cc582bfec1eb3b7601a305ef26d1196ce0f7e5a5183fc0261d8a1f36ff4934ae4482d9461253b316754008abde85d0d89b2c3ae05c6c1fe946e88d9499fdcfa3b4b18148a35d6c3c899f67f979d7a1eda52c16b49f0d1d45c0851366d5ff4000ca6381019fb7ae680623700a570083a7029a0b964100a594a723c20cb762509e0ca4bbd7770d7814d440f60ecda703bb58dcd625966635fcda746d354703d65210f38a7e11faf59743d1f9dca4407fda824d680728f7b2bba63a5dd06d2487a3e0e0421b6a97b2df1a15e59a1fcdc68dee18b4baaf1f51504a0b1888507b71e1d27b016ed0e8d1c83d531069ec305580f8ecd1f67ef8680c1d686a75f31f6bccf27f2dadfb4b5a10870aa4bf7c349fdb3de4643e9a17750ffc11b682327ed3cffeb9e732e27ea5fa4f4ee80bdc88ac115df0535118b685382a01a74a1ad3bcbb590fd3c73b04f959a852f6d4dc0b4ad2625844bfbe2db583072cf4934738b0fb7e28da1dfad7ea0c588120aa07fc88406734b727317df455f30cd028558352f3bea38bf38c4cd79bd0c9f1113d33d425e7fe7c653b9bc17da0009b0c44b17fc7cae01dc839dbca77827eae90d96c64b902ab6119358d59b7614b6f2debd9e2d57fb2514f2653931ef6c322425b14888837cbe6c8194ea845f61580e4e8388f582633035757e950e20e4339f5175cf04cc981fe3cbf5efd9cee297f24b736662e308a5427b3f52cee687a14ea49c0a68b5d3a9bb042b8ed443adf8ad89e74f2996ade88904e8e243a834665ae21286d26b898f4cdfeb823d9114de8c06ba14dce07eb4aa3eca4085e08499ad03464b6dd12645815d93ba6ab92c7819355bb39a1eb2e9a297a9acc019ffe32ac618bc23c46f68dc1dcf3168b902fd679226f1b9c331c0fd2dafb6910a14cc3565087fa26fe1fd69611c9fe1f4e7b20ca83729a0f75534e4b28025912502354e09500f3ccf16725930a314e2265e25c05fcd61cd50c88fa78f2d7da01ea6a8de169d82e418ab4d05b1debe0c1409010926cc4c2d83cdb28625c6f3e751f66667b50c261128cce44e3d39cbfb8b0d84400a8229807db711031d1a51a6381cb8266c27272d93e89968484004de7c06b08351b0d75149663410ec414dfe2c9322b00e854fbb60f9117c468b281a0c7b1b9253b3c9ec6823e72a449c089910fceb558684ed1061ec4ceb1eb09b71ce2a9f47f6c8b3c7598f5b46d21b61578b71e643141fb09be87ec42ece6648303d3ac38f0af52d1939ac718486424832e29ed4c4f072affab0e1fe7bb09a72daa7be51130d34455511628212fccc90b5ff8be95eccb6ea90ec389798748cc54bcad8604c93b44102fcc510334f5f191bdca70f4b3d8fc6b382a6210ce5d61f1fab720baf06790068e685f8b242b7f5a31bca3e32f8507452edf83fbe065d098fee801879d34c4166bc2f834a8d7560a2430028203e66df7d2c8901fafd16e5e9da9058ee9b3f81f7d30e630c401618b0d613bbc967c6dd1c714ef15fe0c4067c542a6cb1fc7dcee5b3862aa792cd90fbfa3137b023174bc0deb1d6cd4200f94b37dd88bc712c00ce33afeffa972647c035e888caa77e92c9de1ee53c147fbe2ba5198d24241205eeda0a9add5ba61a2ad5e3863521beffb59aabf3cd4025a3497831a27b09664521568513fb0f33df612714f7fa353a9cdd1bdea4bf623aa633caaaa61ad066459b4845e6dc2135fd294079f293d63a6c6b918fed75c369fb7df329606c8045aa1ab27f2ac756b22f2af30087bae2767bcddc0580fa3aa467481053722922bd2f84b958dabd6a8c8e0b34127a42184430996b3a8aafe296679274e23c87f202c7e99633844b3f57654d557dd602d9be932f81a4770083ae097560aa20201452dc64d2b79f824a8aad203927dea8c977a48ec257658d3b4568648fe10c2436029433480082400b0cfa9b5b1375ec678c527c45471326d411b7acc649f7fe5fbaff834637ada524bae2b18a87095a83a2c626903187c00a6b3f1cec8afb469f709f04b7184de0fdbe542c4d9a6ae77d46ab9be2597571d319f407e454fa68fed06e3735110ece1cf3ee5ecd8a8965bfc96d7322413ce1153fd262f767681728988d46fc0610fc5dab410a98b6c2baef24c39c9b53c4680b37a831215f59ad902d3fe16541492070ce845a302744a9a68d4fdbb7c8eea591c283ddc304606cfcf84bc88b3afd981145b5494ffa6283fccb70eee9e23bec60b384425cc03b6ccf999b2bc5e6e12830ab249da6ed4a104946ef93664a083da64b62615d26323606f91b814a5e026c28ba71e0947965cc9d98e6864d763580f81a2b22064cc14f70b36c3d75ecf3d0abfacd0694fa0ef07e17aa4712b9803dac9193fdf9e8f47806ef516593a6b837f0a297d3b37a15574df646d2a1d20bf0cbc63e9e0106cc90caf14045af04f286c35cac7329b7ac5a237862f99e16563f0eeef5a3791b7c85e60117ca6591a1c8865928f176a1041f50008144c14b30e76b69a837373c121470dab82c78da14a112047274c6c7b155de8f78ff8e15591e0e74749d21b70f3808c3ab4a6cb476f1c4adb472942059115386afaadb313cebefc4ee30cb9608e1d4ce9f251a7b4d172af6180475bbabe83d08daa374c4af969fe80401d05636fc3c6778102c9af96a56d0c6e2586fe2e336a3a0fc0cf3994f5ad38b0f09024b44ae32bab37e08ec963da798691e9f0fd5b2b8723016ebc7a9a55770d22362c8487c51dfc5d221c87e84c0960ace4b73c591f03a169552ae115a4a781fa100d81b068e6bed8f24231b08b5b1203641d7ecab99ecd1414e0e8431405c817f239cce371810f8cac14ed002505d445c9447992c747325ea74af4adc4c1424a0ea94c1eb5fef0e6acb4ae1db910bff512293cecfe65f4b4ea7210819c5552a3978d5c85748e2a4be4d50d2c45ac1fb381e0da04f4f990b3fe50f381157f0fd1db526f63b5c1b3a008fa6e4ebd524eafd60140e8ee3cfe0ed4c2f56f59e3fd67a0b1e3d77080c67b9d9d1926abc4a0a07d3e87b0ddb7c221d717435fe50c39cc679899e3060215b9602554d3ffe5fb86b31e956a0de2520b849dafcf62d93c81c5e5e0a8652933b095434edac60465c7824da604b6a80ab91aba555efe1d8e8700bfa11c90d8666c9c4f8b06a335f5692d73bd8aa2d6d23baaf532c145b229737e05d64a5528a5242f11094c5cc9ae197d82316bf7fbdc77eb98794fa722bb815c5830d49b5259b5a2a6366d77ee1fa526fc215c1233ef320f673d43e85681b4c6ea3046bb5f84a56e34d051c544fe04aa1b8b3984f37e317c6cec76f0162cc3894e11c7318a6c21f453b1f7964b6b0f2a721197cc971aa0a46a80a4f4f598a61be2a5aa63ed3681d6c12252b3612233d858958d3a3d5da6e5acedbe0acd342bdba90a834e50a8cf5b07acadeb879f0c2df9083cb5c0a885b55c9e274d867315a5f8b1d2bf92e56a63e40b798090914d503aa94638674255f46485546a536b40bf89df8bd98eea5c717872e62822a73fb465e8bce94ef112252521bdd185d48d1b0868bf69e088e05f4df66122508e87c9c671cb2d805a2c3e58aa29955b7a55bf5b1da2557ffa865d73e3c4e8291d81db582921e4b6af03b7eef6534e42fda2856a785f1aa8459d5cec9506e9c9f1c5e3dece63bcce2039ac2907b59607dc7d7185cb6a487ce144de123fa7f80eaa7c00262e88432db4442d21888ca8bc0c955e2d3f45b8b76d0b3ad8b18f491b307b29f7f91b6d9ead89c707853021a1960fb09309398cd77483ea6b2617641811d4307e6631d8ccdfdf6dcfee0fa18756f99150f122168d4728a78ef9fb1012cd930e2be3bc9adf7983ce229d9d9a2d85b6e4261cf44ea86dd51da2b6cb12945078cdcea4cd48095d11d801116c9bbef3363c17c6249be8873750883dde61ad43d592322dc8f3e9cb3e0e0a94aa206c163a7eed9341300f96ac199f025c2043c16f14b7c1ed93a1d607103fd21abd591f65e4c6a4f2b20a992b3dd917381be7f7b9a21b0e8ac4aee220458671a2572b1143d85d37385645b9848b93c1e2ce232cfc8c8db3f22940ed68d90236b0a4a01d44e878822d591544f5322c55b81a19aa7b6f5f04455e9a274a8bcf2bd04148bb0a544111f8c2582f2c0401d9e3e24c2d490115c822461ea936138ffdef9706910b7618243e9461a35782613b8cd16745116de52576c8c8d8ca32db76380c422acd76a9f9881d4b1e85c66c21c6053e6ee1a219e5b7421733594c525d1a80919520cc29a54b1d4998c785ad364e9867d4103be0810cbbb596cd8529ab7ba758f911974187fa5cf4db633e07e7b2d284389ab2b037ab81da6c80ead6ebb78d688b367bd12b6f80ac60d2ba0c42161852a3e9bb17e05db626ca45c53bfcf84da77e39a7a4c56e0889e755835e804bf987f671f96487fef48d4df057c91b5c6a998febae86e39cf36a01a41ac7b6e7a8a097cd3b5a2dc4c628741343104ebd2011728c9e2db2b0975267b5c49deacb0608e02f41b6369c71cba468bb75d186cdb10b4c61a948aa323ab1585e4cb37ea58ad12d7d981c7d3f4d2384549df6df3e996ad999f4b1aae8565767dd9f85fd230ab168cbd0af53b3361e39865ee283b82c2f9a8668d9a75ea6221af28f00da367f103eec98e9234fb31818f04b1bb12a5b968812460070224bede0afaa6b49f6a4602cddecb968595c040505c206f5d2f2117e2eae6a8f0f1d2df435d42bf179399ed4d09025613dc1700b73a2787bab42fd7f5d0fa5ec8c9f06be7a95185be38760405dd8bb6ed1c574b9f2ab866bfb9e7cb3cf6a579997bdc2a68bd216a08c1b8317ba51b421ac14b1110605122503a0314558f7d9ce69fa6a2ed7e555de9336d563a8f103fd28f5fa59561749941a1600cd4b75805dba295fccc65d966d40f6a22e8c3be1b432b0afe7c3709e05a427796053790166202286aae4a527148290638f76a5c326c5300f42800000f59b7b8a6c8b993e05cda80d864293af161c3afbaf5aff343dcd0e86d021ff57da52143ca596726c420d6a1456f8090a3c2e211b53519b3ccf29155f11aefe0eaab2e620fb5368a4e0c3cad8f9244492d0b438374f0cbd5a91134a6c342928e7f11ce3467b5ec98514dff18c8b701403d880d6fed4249a2528e2a4226e9f9d1267eb9701c7f8f8cd1385981e4b9254fbff9309d7fcd68b061e4d62153aa6dd3300a5731622d22ad74dc0515d45a66e44c2ff4b8218d86b32be01fabad359cc1254ef91295b1d48d4b9462e25af1d34df22a518c744af46f7453c5331047c3b0d1ac2096ff89518960d5808ee619b3413b436cd5ba57f5664566811879f3026b2ace18861f6fa3eca21f658c708ad62a8e41bcce2ba2ee74111ce0f822a4016bdd9a2dccfd7a0b888f61bd6286bce409148f4f608809ff0d4899bc5756962ff5742e18184a1ba8754ecb50af4b761011e292ba75bf9b9ddadcb01e0a68d5aaf5a7225b6d627f4869a674d4864a80d540ef918250c07422f342dc2c646929f316df90ddaf2493624af366079ecd38cff236c18c47dd6e6637bc6fe1052216272b53237d512ef5393460d2dd0ec2189464af70f6b9543d39e458efa9ce8030f10c4aae56a53597b3bbcf8328c4097c884a1919da8a62d543227d4b40f91ec941aad219239a1ae3d8424a7d4b50d91e4b44c51cde98808b5604d92e8e16a7b0c84e242f17154c05c0e7fe311fd300b5680357ac6256693344202c25c37bf30d1a49a1003bda0ed1f955eeaa28d9426b074d3c24253ce58cdff25755da02df1f9dbebc71a04c450ecb803872a9d730a27d17423f4992a4b936061c274bb3853647044e097101c79bb6870022eddf1821d9e93ba6b2f4cb001a31d0c29de38544b8c0d8c5ef89ff71878286b729f83841ee50f58d875af6dec9fe6b6aac2cf9a607b348a8e10a1cb756fb7f3ff0c48ebb2798eeb2244f04b404c608c10291188d2b72468bbfe9bece68d4d7e93aafe1985ce86f47a7e139b37c568b42158252904f0411b0dc85cfa53ad5a54cea72096577a7528e1c205e0bb3400a8c6c608b331670822a7c6b690ef037bc1ce4bb692472a091c8689106bb69b6906f592b653d39f8dd4f5e589537c2fee52758f6acc88546809046b440ac0bc9738089c3873afb98ed1a1c0f669eed0e75d5a3adf2b08febe65b3259321a06e20b084d91efcb808f5c7e36f4da319367eb4a0eeab0c2b0c43098e2926753e5264ddfada05e5613c2289d87348928efd1f84208a29b619fdb97eb167bc975ac58ef72caa29e3a7f5ce20b117c3f90f79ebb1a3580797c0dfdf055cd2d5613ca0d5d45932878c9a28a1db4bc3380d521599800195454b4442f37215edad215132618ac9af5f132514b94d724388c2734f946c4bd003992c230ac1615993689eff32c953a3fd921b70d2cb710157b6adfe3203f72f9e74bb61411ff92c07db67a9733d22a2a4270125faf0a46bdddeade908a3b679c2399a1f1878d20b174998acec471adc83e95537f2ad5596de65946c440bd0c6b52ad36928ba9add44c086e599363532e70d71b9564da0cba18409c62b5b69adaa8c17bd64f092cd7ffd6f49b73a50fd1501ada48c3115133e599f49e5021bee01f99915d11018650593e50f4e97b81cb751317a4c430f2d4df5867877e2837881a86d739ac0b1b903410809901911282d9b0e2568ef7d1e0d951c5566437de61eedc01e0ea942f9323085175e999983af668de588d56815ba162d556d85a95518861a0255b07bb0603f5eaafc90ea0f2759354ead24d350a9aad227bdcf5d0a599b9208fb921e74e128c32223933f1ec2caa08595e44ba7c1d854efc1a219090dc5b76bd0dabf17fef4a08ef0b7651316270ccbec50698b2eaf0f032b55695d69c7c0d8ee491fa17154aeb0dc30e3dd121cc1b5ce0b3380859e6407413681422b80a720206fad3f48ca45d2e928ae142d8394205a310b1e739d4413958d77c7ec341ed5345744fff1a43689c4140696d8f7e69b249548d35bba119238cf240df585da982e20dcbe4bcd77cfd75b172c2d7cef0ef80daccee7a6b7898a79e93d9709c5c2f584202f8325d934b6a44fa03e63358592557669b8fe49aa482a0e84b274ff49def87bbc77c2a462a85ae8a491ce33ac2875d61b409f104ad53334648f542b25b7a56b235bf24884b3b2d99b1afa4dde0eb87d91e958ba5e68720178278e3ec87ba9bb19977d05320703315de99035143ab508674efda468a1247c708ce076527da85f0edcef88e11830042c4deb28820695d7cfbba3de0b9722074814ad438a06a88e3ad459d413076c7db4a6b12971e082aac0ff48a924c50bcb0748cfe0dff228768c09a545a10f51c87a2ba4903e4aebe458b3506fc90a9916a56bc5eda7c8d071fbcaaeccb961037a6216e500dab1d8ec36a6c0d3d3db3b71a22ef5f611efe2aa970b0cafd272af8a7862995bf03c981b27ba0ce68b2ccce695dd51ade4302e2acf953395f14de5dc6d2d27a179a2de4ce11aa2b15344ad8effcb8d138a2e7ae845df6385adbd3bd4f4ed0e64dba516b7743f05c7094de1f691c6e50ca364edffbb17525d8325fcaa6c345d898d4ad078859750a4046e6bada45d1b7f96abb68ae450a49f829724a9cd9b0a93112963b496c9227ce963af24ef3d1e4f9103a8d667b0f129104c384d582ad415268e26f9190c210c178c64146920895b735a8a87e5c9224757efbde105ebf8698cd4159a78fdb59ad92c1dfaa998b821ec3869789468d3961ebb4cb5187f54714d624108f8d42aa05fde419164c4836b60b8daca3a8261c9f3b23a45eaa4434511031cce74c71003df83b808331684372b5be0bca6868420a24ba6047a41ce8c5c42604822a56361140fc29d433dbc40391e16e7de303ad9076283ec117b9cf4f2b90c1e2207d9b104a84f4e5c81ae03c679c9c02c9f806a319331f70b1a4ac239ecb0405f03361584c065a620ef6da893c1baa4687a5e2b1e949f7ee46251f6f4e2f1501256cbc2149ef9711695943a8bdb506f20135345a6874aa69a0bb782ec982743f18e2bd775aa7f2c5c5c60840e8a6472560ecf2caa82520a32ae180c3e3ea65968313f6288a87fff051c909871e5db703064892d206485ece64ab7860207862b568fc14c3aef52aa8126b314d8976115ae68f8ecc6c23e7c142734eb948371fc871e871ecc4725753679215234ba9230feb19b6bc2548440a3a85a02c9edb89219827a49a46ec74a7e29b4af328cc15a0f826b1e063e54dc926481f2ecf85c39c67db8d0926ec39493f061b828c8a30fcd983574e5abeb6cb0e84adcd70b882c4a1b66e1b3be9853f5a12bcd88e4ea3088195d69893e812f6877e8daa28077cc6374e5441f4651b54675190234837b7bde0459a783dc4957261d5ec17c2506a0db3ec0a4313813469a260632e054febd8e74c765129370cc2c435c02841084d7a16f2326aacdf402803740d80a51e95d597bf4f96d520b0c857a79096caeadf5a64446a12b31b0e84ada95a6d8069598971aaf90b671f65729227e7f6434a2f2591766263a0873af4107c11b4b194c894ea02cc8de4e8cc4841d1d739255b1ece4e0a43faf5849f31c8c34087498072170c1c86546712aa6e9a85724afa53ba6330d589006db5792568c9de01abc88f161eb1242c19b689d28400563556412290e7b459beabc67ca4bfa2e8d452d0660e85ce2f5d70b8fa9cc94ca9a4c4d333ee30b68c66eaad8ee95df2feab131ad60a05eccbc794451acda0cc2ee95ab800ee91b838cd6052cea4d4000bec205786d6c5d484e8d01db4bd80c0ab414ad610c31df27019cc9d064cc30a914f80817d9381521486fca2c1a072a3ac91873e7b1d15671a242f94a384c854a1f765dc7d38d5655304c116729cabb318486ca9b8070a9148fb819631a40bb280238933d5fc5fb7c65a7790348fcad9faf9c21fa02b10062d9c73ad072a31d942cad92c4fa90fa0a5dc68eeb0482764e9d6804953500a1be122973d2c679df22608598b46a6e37c625d5eb03999a4fbf9293d0ff8510f72bf2b2bfc05d87b6780ca4dd70bdfa139730b9f4cfa56e5417c0c2018be579f68e08c5f63ede8965065fde6290f744081bb2416dc5241f23c2da8df4a1754bf4ebb054e6c6c0a2c601a994840459f91816557426228382b36fd1d16f63ecfb1e7f47bd19dc0816fb129049f8576fce83927cd5d916b1bc32c1f239bc88c84b132ca19f3bf1bc4832166412125929787d1e418b410c84c318000816587fda40c64c801016b20dac2cda430a4b9fb715c3b2b0d81ddd3a5c61e10c04c3c2d1936109c5c0e66f99ddeadf99f1c32902efc51512840e79714207362386e59c49186749388405eabc6a04fbd3892b5a043e7c8521fa03312c6b8b7a360e885da65179382ce38055f3687d7c5e36a26121b79fce1a169569bcefc60dcbfda4868ce79bf1688928a58733cdb3c9a7715bbad09eb5d1b69ed2e65934ff04ba462c62cf6588131f1691dab87d4df65845dee8219752f0bde0a6c8b913606518d8d25a5f3762f11f0021b8243a45292b9dfa8a90631219003cb29c32163f4cb9516b97dcffd7a73bc16b027127808a0e54e82014f45849e2ff129ff6a72b16a83c05388467d0e519633ef130b6f61d70ba584c48f3d2b2bae817f581bd2b97c9c3a344f857302477775ab7b5c532cfeef107cfc562af3d835e2e1641a98692aeb361ea4e1a4762b158951da627938464a19c63590adc73b1080cb4394f0ed2ef0cd5bc757a0ee3983d68e0407582eb11f7105019d9414d291bf72634e195d1e7c532b70203b67fb1346c5c8df9eb00e3c555d15f2c0e69323035ff2bc4a4231cad2dc6820b0a7d58eabe31d53eec5ecd198c743aa776b11e9b2ec6e289eac61a47c6f22987c8146415b6410ac27a67f01339ffdd9e33164215b6c95391682cf354986c1629921a0b0c92bbf9f81a4b3e3062984fb4b1849421fda2cf8c419d9d791abe666cc90d92053b02a53eb4b1603aedc642f59edd907531e7557f05c7c2a13dc06d1c0b7253e2579a25a356ac9ee83896fc2da7f88eb1735bce50aabc91d67e400e5e5976979d7e92a552c4f6e031ea12c631a9b948c7e261be6d5387b789ef886ea9abc4413a96ea9abe44f9e32d1173d062898e27c52ffbc1cca0673278b8102243ba05a452413d496e05f06cece003f6b1180d998ed1711a13de6239cdd320fba5a2de8f7dee6359d905a83f16076001597eb4c449822c670078847be0313069e924bc2e0808b2a484dcbd6b1dd26ef0e1f0d7ca62d241b7c7a1d05f0a19800f3f0431c22782007007b81a37a630e27cc802c7bdb718922121dd1fb2ec49c73491dbaea23079c802f00b59f660d47b972f8022c4d9904485fce121cbfe7674159244168db3a13d2bb2b4299b98d005d5964a2ab2843287b14862e5e230791f81cad28a2c82cf1fef0e8714093b10216a1a59cc003f2100bc234bfb63c43a1959220345161d43bc69caa42cd19b8a2c0cec66a4a3da16682625c050f6c86ec556433b3074b8824dde9b6a7464c1d87f09812aa9b4ff9f510da6c49a9bd3ce8c02a8882f85e903d489950f2c5da73d348338112dfe6a5dd9b6e6d702a20dbc2633dc61559b40c9225a108b6431ddd2ab88fe0619089345271ef35edd1db3c9d0e6dc5da63af90c6f64a6479345b41fe22a5fc5be75472ee760b2ac5b26321652f9be8addcf64d5f82c46169e2f531cbf5471e2ae12007b02094b0138693559b664594e9ba1817d4c9610b19a2cb3bdef6439bf1e98c7454b9698edc0b71b7f4b0f04e29a902760136c62a161534d16ebf31a9adc8060a863050bfa11843dee651b613e8912f5401a1ddf7bb2c01de10f58c707932e01dd0c9174d735350d622091834a49c385ecc922218b19ffc953df9fd18d285ea8c25884e2b7280bcaea3e122d329c2bca420e35327a554c37035eb5280b7edc0acb180ce0b42ff4d963c19a31b12b0030a1283719690391b2604825cefb9560d1152ef045ca22fd00939bf16c5155ced86d3873dca86286d019fcd4bd0c995316a823cdd8735416d7446d6913b2ec2df9cb49571743d98b41c955968fc6362f5e24fca876a395e5e240a17772810b2c4bf3ed602756e1f25e7e26c0b20c469cade9581617803d5b1ab32c94aef6a765b197c2f8b16581b871f07922272248b5c87a7d94111563317e9785027674e8059c22f2b3c122c643064594f990f9a3b4998387ba454ff0216c56da5e9693197b3ce9f4cc35394186bc964032fd78ed6469308b607279311aa678ad752569c8c12c8b8bb3598286209d7191c30e9db973e31d7c8b41922d283237300fe5cd2c17d3b394245d2c82ac167c608b59263ec1f5c72c622dd353bbc73c0ce67d995da21ab1fc62161b138d90da4c04948f20c78f8a1e01a994942015ac20a412898654c68448a51f14a98426b36ca2f85aa58656e55f652ed647031b21ab3e597d1b549b2d03c72ca8765591ff87a3ae659660e32f3d5f661604e05ce8609e84af2c1d2c4cefe6699e338baf5e884964049c595ab72b0821aec05cfeeba3240c9c599ece4501b340a7677e0e726601dcf8bfb3c89fea61b34cd36816b1335c6ceb350b9101bb4551ac9670c8271867e907e5fc95e1420e999c258f7f570e8a72f3e7138f9c667ae6faead31795f3318f8ef23fd2513985a2f451fe9e3ee6247a9ba3379afe1c256056cf84f8dc44abf29fc0e631cc391951d81dc6916a5bf5b1e78bd8f86dc5e3e23fb855e5465cc4033f30a28dabe131fe70cb551b75d925588e8e62d691cd5dc1b2f63538abdd6873a5884a51297c2b8d3712b71dc5a481c788de8fec418adc7c596eb2b95575d22b3b088b25d73d2e428c266746e935134857dfc9222a414d312ab6e9e2bdee714f10a40969eded618bc0b8fd1d06744fe052e9e1ab5e2d8ef618061c56db991f84b4c01e5445d37880ebb6a75658e8847f58c2149e308e6182746ce2cfd48541c7617b41ebd322f13ab02893c56427bf927c973f7f9def876151806870da28bbebc0d42ad856587e4d3a68d961274308bc10cb327274047fadaa616b248dac273df15a6c0b9e182f1a2f278527254a9ca7a21114e99d042117236cf99bf0fd1391587dc41866c0bd5d6212c2426833fc0c25153cfd43c5dd7bc13c15773ff3d3286f63879e087f8c8a967c9b39903ed90124bf88e63bc23fc62f47e22bf7653f840fb01403e96edb2577ebbe612b8faee72188378590bc1c6380b7efba778982e345ac0cc7184a71fbc6716dc9b339104a9e3eb602e96f10fed4bed860fac041ad055f0b33adcb963266a876dc5dfb8e8f4cdb3778cd6334ff9cd37a4e5ddfe24565f4090af99eed223fe6be72a9f324e12a3b0973fa7957cd37d0cf2632fef8458ca6077664eb4cf775b344dd057995fbd6815b1279ac1274b82080c83114a58cc3830222c7a8683247b8ae7db9abaef1b37981d43fde814c021edeeae87f3802b9a1027f5e4ad58a53e02223376b42ed2b3c135c8e7e2d0d19cf07c8a1ced4e1a98cdcfb8123ba80fc980661dc09d9ac17edcbab6d231610246c104252193f528687f95808fc2af1202442a810b385ba232b2388e82faef695118f888a50995d9d47c091f65b8ee02987fbd8978b6535f6ba60691f751a3892b2cd1fe4bf5f5f37a24649d8d7aa916cbfdc61dd24530723507f4c1ab53cc798c3d997d183cd7d1b33da5ce0a3c40f491200ca2cee4b1b9c44f1f32bd6ee2bc9051438c1fb1664187d0b27a8e8b302f40ae34350eb16399facb2a6109c91bf4c79b24657481c8e215e89952676b5fbbef284adde3777f25f0fcfe8007d3d0fdc1683ef2b801afa589e7d5f69d4f3e14a332d7793536b8e61cf795f16a09fb5237e28d3def7e33f012e99df1b10ca81f3800dab912fadc9816dd6082088d0a039369b4b2ceb484e92cc82c6320b07b78773cb08d14dd7531501f4ed76beefeae7347e39ca7b429a7f5fe09389ecd058d0ae8a35aa7a23a3f043d5dfd740e48f2cdbead5da311943c0efa5a3358cc70b5d4d1c1490945295d3ca5934a24b60458a3811207c0b6ba43b7f1bfc3a47a5842b6ed1f8b99c2abdc6278de6c9c424fd7d51e67c0a01bfccd7549904bfaa37a126f15462adc1a11d8c5e0088283c3e92f021714efa7d61be4448235e0aedc94406487b539fc05d07d8543f4d1ad953a79d266400942ffa34b8eb0263ddad9ea0fa3ad79255ece34ae3984789f5efcb9ffde127441a68eb253bf6b0ea530ee99b71a7af72acdf918b9358b8d54b60c334725e23486b01fc061985fb1649d64da2c927682028a149d1031d415b6903fc7ff85700bfa41fec4601ea04edf955dc9a4647a32ed01ef05bdd35d3e23fc20b26e93ecf08f875776755878063b5a7e2b335344f1b541b9a9a909e523d05144f838912268c429d46a7f01d0a4e74b61055d4f7fd888ce0d77edf5a4e0e8c0fc0efd5ce483af09b61a079a56d9dddd40a1b3fe03b9cf02b392e0dc32f97c888a87d6a844403374f0a38111257bd5fb8dc88d8e376794ee2a229e94e03904ad3793deef4150b4606dc9a0ca3f439bc433ad02574ac9303f87ddd07144aa3640956af167e456150875f569e885f6f53fb8f4421ca86269e4ea2a7e6111ad348ba469aac3b3bec6b8a2764a44d7593285de30bd7c181508cdf5769e21debdb8043f61566e877be98d5aa96dd237f0befd73b7ec5f3be046cdcba087913c80fc66a41b5b74cdf6b689e50c3177b6ab2d6779389f9ebdb0c5488fcfe9c70dad8db4f78bd3e3cdb9100dd29ff916ac9f66b8d5f43d849a6a890bc500072077452350d54146fe48fdf0ef7a55ce417f88210fdc4c6b2d0d3b8296189033efe516d73a2926535dba62dcba44803181b59514fcb9a2c1b925fc3c0604a40f1771354d0e5c47c10aa69e35fbf1f81ec9a332e64b5d392811725b6afb24671b0ee47768bd60631bf7292186103406dec577adc46f50e18451f464d50a365776ee619c523ed3a333540b26c96ddc4ee3f3d3b66de1ce328aeee288049b4961af699ed7a8b11290a1cf3eb89660b1060fe0b88e96cb6d87c9b476ac2a2d0c7c308b7284043a475e04591e467518ee74e0a2cc4c558ae5144c37e93231e9e28ed5729271921658485823c186955595ef58179c2d34ef751f882d32d2a42c257a32813eb2d6b0cc425838206636d8a24c45294604a83cf904695fd9f498a344af4f86138dc1da72ba10d9e14907f93732521ff243c1fd1affce3277733abeaa7e8bacc82127b342641a747a8045d7d16900215563e80472ac5d28b59286a219838de582922ee4e526b5aa3d7c8819b43f6f14ab1012915490b3766e4db13b8892ede10b91e0303c6a2d9b29662309696023722cb183223cf92cc946d6a7349269292b5ea5d538a1acd75688b7d20a9ec301990e7551513dc6edcf0c38ce84170ed947aca9381bf4f9958220bc83589669a23335c9101054330477e750289fe559ed84ea0003e0ed8be038202284c82b593d480ff0fe2eefebc1af73fb9be1c3a550e866323ce168ceb84a65550caa45e211b3ba185862d37e0c56e88eac60302fa36d45acc16b4133c1ab27434d274b184c2df114d14ee32dc4e10617e08d38080ec77f9b34c42e30973293c2340470308d18c2798a7e409c3f5e3db54bd304f483a561e151ccb70f47902900327cf33557a8297d95cc148ec31d4df7d319d0b4532c9cd7ded09e75d98ea038e5eb63eed092cfdd14b16039bd530a73d01b24ee0dcf2ee89e8fe181e1b2570fcc32a5b6e0af0c127706bb74821fc44a3dce2893d215a35c69ae3e10ae0cb7d5bfcb2d9971ff4b46c648b9e1a501398c450ecd3a402df1f70fc84747a0458cbb24437f5850b1c1d080263c71aeabd36f489869be41324f6877f07ab2a16436cfbd28643dee800d627e8512f41716ec08a042f6808d87b31d669f2694eb3b095aa990041fee808e627be4a368153f4bda3d021166f78c64b34e329c2c6d89f88cb872ab17f50fb5407adcc412f385ff9ee9d689f1c043652d300000504a0b609335c8ef8e5848e7288abcf5870c800a02808d4a0ae1f1ff3e9f54407a0a06d7f3f13686dc240a230aef849d8d74e0814fea3f067e160831f68874330cc74080afa459a6cbbd51620b9081c0709c08b9452c20bf60629eb12212c28aec9e623fd19b53238280af794177d507c04f719f99a44284cc6560985ba2f16d15128b8e9f4caf30a05c43bdde726648ff68e1f4b5c919a647baba9225a4b08f06d3026d2805522c59ac384ca07f37839978aa1e0b7fbe6891a6f9f83c5404f30df52c75303a6edf4c40ead230935e81dbb280eacb8fc85cdd2c10b52e79793f0c00dba10f109f5cc16dd012e75d9dcc2283eb580c1c9de28ce670c9466c9488fd427b4a8d2ec04bd1394e8bc365b8c8f1f88238b16032c02b7348ad976eb1ab1e4272266151015005c334fe2e5275c22379adf6db7fe4f22072ee1c5ff24a13d7bcde41526d25c148e9580775c3f41a2d7e1e003b02ea595a87f82ff8cc39f35817528931f10800271e222cffad4efcdb17d846b4cf40fc2d39cc23fe417de4713d84bc4ce213de6bcd95b3701018a6199de7980c234ef352548940dc1de4f648b2c875efd24e09fa819c766542350dc2ba434ce7e3e836276addf8036ef611a68c207453fa3f60a330d651477f52d967daf67221497b301169e3942d25d3a483303190a7557c59574ed4dd966a7f24da7d8631747c2af733b616dcd8aecd1273c1b6e6351ba39059baab28f3c4215961a06162c0bd799a20e424da8b867a4c70bab8fa4686152ac6574c939b00f21361c140892c1254f584f4e8065f7ae4b1d845ed71aeb7c5b35089286c293edb4066a8409e45aa22442ad0963c0df0dc26f1efee3a273357ebd373f1353b5bf5011a785a42f45632d9c52fb1bcc20922dfcc046c6aef131fdd053f4287c03c97d0bbb85d35dc592b14a5cd8d4bbdcca85ddfece736dfc0509e20aa64b26f3d220847cef7c57641bfea17930e6a91641f521b12af3594155c201d0911459ba9211c60ef2b2bf4f2baea8563fda690ecbb4da0b76b2c80e7228b008566929a71609381b07b6fc801228a1b16beb8efc55f35727a7c182359d44b51c348903984fd7aa85439f0e96a246b5c80007201d06fee2e936f461c7910b43c8199f9e13ec283acf90d10beb67973d413575f98d84ac57afba17160ade6f100d2c1c7d8f6b3c741f4b25cec964105de11da5b4b802965f5a894a39bfff4ad89749bf307dc982aeb31b6ffdac96b0269004de658b35c8a390d42a0f6e25f14618d68db93b88deeefafa786b6198eac8e3ec91a00d842bf7913e0fd4e4b5a1bd89611704643d537318beb8c5696081deaf2c25763e1724df38a0fc347edbba245907f9e6a393fd51685ed1f57a76f88281f15343a67988cb60a43d9740f48291e50669bdea2abd05370963c31f46aa89391cd84ea64785f83c4551be48ec94c8a3f66d241ba5805a1e2df8c12e2d4e1b16653ed1e766f94d8d8ac4fc0fad1935d0128b1db10a7ab4caf13511a0e7328c88ec5bca68588c7be3289986639c2a23e1354d9171b9ade61448c6118a4112e0304b6235336dc3cf19ff00a38acfc4b9421c812fc75f957770d4691ebbcb8f8f3701393f3d1c237af75a5f2c5a60073ec78d10fbde0566a87ccade4d09ed20c03813d47cbb16eb0612fafef769fc0b5d6f6e5ff8bde4d635f26efc8f073b9065be9ced78e9a91480e1471c10de8244c588b0b5e99baf54364cbc77b8dec9298ecccda4bb23b5853000bf1e17d78f4d1acc8ebec81a547ffc1405efaa1e29ae2640842bc36fd546bb9848c7253cacbc2f3c6d57575dc03969c07103bb85d86623dd8a05f12f1b4ac613adc7bce2f41c54826fbdebaa919e321359fa5faba563ac2031c814ed0dc5f84c614ff54f735f1cd496e86c790e81e96ccc1d2353fd34fd15436cfdff5941189de3086efa3ea9f89253c86de8b58b1fca61022ca710dd1d3435f08368d654360c87eb3985b47d89e2364cefee992f11c0d5eaa899451202f725a04bff122bf0d434247de7737f01d5cbbec44ec044b78e76e32ef09dd357827702772c0ef71ec793104599476ffbd18e2d836bdf5fa3247e8d3e086ef6626bc1c799cf5ff4c6d5cbaae8fd6c754938ad8c8c1c48d68ffd382f9e5876f6e0d8f461dd4c8c51726ea940bb23aeed938ba60f813c2e28d2c9994df90ec0f94f94992f0d4ac512a9f581bf19c933d92ae694b6bb0d6c2fb4e53608a408e6b9f53327695b09102b9c091c0c6af541cb43ae0fdbb4812ac5ab44888449891070db2cae0f4ed1245fcc7b2687545385fb0fae0f4177ee3beb94b61108256eb6f6fab0486d257ecc1ad6de3e6ede77dd67f6689ca5db3912e760d8781766f5067a4b0149c8a83e3c8485e891d9c774f891b0062d6a96dbf11bd47282ede0035de69aa925c787ff9d8b197419d79f6e1b67cc812fbbdd45ed6672e5039478042b6c38f8eb77d8016b88886bb0e7aae4b1a6441fd6704051501f4028d71f99b9b30b9427223e5dd2482d43a970426094c2562ad4a5ba5b2f1941cdc2125371070e9cfb1e4e2744028c1d0f626374a1d1420caa2fe90cb1bd0df1d2693e2e129ceb96aa6f9a089283a07dfe8c684c985807836bdbefa487fdb52bf1b5a824d59b1e055da7977479865094f0413fa897d09dfcbc37f4086c9f2a96c3a5b62ef6514c35e1ce916b27f86b2a267d6b245e10c93109d7e70773cc89180651a7acb3031ca2048e4084fb0e551040b46e7314384e028dcf85d7e8c9c65b87627834c4c22de9ebc65d61161a434a60943c4a7ac61c2e5e8ce72e28b60ed176dfe5a01be333599cedb6efb363e8e7d6a3fca401e0b83fd2dfdb46cbc6eede528adc01c90e940e620fe6efb104d247b01f892a3076d0feae90a3b747b0e7bf5be717b66e33ab63c71246a221bd7b85481fd2443f450cf4ad7d05528fa4fe79b2fdf977dcfe65febdc35059483b066a22bca4d38eb9037049fb0bda65902a71a45fdfe17d12c8424531ec9885f0f95bd96b24e1cc4263c629c2b02fdefad145688cdd8c5a6b74a61be9e4ee4cd314af2f0c785501bb6d7d408f8fbef592e9794cbfd04cebdac3e34e5d7b649bf6f898c3dd762ffb226ab0f3d80671fa0d9e1cf7cea8a31d38f616e807a1028a491d3f7d1c6d7dda37bf8e6b261cd9eeed2fc6be5b103a7e3ae913385bfda283ddb61b4ed744aeba8e03dcbe28e03da2e8db816b7f35d36f742437fb76d0c2b0c74da4d3b56a4bb6ef0b74b4744e1d4fc794145183318fe925eca306feab1d06942449dfba498f28a9f7e96faa99c611254160eff1d1dfb44575d6b9d5e3267550ad73eef4d2fa801e475defb0ffec52f7d9ad4eee3e8fe5da97d5651b4992a4cd76ba8d1c9df45647bff8c956c7512f9d743485d2479b93b676c3e9a3eb1f77240943ce659ffabacb6f2e7bc0e820745ad5cf5505751cc99174750cdd8de49fe59f32f87202a4a32d0c399795bb57fdf1c956bfc023e871247359e68d9ec732ef0536c24f6aa6dfa38f71e0cb639a098f583369262e1e0464a629cb9acec29b5e3a499a28904e65e1492f83580811f42428d5d1f19d75c6b47db1b97b43bca9a3433e004551f0a89f6f880f8fb6afe963baba364995f475b7730715c62ca4f380146d5ff675da102178d0ac63f01cc0694b0c8fd6475a63ce99cc4e92635026c72cb4f3d067350bf160f1594a82ab649050e67918ca3cf3749dd6c35090c9e3e72e092759341e3dd67aab23e9d904dd8e59882c5a776bb6bacd83c599653da82cd992f4d24b375dafe490071df40a39e9261d33c08e5a64bc3e6ba501aeceaef081edb1dd4cf5a4817d45bc2981214d54a47dfb51e6e1d7bedd019968744f2f3d3d4bf25f1afc4afef67347bef6d345fca992786d3794ecaef4db2e75db4ef59edd4ab25968f3d0f95e31c0fa7c3e9fabd318f8b0822e62a8b15cd5d4b7bf208326e2c0754e13f58d0112a0a06d41fbf9837dd9d736cfbc0d2890da4911bf1d28f336902ee2c9f6c5bab6055de66d40816c5fedeccdb7f778caee7a762db08e02f259df381f49ef695b607728209ff5771c7b106c4b822c3462f25bd0443adfce6add8ed51d760febec06d6d916c4ade5a1f3edf3fdf82de40e3b77e8d9bd1cac6d5d5b0c55ee70d3f6f9615677688104280841e27e7c723c3bac8edd8d7edb79cf0e97fe3d44b4102371438cd39119d2dced3268221140be9c24819969e26388bbbd054d24a2070bb2a52aa7366584ee38c6e9885816251d6bbab8dbd39c7b5647b62de06071548ba17a9c0df2f0b4ac937eea60df71eca1a2b290dbfcc5509fc3bf153491eeeb04fdac9300053beccb1809ff32567a4177d8bec7afd7bf027b6b6ded9985cad8d33760800307a23bd86d5841e7bab606d8d5b90837c52cb97724d8a16017220b6dd7ed5e9001fb7e4a596874755fb62de8d831164bed6c51bfb0d8dfece7b9fd35fdf41397455968f4b22cfd2ccbb22447ddbe3a5d1661e2fc86f453c47b74f4a78f2311d921e7efeec953e5719d6b47bdd38e1ad7da76f8dd4f37fdd5d97665f69383c75eee421c7ddef808f7d3da61cb3bc5f6f0dac7536b131c00818cb3eff3cf37219f9aa83705387618836387f1a5c60ee3bfbade14e1d8611c8b6172fe14e39c333e21e728bdf3ab18e30dbb1df3b32dd273ebb1051a07907d6f8cbdd48e53bd3b737bee733cc9582c82c49a491adf18f462a02e038d2590e7878d5f38c735f24f13f20ebfce0ebf34f892cce7ee1581821059082be50e18333d76dfcfec31761464de6e59f01099a75b1ea863ffa08920f095b59c5439ddc8c2f5a5848bbd08bb0b6120119d21708ee110458f71765dce243e688cb11256c249f8f7012b8965df66f7264320602c41c7c90100e0ec19895e489d672c416597f2eec2e61734111e06d7f6d5ad6e6bf189822c84733e9fb0eff9fb7cc2be582abf37c0a3cecf0279c378a889f098ee80fd3cc7866f08768f3a1ed378c41aa322d096852c84dfb3c5632717f61df158c6658f33998b0290c44c080d3544928ab8d859ecbaecd3a121d56a6b82c66fa9d11455535507455da787ae6be92676157b398e2590bf55dc821a7ce9a60afadf14847a42eaaaab5968c8e21d88d5b16f0555281dabb87d41683fbd4c4b1440a0ae8351d7f134a3a5e355f57437fe5e51ac6a5f777a5c53546579f04b812249f224d95585d2c9f6253d2d5128492f77204ad7782541684f7d29b9dd72378e1d46a15c83d7e58e841263126335236529a0fc9a5cf0703ba8187679a1d4634b8edbc1cd1a2d4d846a5eac5c0f905ebc4043640a0b69673c27c54a4c195d55b8b5369be37cefdefd7bc43f6c649aaeb27e9e2be9e769ae0f383df5b42c7ded9527909765beedc6b7edd877ebec5e1527693fc911276125bd53d3f3cc6251ac74ae38e93cdbd724493f7767fe7327c3de8d8f93f00898245d072bfd78c3e538eacc6a2212ce68b8a93271a2cd0e114ad620ad05e3ac10b3e58e3ee2b2119f71f215452dd547b9e5b1f5e8e31e473dfac88eae1b7d1cfd1c7d0c1a75c655f250cf90973ef379a269fb9eaf49d2d5dd3876204bd2045227eb19f4cb02d12d9b85729b33cbf2e894582c06803388c743f0a010427010da838402e0da7300028085847090ceba1db463936c1648e70108b31a687ff691b11a3aa740018dd0303025cfced0967c4c5098a698884c52317c4c6d98d298c6309131813175310d99aa967c4bbea5dfd2d25253d25a8bab163d5a0c5b045bacb5486b31a605590bb0165d2da0b410b6984a5a4b5a53e153f153b164022d090dfb864955493a928449c024b4a43149644960495d495092ae92a4927a984033816662ed84efc40f8ff0fd5013b5444de441511371f81a4b40c5328f1dcbbc5b59e6d9cc326f3dcb3c154d1301ad615f18d81ba14f48aef98d1031c6e713e1f3f97c3e9f0bec4b31676d4eda1be16ba7819006431a1069505c437ced31fc62588aa12906600c50310463888a412a06aa1884310cd73cbdf6187494680d6448f3adc5e02bcb1461000506533020c2406a8d4f4d1b35696ac6a8215303a6a64bcd504d559aefb5b7c0d7825f0b965ad074b6f4da4114417c8118036106e20c041a0835106b20e084f085f869a20d65cabc76106346a39437c633e39df1d0786b9907270b69185e08434403c1e3a965a2231bb983d6444668249c2c8f6884666eb226102ede362096deb532c4325765aaca4c95e951464719a732bf3223c2105fbb098826289ae0cb0463645fafdd852617802e045d907281ca05a10b562e0c5dd07281e842918cc86b77618ab7658a35b500d6c2550b5f2d0cc996c852908d186b33963636668c6cac380645ace9b5b3d0c40290856053160206a38ea48e844630e8de4867b746686318d1cc03440f143df0e58131b125b19f982f6c2d8c18e3e7d4e554e5547412d2f8d118e1d4c629cd698c1399139813d1e92ac62fc62fc6528ca6184038702ae02ba2a1ada0b6c2d80a652b8c49f9da5ae16b85155658a1582c168bc562b128e5ebb5a7f095c2580a296c1573ec3085610a5a3c3829542950a5203492322a1a89198d19957d197df188463518a58d46a98f25a0ec0d4ee6d9326f557f9a08c868cb4868343422e66882fa412d41353d41799a7a223e493db5794a7b1af344f604f6d4f5347caacad194a3a900430f52bc216f0402c6f07c0830e3097953bc1e3c1d3c279e0b5e0a04ac2120ad00c3d75e8061018805287a307bed1ea43c083d0c3d6879207ad8f250f4e0e5e1cbc39887acd7eee18ab7f5c5fb0a2168b64d1e82228c11a14b0433118a1e801e9c3cb8f090c2c30811da889026c298086021045f7b08c110a44210b6c5d7de36b5c036d846b5522d552b6cadda614b6c7fbcf6b6078fc823f28a3c2fde16afc8fb32a2e211330f1319a9a9b83542e3f06b7fedd20eca6e6a47dc49b5be5d9b5dda6ecc8e6c07b6ebda0d77551c7eaf9dc38fc312872623aa8c00a1d1d0d4f18847411e1e70c0612c0145ca3c36f36eb6556dd2444047255efbd10823aa5c6b246594230ad2f938f880ae807a000d8182406b4069406380c880c080ba80a0000981a674bed7aef3e97eba25a32fa32f232a23a1919591119ad46b1ef148ca071ff98e7e474a474b474c474d47368e8047c12315affd28859198d1d7cedacfd54f8f9fe14ff067ed27ed67cc0fd90fd84fd70f941fe1cfd4ceda6bdf59cbf972bfdc128fb863b673b663466329872fc72fc7128e2b1c3d700c710471ace148c3310607190e301c5d38a0e010e298a2b14463c9895404da44802c026b1118931294a2438a9314175252481911052dca9813a44e109e303c81c8dbe2118d784423b5cc538da8cc8cd454b1af31339c136e04ae09e72b42c15de1aa7053b81e381db8255c0a3333b1b1a2579168a4665a11d51469ea0f4d1daa55ea94da43d5a13aa92e545f1b22b1f8655a994323291ed188ca48ca08cd08ce91efe877a464b4663699359ccca6b104f46606cd28538a47cc4bad07e555d9a31c96c1b5b43164605d50ca29ed3c293c28798947e46df18a3c2fde174f8c37c6212319a919a1adadc159d31df4d10f4bd003521e107a60d881b40e807500ad035f61c1301d614e612ec252848dd0d2468b9916322cc1d7ae81a006a43420d4c0d008cd68edc877b474c474f4d31dfdba7e1af8696049034d1a006a000acbd36bd7808e0c40c9c05406881990c2e2bbd2e64ada953157c8ae805de9ba32bc52d5f57bed15f85560a9024d4668466a47bea3dfd1d2918d23a0d1da51d30cf635427bed27fc4e583aa1e904e0095027044f88ca3c9b93a7d77e828eb107a537d523f6a49cf89ab46992d6644c13b226604dba9a0c9b545df95efbfbfef74bdf14c26ec72362a05100dc844ce4d3444744bf7f7147bed76e8466b436aebd8ebf38b4d750c0157c2972f020003b3e3fec0d07007248123551083eba188d2840c423681fb9a23c01733e16a00be9fb220e85521d5074f09995f160e71c5a10886753163a6b989d6546101272d7e94eb4142b29655ee9441ee45c8e5c5614b01a92598a025214a02a3519fb8e5c501480a24070ef7884e0e92e051b2934a5b09482520abf2c9402520abe2c04676d1c001a100b8c2e50080ec20e89839f38dd206f773f9d1bd47a10148136e30835d43e02696f5efb7bca781dfc65ef0b5c9e4c49922449c740d6a417c178f2e8c9e2934132e8e3c4ce93a48fe4487c92b4ca5a6350af4113ba7713ea34d864931796b046d69b3e8326d37419ac3d3343a944477228e088d86f9761c720f88505842322675ffa2eb1a8ac5e60152133c432f2e54b8f61ed95fb9666780506308cfd4c19c69a4c7953448d0b944dce7852345990a6ab69cac709206d4a47dbb444cbd27cc1da335db0f6c82dbfb7b760eded72005a24d2c8c92135c31653c6931fc921ca090d5147865b62bc603a0bd69e89b5e1495f0126b17015bbc0a95202c68afb0e7d0c2763ce9d0b1323d0bc706521e3eebdb70a42600d717a9274107bccf2ad610dd7b069d3c57d8750ccf4640d2982ca468d1e6b5dd272aca56f0aa0ecf88d3555fced2860d3bdd7545151668615901767dc7748fb7c3e5f93bbf7dea8efbd318cdf7b6f134b50107dd010264b89bb374edb972c8e45ee90b3e3399e60ed6dd44d80d1d583de4dfe1dbdc4be1ccbc6b32fd77284c3e15f8c8495be7c3113b681a14a1f5f4cf565f15f6cf5a583f9b2f493d5b9d010992fbdc80408ac0084cd97fea1051e5f3a0a5e98fad265885ae20b62f543fb120b480d5f3a6e0206010b0a0122f5fbd2b130f3462ca92a5f7a0986e446492117bb37dabe6491043f9e9ef44dfa0850d2a888d44a031b5c2f7c70b508e3856c471160f988f37bbb0b9b84271a6b6ce85082638d68bb255ba40c5be44a9221d20fcb9a310b957de92d6c32a83be0a0d0e64036f760f3216df371ec6dbe336f7d9bcd96adac54f902820221cbc6131a5937ceb270687de921182222009a5b3a083e50a48932b02a898ed92e03491265e10a10912727ab8695dfee0194c471e6244e8a164a3f182f86e8d01ec468bcc0f1e3cb981930dae6607b3e263b7066d1007260eded20192c8bacf9a0f5d5e3f7570dbf7d033a226938c862058b0670018680e960d449220016ae33cb0cbf3d03ec991d068eaa4e2c2f7efb0558a9ad2937bcbcd69ebc294b175f1a79f3e5cf9753d4588971c38a192c4132c8b2a59f1660aff812f0db2b5024a967052f2a153ea802da12d0e5cb0f2ca016293e0a78a51061023ad214b3126604560a3857487cc855594a60ac430a45a2ac11b0221442a14a8b03130246fff254916280df7eb255e2fcf607e8cca32a4c503b904c759992814b46a288f88d555923d285c690346e5982b12f49249bca13c862579bdf3d54841e566094c8a223ab0a520b2c22d80185ca8a9a2e53c0b86589b2a4796b4fa1ad7dcfb47d59b47d750ec8c24c845dec7908f4bb28e5b7027e77fd7ebbae8becb737c049730391a2c182491107188baa142a111a70d814677c49b95644288ef832ca977eb23a17fa2115d08449f9d1c005c77085f087cf0dbc504152638d94902813d6dee6010a12818a0c302a6818409a213cdd664022caf7e49b9264b6001e11a614406b8a12ae26ae325fba02867ae85082e6cd1ba5264f949a54016353fba1f6e557862a4e9329f9b1ca0314b47585e808ef0d48b0547cf912464b6cef8d553cd1797971ad2901e6c9d2d658c2d78630ddbf244031b2250a8c2f9d8d52e64bd7b994135fba90142f5ffad096922fdda888480a0ebef4736f5e09bb254ef9fd040ad36f4f00696e610a1e5c8489318a7e3bd1da0b40190d64c88993860b88c2086f4df14409f1f7db1160840c6eefed24acbdedc108f62fd097414da4b23841e164062d2772bef4039026086a7a4c03e85011c3c22ac39285442b2b4beb85d6992fbd00a419228a4a0e352a2f59ba60e04309b74cd2daf0250b3628bc5058d991028593c12c84a5487fc92019454a99ed4b1687a404fdcbf3fbaac66f2dbfafd4fcc61afef61174a494b96548a281e5a5081a938abdc7f6de297e53057f6f30402f6133d024c19ae16e6fc16c4929324866e026c0feca6db9692d49f365152d265a36b48642b4ae94bef4010c0549a9cc1bb799de6659abe8f3f94cb86fa6ca56afb3526e02bef637dbf0e0dffc66e0eb1c7c928884bdbe5e8f4f6a9030ffc565bf7ff1da2867a987da8c21968d32f7c5662cdc9421f65063668a97fb6234ad4c9481c0ad17dbc0c119afffc55128fec54318a02842f932b6c58612f7c55214981305498f35244b46dc170b5f3b56ca4464f0c54caf5f7832aad9fec5d8f7986c7a8388c85fee80bd48cceb7f8f5e9f781135780821110c4225ca0df71d872b38a3a695020d95b020eed46b13af9798c9a1e50b0d2f2e4c6e0e1c33bcc2b85cc15283fbb2afd75e956b0be8dfa02fc70cbf2cfd64c790f9d27564845fba9741fad23d08edb5fcf8f79a51decac431393edd7dea02587ba98f1d9bdcb0f1192a03cdae3c8af5a877587b28cb7e3a42162c9f5bba101bf592548f5d4c9a374d3400db4626a1c42879013ce90038d557dfdc239190cfe72331f4f95c8ce6f37de9414a9928037507fc0b13e73709bf1d84b5b7819a882496196876cec9429de2e3d3f5953d24b732af6ccb76030aa8e943fa7692a7c777bb0185bde39b55bd6c37a0507aea69fbae5eba8847db9703d7b988374d3388a22810dde1379b7eefde9bdbbcdcbda8a7cec14eb77b7d7c5ce7a98f8fcfd2fef9fcfcb8ced39f9f9fb5d7e9d01eff8f99ee807fef2271d82394c2cf83f39ca7381c4e0373b99c6ecaedf0e3f492ee70bb8d3ddeb1d96c5fcfa6b7db6d0d87c3a13dfe9b19bbc36f1bbbddbebea83b609b2d136fb75b1ede56c8421445f52f4d53ed4b77f851922475da777f99a659d41d705a96e5268200020820b47ba83b6037216ffc798bdd15cd3451069e9f1556048ac8d41232f765bf442a92033756818344e2cc8a245c36dc121c87a1f20106aaa8851d79e29bb3568208d1c634e2499293b03221353c080384c349c2c8101dd0da2b771e8c5696d71ea6c66bdfc07220b2a387081c37464600d1422207e30ed238008112152927a4a03892e6be6c5992f8924ac5973b5fd69822d3c52a0b1630c511e31274b8cc86f61f2dc247d3912548b4381d5972dfa124ec99d7f37a441336afdd01acd67ae2610584098c8c26576b9fb5a77b00307a7525607c8facfc3b6a0d4bef22e64b285263577a90b9f9d287aebc10f992e24b8740e68d575fc4be749eb5571e41c962ae4bd50e0aae88bcb1421b51430ef7654ba211cde7f3a170b5d6d8f7bacb6beda7261231834a092251acb6a810bada5b20356eed69f5e521e15fa02029ff7a7806fca824f4a59f2cd5d596375fba972e24e4cb2b2e6ebe74b66874c2a5224b991f41920899e3640e91b20339c6743102a6c4570b5cfae9861dffcdc29b58f1e8b5db76cf9139e8977e8a5101bdf695bc1272a2fcd24f5eab86a571814a19204d4a465c084170326525899a280b85588b258399376e173baa13f644e5b59f9bb4f53c01c28a58a123ec4a08168f3852dc36a49b7102f0dacb232c90d75b441293a42157aa28d52033ca191295eabcc1a221560c83b302b31196c2a21615ed6bdf39ab205f86c51f9299fbb259977936e10ddb977e0ae5e086cac1352c49dc4280d7ae8322f845ad157f4045a5b9afee4b28266a9ea0ac50d560e6be435f96fe21970e014d44127507ec65e9fb8cf3a51765de0887376639f9617ee9ac26124124ac4d590932272d2cee6826a8b58663e9cc8b19b76cdf10a3d9936d0e026b60c7df47d8370b1ffb4b12b350fbce7fb3f0cd429cc75e84cfe7f3a1e5077bfa125e6760263a5dec39c8e37b13adcd1bd826f58129fdd8c2c04bb5e3ac3759aae6a96a54d5aa4ed5264d3a30c6ea7a02767c93cad05aebd5e6f36393269f4d254992b4dd7ec698a669de58109cb0aa8e8e8e0e8b43ad706a9aa6296ea7c90c233beabaaeeb4e6e672ba7de6eb75b8ea74915303c2a0e87c3f1f4f4a8b95c2ed7e3839bc147ede9e9e9f1f971d364868d1f55ef9acc58f221a1aaaaaab626688c5f11375bdb02fdb717ef6057b3ab6ab6b9cdf1288673fbda72fe6053559babb69d9a3fa81f326fe743e6253956cabcec3b9e596c75fb9085f04d6dd91f4777aba7375384fac166fb60b37db0d93ed86c1f6cb60f369b4ece6f6eb3f9abe336d4b5efd8bc6737e60ebefaf69be3706e730c83d6aaefec704dac6e61c8ad37dfc1be7fb720d0ada2ae92ed8ebf3aed4efb8e62afaa690b02f54dfebee150aca2369b9b904db7edb2af3b14f5d4d5ddd9beeaabaaa33dbeee52dfe82ee5397d549d8fea3c3b1fef39016d531f95c777a8a7e7ee55ff749edd3eb54dc7b57fc837d82276f27a42f5bd49b3ec0043081586102a5a9b71003a4631ada494f4fb90a444b6aace26de454eb27d73cea39ba52635d63af3f24d44897393b488b1f64de467d01a1e81d56ddbc4ca12c9e3f9478a1def46605f96270be1a1ad8e4facbcf0b3517dac2788287b6ce6eea52d03ef76d36edabbdca4937b37a5e70e76c309fbb3e72f1a774238d8a3ecf9ec0ad221528ccb4d92eb6e7998a67eec3aec23f6731c6616e9f6b13dc9b0d97958f5f4726c5ff36ccff10d71f4d8c78d94e2f42cc733937abfdaf156dffda71b56bf1863fce2b625c2ae97d1f7e8a4de95dbc4671996e521db078c3f7af60d637b92588bc56359fac6f86cf70a9c7d3c11300e60f41d1936bb2802de787e7cd53f1d9f68589e4de70c8b5f47476748c7795ceb5c73e03e400ef4816fe0e01e68ade35a3b07b4a2a3acf559551dddbd303c8ad176c38feff6dda0c2ea7ac34f8b821e1f86c7fea28ec3dbb50aaaa3aed7b5ddf0d3a2a0b6633b6aefd9bde807ae7ee0bac535dd54adfab85200ff07ef76b5c535b1bb0df181eb16c407aeb62038b8f610eaeb3684fa40ee41073aae390071e0acebf6ddd04107ac8f0f073e1cf8f8f86cd44d1fd79b031f67ddf471bdd1f6657db0d6399bf54ed7bea42649edac939ad4e71956c7b1eb38c63acea383eac0f0f8c7c74ce48e551fc7bb37848aee62d83a7bef5015f6569ddc6935ef38ea1bb72aaa43b62154add309a17e0cf8758a8e4e1d1364785d83478b483fd2aed5dd96615531b9499e3f8b8e727a8e42a4fac2b0d1b5a7339e32eced41dea9f2c1671652d7194a697aed3a26f651f7eaec3505eda9eb386a8eae4ec7b5e3d5d42b0aa783d071ede959967fbe3750619f3e1f0cbadf9f5d0705bd8b217f0bf41c387ffafe6c5d703a0ce79b6f9e90b7ad05fa753a783da1d4b51bceccdb70b62dc0bfdd05f8b763cfceea5e9ed1c9d89993b1b357591db9231d83d6747cf83712bd30820d36b3cfafedec438c25308e582d4141745fdb8f069c2757487c0d8bb8af6dc9032a325654217265aa87fbdabe8064bad63401b3f6c47d6dc1cf6763ce586d714194e3be3621092b21616cdaa05081c47d6dc32d6b9c2d8ffd5de77c5edff52caf6a53d4296a9ca25a54d7a81529cbbf6b13967f57a995987d5dd7b129e0131e494dbaacdc77fd81a0861231be668ca989b9efba8404eb08d9d4308b86fbae45d43c81616669c70c33f75d839f5f158e92394ad238c3f44dd7fe2a8a95273c68480169b8afea9209620644f8e66c8afbaabe62941226488208bddc5705d261e60dd89a2b2aacdc57950015176ccab0789296e5be2a1a2a44b880635fc430b9afaaaaead9ab9a5df957257afdab5af9576dfaac227d76d5c8e77f533855fe4dbbfe4d8bffa6c5ccc379f634154bcbded42cf5800c234d23b8b8c12273df74441b1627be90886255c47dd3a5cf6748f4588224756586fba6469250658902e3a3ea8afba6c1f40dd1050b376a822bdc37155e00ce0f2f1d5e96c45972df7408040582eafe45a550d487a2288aa251fe45cdd01b3a37747efed501eabc3a3ea4261d1d9db157c7ecb3ce195e71e215e77b2e9d6b54fe3db9fe3da7fc7b9ee779e53c6b000b2b645c31da1039e3bee72fa844921b289646086bb8efb944a34c091c535280d090e5be2770e78794549727301762dcf784424364499517323426f73d850470412287991740886bdcf7b48119c7ec314ddfd6bfa6947fcd286f9ae698d8bfa6d967f3ecf398366861bea031a9b9aff9c24594b53044660051b8afb9c49615418283acc4d9cf7d4de027b95264ca92209034ee6b067f3069438314304cbab856b864d1c205cdcb54d17dcda10aca38664a9e7f4b382f945bc80f90715a204b1f529354497c4bb3cf65598e3d09e7a7cc99c08ef35977b000961725292b314f90b82f69e6cae7432d46d71c28ee4b06bfec6f9ea16412e9b393be7f379ccfbe7d48c47f77d3937fb793dfc5ccf3da62bb2cef331aace950b29586e9898cfbee9f8dad281b4b4cbce9f2c37df7d20d967cd912e58caa489a3c65e28d9ab3311beebb856059356a84a50073c47db7b048ca92124e5439d4c870df3d548056c09ccfaf866382eea07d4dfed54d529af8d9b51e73f1fa2c090bd18aaac758940bf7d526c8a4d198aa121699b8af5e1ac038429c01ccf90c67280fad71786cc4611c01fb8be37cf69c7d485affe6a6cf63b12c9f7df6ece5be59ac040c1ac3112faa646471dffc4b1206090d4fba24c9e285e1fc9ccf6e83d1681d47c09e650081028525ec8bca95018590a935412f6445f7c54b2cb446ecd8f242d504ca7d3110c650068da92f43d8fc5c112baa6698620226c9cf2acbe092da7aa2016688fbe2211efb71888b9ae874cf5e6c96f52f26623dbefa17377df6f1c0d96b309630ee2166f279c9679d9d854cb4ddec24404188cc2b7f015fd0789c2043830d2454542c11cd44f1a8e185eb9a88835f9107d50835234ab8aa47d814928f1e5cee2bd441c789af331e63b4c4b8673f86545352bf35306e5013e5a5545309bf740d9589b2906d75548fbf198ef67de9fa17468656d240bda49bbe2489254f49fcd2735148f632fb2a3d5301cbb22c5bf36596ca400c276d8365593a1e83c2656b666899886c2acbb2fcf2f4a5ad2ccbf257fe4ab6f4420557966b6ba50fe9a226a9513623da6669bef45d9665590a7fc02c791f1fcf3bd69e8fd0e747e8e359c7daf311fa8069f13d3d9e816baf47d8e3d30acdeff19c63edf5bc39aa6cea79783ce3587b3c3c3d3ac5d8f378beb1f678783ef857fd32f5aa6fb5cc840d962cf2bceab9c6da5349282f63bfb3e399c6dadb21aa3c44d5b3930a968e15c1c87a7ceaac17124dba74061c1249ceb3be59cf32d61ecb131523c63edb6a8fb1ba58fdba7a665a7b6b3bb2679afae919c60b3dcc4b136063a28c09e1982a5956acc4090b7604524a61c66ad8e89a725dacbd72f5bcb4f656b12c1b823c882509db22e3d32d693e751d17289fba0b71296b3134b2f18df81a86a91871e6be3ad6ea49161c952231b0820061f202e3962ea4aa2cc0b40469a911a6650d561815b11e2bd271ec2c8d52928921625adc77484d6224e741901840ac387153652a4dd354895401c6e555d573d299aa1598b126ec09963953e420a1ea82ae4129aaa9311c5f4bd45d0eaa2a9b0500f435e353dfa99f5f643e755607c6f4730c90501ca264c3861a9b2cee3bf46c555a49e549c789b42fa8b419ae103c4491020565d9f16996e2a7aef31342eace0a65709c883d5949912665854fa09845714c10a932f64bb2c4574fd555dd695fb2984db09e91f095355f58b83ef55c82dd614bf06438d505e6b7634c3aaa47aad0f12bcc942026e4a4e151636765db972c6612aae7116b4f2d4a87b0bca83ef59dfac9e253ac2b4e3ef5ecf369a26db6eebdb3d2f6dc34e6370719b8f7ded96350bf7ff6de1bb8819bdd7b84daefbdf7defb05a7dfe8de7befd4c7619194df3b7befede3b7efbdf7de7b8d675d817ef531c9afbe330f01bfae25d07e4572f2abe3396b6f5d79d0255ec8b8ebea58ceda5bf7da4a54795e057a55ceabaa4a22caab256cbcea38ceda53db9175756dd33499c2e4aaaa63386b4fcd518fb1463cfdce8ee3376b6fc7cdda53492adf966759c76d4e75f5571dafad3d559df22507c9975772c65ccd3182e563c186cc3155640d4b12d55fcaf3e9964f7da77ea6cea6646a5c4ddb51e64c8dad61eded354519346e9a468c11ca488d38c1b106914141dcc2e48a07107555cba6346b2fbd823304a7adbd5dae2888d92282468596101f4e8b381962f2a6a00181f185cb8d1377555fec118df8affac6e9b7effd860c1a164da33d465114dd289aa5047c144551948812511455f1f5e88a1aa140d48150218fa68fa23ea2a8555601e653a34f1d9f597b693055dbd4b199b597f22421f9ed7b67a96871b64929528509202e03dc954041feaf87df568a1d5f5ec5d19195222b2ba90519dd5a0d44c4c6b0666b0f6d52472f2be0745561c151d5c403f4a189b3c2c80f3923a62242064d67881a9f180d4090ec389bc10ca633493480d5c0e2aaa99830f9c7e3f7760c66eded9c0fe572392c1d323e97cbe5b255d6c2029e7d5976ee2b3ebe74fcc54bd1d8367d341d2b9966d9fbc29437cdf11dd7dec43e0c9826d9649aa617a579d3344d93abe94dd3f4d3b4ca1d0009e0df202c6ece28bf9dcd52f6fbebe9b76332a124f6cdc0e058ae01100de03345a2d400040740507b034c431a1e3ed70637687d5aac0c93cf05c141684d33168fad15c82e499c52d44418558bc366cb87e6fb053511b639a91265c9e7e23cf40db5266a22dde55545abe862d75f7a4c4a13194d193274b16fe19826ca71ac967cd8f75013ed146794f996b4d9f6a169a2d1fd2a06814d4bfb97a23c8ffaf87bd4379a75a5cba3588874d1edf4fced98cbdadb59aa10a9589961c58c97d616a1bd7d3eb1b0b5670639a42933c38b12387abc71331552668855e152c443a6ca90e3d06a45d28e186c4ee448e58015676821664b0b14d582826555a1e1cd2f56eac88bbdd32c6baf648365ed9922842819b1424606f0aa0c05374b92805c3394cdd926961242422571440d8c2ca41c236214d3c6ae845c3aaab470cb5407f16b341d5fc1595d5a07f0c24514498b1e2b6baf5c1b40955c074a6e8c80b22349131b34c89315b704bc100395038691b4146e172eae3df4ccb088ca9eb162499810152cba845e188173460d87922b268a81e0282b62cf4f0e94115d5e88a11213801cb0b01969a61479cac01c17ea792c214fd1c33348475b1b8d5a83a36cc916b51137cc1f46b4b0729a9861c3838d0a216129c652d65e69664b94cd8485061027572b7c1861d102cbcbabcd0c47a2c4714d338522c6736602ec8ccb6f67cd2021eacc9f1954c125675c2480b8ef500f311e11564945d0aab46ac05263344dd37ce2a40cd26fdfdbcb8c3561cde00b2bad2c32596f5e61a1228260553951920a626515b46db1696ed4b4b07e5451826ee9427bef6de22a93417134dc683a66e1912eaad9d83946c884cdf538c96285501345734b76ea58c9da4bbf80787470f5dbcce9b7632b74e7741120627912150624cd88fb0ea1297e8179687901ec0a9517ad20930fd3ccb52f594c82918879f1e8a38eabce9da24784262a3c8761d0da2378887138f780f3218df3d1cbe31e87c3e1ca2c25efdfa01343502069a108d3fa4519d96611aab5874b51ecc2091b1ccb1219b2f6d01323de9ce262db7b6f29ac6562ea4d21bb874619242c2b80a8c93169380244061e4ea68c70114b64d97b57397bd3b7e938c8da337166ca3e3163814461ad377fe0110d971b3482105183e3cc0c64daf0b8b121d625660d88d309b774a1bdf7c6953e8c50123db216528c1182072881a48286af1e547c4009d9ec78a02c480f30373c90d4521e2a162d9f30cb88165a23be90a82ad1a284151a86b0c6302945511305c5f4f4bb4896dfdba6a4e44994372c768cb97b9be89b852f509007dcbf477196be8c63458e903929b2e6707da9e5e3f1a5e319a4d2302d2d1e3d7c9cd528b36308d4c9ab3ad3f5e60c99912423c62540e197c70c105e9699a7bdf7de7befbd63ed6da07f83cabc004099236730b2cec8e800a61bd29662f0c032b5c602eb109e7d80e8a6048c32375ca070cb32059e00c8f22f39cc281f3482615ed0f8a801487543040e2d342c25c1aae1c40913c7d530f8fb065e42400b2b485840113266c97d75e688e21c719ebc39c72f42d2cc48197322c7855bba10ead8c6da43d1deacb1c71ca54419ad30af3452ee3bf429c6417686213bfb3a4b3286060c17d79640033bd9801242532ac21635c23940d254e1b2f78ddf47ccfcde33e87166e309a814f5e4ee6d9a7bc6dadb548268a4f11a2fb06a9061d99092619ae909411e69bf3844dcf4b031640e5a82994fcc101b6aac50a431769153192a349030b1203808bb5478b56218b843931a9713d60b769b5463d472efbd5d60f160699b585a421265294aaac6902ba39a14516dc8b828510a6b81d574e40316beb42ac85aa678055b84a186004c4f4a299123b832689aa90a9e176e3c80d1f4db7192ce3471a9cd060e8753a48e7ff805d89ba663146bcf1cb9a244b1b101c5c857138ddf4a7e6f235c6a8238a020414372f746cd749f587b9b674bd052182d2e862ebc5e4c7de9d884599215d1a2b683cd5ad7761ac2a4a7d868e262c3cb165f6a62a4adb5b4e3b7efedb8c40b631c1a6316d271918584c8c16fc7245ac0371fd231dcdb6df837df99a7fb9beb326fe86f4170b8c0bae2224b987b63ffe6d92af552c0bf411ec61b0b42cf7856807f47b5110ed28b99a0825c587a40f510e2a384968f218c2f5a3fd29098018956941c2d20424a6805d1a22564c8978e47acbd729358c4dabb6d1f5cd2c254a0614326d84455358ab189c3b446ac3a5104456f50b505b7511bb0bf1f264921292449b2ea0a470db19410071dfce824cb8fd7f9d14996afd2c598092e373eb23832be2c4b153db8d6accee8c05105b768c2ac93f67cfee8a4cbd2e9a4cbd2e318a42e3f4861f2d52093648c87174f13aeb19d18227c18b1522371e2868c1656bab44bc686265d53a95a5b0c2a56fd14a17a9a1459f8c0d9c94da8a0599b5061f21cfcd8840a963507d30cdea05851264823ad45667acd66c593a531c02940485ce960ecd6dbd3c53aaa205290d0d66918615874a90a13c529c378ed82cbab4a938d176478e510131e3a3a2d9ba48a4e2b091910944c53c9cf8c8f21942035a08c68f98b0ad470a1c609c890cd1a050899d3a54c890c8dcb7d75562b9ef4ad6555e349d2c5932429c249adc70f12619e54947049b224f7ce226a39591edb8f5a56c17f5912cb09d0d25ab8818115c46a4904700d912ba984d21726a42ea3ac547928258fe4444ca9e01ab17446ccf1266ab790ca2d48d0ca52a6844f0c8e26c09249dd7b6fb224778b12bf71bf63fcdea59b11b3e3131a88882962060a1434eeab6351a6c3c2cc5ac268850836866609973551eedee4d62ccbc342cbdb7e7cc262eb5f164573b3ac41969bdce47eb234e3b566eaf1fab5bbd63ec4ea96676b1e1e73a76b21e76f3f3e59fa6d49c700b0e4c96a12c601941aab9ad4a7a943a81b582df63d3ff3949bc79efbd4ece69d7bc792a77a964e9264098274f57cd53fbd34d9ed27cf0816bb4a7ab9ebf9dd8a1883b2b922d5578a6e43bac3e842ae1b7587a2888cb515d294b33e2971b5399cac4afa7baa3c58cefcc6c2e6cddf9be569a5cefd3c3add8f5758b0fccb1343c42f0d0e112d2ba0b20c61f10387ab858f27ac2d2c77f4f1045e983c65f9b2c4898bfbb2e38acd616dc657132462b8d828fd3d7ac7ad1fbd344974fe6678b1062c4b6b4bd55672cb4a22ac989c46245189d3a3696ff8d109590d5ffee8640e9122e938f2f6d6d928bb003f1ec7f4368e63d6e4b8c7716c37f6e1347393e5e9a697e41e578ce64d74bc522c195c252ec01317465efbd63f3f62c908f2ec8f58327068a56369b2faca4b6a6d423edd499234db575796255b6aad4fdd01ebe8f8d669472399cce4c8db24a93de7acdbd1842cc3c996379f79f8397eed2207aca089b63b92befd249f74275d48136d97f4219e1829f01c755007789a3a297688e64607786299224921cc66a273b7e35bf4fa157a8dc50496a4d7c3f4c7ab2b67fe65fdc432d339e3316434c38276ba179d7efa491c3b7d4ce7a79f5e2c3acf110d585454545454545474ee739f9bdd3af63cf51063218ccfed58086316bbb3ce6e21d6f1c96e1d3b14c4bb48c9d2d88f432ba9cfc0b104b2e8ba2d14cc27c6273e35debacce67cb21b3b3e4fa15dc4e2f3dc389f7b482774eaf6894fcc6276ebb60e6fa11dc445983df7b9c78dcf8dcf8dcf8dc7211eb2277beea1223f4fac6359f63c755bb7dd1de321a1a28db10e0bed21acdb434279abc593c57b2c9e45fb3c373ef1a76300581edf9b688f1d9b188df28804c58f38f8a363200dda04d98889329106c47df1f0031d39aa38ad41a1a136220902d7b40173c6c63804588c136c53a486fbe2a28a312795181dff34910c5555c4088770680c895edc2061a124cd1697d1e7f3ad705fbcf6a363b59c62f473f4712c1b73e545188b2e385fae08e1171227a62a24bad0e08e43e3589454530f315e595c0868a2f18b1a2ac0293db8e480b9a30a1c559eb2e658d1f1e502a90db921a746d6d50ceee818692c61ffb882a207b17aeaa3d7408617322fff7ef40f999751fc58e2c48fce8e4ca38f56525ffa2e5de5c93c0ebc745d260a79f89284b7880d518b387a7db979738e3abe960525e44b8c84999ab2a608bff4297110530dd7602d4cdce290c3a466f8eccb17ab655f1ba49fd207fe66a6a62f3d036b7c99a1de1c8ca2ca432fadad2fbdbe14fbd2f318922f79ca379b9d7d99d5b26f0c52ce5ffdcb5ae9cbb289915755cf69d69e7a75e473b95cce857e3c97f3221f9f5373d9444ee7b99c9af33197cb8d6d7e1011bb3107cd0c617227e0c2f5e4b554454b57aeccbf3c63b45431ff92f06af155dfaa8af5e3d52c19af66cd7955d5ca7ad5735a912eeb6aeb753a9dce339a9ffdcb33f62fd0ff3009fecfcf0f9332ff33ccf23f9ed1acbd9f3323da1ad2bb7b36b3f69ccd99f7f1799f8cf43eaafbf8e4dcc767c58822342c7141052485eb9356e4cd15941638c4e4783e07f4b935639fcbe5d8a0f81c1badcf793e535555f553f55c66eda9648a483c4992a407e9ce2c79d287fcc002e9244992a40fd38e24c91f271d6fb5244992248986e9dbd6f398b5d7b6237bfefcfcfcfc7836f3335ebfdb7916b3f676edc89e3e3e9ec3689d71f1ee9ec1ac3d5755555555555555cf656b4f3523f53adf3acf5fd69eae1dd93397eb008e1ac228526dc05ee4724f96e4129fcb79a076850cf1e78406939bf3ec65ede5c8d61e79a6e5f726f1db3dc84326daee76128aca7ee3f688dcdefe829adf5b65b201a565e6971b12b7b2d86f2635c0b83481a97283878b1f62b26c0102a35c167e352415bf7a84b1e2be23d1006b4a44454199b082b385bf7d7c7c7c7c3c8fad3d9f76641d0beac5abaada2597cbe572b95c2e97f3cc65ede5828abc9e7cd275e4599627fd243d6f597ba4d8dadb60ffc1079ec3d6de0743b6bea7a7a7a7a7a7a7c787d818d2b2d6e3b76fdd09f6553464eb3df0c07396b5e7413bb2e7d4f07138d779e6e51ce7411be745558fc3651f0ee72ce0481c0e87d361c48cc52f079517359c8f9a080073581071d02873ca8273b1005c0d21f1a4672cba2bafaaaa9faae72b370f230942a234916af1dbd9aedfae931afbed4257534a5e454ef61c1148d2d0d0e2e243b38586952a6b0fb7e53970f0dcb5f6385c713d0f8feb78783c28f3f0f8c963e349033ce9b9b8f6482a5c45601ec83790e729e756d7eff0fc8e9cdf71cf3cd2773c28efecf8500a77c74f4d64811b605d537e5a626cdc9d23bfae2c57453935dc97fd1ddf5ddbcafe608f5a50747400254914a628607ebb90f0b70f49c9b215fced796bed6de2f8163d497e8d638eb82811d5254c4dd42bf4a40f3de9e358b422c679124a8e27dd84cc23515091329162cb8f3352c6b128454f567e83ef0d9ea1acbd0dedc89e505e6b38afb50779284af3daa6df68ad66799dd3d88dceed643d69dddafc8b87afb778c65ea079d326c81530570f79546939451da1c105ee1043a3862e5e720871df71ed0541205f589c9599d8725fecc3dd40815506cb494cd886ad1ad654fc203211ee40f33c3c9e89e7dadedbfdc98edfefec7876726eb8e224c822ca0e3427eecb7e6e87ef73b9b5cff9e9e2cd9b1c5749b0b839cf4d5cc757075a24398574d6ec491d469ef49c9582ad212ba4d0403a51220ba8f5389dc7b1799c3038e4c90c31278eb838cf587eb5f6b49b24afe33bf3f2f044f3a8ef358fba0ba13ea48b963c7aa4e68346b5dcf87814bd8151c7e8d651234b113253a6bcb4e230f9a5d832f2a40c18266f7e08833ab4c4deb821b361228b85f0c97d47223a0eb5e9ead0c60d13ddd51636afb55e03be5e237bed790949927e929e95f8d6e3709eadd61e2ec9da43d9f8fef47d7a46b2f6ce611b12a66ba2d3f530a48baadefcc0021a6b6e371d33e14e931d9aeee47138cf556b0fd78eecb902ce9b1965664021ba2f1b048c1a05bac4c182f3c2c40c36dced59a8b506c8c1a39e8f0cdd48eac27ac2916344d60e32af750d2de8418c913667c7d218577b36e25a6ae03c497a2e92a96c365b986db5d96c596c02b0f9c8f436df363fd390bdcdd9ac1a7cbc4d0dc5dbd4bcbccda686e66d6a9ebc6d0d8eb77926b2f66c59694e3ccbba2ef3383ccb7a10cbfa90665956eb200faf47ad11fe1db7ced078adfd3c63f6da5934455ebb0e4d93d72ee4f4da878a78bcce429bf33a2b2dcb6bcf43d69e2e8e6fd1ef33297efb3e23e3b79fdbf3d4dadb524556249e030e3c0b597b1c24e1fadb2dcddfdc853c649ef69b0fddae7e7fbba5ddfc83263adddbdff64d042f5caa9821d610c22385322c6faa0847b4b15102d3921233b44874b17133f326a9eac6081f50ee3b12ffe663d8efed3988d63e9205bdd6494cbcf60c441735a2fd00ee2080d315f5de8b7faf8ed9126db355076d9a15d88c314b58c284f1d2a18d35d460660dd04b6a0e0e1f40ce4c5c4912a7449635299a0d708143439314736674f580c012a9af22699818413a43cf7801f104ea37a386125b68419e2469d2cc59ea925116b49991b16548361c22a7cd1b1e5aac66f0129b72da0262443dfbd2878471e0f8b881348608e596ee34000d99a03073660e570e17b632e395ab184cc69a88d4009c416bede43bb47aba77bbedd92a0b619f00152bb11e3fb2ac9e5cb37d5932c8882f7d93b1057971e34b8a176cceb8a57b862a772bf45adfda3c14aa60473ce66dedabfbd2cba7ed3bf4a5128f1f943655a8ac719b5049b3c2e6c9871827d76c4772b7af1010ac2f7de7a7f3c76fcac569cabdb9b3cffee6d4d6fecd91bf1df2b713870ceea07dde5943c3a60d8916692cdcb86fee9704e48b92215d5b61dc2152cca6b448537a72df1c308b8a91351b334859e3beb9602e97cb99fd9b13f36f8efd37974332c0bf3bb8397b0d1727e3326ead02647c98c1e052840b0bf7dd510a1e298ba1c4cd0c68dc770748d6540a618eaa2b25eebb430217130e31628074c570df9d1abc11d290648bda5a9afbee642f61865324a63c61b9efce8ed867dff1caefce4ed967df29665ee961fedd2182f977a7ecdf9da69d9d1b6404f02f0ece3663b7198bc6a2adf13063a50a894c8fb532f7c5957380534864a185c9e1be38a41d4d5b6ea224097be1be38e067364d9c20e9f0297172618031f6d5050c192171dc17277c01149326668d8d09f7c50d1f27f6d9715e678f337b5cd967c715336f7ff917e7e55f1cd9bf38f25f1c8ea9c3bf2c1cf2368714dededbd9677f6f6a9f9df521fdd8bf6c53977f592effb2c4cfceb265ffb266ecd9676759b1199009134486d209182cdc97656305d6f52587192443dc975d4a53c22486951d5c45f765819fb5d470066ccac7d5e5be6c10041464654b56556a0c715f5628d4710686050c34f7658742ffdef2922d2fd9c66caf6d8d832a3168ce4c01a3b1c47d6f5094e23481c282c61a37ee7b5b1a01cd09373952f47802e5be37a09a3235647408295671df9b4f95105e69a283ea8dfbdec65210bdd4e4247913e6beb7e1adec76bb6df9f74614fbf716f6efade986f4d96f3ea7cffedae07c769b0f49cbbfb626b07f6d5fffda889fdd56f4ca36315b19f0dfa7a6a894ca9670a3187408aa211200127316003020100c07c562c1340d032544f914000f6eb6565e4a9788a359142739ca18858c3186100119100018a14d13e058b7ac2e3b5ab64d37a6759387557e2900f571356adf37c600967c2c5af2848a14e78e205123805c5491ec1acf1edc7684200592b96d2abe04d21b163a45504d431e8f01feafdbb490b6dc21f288aab6dbaa531446a182cc72399c564a9b6cb0527852cbfc84c69809b30aa93b2ca29c9d2c2dfbeeeba8d7e8dfb895c72fdef950741cb9a9b7dba8c5b1d4f118c8b11d4df2dc618c512797c70df8abd7a57c7c6392e9f456d29343a88d4aeb751462974ecf71c45a18fd387c83c5d8869bab38af6e5f2cb4b5e1647bf5915c7f8879f50a929b4b5788c3b6fd380ec28576eb128a6a6bb99864aaaac1ca28b73e2858b9e69030e70a66b0160631a59d50823093510d84db33661461280692bcb41fae4eba828744e6388012c3592941cd4bf456cd02bd04e4e69206586a235ba5e8325eba9e55d0e9c497d09c87a837d74dc9d1920e407bd09cdeba51f50fbfcdb57665c823e57e5d1d41372ea5a928a1fb9632699b284df3f4231e2e4685ac1003403788c766210b806b9f8b528e5fcd5da49b4bf15731fac886c220428bb6b30178d57959488f1e79b8c345ba4d4b26bdd54a8edab69a8559a77896bcf93df3bee0bcd0cda3bce41413a82ee6f561ca79521c97fd0ccee54bdb99492515104ab08e9ffd2cd6316748cf4c659bd5f7c0983f67d29ad942d86d88327a3fc2e8dfc4a683d137de3bb1d42915b23b6e076b0733956d9ec8b3240b91aa335ae8b19d19693426474804e2650e5406ed958079a6a495b3ea9fd0454999465fe2fb03571edbd428e7c3a82ea4b24ce82b1170c210c26e900a11e503dd469c2a3a1ea8158b68fc8c06ed6723dc7099e16cfbf7c5b5895a0b9e382719068db01a1afd2d573beb9d06cd1a4769a87fe0ca285d9b5c599eca9fbe98a5511b7f95210e019339dae6f7a4031cd9769463098cf278dd0a49cdb5a8d17856693140deccc7d202005af34f84d08dd6ad4ff41a2aca878d0157274691c45a54da733b2d306a6c200e35ebc30db1837238ba03fab9f4a575991b8a32e3f0482b71eb3a682802ce748095eecdc049569936dd582179ccf3070b63db1a0a45dcb6acf8cf5994913f894cc582b626540516a0642d6d0c3e518ccf0fb42ce37260b1576d87a7bfd786c58cb9728539ac6d2913a0ce9948c33b19331d65000f3d1321066f1909b22a4b1f12a556ca5574f204336ae964271b11152e12d2dea5ba7c76e57408d3f23109ce31a7896f3d383aea1583f86920937644bc7a8c6db81e2f5fba711355eb2c91480d4afff44a59126006ca7a170e56068b838772e84ce669c5d2ebd411c8d848ca13a9a693736236c509269232fd68b2d4156b4d6e15ba22b4fae7704ba13035a0b5cad223f28d396fa7c3cf6c17733aeb7999afc8093d502b1aff7eb9306ea8c80e3b745d05b6c7fde2c6f3acdadc1ac7d47b651768b06826a2ab3f63dc16f5de64548eba9ff8a2fb5eb86abab8e429273034d302bfc5bd29cdd660cb7a6277b5937823501524805f6b063841911e1f615686ebaa6c74b8bd704ff4318353bd124e178ff83186b51291931ae95ce6613b51a275a5bb72d2b1ee5331dd564282e347729dfa9ff954e0494c36fa73dbff1e2f8ccc0c8d20efb30b8d28de4c163e02d40298398b3029be12c4e37642ee99632b2156f7245c5ff3777f3e1451b1ed0ee26a1c6189271c1027642bbe9a7feb8e0fc383adb37b42b75ce7d911b61bcac66dc9a05f2f8feec296eb1250dab1874f6ae61e419167c2faab8425cf3ac9be026f6d383aa5f00969a71220a244c5f7b7dcd440f56dcadaee104771bc1bc097b718f1d8df7221a9cdf25ca12ac86ee971cc4d57f8413c8cdd75fac3c4c83683d042988b6fd80255050ce351fbf9a717b76bcab5433f1183111662881c4d6147876d85678d95f9626dac0cc18049bd2e3e94bfd6907546901292381699ee8a79fda1b017a697295efe2908bb01b19d7ac9147f35397b7d8272fb4070ee3a3fb342f066227b2942401cfe6daddb04f0676d847177f000789d1e759997336c161df9c4d57cb2b7a049365e705e8a65b19428ce30b1564ccfc41b0cea5824e2a0979272c55b5753a6b8ac263d9050c43e64e51efd236a29bc7670ae0f3370d441067b6cf5bdb6f45bc97549ff347b64baa650efa98bd0eadb5d9ec1906bf1b64eb77c6d01b132c6117f1111135802500bd639a352835853bbea17a039b0b4b2aef6249af4d590745b6c027f2fbde7f8111c2429e5594754941c651a93a31a9d9b322552f080a21111e66ff9c19c54f6b6b09ca9c910af9d4ec0d3843e017a790ad1cb6cff80e6356bb442b8867126deb2c171008db94a27be9cc131d1807e33d8b422519b9747aba2b3f22b8a3cf1cfea9abb8e37a5851aa52dda8aa1ce37850b8424516ddd12c74adc147ca191bac0f8df56e4372c7849b463f0d9c1470fcee59473421a494598587d94df7ed4c173ffaadedda28dce512f83b0cf4ff3ab58631a75370a21a05fb1567dcd7b7890faa68ab4fccbdd7fe3875fd5a37a581c7a53f0d18d3dcc94fa829e0e6cb0b68e7c8946749cdea9f7dab92011c99cc39bbfe8ca3d9f1715b0d37ab0b245f7ff11124c09549223461e55e8d55bcc4bf2cbdec751b4a08a816c4d34a14d508d86f1f75018ed7f7649ae803f824662349caa832ec5fab4c46fb6a4914e305d97a017c00dad5b49481d18f3b167867ad6dcc358334caf9a356c18194085134735729d7944d189846b9d503992f189e895d8f6e4a3be4d8cb5ad5b2b5e3571714f675acf8813ece33dbdf0239a48e8cd838b3fecf6529a5d0f0fad1a088ed36a3ebaf51b37bda91bef31b5e17f64c23fa1a392565021f48be5a1cc070fca2c0a8b95d073d688be2ca50a2d391a14eedb7aaf874edab79a08694f8ce2b794c0054852b29e77f82454ba24e1262786663509ed756314018d1109710f3ac45412bc4b4fc7ffb857c0f0b219cdf4d954c49283c95ec369c97e321d9c6f1324ecafd7981f468004293527d311bb096593a22fed4cb5ade2660246961dafdcf8b634c42118760102a96105ff992556906bd769c9508a1d03040f0cc5fcfadfe1057f5d717119f3681ee2ee1f7ab886636b027685274e6e0bf1b788cacce3156cf59f6b89b3b614ae304015d1eb1446dfd4c7bac1f41d7ecba9060fadfebeb98c1eec2cb1cf6f7870c699325d29fef582ea989f6446778b23dc964835dfd8cc702288f244088e4adc1605bb41282bcacc0d9c4b5064f334642c0b1b69e770a281452cdad655ac58f16a9c6636b5d64b4843238bda78da311f7e566f0c91084eba1d40c41948878c5a07a9aa07eb6b95691a860be0f08522ce0336e20baba9e0fb5160e9ee816bf8e429d6a3eae69fe501b86f95b8bc81e1bb8393356d068e36cd291209aa49c06ddf5f1cb48b1c14416e2a00093392de93e1732d6fa7a8c70698bbc835436041c51a4cebbc28e9d899aef095abbaac3866e9441fbd7823317a103436aa6ad81d18f739da0f9f91d188efed1a8d49f1b73828ff9f53901281d9d47df7f216ca3e98a98c0702e14a84ba47d732d7f42a0f285ba28f7707f52bdf3763956262e8dcf67896d90b843842c5e74c00306b0606400d1246a9e60371d953dd95b41ab8381b02350b30e61dd3f0282abacb79f92887b804f1a9d57588f95582453283b26c8c4b61662e487b141f78712bda62531890316b800e07cff59456a9dba205b7e59d8f0f21e858cc1bc9e3479265c6a911cfa19d7b9afb074fb71d79466c92ab78ecd5b5b057f9af3346f81d84667f9122679e2d801757743b6e417610b6d2146ac89a04a3b383a0eb186f493a22273b456bffe2a30365a04b55718df5e99a5b81eeefb9acef2c113f63d30c71f690e80c32847dd99241abe73f7e631b43716e3f5ffed0a0e729dc48ae0758f80ad96222f8c571f12fe3a7536ddf306d81b769de0fe08c494b92d49e6fa9e6e28686403d4f25c25f9294c48b13b6101b2f2aa8a424f92e8ed7539ee15202ab33d66f18ea68463def5d16dfc578d6a71bb2558e0c3dc26c1f340b82a92d5945150514e42b2258b8f2e61ff3e4805d281f79124b4d939abd26e6c574761c80c992c50cc01863be2ba724442608d7927b4af1d1c5e580a77cd5135abb2acdc60d4d480f61bf1c3e30acfe39184fb3a1d03f4b0afc4e19533087dfdcbc97381cbd1a785f6406210a22db1c9c25da95cbd019d99e279251cd0957e11f8d110b85279e4e533612bc16d3855699fafcba2b03af1b495b3e9baa2a6f2c0bae48643c6e05f385292a5be8026b165a517a18d21dfa7a4ddb22e53f14e669a90df14a90310a24ab7ec590a98aac91831fe28e869ab4aa9fc2cb38b2326a46614444c3fe697cc932df7388331872e33554446ad6f8eb5d13c847f108e4d0c2e31a4a288923506bfa3542cd6ac395240391649796810b8af8232b1c3eda5b3913b67c61c3ffcfafcc86ff336630c26f13d08f870dd8b9b4c0c297e4d6a0beff83721f85354a73b5bb9846b2f91218395b313517c99f1959665626f9afe435a735266f2b992174eeaf327219715bd492dc48b92e83ccab9280c683778de9644945db3460b737447fe5e8066c14063c8432dd47f0ed59a2f2771bd75632fc38a499269280d214ee0c6a0b38e7cd4c54a8c823fc077ed6cfb93adc6ad1371a07c3657cd0f686c5f287d3471c9f35f4f9feb2094db9e082393121bcde55b1dae63b1dd142a4e61db470f3c218774239afbcfb3ad422ce92f12e921c85f22c5d840ef3a0fba4062199ef7c52ae911974402289891777e530c9b0f67f42964bb07e7912017de73a787ece4ed713a5418a516a0e12bd236dbd63650995f46976edd473ae2e212bf02287c9ba6c74bd0b23a79209fb13213e370093304687071a99720cc3240d6f4761536b6410710ab5dba3d9b31dfadb9e66cd146cac0a0224a3dccbe9ca5cacbc46b13e5e8e4b992ddc29a7aa92fc9fb4e3657fab2a944146d3cc483b08dcecad59823626b166c78a744db1b8af3b613a40bf88588bc90c230894b7799faf7b11b0e5e61e8f86858b8e3ee347928b68f4c532e65da730d67af5944cbbdf3d3e177d5a5c1c23317fa32b5e9b25266f2d17bdd4dc2c8fe71491548888d157ef57b665fc4bbaedc374215dbe3cd0045164fd4c5b0945a5a13b160a7a6cf8d62ad29e921c68e88466d85fd40d5876d20e8e42d32c2b492a296e92d7bf72a0bb2b013e0e840a6d17017a75e8b34e4e6a25277dd2e8e5f79628a8d0ab20fc3c14696c1c92849aa990c227be0c46066238546c780e53ca33afe50d537511efeb33e7033b0c179d9687373966516b6a0f06cb74c0a45c3063cd9da3c0d687a844a56568095998ee3adb3c9e5a075f7fbfced42da93e316b6121a7a036c2c3667af6dfc1bc2f837c62bcefa3f790a6db865789bc4b62857ce82651ca1a330701dd7562e2816e4ce812b2ad6749b6c9dc094d10a9545a34bdb31410c206ba82fec990bee067ae2329714e006f2af33d27704e09fea0255827cd5b913a15da1176e89d6849562c8d3d6261b65b862289f93dfaee2073a50497e0fa8bbe32648c43065a7f4778a9580dd4ad0963b52e10217c871a5562ebab2655fd57622b98c9582da97b30c00fe22d287b7305ac895facfa885cc327fc6227bde2e820313a085055b87f2dfbd557549e935939e4658c464197a7edb36f74c9fe935473a213c884313d602e3221cc211afee86292175fbd666ac9a32316eaa1fc3ac7e734549650f52752e72e0f629304c5c3f7257cd7bb10b0b6fd9bdba4bf0694ac09a01d18a868c328859ace097cb967cf4d63723410d48d2cb3736908ed2a202a5cc0eba8e58662730f0dfefa964f1e21c7efad735435ad70cb95d2624664b48780f82fefd693e7cba6a3a5020b0e8d841530ae027c9584d3c5b0749d3081dd5f045e0caf5240119b4d01a2aacffd9ccba4a4da5bda629a4cb67092fafc124005b050e71c32d8290a5516c04d8a17842c92a72c04f3fadbc3a9f0fabf78e09d7cd91e6423623e117ee577326d7ca1caed0a2745cc51a4bff5b896f5aed646cba753219a3dcb3259780d9dadd091558d84cf56b3b3b5b9d4524d9a94c5ad282d8b6c24f52bcc6d1c7d30c25eb03492236792946b5e3cf53612bd62939682a92550bcf58c482849ccbe86bc83250a9736dc84e030eb6c323b4601b6cbd9f6da4aaf2b30944fe476b54a18f74a0ad819592c4b48a17e1966b175141b684c2ebcd7262d3afe2c7dd83522e650976e06afeb9416359c6f7ffe6195966c3de379360010a6de782d945ab6059e6328e83e282ba67a39687a804899a3ed718a6e6284acd0aaca0a7992aeb9ad11dd3828071f253b03a6b6a75a90ecbe344fee0a241dd8e6aca6a09d295e13866f9a7274702c0134d7c233eb30c480a615723f3d848ba4b48d846ad192cc0821db83ced3f0121e719cfcc91997cf855c440de0dce896bd10e04a66a46d8ff8bbf5846e68d1658130b1c91670b742153765e70cdeb01990aee542236e48ba7be30f8f37da14f786614c87e2af3860d83d026e55e04a74cf95e98e7e05690145378209c82a05731ba9d0b0360939506a7bd4b8450af04d43061df1ef7076b480685a69e166aaec0f13dee4c3242470bae1f4fa1ff5e7d870133484e84e881ef5ebfd022a3b4edb596968f3e2b6f9ae83a09272e0810be8f6e4bbdc098b1f759d5a8a68588a1e063bbdbc8698d2bc73f2861b6212bb1d82b64e885d7edef0b1e819784bb1991ddf8a7739ea0209c809de31b9069496a77cdc30c7fe26a6e866dbf4965e095facdce8ebf8a5eb2d4e029c925fb878c42779aa4e3c70920774c5f93567ce562540b0646493b55e043a2d35c63cb0e4a38d1994f905ff9a78821e93ea9eae0409fe7fee4de456f2299a6cca6204634db67c20a924f309a6d01f0c7b67c13701b3b29231840aceb76ff03174ad8da2700ceac59409ed071be65fdde4e803ec4a51a8ffa763d399b8916d1068df48888edce8782fa0729cada46905cb2d035c59ddc995b5d0c4e148202b0618b2f1fcfd69e6cf754f8953144db7f409870280f4ea9267428f8a2da10c650037c0e6d1548d07362ff9e76310391ffe5b1f7f46dc0dffe5dfbd530b3a6c34bf198e5e3ce2264052245f1623aaf0543cda8367c8acdb51e10ada6cdb9e4b23822f7e7911228bfa66319622c27555d30d2e65ca76950be09a1bc4dd47716fe312d70b30957bfb0daf081ed02b3f87e345bc7464f8adb3791c0b0a381533548974302f07ad41b865681f27a429cc73a79f1f2b1428d5c4f4d0137e4bd1a19be7581a483762df2632dbf050f169f041dc96021eed50c4db120aadacd3e35a0e848eec69dfbd72c1928a67c5e568e6b5281f20d00dbd80a5188ee935ecf1c4fa22cbe1d90a8e3aa7303d788e45fa66b1bac49614337764bd5ffb272c223109a6f5ee7713ac8cec586722d41362ccd5f62d5456f15b26f5da4731fd10e4717a69942fcf2d3b456f624fbbf37ac92eb6a4457453be45ee170574b5d9e68258ecaaeed00614eb4faa51f745732ce794662daca668e6c7078da1083bc6148781845c491d9ee4ec9bf03fd8cddeb7b693f75f79cee2ca57cbe2b25e070b8413f5919d5252aa70121b1cfa22f08b83085dd3e40d00037a3c6e4f90d230cbdf436031608cdb500853cf2e4214ea9a048d041751e9d975898fe77f6ef669e937d020ec29272f5d6ac96d12c7a024c58e0dbc21568b8c68d8ae5d6e5558f54acef8cc418923e6018606ed3def9673d8f82df1a89741287e330a7a41390761a8a8b44a4eee54a98146215163688e88d5809ad8a6a99222ce9ac3858c5822fad737cf7f3cc982a171ae38b9a9fe20712d95b46e9dcb1e971dfe1a61b2d665258c74bc2e70e2ff62bfd94ebf55ee829178944e10619e79b01175a316edd5144a5dae1700a864a86fd4f6da2b9ad069b04a80c46acc196eee365c33568c6822cf7a231bd88ca4e82123e753a3af69e9f7e4962cd7b7b962034a4eb8f65b185743d094be8c20c56f2da5d1894d6e99779378f55f71add89e60499cfe1596935ab442a01ccdbba01f006e1e0a031351c8bd151cb00e40d2cc45160687c4aa84d97dc02dc93eaa3a5e7c59b92460c67664ab0918ca972010a300543fbc6b94e70d92bf517958f3b90421a2cb963bc96aa7e374516d8f271f44d6fcabfacc63aa402ad710597d842e4ea09523fe7a7261bb053c41562f6c238d1a1a4df57fb0012d36eeb803329135d24516b39756c54852a3d9cb164c852ebdfb1446acafc00811241605d34301a64b72f3f27593eaf3869e1de126f7fd1ed82ce1deb066519d268bea22656765da7ebd9632bdafd5683a9b9dbf829a36abd86bbc58d72e8b8a841f111aa809e0cc1fc60d3a1cd8a95a6635aa7623a94b96cc18df9415fbc73d7ce86308aff3cf96e437dcbf0f230df0d85b4329c8878f90b9b0982aa534cd1bd91d08e89fe7c659c68c218cfeb8508906c1c8de1dafda269e334c9ef1777cb51aa6e9bc052e1658fc7da8bdaf4b62cf9ef7116623a3cc27c6b43966fce0e76a41052b8e16d941483da8748674d97e62880cbff68af4c41540d168001a661768cd1aca6b1b910775233f66906669dc1c9c8c0b409a7231409f383c8f3494dc989f85ff630b2ce6ee7714352e85aacaf207de5e6885559269001a678c5ac8c46623223b389b2794e2be3e6f70cf30f5de4ad973e6061c451b1fecf7286bae8db78c096f4c7f62a0bd1e6f0005839697fa1527f989429f88e3d417568e8bb9bb2f26608c03188ef7159671e1e27989d53f0cf5f104987482fc55894f4cca51cc1bc3a109a573e0b3048ab0ceb5e05da9a39a65c52ed6df8af18a7052aac59210c0b6a81e191771c284b6655fea1343d196501cd821c3a9b57963f2d510d31fa948b0c011488785cbf823393b378ed6aae69063d970649ae56be6c63bc15d5873444cc82f1f2da06e3e53cd82c2f65e39520406312ffe0951ba1603805910c925cdd9fa7372d32759cf5082af7caac753c2b18bfd8e59b84938083112d0e127cea0c67ea3acb332c690d0f2ce42e7e9b108f4d4edc5555ff135b66e5e7ec771690e710fa2063150877a5c0f280c685a055164f5035a4acc8218040aa59726c216d6162b2de401b0d270963f81667fb4e59267f4227c4ac53aeb96daeac12b73a55c39e1e1642feed468e5b3f1d6c49675b0744c35d8c0967a5b90ec356480631f7ebac74d074048767d60259c42a6874c877313e41207e1c115a6214d0d30d3e145f4d11d146d0f72b85c68004c87213729341d5caf3a1dc62b959ed3c10bac97c6858d741ec7c4bf4030d999c217899f0eb7647b855c3a95ecf01a5e23f108f5903e793eb88d391dd4360820debbff4b2729a9cd66f9a78b4759fa731cce13a5420693ae588b8afe04d8b28907997d6d88327c9b40d4b5f8e2fd2e047b4069c7b88fd5e20fca02235a95b8fc73944d2716be50ea9c6609b490701b729e06c38a2fc4c5e13468e1c3d4ceea26214cb5416d6cce2dc2505df86bd367cafecbca789560717f95666c3e7b549e318c14ff2300e33b6edaaa3b47b25a6d62b6d9b10bbcb27778022ac695b3f89f95df4b0db2a78dfa59425d337d8fdb2c7a264d6090a9e6aa89ced22676f08b2d08ceb7b21d5bc79ce40a2a2b1f649534e5301fd0b43071a47596aacdc18d3dc6a4191d47b285bb5ddf6c541c1e57332bf8843bd4ffc2c6a9cd65fe6589f354105c5bb95b4d6a128eebdfea09e9983166c370f9426c589c5b4562e0d17251ae13384b2f1881ccf52c24b888c3f6578628406c0171ae54d413400c8d500eb2e4b600bef7dc68793a883e5cae3a9a556f096d9811586f77a6d104f3ffc744139862db40a0b927f59f0a5f10efc648e4505b3d408741a582800e9ac96cda7dfc390010ae8ae5c74591dd84cad3fc7ce100d0d2ff5a0cef3df26ae93358b4ae4ce7d09469b92a5a69bdfe428d0a0bb687ee766f2220d38edbcfb8cf5111ab085f2bac401b9e1976515084e8652cab0b0e3a70af1147844b6ad93c64f2485f7b6820c8e42cc0041919e90d580eb2b3ac693040c2477cf26ef3849c37d4706ff6e4047f7de44304cfdaf62b89e9d23058e8911fb28dc4268801e7224d5f37dd98700d2ecca29ec2bbbc3ea622353d1d179a297adde585c3efe04d50d8c8401d0b0a76820a9bb721841b24fbb1f01cafb16dadf8199bc30c45780806f842d41c6606ea0ed433e0f2e6074fa406dfe06c8b1df81e4ecc0c8085800f6f017f922714d23919d865a90a8f66a546fd1322ac09a19c363a88b6b439409aacd45092c2217c114e008ef37b0402bfa8662719b589f90419e838e0ff01f5ecc064b3e9768c3328c2e353a198b5677d1cbb7eaecbbe2c463c6a3e56c0d7ab58c12ad7e050923fcd8bc389987238956a2f603cfb24231c059338555fd9f866dcf41ae46a8636d0ceb0007e85ddd012d6b775c5c6b1146b17656e15db4fbe34a6ba2a67338a2b3d9b6da79b50c516e4d5284a0a4537b7a1e9f4ee44bfba2046e0eac5676e34fdb6adafdcc827bff7d0e8e6529741a0b7fcf5bad86f6008b484dd7dd4cdf26d4d11bc4cd1d4eb67b82bc57fa66db70c0c8c80bfb6a26ae116206ab44c8219d246bb22c86d98ea58f28267201d52a4dbe25f7556ae99c2f4f5ccaf43b7a42907b576f8583f1d045cb3b1be617f13b5551fea877e94258009445bc20558cd18838e6b8d541483bf39511e7e4f28aee68981c279d0c399f46b33996d41f2e8c0c6b206b5d5071f92ee3d4aa1ff259e11d6b9c2a687fd821ddf989057fc2e6705842dd95644968df079a71227ad13912300b6100b6860c6bec71cac1a6823cffe9fa0a2a712af55239495648d18d2a602c84009b0149ad316abc2bf5c704a805b4f9a831ef9f5edd002dd913a620280f8598849ec1507683a729d0a439f2ca047e4b1867206b8a420882ea89c747deb425273017a8060584ad126ea2f3b43573e03e268c68b50a3131ffea9f348a0941bd3065e9a0428a2d1a06200f2d2c33e81c4e06b1a63eca68230f010c90192f4c7d9cbcf88d6f194101b2211f40f0b08ccf0869ded40c8a6e22e27ea3a37d71774c442dab232acf15038b1256b0cf60692d25c44bd13f899c33ce81de01dd86c595e7bacb86315d49831fc138ffc3d8e76510b87b38d68416f1604bb515344894607b3ade0caf5b974140a57e3b71b372897ca2c49cced9a3647b68df098bcf0cc1300e7b509cb06928d6375f6f35cdf52dc0788416329958b561d8d8fbfbcadccd3c5d736ded674176c202552a2be9ac78c59d2e7fd6d0ca56506bf1036f07bba5f251256199da5639ac4e5bf4c1a77113fd145364f917e3a9442370b18d9ea0c5d7f1b19edb14a1d8f8bab47d8a95a5e9ece4841810e9d003e46e241d3fd48b5a584671069446c5de347bc452b1f53d34b0156e26bfa420a4e635889af144477bc618307f97cb536c06097f93426c204e296909eb9f652d51e91c93bcf30f9c724bf3e952243968bb274a0470837d55a8ef7c960d7998c6d64763f9c915b20b8214a0ade3ef80bc8cf4a86aad246b7b2f1d8483ed39b2120b431281eaa9b6bd70de08e0b1a6bc56004cc2f6a265aa8ce36050f06c0f3b123bd351a7eda5b20c6c0de448364a08e5786e56b03a2b36795bd9d7df938631161d2edc8ab3acda5aba1a3a117376c32dd5e52fa4a8b074f1be79aae58e20895cea2e89bf703c15b7e44715484a9c3ec94db7c21af42a10d2d7b4039e663a0735d10cd9b8ef6fdbc79e8246573d8a452351f386c136417ef838f535d49fe489d66ccaa3119414d99789572af89169db7c71ac901595ba3dadaaff1c21374cf134d52904b06ead24f6fdfdd360113e1bce0c4ae55a46f099e1598c7e4a9b573819e917c71cb4d622c9073aa6652925b99941405ad26bb69fbaff6708a22ab28d08dcb21e1b1486fc7e755be43319dc67bd3f8583445e31825b74afaf3e7ee6e372285fa8747d61bb15bac66a1b04337d26f73aecbdd1d1cb58763a54f30953dfe00406f959ec76ac95830f03132cc35e18a4a889a8e15d601cac5b918074e1d42145d5a1f9e0c0f7846a4949161b27929d77c3f57d248186213e554131aec0ad196174fad0ea63cca1d24e780ca99eb53508d8d2654118c79bf8de3cd1dc72763b41b98d34193b301e0ef0850f58de4dc45eb42e04cbc8efc31609e248c47aee6abfa71371d4c753cf81653993fe4670b70bcf97db59785b06ac9e87c2ea61a757375fb31f4059d4abbec56b9779dd7da54305dad4a360ddeebb6f8ad95ab5da8f66016fd688c949b9444c9071ccea2a9e40bb7182db0722f5bc00f8798cbdc56bb39a12456d9915cd4b9704e944d4e0dfe82c90e4201654d446c0ecca900cec0637448d1dde776f8bc1f0435eee820141c5b112b4cfd877407fb2cbbd77daeb3a5df7efbfc70c9ae4ef9b60da6caf42572a96fbb5c3705357a42907846c841ed800f5828edac0f32d64ff3f6f6dfe3ab5560f264e00fc38258a08c5f650a1eddb2dea1a6b46861ec1b715642f536aa1a261dafc06d318c1be32e2a32a8b11d11219a84b311c998b028c5fe9aa5f0a195520c6d8d71b9d331dc96214b3140c6b4d0780848419c87bc817bb56bf84744b7d9c220a55585b66a78116c33a533992afca7dccca2caeaaebc3892158110223f906a6069df0d63d2d0e348bb291789621b7668445c78f05044f842d27909756d85eae87e74f38d5822f1437334f224de521114a96debcd8651754a310704eabf2088185029c531e7086a8744d8ed119ffe355604a6a4c0ccb894c61f27133d524e60d62d2cfc78e16b950e567f0274ddb7465660d5e1bf07db6d9ff1a5b228d8b14aaab0092c89a3c3f5089a69a5a8ae65a244fb8d45e02fd6433db161e6adb01b285b2c8005900668b0cf6844dfd8ed206003e60e7895c3d302da723421e8ba9cfa4536094c096c1984e70fda2bb830c9832cc3b40ab6063078012331ab9f922168779c3bda2315c18d543e61b8ef823dab30b3c7cd34ed5109e1181feeab0453f32e0c99902bff305d3830c340b4e50427550fb73d92d2349ec0f9a2b80d073f994a2d7abc4529ddc3a733f0b84060f6e1de4a7e57c28f5cada5958e8a96d2afe03ea07c498ad284af0b5867d0a10a5aa4fd57c6c53a5f22a138e3999ba3950b425514acf03e0a0e78a2b12a455747684ba9e025cc804317f3d9c3c9a3d74fcf720d6dc1a8182016838c186986ff75485b7eae6ba297bc7ddb729f828bdd2c5eab5a2ed5ebb762f3b7022c1467260779654ee91f23b186114e43a47081c12ff57e979943940e59bfc3ffba05e7b56a8bb5be5af893f1492f2eaa86dd815b03b373b5048f38f610f61ae48b1a02b094ebdeb9451a58166e451c749ea83ba55a47031ee2428f8d536515e7b8db3d6d14bed51f4e8e113c2d58b55f3e7d1952ee1e0a0d8bda7dcad13f741ee9a107237cecde77585564d62ed6232c186e7099cf12082ce625731f6577a7c803c70eadf37e4afa9e48ffe3165170eb7020a94bbfd87063407fc31b520b72ae154846ca9a19b43e2ca8fd37e41c6cbb59c386a4f0895cce5ab8c487a6dac220a49a80de153db061614813d5747aa152f646e3ff3621eec385c941265ef7c3cbb3eb2c5519b9685bb12577e4421d6c4c460b463f794d725177b8958e60096ad33fc378fbb64c98d1aef639b9f90a6d5fce70959adb15f23c8daffbed7140534aff784f4e68cfe92914ab2fefe40a37fde503846893ffae4eb80c5a6a03096478961ba341974f83175e4a5f6724351bfb9c3fd2df59c2c7a8e192a20080f2df14cf88a7aba66ed344d6bb38fbec85c38104f6dd9bda48ba67b26f2f1a018ca97612e6a87bd6b919f29e4fb7344998045aef2047ba169b65f9033a7479d9800c58cc1a0061a617e9f4c42316f6c6399d81ad18183c09996a0155d0eb6a5e4546f53d41a7e12c51777439870d442396edd0208a0695cf3d0429d048cdad0eb3ae80aa0e3e56ec5ced00ae7445a4eb822ad1919324346f188e932a51bc9a933214b5138a570028d3ef221ce2c4ca05d3da2cabf2d83b9f06bd11a45beaea6ef158d4a3705409d22fc9b22c2c4e5000710b4ab15529b4c99f06520e8e9ac916c0a9b262d0d2c8d5f18139604a015fea214be20d8591412d343c63478a0969d859d2eed89b14733a1106700a3b14c0d7194f0e4c8958a72400f7ca3074048dc2dabd4e3004a4740456ecc684bcd884c5404338078304fce2f0d54307c1d178ef4ec46a2defa45be09df82fdecbaa6ec4b473eddad6ae30806e2398b4bb346cfd7445e6bc5a8437c3ccd7a331c01232c0716700fd060de01eca2dcc4b08b4b897b42b0e0cd977da3ec9b17d4daf2ec09d329220f03e78761c090e054ccbe8a3527167ce07eae8b2ddcfa944feb3a50aa8c91740228487e1307fa93f410c78e771cd0b4104d7a0ed907b2c3ec27384ebeb84ac84d291881f3d6610a127c3d2a60db2280631cafc7dc66133d904238033326066afe653b04f72467fd42d564198734e95d658a547cc700429b2af2ece3b2aea20b6cc7e184b9c43b9bc3047c39f53d0dd5ded8e2031a6f8480692c2c8f9709f5593863d3328cbb061c29298e348f42a2f4f9abe4ad398fe83b75afcaea8b8bb40837c5ee3d55cf4fd9a66f1aa94f99b81220cf91d48f4097459fab1749bd157099b700d1da625c90f20f76547ee88095a03d9a2e5e1099ec9dc62b14bc79d00867bb6d52c06f4e20bb7ae00590086a9c8cfd28f284d43910340b805039f3766eb140400341a79d54a0dd44a26e2c6686c54315d525544a94921c30584f90b4398ed9b75cee337d421d255afe3fe21aed90f0493c59c990e0b12d5916a347db1dc4ab7a513980270a7247787c8457f286a27389b5fffd1c4d46a4c168a8745ff9028de277a29975ebf695ad00d113b856fba12c3eba8a1e0ea6ebd9dedeb0e92236bf4dffdccf3f13b4683c03ef2351d0cc84ce0bb7a2ba448675956ee0c7d4b3706ce2776311393ab751c6894d1170a88828426592adec2245fa87480860458b97445ae2d6219406abdc93585687cc20e0974d4e8fd758b1357165cd666ee6f6cb6e9c8663b3734d4c51315416f34ab675c13d03f841b8c3cc0f55705883a371b13cb9e5e0b1a8f485f3e82ec81462058cb1fc5a3e3d472a9e90d3af8f5374edaa84c989f397c89547cbbcc6324b982e25714a2cb5e731aaaea80b2ff1cc034f425099831e960ce6ddbdf999195a7bf65d68d1fadae1d633ee077e9916ad023c2ddfa8d33a939f8e39203f2759b46145f94591f1abe79c6315ab46255cb9c168301e166f82e9a32d8f1892ce8e8821765eab1ae93d9f13f3f29098f01897a242abde295b605bce4e54f629d8fc2d1aabd7d0518ff27764c24285d1cb778b35fd913e8406ada62df3755b06d261394da951384824ae62a4a848a3428f4fd89644144e1fc48df3bc57e4c5f84e06457ecf281b4ef99129105b4872d824916c7e5d8aac46c9b798134997de93cfc07ebade243c8288a893e79bf85081c41a73f1e1275e23c58fe8e6314fe7d0fdbf1e8500f0b4947f494000b626e4ebbe88d21feb175164998ac7173dedb585dcad9ee17d9a3eccd1232062b685f313dd25a64644d023d9700fda9c262f9128b41dc238584e20efb25ac668afc6efa820808c7d01dd9e954024ef9f0e0ddc99b70b12ee1e11f8f6715670af12535e850a5d31ab30d743bd63a1177abdb3325e96c768e5c1b997655907659bc30da5804eb3212ce4eaf9fe92d094714da0e8f082e66351bbad5d3cf151ef78585c1df22b88f43306b7b3866cac302d1e12e539921bbc6657e0cc72aec9834b0e2f25be701a25290011109644d3aa27d709198920312a148133355aa94f168b2da62e29d20dbe5a61c240200ad38aac9ca6061f8569c9f9981c818cfd78e0148e50ad26a548a89064302c6456ecc38a9a389629d3353234ec9ba053816d04830353814a2ff2ba201f2bf83e047cfd9080c882debcc45319135af7411db1009838e42c32726b2fda4f43e4294025e2a0ab08d1eea47422cdc1bb661975427f2f88605d733a651c522441f252ed98bc86c85a2328cdaa57728b297a352d167384981eccd8714dd7560d99755537cbd0da7cebe9c87489549e508963767ec6a916b134247b781701d7589e7fef40b46c7088db2296fcdaac8f512409625d15aa647b43ca901f4674e2ff00bb7a7a3b4f8f472479e6125c92d466d2cecb82fb4c01e3467b9da4d2b37f1a0b3c706714af7dd1b728e852d4dd87560153bb233bd68d1ab5cf8491fc55778f053fae174c24a0108542b67145dd04c593705ee9bb08c80e4f5cccbcc96529f0678607a070f338573031240eb11909479a64cf2c650e4c785c1a9ba7381cea43bad24ae50b7a01f6796a4f5c1bf43e4709b2cdfe11f998510dc633cfa27e7c1ea190337988919670df2938853b5763aaf6bc4ee0dfa7cc3a587633106355775f0067ab0de53a5448342510fc3d5395868d254d7594c2a81862d35f608b3f737bb8690ea37e31812358a6b0913d9d8334570312d3d2ea7b50623a006fce1aca2f12165b60de51fa9d8c872c3bebd0363a1e38cf018c4ae50daa061b5fc13923f108a337b77404cccaa8aa1e6d6ea409c6797391c776d0061b22fac1d901bf95934bf4207d9c3f0359ad6af33568acc6a3d635ef9a50f7ab124c0a2d1388af54ab6f8500469935d2508dce7c30c6c57394590bb6e36643e4e6d67e48fd5184b41788ad1a29d9c04bc093aa060a745f820019dc4154984f6945f93bbf500308d060ef3ae102e814c37308d26f10983295f38dd639ace3ca37ee924e2c2387938fb29bbe040ac734e30caf53097b46dc894e9d59910cfa1cf442e956ba1fdaabc0bfbacc5afe7ea67a0db5cf78e26c6b9a88562663a10440cb68d07b4e3fe1883b889565966a13c96e45fd5400ec407336c977f7f53a4cf74eb1d4987cec92d28ddc28e9a196640af4d8d8d585f79dcec7d05e2c9013fbdb3ffc6bf380e4fbac74fe5ceb11d7746348fcf3f085c08426a99bf0f0681bb47725b8c96294a3c017e2b3e06ae27d4f3cdd18c3e5814ce71ac2b21af000b45ca616aec4ad719b90fdf8a7e0834efe9f0f79bd17d8e80f9670043cb896ef07b34d6241e2be12f3bcfc1e648ee44e30cd1b9fbe4164a57b6a1ecc712e74ef12141c785d8f0c132006b77be1d64df52da35df8368c08368d275296e73229bb08bce24c699a381966f8bdf70c378f254df7dfcd0b42682f868f164b0688b8a7d8b7cb485bf02b4067024d15bbcc985e4822e4091a5346ca7aafa91ddac4479e1ec4059c71532025f4e5d6be8af1e4e41bbe9405013dd9178ca6869a3e0787c706830fd541416c8c6bc8725c93472ab7806d0e9b9cbb17a8c290043ddd35fb1128dcfc067d8af67ee0307484a456330a12bc3bd85760e81479282f3c14bc38c6cc61048f7bc1b9a097574243358640fa381619367e3c142323a74872ee5c1c0d777c7f758b59275997f1d4ff0bf007d3c1c1a1829a7d219e33876c52a9af966e8ac7a47e64a095ed2a4f1ec8c948cf046201a96bcf1f5b24a5465f4804d9485b11e15102979e67b358d7f52f31e665e110611b14778de21c739bbd57333e17684553d88000ee1cb63a6ca1f4ff6ba71321e86efc936ecc8575a2fe86e2a6991c35b7ac8733623584ed850a9ed439d963288aee03b845a5b888770cec2c0e1dab03660393f6d4bc4508659ada9351c519158600f1481b1577575dc73871b4471613d86a67fd991f05ab9dac4e9ed0ca28de2f65c44cb3dae4df7f3d3c83b9ca5d5660c412e08687ea5e59f0f6e8c9f8bca48dff612465a2280f8e0b8712004f64c0c2ce37b092a637b88445229869ebdde0ec7d3003899e3415524b90e96d050b63f690a55b8f48b0fe852a7455801951a1de2c606914f8332118cc4fd31471b36f6e51dd66a57873da2faa574894fba6f162bf0cd4e0a772a7ee80957e3cc160fd1ef2753f58f409404b5521e683a5ebe8d1c7df608099c834d990bb2354029d652a15f9f97ecd709abc442150c36ec3c332e1e47457cf7c65738d4841326bda35974c6d53375ea46f6c18f3e60fc38c81aee3b859bacc1a880b0252b7542f26921cd5448465ef27a8000706c3c0f41f35186c6416ca22dcb5305ab2894f99c8c1f52097491a7378edda02559725863f4b26cc9c8235a491d3b431de398c43768eae2c9183bcfd79e8a9f8fcd781f6840ba2874b0efd000992e8e8b6e8bfc9e62ca98af07940ede2732cc0cc9ac5763ecda19268ec5ded06dc4f83ffd30fc050b9b462f802f5f3a4686f608f8be4e69b5e3d7aab235c2ef390dea1502f780aae573c47ddf13658febba5c4cc61f576f3d95fe70a5228de7e31d416e7f38d594d7839e656c941c014dee6a34ab0b523fb78454bf333ece45ae9014529f8dad254b0908457267ceb3b88c6b4640eeec8c583d6f0665b892a42bc70069dc386bce2d303c81aebb50f0a6304ab5f4809170fd39a16591f189aca31ea5962b4500f8c631ed8c91e19b8a0e83444ad695d80e70200eec071274c0420c46ab1ea80aa6048e8081f2fb72d59881c81da4581944501c400f7802ecf9e4ef8871fa3a39f9def4d9d0a811be514deb0b8fa5127ad83f79a474db54d8f8cf67485547fe20a08dbe9b8c0395e84d48eb7b2ea888e21a15af4e782769fbdc8b001d3ac99394f6f75c06d0d788bc09b422bad73569321d8796e899a2ed712f136875892f1adaa2bb2eea94acc7a142f642a5b54d10b7f60f190735d18346ebf7e28587415b4b7842d3868998b6ee479f4b6d4e1f3c985cff0a2efd923946f36674c8fdbe7d2f36dee96a437c42de15a0ac48016643812ca82ebac2bf4a918584eedc6b6d2b0e0f82db5bdc64637c60b5e9334714dff1f0d8e1667e862565eb8dc62a4a8d3e83a69ade2b6de30489546d20fb137442c7ad1365226b892aa84d0ef4702676e4d67b9183bfccfdde0c2089a7168d889f3f8d35543b04c604b0763ea2a26ac3603e1003343c55abc14ccd2a4a552843061c654b891ae014ed4519ac606efc6a24b773afc0ec05bac4f26567bf0d09e7b318aa06d945c848fcd159c92e6ce346b1b8b58cb10510873dbd2f8bb1c6d1b788bf0d54bfb4c148ec1ee026a84f82a281be1ce4e49a464cc5754aa75b1a245ce5c4f375b3ebe96c49ac1d2fbb35196adbb4a85a5a0c45abe2dc8322f3b2ab4c33d10952ddf1d1b6856d26508c62f239ac8f4117788157c64e117f956f630485e9592ba786a86bcd932f206d390b5ba2fd287b7c1b08ef876554a8d91a75bf4cfe251506b8a9a7567735b9f01ba903aadf424d5e0489cb5642ba52cc1c34e418d2ecb53610cf1a2068eaa5fdad5efb4293bd0152c258ec7b83f4bdaaf2f86037d598563be9b710bc3389911ae628166f5df04e43ed8326d236dbffc6d3b2fdcf256bb789d305479e6c165c14233dfb1914ac8b2124fe0f86bb627016afd87115a70125a7735cf50344fd8330699c5c31a52bdfcd0f521026f59cb7c5f85e889eedb7788c5337a9ab075e9324304cfab8d7b8d0d4c15e7035fe1378c69d3789d3641bdda4c4e0d05ef5f949101b6de12e068d12fc567e5af98fc95af452bf4ebe164f96a0dd1f07bafb2a56f4c6a186a4ebcfb0e37f703fca5a1c3e6676eee9c6e802a7852779701db37021dae3615b524d1b915f6c5617127fc5cc30970207ed145978aff565d7d5a2b90000cdefa8f9710f0b986160029fb46cb58701907af8ed126d3ff3d68897946dca61d8a419ee276eaf2e324993706677c72a0f1f8391f10e47e13b99c312491818641c042870645c74d62bd0dafb2005de035dc8d232556063cd438281c2cf0a743f1bdfad27af9108a80b3a97865b24015559f2ec0c32ec4ea494838c2196585c81f837785d8910ea12414c243ec5bcbb81e48f79a98572e9028200b2dbc8b2a83ad7a8c5544524fa7759ce87d073d4a6e2c9cc7d5c1d85e7641f4dca9eaafd5a8c1f1eebe3ba1226db01416bdfb4346d82a4455a0de642236352fcd5585ddd887c507217fafbf4ae896878cc2b8aedf523bcbe92f991a126d25191d79cbe54177251a121e0452d34c209b54d693d4a5224ec1f2e29ebd01badd1ad0e410ebb1f722d7948ca2d0008c07148e7e163f75cdbc611b236d93dd7f4aa30853e269f079865f410868ae0ab6b943ceee4ad043222f06a46055507adf098376d178ddc8504be65e5f2a04d5d104c4a4d0e844b36fcbe38057ec992a393e591054ca048db9a8f3b28f0c2c57e48a10b0cc5116298873df9597198e9435dac00a4e2fefb3041be4de6e083222a036f258b65f0ded28dbbd945feaf70629e2f54338d2792073433972cb129bac7b8403562853a34ce26896807dce55098cb54ad34079761279533ba0a6792d72b72ad36308372b37b7f8f38d59ccd347cd1e7b0f4f506b9869df8a3da59222c0a22c30f333f92bfde7c9c51d11bc456e93d8822b316535612a1a4b1b946e3663fdb756a949fffb32a6bc963127d60ea10407b60c767ff53d16fc9440ed617d86d485c6758182845c6339a8d335cbcba690fd2076cf5253f21b44233db1435dac04918c005fe01399773a039612ac92ff6e6d34b385ddbd1d4a11616e02d2629a41d9dfc30ada6ee33b5f24304432eeb1068fd078773c9a25366e11ae322b73c315ff738fdfa3f30f43c3d5b8e7a429d150a4e122a6ab41e7d02c0a01150b3594e0661bc525fbabf524aa46682b34509132ceb4e443f42e54e48b7560acb5eedb9bc8a0de121409e6d5576571619a37634bf4d2b57f9754fe20bd001a312bec456271f71e6845267b24491686e513e135ebc5811a00bc993868c5526def38e06e4cab9efffc25e3cfafedee6f28c9144ae0c42b9af0c77388e594531a1d818f5c686e68879932e7d3b9432dc23bd81752a46018419ac339501b80b9e8108c0f9dede6d446a579dfc31287b724fbeab5846c91aba2645614c29a03fc356d4a1083563228be6e01e714ab90927691939578ca850df1a87fcefaf3a4cb810de1183feb7e759f0e5d7816d421caa1e0761dc33a1ffc3dc06830188aa7103b844ff9aad146a15dd5148872016fdd7cf70e0e928403e64248a7dbfd4a2e3ea36dd9d5ae050c3ffdc74105574a708ac91295655e91890a522763d2c3cd010405429d7390164ba39e683a36f8b0096347bff7d37c612fbaf768d00a20a7ce6b1c5edd3319438c57fc0dedfd663093cbe2192fcfa576744ed94f22999ae69aba6aed08fb04299bdc97a4c0b882a343e77efcf9f2d5440a7e1327f8560180651557451ef85da9a0d8ad724a3e73e73dae3a0f823f151a4ba473bc77841b6f7c74161762d692188c077dc2d5002edfda700278dbd3c6ab818c48df6ef7f28265214a1ff71943078c81689167ef1db28e688ba76f9b3d81e278a72ec85e3a275eba9fa4ace3337d1a6bad4fe6ddcd61b4c87ec3f4ea14e6108185d52b1e19a144c2747b9f478ff138799a36ad6c54276c395e5c851d5b08051634708ff2b9aa4c95b603c87fbfb2fe9f1bff2842e159a8ecdb8d4bd619382659939d5f9a25985175667f04f30e02cb26dcdff6aa3bc6a7b7fe2c3219b51f612bae0d2dcbe1461d8d64304aae45c257943d8514769e9b564295f79bc2e0d55f9ed97c728eac2d87a341a805135c861e9fed26fb28ade1b74ff0102409efff0652ecb7aac98f3528bf26ad0a504a39a4cf8bb6f104f22b42ea51e75858574575f4f7a851197e0435e0ae470c337a44ea7680bb1ad4d1adc62d5508bb4e6d495d0e5402d8c670668ad296bd66842591c3b2111daf7440c79bd52f177375eedd2719f0743cb8a43b4ac2870b28c8d6d202c69c0e0e95cdc97b74855294377da4a40201832eac25cf55c956cc5fdb3e9f47db6a2b5009e3a765c9d48749059cded992f195c0e2cbd29482ccdaf28cbd60a803c81ee6e033e1f820b70eaae768db7014821b7de48e7a8c68c5ed31d4a1b54045bcbf4ddb380a87b7a3a348e7a39743d9d14528e99c69e579a2e8b840dfd545b2879213ddde6b99a65c3a2f9acad3d1a9ff20cb9506b65e8369778243860524b272354036c0782916f36a6a0688433fa9d4a3ef865210caca7083f735bd922b5ac7b936c67dcf440f1211407ad8acbb2a7f5e6ae718adbc5eaf8461cca69a8a180e816989d06e18679b0075b4c72c1d5f03a5afd0886caa71246e44163651944767dc32dc33aa2a336f63521b72de2209bda136a63e6feaf41b604db570200801bd3d54b5eee518f8d5b5844d8172d13423f90cfb3cdbe6b994499491e24a66d639bb1dbb8ebc2cd10773e709f4046a666369b8db727321dfd40160f4d8e205513d5e4ad5ad77fbe012cbeee28ef0b2dacc88ce1746b7d301f4b263b19c7491d7bfe0561f164d1f2bbfa5b245d0cd44f1cbfa0ee887c3af60929c2d127c41a6ef95a4ba6c65c1ebbdd6cfdfbeda0d696b9c2c62a5257af0332b720037534cb3cbc4b905a0e51ae2235eab4f291908f3e634af54168dbb419b1dab4e69f2afb21f9a7439a4abad39aaf4932955425020d6b453fcc1f571f7a8a0372a46674e2a170f677e8ee265a4b9d92e355215b2747f8292a9a5b3571dd7f0a813317966fcc07c94d92db5c0ac1e8fce19621e8b8612a6a954b02396d29f939b97af576a5cef492b049613e77a75a321514ac6165f371860dbc9df07db4710099458620be6e03e7c59ceb9af15ce7a10f275ea1cec8f1f2512cf2a3c1e1d0b4c207cd2a67cad056347083b7142a3501b458e7c734cb0f8b4386e9a898d61481ba19b8ec48d275f3fba5d36c5f74e4c2383905e68b7e8ba939d9bbfebc0dcfa25380044241b631b75ab93462d1b2530eb638ece89c98401c2d85b9cb731f57a33b6a7a1a855e8e327089f1d9217efa7d93e65f578ec314b84a1b5224446186ea8fd6f3f54e0ea861529e9a6a34f57d45e2b12f41f4fda027297e2266453f68bbac698578f625ab4972c16cd5a64c6628f1c04492529d06356133cec2cec294ea280d1ab1d915cd5076595c657326d837208c80005c8283043f4bbe1b044ffdd2b667530e8a8680d02f4283222897083fade6a0c3b482c1d5034d6914109cb5a38cee4fe667035bae8183c3f03e8193de6c680b4bd69b192b3a4cf2ce7adb795b844614615b3de8fe183ea5a315c488214c1a26caec0933eac5df88215d91fa8c80ad12038c4b840c31c0aa8879b99f61f666888e3bae8a44f98b0980c372a6dd5de7a0801877beb88dfcdaa217d08b55bded7a0d07cc1af2b5cfd2deea1adc6d6601292ae621fb459c16c6a973b8dbca95a7ba5f1b09954e46ba6922031ca5c23f54dd5cdadbf1ba5fcb83959198f98bd6d4308b4ad60206a5bded95dfc2c2254bba8db5ca56364b9f53db5ed7aad63634e8bb7e96757a66edae90a4c4206641fcaba53b2e1342e86a216028198ee7cb0f8a6dba76aad0778ae01ca311810ecd4c4637da69df5ba9d88d23208bca5fe0a488be829c70ef0dca72a18dd4f2b1ec9c427029f54e637ccb96f2030e08cc73273417358f7c18a7a2213c38ba88f37718a75311fd08246ef9a9d2d1ca264386b95651fe2b320fd56a1d50ca72a46926ec50361388b8f554db091c07ddc1b3fd11fccd1b30740b53541284acdb8c6b35855449f7ebbeea82e6bfa5082dde7e28f801c2846927199fe811fc1b7538bf196f5e0a2a9a6141c77c3df27b7ea0ca4f9915b51f83aeda6dd53fbda98440130ff9885da26eae3dd5a6486bb7c4494e7fcdd80021132b1754020d63264b9306da6fea4f8f054719d1fd9de794af72e8827a66a2d986e814a9166cbddc979dc11d19d289b39df19e416ca009543b289ea907a072e784cc144195721392df94978e66ee98ec9a622de1c89ac789c9d1b22a595baafcc39d1fdf8ae236f0168c3a03c0aec518e7946fc844c14ae9b59cc702b7f0ae43b5cfb15c938a1f9d07b56f39762f52834a2d17b2443bec079388f88b2822a240059e1b2660dac32c038257efff4160c95bd1c9894f81f9d2f18e24e53e2003eb035db8212980de51188aaa624fd3b3027ed29514e11aa6b0d458e4a28937ad8d87265b8e42c90d2ba89b7f264f670aae7c122af451ab8719fcb427eaf18165869df02e3366671465ce9f62e89b8b284c6287cae671806a2603a1e9dc0d47058326f10feba79554ddd431f2bc59adbf59a9d44b741412eb46804592088b9011fbbf1e0b21a74f644ef18f63069d55989e0a59d54e282ab5873d0a2928f94372051aae21f2a2e09b8bf7586c5f7343bbe4cc66fe3e93a8a7e585309f94606ec8a4fea99138858f2aa026091c119811544ea1b8478edc31dd05f55d85a2d54a00f24edc07063c357538f75f6d0e51678a79efa8bba1a2d3fb0bae2a31e254c693291bc43d83f9968c45a825ea79164d37d2e2210753c6444310a5a3aca8479da8ba5a270e1399315aa74a7c0bef35158b438ac504267e744d9fa2b2d0640f2d60b5087d5a85d86addb3e8e052266c38383151e08b01dc38a9ac16a35303a513813413b2cc48a48e9976b4c04bcdc3f7bd2e51e123b3b2a804ef5e9544d38dd608d14a6bc84697e5b5418fadb96714bb5c81fd89076afda50653aec5f9d1594c19162635bef5aac9ffd48bfcd0797629f3c35333bef1eb364823c68f8e41e7be5dc2448533d31f79b0be035bde8c62928ea2509c8c9345ac73f2e4b013917945a5bfa6548bdb92547fbe146b091129a40b5ed01fb5da574d4bd8bf1d924f1a628e9602503a6a515ee46fe7a8fdada580b5c80a01c179f1d9d852447f727f2ea67380505201d734d398b48c6d850c1448146dd85e58275e8288f1e2aa9368e8c518b96883fa15cbe84487a20a876d7363418b16cb1410be5a3b22a74c707a51ea232df922779593277ab5ac5ef5b133a2a07de7e4fff55ddf0d776b252ee059803b358083c04b2109879c5c80e0418b6881af6a9895288a4c89c3fcfeb1c047931ef734e8ef88347dac5c6c481c63a47402e438bdd5205bb369eda724a385e5ff1490b457758a1e13cb7ea5767cd059ae25e5ad16859f990f16a158729d087c699cc824d4e8a77dd4b9dabcc7376bd07e69f772fe53e9bcaef809261b450a028c21d5287d9c49ef15adb0b32ae5084201eecfb792c1b28a3e629e213f5f3d8b7887046fb50ba9d8c8df8d6ce5162e53c7dafa787fccb65b8eb13a85f7b89447d778d3494d823d47da5c382d3ee6d68f20596412f39a87ce2d0c63d36a5b78ce8441d6d1a8bcd2fca6cda4a2f96f31a15b3f5583ca107cabc24395bcacaa204156b606e27899ec06ae41c5efe4a96a7d0c8b85041f32f05d89dbdc46ede60d5b63e61162570ef47107c4f50766b3c998e0f726d76dd981fbfae82e73ab351da8ceb9f0af8d58ba5a0464d713ada2d5554b0c8836144b7304aee8617399bdbffcd8966cabc0311f1cc4c673cf3aa99a4e50ae0ea81e07944fdde3704f1ed8402c1d9d8383596ec40a54b65ab7eac3ea6d79f221b73fa9984d2a365e30b03f1700df992f7f49a45db758eddb0b662218fea29e719c6ddcf40f448340a1294461e5069954db14a22fc37021d8313524e6cfdf135a9867222177bdf425bc13c3e2b235cb6eb47f75a61ad3c01ee4c460b5c3055b4d69b7068882b5de74f047fddb2ed7823aa7ef1e81e743da8fa63893dcaf424306ba73c58c51d0105badc78a7ba258fc8e38b5ec4913fda7ad475aad65d5f076f29f5558594c25176364123c95dd2b076895d7c544d442738b9360ec0e62976b43977eb7035ae622fb2f7c51898e6fc45ecf90072d325d8ee04c6ad753308e40dcda0ee0c383c434a1aa799d260c8a198f4e77c06621b26d324a1d94a66a695ef7c5d9f3896c2e67b9946e34b93dec9fc5d94fe81452d9752da4b825a03819a932f528b9b573af003a709307d7a821dad5bb300259821609dd624d937c46f5b208334b70162a6cdc7dafbed66469c554082d1e599ac883def0c0d9146640c021fc15d520d920238fec7dfca62eec61a0686fb6d25645db22fe28f9ec3bfa344cd4bcfc19790a34c59f5fad2eb293bc6529a4381a6db1c611cf3dbdb6269fc0b212e6ef6b98f71c7c87316a77c0e5c982a679d57a1abbabf3c68c6db07c3711ecf86c6be2dfbd3a3932265a95847e368b6d68b2f25306e87eb98290335f09894d941281d76dbb787645a16d9b819ead4af2a321f756e3890b9aabf15269001934d5f13e4c46e622641cac5951bfade26cf3c1919e46cd13bbf4f286c54b8cd8760cfe09f8641f89105616e6610ad0c76313179552583b4c4ec945852fb61b1e006eefd61c173e7e79f4beff35e94f5a0f52681b165111b98844daa71ef4e1895c5d630935e0cd29d06d13462897c043411f1ee5f84bd995436c00b71e14b7b0e4d7891624e598770f6d081872d74f06ada3e913ab848b2c15a418fd1de1cf11e70c806c492a6748dde02a1c2521c30927ef9c4cb8f87f3b9fa73007d754b9a3b8214d4ccaa662855ecae6bab85b00a3de7a19ea14430e5c7510207a4d82b5452add59ad308041257fe230c25ef03c0e72be83853f76518ab56226c4ff6990031d3ad2282e990443f5fd1a61d2e31ff309c4048d69197a26084fc955ba6621c50ae79411f48f425c95d03fb4ca41f20b388cd2c40fa5b3b732f7c6841cfc6de8b9f25268a5dd8315185a294f9480b69b47aad0c30aa8f6f5e10553f0ccc0a7f8b7417ba728d5f6e0ca7c6cabdd405a8441c7eb1e919f35e629094cead144de376c79a46e33c3b43ff6f2e2cbcc8839e8b40d6436e82206a1b032cd894cbec500064ecad0e62d3bad936078beb4e7bb6584e62d3db9c5c5266c1ca08395e045475084bc9e65eeccb54ebf4d4882fc38bb0a067913c6bd256e1f6d194144ebe24188e32f2488cdce78eecb28c03e9a64ca2d1dda72d3a01315a3584a35b9260591980b945e4db3bfadb54ab3c3d092c23721ca5d1b40d5d59312434804998a52970f9e92f9503a0c32d48cd13241a4091571f59b79620d36e068aa69f614d3ab61f5484a9cd0bfb48ba7717180ea32589e19288e49d9ee73e252ea9498676c3c70c5909b86c2042a621322b29aea416cc81ba5f387b0414b621ad03a071b2f15838dadfe5f63a660438c60236922a10173b838b069fb6cb87efc7b5fb371217d0d45418284b296b90f696e4e0302138d4895c8f8f0c6343a5612828b99ab9672dde0c3114cb5262667a364bd216bc45c5091aab1caf9f6121553185d61a3129552ceb4458c7302c986d9a0ce480a896e87a08e43b4ac56a432c283b80ffd12c729e8573cd2f86111db0429c551b01d65aa15c71c228cd9f0c457b5615781c8864eb477167279efb19570278d1c9547c49b963f4861a02922ac1c9f16ffe3711d8b14ca3041d9d640f939eb1e8a76da23a74278cf6544564d0478ee72ff4914ff5b409060ac522be06c0faadc53254e42175505fb1fe3a73d39ea70596dc899bafa6d105b1a49146d2d6cad0752e4575d1919d008e0e42aa1c964dd504fafed3f1e8688557e3a8fcb64319fd410ff110e0115c6d317049c42143ecbc0fd9282a8de23e3e66941e49ee8c3091e3a08078f1aa9815ba55ff15e738c9d430cf091e4b5ff808df73c140f306a94840040e518702adcc3dd661e8a70037a288240624ed1c4f350f45abe6989c3507e4ed1c36804263f336a907e471cdcaa96e1a5fa9f562cc26e36cf8e722c798a4ac2ac7c7ff22480594546226db280d407a4a2b56be0cfa88c5d51500bb462bea89abe349ab2526200e5decab61cf35f3d8b03a2a5953e741d940eb7579cdb1f38b59a42c8c3dab08b297a762c72693f0e0e01054beffc1e4e0288da45d066cdc44ccddc394c2835b3b9b62b01b21166e97944b42c6f0ac5f717a15b4795d16bcf60f65bbf18a4244eb2612dfc0709f95d63055cac502f9ae8155474134f5be0d3f2031e4169aff4a6baa167b79d4ba1b02f635aa06aa1c8cc21b644c9c4d2dd4718f6d23ce2b36adae3e7ee09e2453de051960bd8e9ba268e8afc4d2fc572229c21ccce03a1711089f6444104fce197789891f757a66a915eeae3966a6137b8121a1722d513a95894b40e684613ec8c1bdddc59866c814450224f80725a3ca0312a52fa6dd10d9a75559c250f95df03f4a345f5935d731a3ba4aa79cba08dd2301f23c421628c3cb7d0a0331e4f729085ca1076927ffca469d03a120310965b03b7e5b84e724e6621782af84b7b39e993b2887a123644d7fb15386000347783948da7131fa9e86d688eacfcf297d56f2dc5914dd5f020f544c99bcbed735e2fd1271a22fbd4c06d1019027234ac6f6ffe6754d4aa50b4765449e4061e8a42d02180a245da5e2f27cd0f0b4416949fdc8535981770a1fc6821404e75caa2c862b76ef53d3d0355f9d237727d4d34e6a0cb7e50274f54ddea1f77709d9aa9e1b743395e819541584a6cac2a2de8e49869f0dcd0fd2aa511d8af13d1861b87f895cd13612a904fe5bab3ec753308608d5d5572e48fec40295252a5c8b0612847415c91999eb59bbd5efd5281b7c663ed7eb6d4699977d77a8f397f4efa38925c6ad4d934342c14d134638776ce0438afd04ec98cc0aadff8a472bd0eff1313f70e1bea064c3532759a03c836119b8017c346a8f58dbe9ff7c542385f0ed72a5c70d9990dae5128f80bf7001854162fa9c9ed20876d9e5d8f683826c35aeda6598cecbfce1b71a179ad8213976dc2cd7eac9ad29aae629a9177873be5c68a1d0d708d3d77434d69af27f7ca34431fbff913b206324c85be055a78aec45f7314027904a436d345c47751707010464161520b25a4dee0c16396606bb949db59ea8aab9e46a331b007b51b9500abc7e64c7871cccb835b11914c4e6b6418e8387c90ddda320202b927b6bea5d64b5531d41fe532d93e2cce4fb541603b6c4e61f1b14ff364a166936894aed439a1ba5acdd699ab42158d3d95c2c13f73077f221f7c8d426c89aa26b54b0ad3d4bc9458aec34c84baf93a8bb89d5d82386baeb5aff678181e405132189c6c3b8bced0d6a847e1e1ae79a471fe5af301a3aa000ce87143d74888c5a25ce362b044d3fd2375eac9377837e0ef58dd4f060abac98a0f601db8b6513fa9fb99eb060accf2943ecbb3a2a86a57b08dc655caccbdcbc6db4d533329469fd008dc0db8c4c6fb3445728f289aa087f5421777a979b5af51e3b1981a18f985c0549a57e70f3c6a648cf586b405a09883605a1e88663552262d6b2d85b0c6923f1a6f0a5666ab24538f61f4351280c9ea95cbd423e2723d8e432961cdfbe61f3727face17cfdee2d2ec092078f15977a4274e26155bca985c70beb5bf2b590f5586c98df9b05f2968e27c147ac3ae4ee71a86b109601f74c63aa70c078155125c188ac0c825d3bac144bc120ee3a610acd7c46207494cdd42bb85396daa6cc5b6c56acdc52b1efb43cc633f8f79ace71c07a0a340d6f20c35996f06803c51fd8ada81bf599930069e8ca3aa934ae60e2336b10417df31867d774311bdfc0acc9159fd0bcba71200d6501a2c2a0c33a38c13d2d933a73d834d3e67f8821e3d3a80a13afd4bc04c06480998b806a34969b004c5d3e7de9eb1c72d3b70c1c3704ce6228bf19f6027e6a3799069d3f586f1758800dc57e47d49c0e432787054cafce4689055fba8ffe5337801c0cd4536e54674a4bb4c36662c653e697b1850fcd714825cef7b372a4fd8b4e3352b32fa2b08326682e7a998ef458749dfb3f91b7687057c1d276684378bb7ce98ed683b5a813601953a56f569a098c2cb35763e09739bdde84fb113fd01c60724c52b5db4c0900e0a5220b9e4c7348fa5528217f13f7c8b876f973f65040f18752811fe4c7eff99f70bb5f89145140fb288fa4c96b144c2f6ee5bbca79e2b3edafb4d5b07e0634587c678c963e00dfc5a13022852f4d5b7781abefb49aa0425afb7c4b83495a7c0cadb83f01b86d11ef86b33c6137f24a1cf85a1088c5c32a11b4cc42bc162db49015d2c7e11564132413c3a9ffe5cf0da661a4f024de2e14497bad9b778148c00d214074de19cd86209692425484b2909491d0f3cf79373122957ae43230941c4481587ba5dcf92061fcee87d94360c6e36f8fb499baa6ff1b66d0e5e9fe57d56d35c8daa268cb8981432c1520b51a171e67aa570e95e1c36a54f94cf5eca088b44ece31d69ac56fe8d114c291e8dc830ab13b9ce6afc620c980f2843cd057ae947bdc73d4d3844f1a19dd417633a3c1bb1f08b9066dc059d5f50868535e84c0c4a53952de14be70c994704b309dfeeed912639bec5779bcfbb052ce27c284f54e4b67520ba2dee7ba3f05449135ab94c014ed40223143315670a5c9bb1e24b87f63952044dc6cfca3cbbc78b960d1d9480a526e00a510f3f9f549c6ff1a6b33861897dbb2ed12bcece90a35e7decff9087f20b22c52702f95ad3a4491b65adf808c419893c513e7e05200a4df8325340dfe2c324c018698d35040a9d3566023f49084719a716ed8331a99af7d7c8f1a2f29dc2428f1536fafdce5bf816cf16d355490763261709b2bdddc99459fd24693441818cd143345421ee145c346be54b8866de1327df0245872f77f282d7bec5c3157e3be21feeae58402b58a16cb19861fa9060d6dfecbedf067eff509011fc932d5718df90f23d6459117f328e8db5e080485c108d416c3e8df3d7fcb015f8600c24ce21b90b59c67b02fb188f38081055809c087efcc9248ea72c223f9411fe41082f03f3da2a3cbf3bd6f72d1ed9e2d5e572065cea6778c87f7acc2d974e4f953cddfa8c9ff9cae9718d88204919ba2006624ec247532b3e8630dc09eda5145249ab027fd3d509816ab2a7b20d3398925f93d6fd12928cbb880c7edd6f4df5ff5a0a2304a21517549b40b44ed01c854df02d9e6df2d77593cc38e97865ce883fbd0d148f43a0be41ea08646f01ea42bc8b63bdc18fb81b8be83376dc4d355de067458a9d0165861048cbb1a1e06aeb5bbce35da0cfa04e753554e1fbbec5cb4b5bbe45798f3513e85bfcb430a87ee4ac21283456b90d1f940bea0a6a86a8281fe3f32ca2789045140ffe62f376f22b0f5dc0b06ff12678c7f9109f31691a9b5ac2da5282145316fc81698427308df32493f15262b93ed454f8d8487b11c1bec55be8b0288dcc8c887de4fa3382d5ec919d449d6db1b1f33219900e1fcc2fe13706a23fc032de27d9310ea73daf24dda6e62d9e0573db147adcd0b520c021d6241c96a44380d9559e5586e7e66043f02a347404eda17c966aebf4a978b0eef58d863ee8996da3aff1dfdbda843ca1abf8d42d8e0b3d6b8eef63e5ee1f7f9549ffb46c53cd8ca17d159f713862dca9168f2d56bcf281fe5ca4a1b212244acc608dfd60fc2a7e934d738f9f4a3cb947bc8b87b0fe2bfe31d410798f4a555983d0bb86b039c9dfd606d7490675bfe2f153445cf8109926537d0d9b6811831650ebfa4fca3bb7cac9db1527999d5ba2f6481dd0842a2776201e18870efe0a478e582addf40b24ff02eeaa9f64881fcc675c21fb20fc585d3bb8ffa7a80f78c18f3af42116645b04df0091cd258a8d40ac6e9868a64124b5a3887ee13bd30ea938da4809c617d24a9b5d950862d60122d1739037a03f636af24cb83b9bb086f521173ae3094c7c136c4af2ef57392f73bc7f951e88f9340b028a80c5545b608cd852073400240e61f4239d5308a5a0c525f006364b9bc67f4178155a812c09847de00402f36dc1840db4e92bd0864f835fc55ff029b007ffc02f7a70ec34c28dd2c69c382ede9fb79614fe8d0b01ff0792b6a54c52eedd64078e050c052b053a9ec0801918fd86f17f14287e5dfcea52fcff1ab89955e960b1e108f9fb09263e15666d18575f89134cf081cadefb755b2d1cdfed2e45e512ca7cfc5b028beb35a4f85b8dae41dc5099bc567c309accc6cf7b8f1aeb46f7b4e84a92c6bae7bd860052992a49dadc6ace77a707a7f55ad40670756a06e3a7f97dd775defbb8347e98a992a4710c6daa2469ac5688d1a02b491ab7c92e18718ed3289b1bdd129316802f29c36867c46cd7659d756e11b3c8a6a6995906606e64ca2ca64676e006e6a8c966458e12bc37ab442c12a7caac0db1051eab348148c5e5a9fc118154c2c008c50e5a8b0c9e0cae7068e869b17a4a3a621b31b2c394f46a339255e1782c88713dddb8fec2b1039c247ad87c74b6b4902262560acb588482794e25c53d685b34c3db910725cfc60520ad2e288d170f1342145a1f521c3199906215379c482805c900bf7eb8a68e1387b50d48e15893051a50289b0a2ae68091c3060586868a6c476712cf9b6e0a202967c8203e893ef9b5004cb8183b80e88076a105872f5b800480e3d11014a67201aac354f56b1aabb3d65ac9dcf1161cb3ca833e00a9f801c2b16259dc62964547cc3e88d91031cbb2117488ddb038aeddc8f8b16c66df02bea662be9499f3a0235e7b0764e0804b9616f18ed3250b560e9ce2fac6f51779864309e3a8adcc0408a4022015504c21f4d09c21a5ecc0bac8c51cfbf460b1beb8c7c661b1d861889db21fd584c536c5d9c7ca041789b167d89b8cfb23e118212d0ce8c398d1d4561a254228af58d3cd66b5c8cb2c2aeeb1c4da11afebca8bd3e5d55bcce37489758313816a6a615828ae7068101fd8b002c98cc5324414063c3472ec6011fa800dd50f6995538cb6e60f0b96b634879ac106c65e6c61a980195ba1c200afccaa9ccc23325c92891c3e1b845117379ea652e241650a1ac4622b47111752a72965758dd5b588d775edfd19af13c469128a7c16ab0e2d6ce400b618de7448d55064a9c011c2c559f694013e5b327888ba518f8a60c29a481499e92897e0d88209aea7b8be71fdc5755fbac3d1b000c71e31aea7b8be71fd65d2395ccb42e5cdd5d855e197976427f07895aa5a187a712922b554d4ba76d1158704c8504181925494d091b3d207cb53477ada005c9ccc5739e79c59e808cde663ceb9372189d6c2a3c3bdf5c50619a09980320396a19de9d0dc5c633ab63c8600aebd08577c26be12df5aa1af376028c67e380c854082c2880045d8e06b82f161f37109a6e870afaf157c4f2a49a4269ba4134f4934193cca080388060b6c4b2fc850245fc87cbe0a3be7e12b5149703dd96225cec569122d436cc1177b34298880b20c4726c8c4609521d9e2c1c60a8ba9ada6a76a6606090312529bd452ce6827464905d416c5664580385d4ad9c41f71ba945211e181eb29ae6f5c7f4be44c82eb21710ad5c48a8d69298dad16c5b8e4d88f99732827f9c3bd9149b178326ad959c1213d3ef07bf27a6b9abd1115a94469d68b1c440ddca02b41097075d58480c2a08268284dd13441f4a5c18bacf820a9c3c4d3127d9a150f007436a5f682680603ce2787928414874b2be0521209501b6c34e82ad181ed49284799852175928a86d821a11eb3192928b3a00a7ca9a4a83292aa51801dcc98116519a26f404c1924dbb8329c31d500414e979243169253d98f88e54d8b2d1d1de1d4080c6a746cf012b6107d7c8e8c644c8db0c20003c301c2942b96bcd2922d3d2380d6387e61088239ab71aa51d2cfe69fc0533d62b470ea11d2d9c0551343f3d0b4443171b4b98806792acc1b4943500483474999c20c4a040300cf86a318693a1d867e6b4fdf01c46954cd336a588c2df0b2ba8a481f30244abe10ca72bbdaca30e2dcc679270330a0a2511950b1a8f1385c4fa15fffff936de30cf62d589546aa785dd7be5dde8338551a93e21c4c6cc1d54e9c053a961402ea4ef36a01b7aee94aa2b5deab05f28455559723580bd82038b7a3103dd7272268fb0444e46947113a2e692cfdffffeb0c57a063f7dcf22d32b419bab9871932c4f0e1c30439c3f1f831ba5ec35df003058f2ee841b324d4b974477d808a4f34401f949c27990e8a0e93b8b2d37c41b36394ba41011a26e1a0f8008d3228c42371f8babc1785e7387361e7c72984d6ec005f0971ea84648120e4cbe9dabc826886f0fd3aebd2a646393af506b355d7ebbda7e3b34563d13ddcd7ceea26c4a9135283ef817bb74930170070ad8739def493f5ebd72158c1a664a347b886d5e4483011136f54f5e3352674b5bc01b299a01bb9b667b87cbfd6dd857b0f06eadfa5e8b5a925e7bcf5b15ff3cc7b4b34b5aed2b148a2ce48ac387736e79cf392c8ca7b4b1c8f3c546452b33ae9d4e1b93fa6e4513447f02a89850547d34e5309842e2458d46af43c779b9255069f3cb5a533b9aedee9de5d8aba0c1369735d6bad993908d0b5555bbb7856ce07512c32b44814d4c192c50ea12af2f4526b0ef2babc378ab892a4225abf7e9d75ceb94371b7bb70efc15852216e527fb8fd7579ef1514c464b9c4f7678f38e79c33fcc37aea9c73cef9f971effa15f16303d73d413d8674eea9b8f3d1ed51b7e6bcc4798e029a5bcaec2960bbe6bc64f9973a72b510cd7bad92ac90db9d00d9062dae6416984ad64a48964e9c3372770d59688a4a2293e6ec3f8d3c157db0cdbabcf7a8d7ad766577941d92ad595bffa0985a6b9f49898fdf507d5a99f5c346ed5d45e4bfaaa2ab95cae4abba3f1446aca80ef9d65aa05fbfce39e79cb3ce39fb2e10b4d75e72c9e70eeca63db1a45b31c393c95c94cc7682b6339468de04901f216334ef4d0e77869dfc73323e51c8fe9aa4b4cdfa532e65b51b95f79e70b25e394a0ecc999f89230918b113520cc80f2eb3bf3445dd14c4a9938817acab5ee8395dab7aadacb909ee56e17d523cbe4bf1777633c5ffff3f32b25ddefbc669324693d7732aebc1dddb8812a33903258c3805f40504d1334c866168712ea13893ae0f0e8edd2860d0d5c40dca17732549f705388031befc7b97a20281b4b9ac4b6622e73d10d0987adb8089a87504f3d481c55a33a52dbec27c440c0185d8c93b155bd1b95a6b19c5cca5623dc68cb5d65abbbce59833176523d408e87a42d9cbbf67fdbabc7746dea564adf5fa7c4de1a3267bb018ebae4bb1eeac8ee79cf358b295d01b83c6bab34f96586bad35dc61f529ac186be24f6b8d22c3b992a41d8639f65effd8d24d602beca30053f0a1780533cbf7de9a6775bb5be77276eaddc536ac1fee9c9a4688a074315518ec4707eb045a8c30f6c9cb4189dc3442058d2b2ae2b00071ea64b5b6dbd1bb2b1cef6e736f1f7947fad9b065f97ed1db0d9c392afec2fd1de9654b2d0990373bf2df1f725bf3acb7ce35036eb40fab07eca3005380d70a2550da6a2dd95744babcd1868f26028dc4aee06a27c7fa600abeb2a009d78d192caa191a162ad088196d4702033732a2a0397668a0750584b0be707f47fa593247b70abf3e9882cfacc91eb1ef4ae6817be1fe8ef4b3e7fa4e684ef1ffffffc31a865fb8ac99b412d35139470e28c1f51207c0be0b6a044b4cd8388d02a2c5164a2858f29d8eef52d4369036d7b3d6f17d8399dbffffdff2346de79cba9bedc9dfd822fecebe032827fd623bd67d5ddecb56d4ab8b76ed2edc7bf00de34a92660e7fb49115c37bc924eb5b2bb86b32feef5be7aa0b6873c771ce7934b892a4718e795f772999f7dde3dd42e71b78e95959b1a343130b32feffffff7f1b4777f7e730ae4dd9802b499ac2b7841215c6f5748c98151882ef8e1e074d08cf1d5ecbf141188b08d4c1964c08901715140303f2321491f174a33f06369764f6053b96403ec078b048b9449ddd05399e1f49192e353a17a047db4c4e65697716d36a0c5115a04e0c26be60dc121aa984714b103913079794586215a710f182b7a3d026767126c55882f1cad02d46c7da053aded0629ef9021c505782d576b7fb9ab8effbbaafebbe7a02a18877b71092117629b9e55b687cd0d99de37c85c5cdb38321e64a9242d81cda4c6861f0e5b19bc78af3683d70b5aef1207311de5b735c4952073b27e3c50b99299b59e3e564981e3c83f05e228c4c14cbc432915d4a96c15bc15c1926079cf3cd6ee38a51c68863fc311a193d18934274ce5a8628c24706b10c65209c6baef9bfcc0ccf63b37bc34fbcc128bb17b29c2d3e4c41514445c26c4cdb551aae4274c84008aaf4b563d820f0bc23aa24a95171ffd67ac770c0b38e08462612cb44651eef8a41072d1699126e2c6947156c8f9956a94e28adf4500d477c48cb38ffffcf735ac7b0d86d9d73afcb7b8d9a2b49bad3464ef177dd54fcff2c8a1544ad63a4daf867a8738898f3be3bef2fe79cf3a2944a923277d375becf0e55493e2e467d26ba9727c40c6d76df006f8237c376054ba9c848ad2aeb0687271016ae14061972846d35a1727cd88aa10979de8bf3c481e2445dfebe896876030d8188db45b650ba3237f3cc7b7d923e523e4cf7df0e2239feffdf24c621db0ca5e3998bedcc5377b35be7c975a02eb2cd59679da1feb5dedaad1aca72ac612d7fdc187140fd8428537ad96a94264afaaac171c22b0a4588ea0e9f8656432d1facedd3e2f5f3776271bc372e1a72e86939d75cf3a0a3250f483453694a6f740115ffbf062ebcbc7500832295f8bd4954712bc7b91ee1b6c5b48659e2f18e9185075934021a9636c2d8f6c0f81f05038a6e6dce9f0f38ba4c3a2c82155bef741fbb14554d87d65a4be56e726dce681fb91bcc9dda97db7617ee3dd80653e7b6e2b914049e6e76db28e694ecbf1a870af651ff905826586a3610c164d3f920a94f3b67031bc7b0201023569fda4bff0ec36c49be0105daedafcb7b6f0437d4561181efd7b9bb70efc1d1d76e2a203821359c4058decb06d418fea56d83da6d64bb65cd5255d30749859650ce257ebd61cc3e5d39ab215ed1abae628a952aac4fba6930809209e80354b3e7ea46501104d5e5bd51277b9353b2ff35703e34c7ad41795b52ce4b6c1ec884c8194738a24f9d8c9e3955e04556d1185b880e42fc2677ac31642f582bae297ec05e78a2a8d2be8d8583a495cf56d40b975188c3b6053d38e17b1f10637f0c15049eb7abdb3a5766a8dbcc453860dfdddf912e34e60df4f2bdbe32d1bdb9047853788a79c1c9ea9649ae24ef5aa1a7c2ace5bcb89eb0d9a3d0837bb91b30c58fed7c754e1c8cfecd202f73609851893586282f52cb37311418628968feda3bb79fd5aa8a73ee75b897ec40cc9524e56c526bb9f7b7b9fd0145d520979c73ceeecb73596510f07141badefb0b4ffcf0c20a35b5b1650dca3e42f5c8eee0d8fd2baeca9da88cfb130abaef2fe898fc0a6e21be5b64cef93632e65aa7aa0bbafdaa5cde9affebf25e0d43a9dc9288ee2edc7bb05173af3a1bb3db5f97f76af81f19b6bb70efc1523ac925a7af3e139360dea5e48e6423446fb57338c3b3cd1a5ab05c7f3dc01545570d2b5627242c900c4b2b841a77a7d3ba20a409769bcbc7a5dc2e85b779bb414420996fb7c83f679d755eb9e6abd641361ff4e4a98ead79d6e966371171b7500ff775796ff0dbe7ffef74d9eec2bd071325b5dbffff5bf156942168c953114bc8ff931051bb0bf71e2cd4648d01abd62e4a4470e1de83939c87ebec1a3dc8fcc3fd9915417efd3ff270ad5dfc043dce8aae0b9b56eff6f92e39fcd8a5e4956b17c156d7d94de3e99174f139de5b16dc8d8d11ad6bbb9646528781f0fe94cad5ec27c1144d910d0551b20c2ac3a13910587cf1641945718053d1acb9d65ced1e4bb64c179d217eaab46a6b9e3fddec5e5a4952bee6a7e7598f39377365cdff233c7277e1de83cfa4feff75ce00b235cf2cd993ebf8ff3f63c6af3ce3faff7ffeff3b33abcfc4f7e49c66ff36487240a88332876c05970f1a1a9a5a04ad9c35172c9c50a8b9b56837c9a5a2cb5be3dc1f0d225f0e6d0091148303d09306ac129a0200ea8a1963072a359a19ae64f3c62e7d42ffffdfa4c3bf3162049e2d8e9998cf3926ca71a8c4e89fccd20e92c9c1777b6161881a6dfd099b794c65b2bf9861d3c58579ba6feecdfd99181dcbf9cc31a75be5cc8596e795f72ead2469deffffffff603cc9b58e72d51d1273feffffffcf3c73ce396b96c3d1fc4cfdffffff3fd9ca79d7bf52e8dcfd689afffff0488e2eabeb8307bfdd7b5389ece052bb95449edd45ce82d87cbfce19facf67ec1cb0396be099dd41e7abf1357a43bfacf82c9f1ccb7b59a03afffefd59e7bd7dc23867dd3349969824b32ee85afeaa2d529bdda5ec96f3287fed42e47002e467070a30a2242624f243eb42a7422cc7456c46058c30186d433b89a5967f2eceaf7061055b51430c960d826fee8b0c2f058d8916392f33323869f0d13716ea2b76213f9eef2d04f2d603ef6db2fcf9f3ff2ea38d3b111a5bfefcb9058c2244b4d5541569cd087d7ce8a9cc951143446e40cd34109c73ceb9d09973d790c753d73d9169e69cf316d2c8f94cef745cebdce49c73ce5a6bad13cde596f8d2669df75eeaa8b8aacb7b8dba6813e7aecb5d1354ba82593b3940180fe57babb97cebc7b97be7f95aaf6d5be836a312e79138f70de57b2f739e39be5feb48ad24691b902f891772cef9f7ef6fdbbfdc81e63c018dbdb71bec11ee727e7e046368741ed19b5c946ce6c4e6f815735243dc0a9e0ca59cdcbe82cea71ba00b881c1aa20b900dce928b4c4d4eb105470d8d544b19cdcdb105c6d03da181ba6f128c8408d27daeb7845d74c67befcedb9b657f46ac6eb33b7cbbe09c7360eebfcdcab14dfd945b8ba4f2015e2041bd8c60cf2426e7caba1a4392592ba1e6a5c5c4f3d65c7d777f47fa51e70f3b8efb1171b658818a75ccca172605bd9e7288437edff75754dc1e20e252a1538524432b3a8bff95456af15710ff15026c98ac889e30188a74ee413c177aa763634069addd13aedcaa6b9f7330364613df3ce56dde4933da6ecde594336f4407dcbeddf7dee9b88833ab6d73af63778c626ec44de6edd309a2465792a610ae5530e77f88edb84afcf77c22f6dd83ebc83d923bdd7e7349bce5bf4f62ec7697b2c5a06c003acc25f43a9fd083c764c670c67ec68cde310f7d2c09ce14b4c9d1576272f22cee9efbeba5d328d6fad52dd831f774f4e0302fb8a0c95ac630c65a24d6563ae709b66308ca68e3a77d262561c930a930e64918dbb5d64baeac58eba389eff831e164acb9268988b51a6bad27f83c269c8819df91106fdfb914216e360ca9368586fcecf62a5349d2b513afb737c50cf1cdd905f4c4451418dcfdcd263bff460b7bf2759c313ce91a76bd40b75a4e5e2c2d9956314e9cecfc714788766eaeebf2a62ab7d559e59cbb278827278a3956f82d899027ab659387ddca890919d5fddf0e807d25264e1aa495b45faeeb02600614f17d792e0c70021a08c3083378821e049848a8b46c5d298b044005004319000000001c88a2340cd4566e0e14000625e850749c6478582a8b83227120200a056110c4510cc3310843510843635c3a691d01d066223f6143ac0d72054b8c38861affea6ced44ad7f6241e66d860cd43727ed5436496409505c03388c554ec7b86dbcca4a47ef5a61f8d6bae12dd96394839ad15bc8da254239769cdea88132c6a357f47583bb4195c2a8015160215b8b8fb3fa2c18db7227058a898f176d0241f9ac051c746337aa9c86edccf4ab99e1d185ca5e403d6870228b311ab9e9adbc07c0e8443c3b337942e3788dad087940d68256a3fc6ff73085867578506b33d51eab23607dfbb05d7442937c3d46f6ed96e0810d918294b794bb5dc3fd22663b828646ff40bcd1768a04263342793c0dea6dad08d9d61979dbc2fdbe32cb7b15a9eaa93fd9f1326a00e3a22d9fa875775f9ea013bcd1ebbadfdf7303e2f26b4798ad14c8dd6695659211e5440126cc2a7426f48d7382fff7ab4270650542fa408afba40ef42624036af43afcac84483cb45ee7bc734555309aae7bac5d2de3010679d36db7388f538cd439e81c35b495da3142f99ce884df4f7c90729367a3161c1a67d8e4255025e58b0d45e39423c32ce2bfb444d6768eb10db3bf59015dd2f29cb350583219357f37217498b9eefed726664b426a8a35de64cd2971e39a4d659171aa49c973aacb921fa79096228e7e7c74357b05c339717f68f90d6075cc943db8b28d23123c8fde08cd5d7658cbda88f03edd0286cb0939fd3d0696cfc1d2f2e4779001cfec39dbadad3a5e9647851e0503c124aa1ce695b02ca490f86232f8780883b88d50c2db25eafebf7eb2f3db742e25f148cacc8e054c2fb4b3c980c0ad5199f81cff1d32277341b20ebb80ec5fc51449a5c9c49423fe8c267e2433a3c5cc8f68560f6729f645541c1a2a8ba4855b31e83be0e6432ff5c3b21e720e3b55497e750567bd99c7354253e1ad6f80e987aa62e65fa7bc01f93262b16e8e3a80cd2f78a3e5af301b5321e8e4c618de9c63c64deed08a50c3d6dc931573b3d318e37ccc80fdb01c6939c3998dd58ad6360f63f8c374a672d086e1d139e6bd9e6828885f796651f9d8828e5817d04d75e9c1583ae69e78b18830aa412b146f5df3a7c68120ee25b4a38b3b81d20e653cc539d01a8887390e2ea21a34ba3fb27c8c47097ae77e74b0f11eb9951081599fff0e61dbe2d1f6d2f2e1b6c89a56012b312c16a8594add2f942c3f568b8ee96530128a55d7a6d1c4d16674c2a1a21175d234e23b3ae4c29685f0de0933172111329711b49de48518bea31ed7860bdffd288da9b96b9a09da9d58b1d4a803d9da3502341ada287bb3ec9ff46ed033242353127077880de464c72d0e99bb58667a5b63bd44ede51d88a73a167dee15821459b0513a1c077831d7a53ab00e7f318dcd7208cc25568285029809feea95c513746f35e01e083dbf0350a81af038c6dcc515f2186c96c07d414d3b5fad4feead4c94b69c5284110867bd22340649b3c72ccc0bfee28f43514e1ae298a7247ccb7632da0ba4bafce1f4960b82e88a1f78c929129986b2bb8cffaf0c5622b1e023a530436c2b3ea970b0cc5d86e617aa391e3b729a1249563c94c404f95ae66e985076b0018e81c1ea91eddb5b4136208e7925b9a22c142ae36d136df224476e60ddb679d1a668f95c73773a4749e19ee7c3ecc4d50b7d6e1d723ee91f4039395d10349834bc09f97126275c99b8c5aa3163d6a38343ab7a62ea6c39314adb40c22ab500d02f16e8629292220f6448ac3b98e399567c62cf9edcfccdd95317838902b76460b1da7ec62e29a902c7335772801f64381a3ea2c751bee5da09f1627b06f52b25831be0c73e3663c875d424c1370642a1f8d6c0fe718487678931ce4947a82d36b789c76db5ccd07d336ff66b0c8dd1d8c66b73678d33b85f3f8182776ab199b98d9042c25798dab7680769920dc5406077f8775d75823bfd07627ff80e318212fe44dbbda55508e7c98ba62b93aa90264f16a3be7812b48bb9680682e943a7863f2cecafc8914a729251b95fba4b7d714488896521143bd7e800ebd4256eae25569ed5c0f09d26848a0d76594dadc6ede43d3bd74c3dc45c5d56278467b357024594498e939784d4d54ae7996d3d5b41b090e7b66a34485e08bb4ea9edfce6da9db2b0d0383d6f5afa3e46026b71423211b1723135a884b9c392081361d7e9c60c154d07cb0274cdc0d435ac0f18420e65907cf466269b5077c96341646c903d4a5449a205dfc852d09c4d786c14833c1e0f103d34e30de9dcbc39fe48d9b0fb7453f72cf8c00d2072a145ac2f56196368187244ee2e55ec24594ff88da48a42e2d67bf4bac02b06fbb5034422a6f677695009c866e315df705c7aa251b7b3126bacfa168992179f8e696321bb597215eed41bd580143ac173183baf83abd681b42b96415264e691f378cdaafb4f8b763e43d96e793899d8ae163ae3ac5b53d1d6d96b5ca1203c86a33900a8c8fd0f847d3a5a458f8aaca7bd3c71876a5292a277aa6686e898229e54d43828df932b42e36391a1391b47eeb4c717035501ea33d1f6f7812fad10d5ea4651e7a6e46268258c61419beb3c3e321162a8b2214bb3e2643c3e6b1f5241c1d5b50687477c74952832a7982320f5982dd076eea6650a70f4fcf17ef1b8fcd4b1c48c5daedb0008ca936c90869ca810aa6205288a50f6c37b1a119d318ade905075db2bc81c6ca723f0f9b8a2d391eb1a4a2c54382faf27813cee0e6c708c8169e4bf5cab5e5eeb8e848d579f9b5e3eb015c10a4a988037442435725baeff1ab0f1ef20e070370c51e5b36ada146cd04623866b48c686c8b5e3ed97338685bbc6090605268c1175c766fe65243643b5d6171d4910f91a7114f453cedb990fa5dd22fea1d3e77ceba766431e47572467dfe616e279da122a8039fec24cd9f241e95fa56ced469a420c3174308e66ef248d4366072b8a621970e6c5f34c9d9409c5561c5eab0107b502162b69959000f1b630fdf025597d4b233047bc1ed5cdf2a39c413bdb46447562e6937195cd62941b82a4872b8a34f84e5dcf5b2b9aab2dc81cc4751f7620e9701d51dc8e89ec418e74e274269c22e54d6450993f16dfd9b663506f4d8462fec932ef55453915132b6cfe909b044a0fbbedc085f095953e9b1eceb5573aa82ef5cf2b5c931b0925ed450922b5456e8428161df79e05a8dcfc1e62c8b027686bb826e159a30f296688324102aa369de4661123baf8f24ef51a275c07a3116e96ee8458c09f50b7a84034c5f764d623b25374de595c1d5fc2ebc751c1ce2bade73416aab12ddcf20f490e302fbb9136f56516ee755cf91c06d56367d54c18b988ec23b305c2db5f9e8b99e4ba4284da7f2238a83092a040cd3ca87bb8167601656953e5ba1db4bd06a07d7c8f7e42a5ca5c0dcf62dc8d0c0bfcc83f6220e8afadccb7adae86bc620365f59da7b30a95757458a1b057cd0b6af5accf1e298968d9524b353a3f2bfcedee2e1daf468b3932acbc992db0b5265856e7d80cc605cbe8abbc24e3b50ed976a93dd98312779ae6958e4f86d302dee0d194def8787600fc483928e462a74eba28868b866c1cb3a3803d69b980b63116f68a1a458d9b9bf8e11508bf8d5e52814f67ab4e001240b377a69175f277b5e64cdae543bc126eaa3482286cc3258b1906dd107bc39c2f678804f4ddfc1684433a6c3813fcf162024e2fa8d9b6d3cc46a018fc21f720ccc1014dc5735bc836a2406a0833c917e46027c0c8cf72c9da1caf9b721f16dc5d409f43b7d982c2573870fea5c387189fde2086b4373a9046612e81a19b3206f8e5eebcdbe742e058e5b8102ea994c45dd4aad03f43f81f82e8ff5cc79698f5c5b449cc02018743f6c51689a89d7b060524a163c342ac831e18af45616cc8ec7786def507c037fd657dce71142397e2797d7e2498e4eb835feae43edbe47efe299135f78838c8dcc9e9c12e50d81df1a8acf8b82490abe049a681945137c9dafa3dfc771ed262f8deddf40f3c53b1287d8355efadab03efd9e040db320b2f84804338551c7cb7f35e10c124845b8451ab3cbc53fbee1f09117eefc1112e791e6b578bc827e0588aff910d6ae1c3d44279772230a2848cdc04ec296cca563e886846337393c5b940a9210daa8f98a8d97f4322365d780642884488a22052a01940de3f10a754d68cd3210589ec22dc32a7f410e7fb468f485fd4a01f8601e4ac1dd30f1694c2da649da2ac75bb0bfae2bd22dc470cc38184627bd425fb29edb20c0b1f7ffdb78598ff3d0578330d309ad46db9ea2e1febbe00a44d7e7593c98adf572906395c31c54a1cfd4619d9f81dc3badc71087bfe4f2b3520eca960118cf062672500fd44b80ed990f9d706ab99939c8ce630173ca930ce07a83b5b32fbb7d2cd1187b73cc45403406e295723f1de6666eb73b74b9fc4cec7c060a61c12d8f8fbe4e6d7bfb92f26a90d5231eed8829b0db142bf2984a58d1038a71c1c8ea27ac319c50a14905cd1f75421d20ec3702c813de22aa77f8bc3347af437c73a39cb7088236b46d0e61c82dae8322744dcbb0fe8315e17531f09d1de2593d99599dbd226d6751a1c9fd7a47d214b1c583cde6093359b1402a238abeecf613d8bc8020269fdfa10583720a3572599c9cd9407acfc128549c1c61c88a322447de69caf24351c3828432de6a3d2230ec6234fe3b53c53047a5f28ac325c7cca6b6b0a04826d7e1bcca8738da9c22bd150fba6fafe2c7407404e7d32c507811609cf26f332d207958d348637cb775b0f1a4fa90013e65bb0a7c51a293860639f7a34b6c198cbc0f075b0b672c39feaf85a45a2a9e5cb48f3da619de124d38fd2c0267b171a9587311b71893bfe4e11f9dac5bbeee73036c8cd3f5b12baef22cc99a994b2176c26db00be0c94aad47243fb67c6556dce362d4c6ddbca1ba03fd577b4ad50f569e0a09a3ea8454783ecae590ecb3a560bceb68d62b4dee41a1b345792ef93128fcde44d3e33ea4d74b1fc5101363a427ad33537689e1ca7d46d86b4bb89e772b02b545982babdaa10a9c33f57de9b4bbf4784a14e0e7baafb34cbfcf2b926e6ddac492c04ac9e2a56c9629f9dfdba3f495d676503f1985aec8ca5b577109688187e439c19856e85bbc40bf31dc3c68a9cafdda496c34a6242180ad31b0f44b38cb4b08e70809e13ac6fc1ddf491fff53d8e5aa955586dc5f4d02baf95eee0a649b220c4c9d8d17f95259ca1d44d988998ba17c9d1b138a49a00b9b5792401209b78a332501dcfd30590428c58c5e104882c2268324f41a9295a0223d71a506fc4f4c051e0435168170b49692c6663fe4535e3993cc0030abc90f745b383925061ffdfdecc1047c3156fe3774d7a2297512d5a4339b630cc6d83e49414a157e2d397dbf8a2f78545f761d955b3c4aec20707d6e01eb61acf3c738ffbd1d0c6d5b343c2c179bfe1b3dfb7c43886db8a1b9f57658dee7c063a05badd0ace4dc49cd6b6673310421ebb88daa16620b0be3ed029c4b8d1abcebc4803e7c839a3ba5018d758217bf4d0a99c5647f0cb4dfb9028cfa009f40bcac9af5af0ff980dcc48d50342dada90fc467be18d7ff6281cb1f7022d626480110af49fbd68e49011d2be8cfd35d309fd9542b0450bd1f5f2fb70a44fb961518e279e0629cd6e45a0ba1b69fb017e3b3cb6bade6a564ec41711db077e677d26848db8c0ec174866ad24045d802b58e0817eaa00682f31abe29fe29b445e62bb8c264efd872d8f102df007796acfbc27a91d1bbf698c0593773e0fcb8543fcaac4d7bce7a7810a040d4fc300210f81b575b102f903500e75843d504d5c72393080240333935d007f5ce31a6cea6d3339c9a869bc98637ffc9991a0b0e4554ac16fe1a1ac1cef3cc4540112b89c137f9f5ecf1bcd1aa93ae9b3ecc1d6ae77285cbea2ea2d66b13dbe5c90a3c72f884788cb28887e2d1790ce5c6885570e31f1c903a5841ba83cc6b445a54768974ac1fcc7ce01197234181b51e0788ac852cb63f10cc1e0d46d9f98f5e9f4cb8822975a1193ac68318ae12cd57658c9f050d334d3b66fdea928d0329ffdc8695223b91b81a68e5af8ef40fd67b1a4320147ebbd4d0be5926b9588661af650556a7a62253acaee2a206a3d76a80a9ce623a0180a4a09349889ff4a4e8f15eb7a0aa5e881110a3762e125a1d2e85eac76a5118ee57ba832c531fc815d1dfcc1327bc7efe2422d618a4ece5001ea02c48562161e5a821b21c985d85357f17b755b883505c61933896ce95a967e6e4b758755e94112f686787fc8a15238f407c6730c4446208518c9290ff50b4b5a3aef6a28402af2a52bdae3cfc7fd2ea3a40104746eb31b30ef488f6193faee5d799639edc48d04ef73c0f21ad9f4fcbcde40ee748d0bea1a76e05ea89e6f7721c91000a840983d1d46a82c3737ccaaa6e9e73ac9a65e45fa9b444cabdccc11779a6f2d80b862a593225c8446bd4965a5e5dd7b7f00a32c1e73bb0f86b3bb89199004d183c7321115f98c3a4d2d3e582340491b57218dc222c5b229799d98a3c9df8cc0d2e6e8764d87cc49ca03ab0a0232346a8a99cbf48645d674c57d7238876ff00aa24f24f99ecc360512c0e4e8278ddaac8b3d5901b520c7a390dfd1815faba006a8520327b45e6f2e43e31bfb1cef6e2c85957a71f59cc3083c4a17ea4d875e3d671b352841c2be7bf72583f8c3118e9dfba8723813a0f0f87a147d68898129f634992f1f737e4777f1ed94e45fd98b76293e227710b8c7c151e8ce6c85c7653029102f66c86c448720cdcfaae42f0b3b3362e2afa61501e376bd216a27ced116024f153b1e43aa686355d1b637f0874c3004df666a316633fd1d7dde8787a3778fb03dbb597763c1d1c0efcd954e5f601806425c520ac7231d49c4f1a7690a895e4e6de3703881b4afe9fae750561d3da10e113e2c668ec17a39d63178c57eeb4e3c57e3263dfd7921a8a344fe4baedc598bd280a9ed207d729d1fcf0c8e54a5c49a4c7b3f870e3be9b4a8f135cbfdf1839e70bda1999f5d95723474a15025941f53e666080c2f86421bc0832f469a63a62804eb61236f778637a5fe2a30646227273bc58c0e0a2b3d1cc54cb189abda8c04f6301e244f0e7c2c38bed3d4824bcf1b5f21762b3ee706502cb89cc3c8f38ed97cd368cbaa1ec6f5f4e5d4595f4b932eee213515b38b8a7ac6fb7d1be76ba889c7dc682ab13d4f30716a26041e1fbc4b89d591264d50270ecb3faa5a71752df5fb7f7150ce0d3252578978de35606c905038818f310add748ba2fa214ac842999189cbb23d09c565e3a7b64e26b6b6b5cb14b26c81262a7e179bfb73c929eb698e3a60e20613c3199b91c630989bb18cda716ae24af2b42dee00a2840d8b3c6ba82ac4872b0c41bf0eb453c7155bfec67e22aed45757c8c1b539d8961f5d80b68c88ec77521656f682c540be100671d5e65cb6ac38cc5960cd51819b2b2a55fee96a01fc0e4033d6e45c21422468f6bb3334a4454f90fa6e26629d9a5072f20b697fba2f3c5c85e6559e65868f08833c5e5ce3da90002ba6048850c2523a507341911b2f670c82cc70069f78e4fc93c29327737c1d3b5d5ec3e710f497d7b5b8e2151fe3b19613d4e945ec3786b36a5586f4d21248520945c1e8530f716f7e7d6f74545b49de32d0168551a278fc0c5d04988107555ad1784b118d60e2fed4f75b4f6ec835608254df25f64c6301f2371baf7cce08c81b9d4cda5873e8b9467c0c399cd6da58c4f841e5394339e374188fe3e4555ced74e12666d1167e7bc0a0dca1ba59988dba004b6c4f50cc5fe5c37cfda575bd0d5afd627e5c7475be0da090322583431b3921fea8eff3c4ad66cbd01536c8b593659c962e4b71254ef1e3b16ebb84f50c319f576542235a13567b6587604d8ae9ba2ddacede5e6e0cb7b36c51cf79f56006098d1a74934064db07d476ab9b468533247c69bbca80782a1dcfe1ffc73f771b3977e546fbc72c5abde923067673966e4ddc9b0e953d8e592a3e7b094b49f8ff7f22483180b9ba2e01599832411445bc6695f4b3ad8d8ba8451ac5aa0a7c735663b96c3849cbcc39372c8df1f0b810afcdb818dcf4f199455a655f2b8b5f17d32493a1042114989b882649c1c4bc896aba188bb3e64c1f5345d61148ec3b655b80e562b5b9534b601cd13794858c845c5875ea7dece57c86b134e389c8a8ebb1594462b218b63b00c6540450c0f828eeb9c458a409bd7c5fcf50ede506cd6bdc3180c05c2cf6a996df504179d69e222b38738239671245c652c1e5470c3873cc1156877b8357f62e0e4006d53bd346b9084d73594cc4f266d08642fac91c8caab2a2066142b1120f38521ca459183de91a003523c9d8539bf63c0090b53b0164cb443f581fa4f2a37c5a16300c03aa70b7a27a79698d57d908fa90fdd502e0956e26d3622278100575f87029c2eeed2a8da925497b9eb90a48a4814761637188b571a55dcd738014a985588b956dbbc6111e17bf8554794e2cf856a7e59a5d5fdcbfc7e972e01c0a26fe839e5b6d7cc4cdf4c72fa40af8ef6c3885d6a82ddfefc3918edd9116b71f1bd907323defbab23aced03e7de994fecb01015c8926ab24f46949bb7e94cc079c2a742d5719f09c586c492819ca8107432bda0f5a5799f4591f8e3514877e0bd74c79c80b9d8272fde7ae94a934487a3141559b07e735385146094c65ae3607fb49b5c463bdd89c906f39414caba68442c47e1b87e8b462f800ce093a8ea2d9d76595fed65c54757a40cb0fe493909787259d2018bcf501669e4209e8f4ec4f6758f9af44f01c58ea880b5a41a165c4152dc9f997bd1c8d83a274e235038abe926e19d4f146c7dd4f69846898bcb433b5a165046c05596e7e150cc4df9983f58798d65f40c6dfb1da954d7f928299d7d5a64dc0d731116ff5b7619b89e7db87886db1a1fc727bd7623588076e7507181b5466f76c26ffa366e72c8f6fa6e11b875ee02c60c35e74b6e1b7d406aa50fd62239e991b64ce3df7f71b539a7ca23b36d2db5d86a437a82d62dd5058359855c49d80c6b4af3a9bbaf9df53eecb890850288842b1974c8eb16ed0ded2f8a86e63c63b0138d8456110167f499273ec33598874781c2b6915d466a0314a77d80cc7ccdf00c2f5469e98d058a02bd7a876c3b08c90b71b51fbe3dcb4cf0b357aaf49bb199b472a93a56fad715596d4ba9cf4932558e77ed4eaea83e926e2fa52c86b092b5854b2f8cd4a7bd8e10fa1522c35a76bf08802c54a2a80835e0d4a0241531ebcfb24e4ee93126eb8dbeefa44c81b986aa4edb2cebb6f96403a4d77f9be4bcc8823988290da657b66ca3068a3334f404ecba4f5572d193fd64a4cf51fa97e2d22efada9ebe41c2306181e43d7343c640ccdaa6bf1ff749b49be4b1fa91ccc5456340b55f1815524b1f811ebdabbb5c29d0635d7c40e5d3cbc5c9c65a25a0d7ebbb15235eba8ca9b2f39574ec6d43289e587ee5530d685d7f8d9dc4161519a410781839f9f722d800efa7ca4f47138868dadb0b02b99a99cb2e0b43cc7711ceb134072658922f09ca08e8d3c2a712c4b303599062a25140516370ebe1c49b1a0c86f6c866183518c5d2b60264a674504120d49545a3a614c7792957fc224aa70896a544c2b88311077a48dbfae86719dd8bc01611f8a59f5beda16d45a930e556bbe9db3f04f5ba3eaf06de03b17aa1dd618fe99fafa76060f7f5866eafabb58694369fca4d04bdf4c0dc0cf063ec8b2743b73d44a4fd147234f8b6fba9d018852b078c48beb90dc6eb919fb36f73b59d7033cfbc49feae9aa499cb6b5deccc9a386451ac15d6515a8abf5b584e38a827db24266c4867c6fa0312dd6aa6db7d2a56f3c0a829396b06b9156afe38111a2ca4a6ecc69658ac0fbaaeef83ac559ed3900a9cee9adc6a2284090317a364116f54cb99162c959286fa728153aa27e1ceab99b931bff34cc4b707552ce034a0b8d5c3139c2c121460ab593a0d6d315dc500b553a1aeaec9350f3690524d26f2ff7a3fd4eb30d440cbdcdc5a7ba74fab6a9edc90293bf5fd07a29869f684db4275528b5841f65dec87a2fcbc27db99e735901c79e11fbb14b4654924ea4d68e5e7a39d28ac6ad8a51e1ac441d1417a1fdbf8d01c49225f48046c052309fdf011febfb042f645941b999c6d913b9f55e3b45da313b0b92ac77cfe24e01a5dc041633bc2329819272ac84b050af330d65aadece8af040c98d8bd89b0651f817b8de432ee084b600d8d9f6f1b0c1ad6616aa010d5b95cb4118a9947f035800cb4e3a8a7ece1323068855e88f67e46f764655849fe06b68c3b72e6083df00375d85d35ee506cf84a2b931a5095a875831878a4eadf6c13860a87186d74484a0884215d223189b0d41dfdd1b294c13f28f4ec7c3112b7652f4d6ea81d97590f0775ec49e82e4831c14744df68484c43c3c7d4236e809bfe65476a0aa40e78431819a316010f6a0ba6486e1b40934a024df4b074dcdd3a9aee58cab185332d1f11ed0722f3151189b91222120c5cf3e205b441c5666009bbaf915c5bfdc6410a300a10f8515886397bd6807d8e9b31988a311d4d1cf093412cb3de5ec2d39d988a01e065963fa1a2251b9f1a35ade6dce4bb0aa76306c140991cc74d57a080e321973e67af4afd5dd4c5e102ae4e9ea3d42ceb031206325e4aadacec5200b688b301d481be5973391b756d2a3ff7ac29bdcfc06d318f1d17385b0410b277ae14fe8de37513d8011722d6d28b005cbf8c837e6ca5660847d34280bc8c05345acb091e42cc9f5e075c734a91b39619e34136de38b0cf3da60e114200439860c451723bafbe0583af29e800b4bb245119dbb2a9261c66de780d41c200f931a5e4747383837cdb62675dfebe0c0417d3fc53c2e37f1240816fe13b635a93be447c935c394ec20b77ed7f8b2836326a1c5c088f1387e7a1720bb7a2169cbb9314f89fb0e6e345441ef7a03555cfd7e23c610856211a1198446ff02453e052e2401515583c7ecbe083ae6fa4d3982981a9b501443b195d575d4a04b3d6b196837518b8aedf892afee5e250f554145f67c376cdc87d780bb9249b2e4942e62a5ca9c862caa3ac4986eafb60091779818a90a91d2d874079c743b39981eabe48803da88b5f12cb0448732474e3d10366bd1b5b629a587a820525a39950aa8b2d49bce9a4dccbaea928c50174d731d46763afe86d7fad46f054bb50450ab41547187f0efcbf367138f0194b657766da47da7a3aaf6b15b8166872d6daa726eac2526b51600f585dce01abf2eb0b0067eadd4b23adb8d8e083c7fa735a4dafe08cbd3a3c3532826324c4bb7dca5d78b9952ae2fcd20fc5190e436c9ac60e2d85572f4b21ea5892902dc09441b6542a4546b90c8897b880df1a27f2b13efb8b91d333e8ba9eb40572c60493bfa21abba381ba76c34fd923c54136f76b68d6b1d90791b83e63736c25f9e43aa87fa02a9447b2bcbc6fd0f6d651daba727e32aae7df9837bb2d33aeea2ee1cd3ef4944d5136a0d5c40e1449ef2664d7890ae80da377895c42dc741713fbd08aa42b1e9ca72f0f719e7ddf138fd82d0e463be0499fc285e1c6b554232b6e47b2694a4b0d805bbc84264e4bfcce62745fcd3b4ece14bfd6b3385896c0cc7532604017040580266bee5f2726eaeee0280d7e49c5db3df14d2cc4974ee067d0238db494094103966f90bde892b76af5b6a754e6c36a69c0ce98205d5e505e406f3621d2cf0984f5d0298df8c858425740cf58803e64b72d0b8b329a01219eb48bfa63246fd087015f81557a5f5d44e52ae5ef7a33a72289490d63b238d54555cbab8aa114520717f33a49b79c7e98191ddbf22a67149f8aeeb0c77c49203651b50d2035ac3f06c20d9e9313e954155c4bc9794aa6662c5b4116fa2e3337c2b6ba2a6744269984077b48123b0caf4c0f1dec359fd70f85de4d997662c2231282aafd9b3d256cd48c4fd941c798e264f5b1dcb33bb1237eaa972732d01236ec8502c96ea95fe41604756d2364e4bd21401b76b0de327c562ba316d951232ac5ffa4414e754b573b06ee382061e296f807339ca11219664d7cb989758429fc04f59e2e25170504d038643d0c444931a2368a3b392b5ce30bb116a6dd1ce187ee1e076d84b0cfcfd6183df99b38afe698bcea6e3b5434a6a763b940018d583185e4d8ae884aed6c58f56220ce5fdfd269701614e64c58db7d5b0ea474ae27e5783213e03b33a1110724228692dc080213858c8d7bff12e47f6c9f43f78a51f8795d65927e4828d3bea94bfa9e85e8bee95e35077a3962f0b0ba41f5a3f98c3af9ff24eea6f3527788ea94a210e0fb2d1ac6a371c9e6183dbc8e8c5fa50ccd3384c40a77eed1cc8382405ce76d2dcfa57d954d5ecf59857ec3b4cd4ffcae96257d39deeb75d9b8ac194cde5c4dac2cc611cd7f11e47f6fc2c915501a60e5a37495e18aa14eff3bb3db92b92c7cb165d3f51c4ed94ff7ef79e9f72462a6e00344840a8109399738f4e3c92ae136dc6efffe477932fd241916be0b42697815375ddcaa7f78ef060eaa2a4932d4898ff57a0a2bfd9c18550b7ecc940eb2c0718f44833b5eefa548ae8c976e3ba3c7d9575d29858f59a1ba0061e0e27093bb8a240972568c9ed4dcaf7cf6e59d066fd53f86024f2d3748f756edb841b60969d7710a5839ffaa1c3b716778c7731466461f03ebb4ef8405c0ebf7500f97f99b0f2a42da850a735af22b7a44bf293bdfd340d32615f31047e749e900cd58f3bef7db879dcaed2105ad40fa3303d3eaa755b1fc1ea802b5e8e634e9b22c26c841b496e780aa6a6878b43977bafb0ee53764e4fd3a46123a1bcf12e9815296194e8f8684052c9ca77422960ad769c7129d6224e860b6cfd9c2aabf4f7e6e2ba33f15e543300b59f1a904de3f59cb1b43e534ed4608125635370cb033d3c1e531be06109e904b40fa2513f5ea69b3205d37105b6c445f643c05804bc8fc852089865c435cb0ad9fcd925d264c7c79e6715c38cccdc5339a94a89e067e4f431423a4b33aaa0cf9ca6286d5d703919579576457f9cc7c58ecc23efd6a7d78c53b205802dab6399a734202e4392f692f9d9eb21ff759f33fb9dd86edfc98931aa27c64f2bdd17f0ebf8a2a84383d1fa3ca33a8f5afb6e2eb2b4727c0e7eb48da688b9fcc4db9c63b01ad2269f5a2a94435566862644c6d17f5eb9fe6050cae8da01ec497ca0b77405271797be8cd41ff8e544a2ede4b255fe9ebc6ed5a6e11387694b965b93e7ce81080d8ca4361c96c8c71a1e15865aabfcba9fc3330a19f613c5de51dc84189d33d02b401561e64b24b5fe96e8fba0c713e1249c1737b5c11dd65c107b8aa93f7f608ecda4affbec423e1d8480a24a5b978b300a93d49fb71a81483c4f462b84cb6099fe3c9011f2720fc798d311ae0f1a589fe773a3c39e29ce8f1fbfa715a80b0b4dd71e5aeb438e0945d2502da79f898f3f7e1a102d28d9eefe9b15bacb969a031dc2e1a911201b734b8581fa45d7dce570411e6bc0302ab4950d1b98566872a679ea7a8f3f7523acdf1318732546327372cce2103a7b1a06194cb5dc6fb25e9ed369b4b401159ce1f7c509aea4ecfaa0684b50a2c0d48e7a58123cd3de6775070a7fccf9e71effe8b9672103afed46b040235ea196026c763d0c19cddd5c6ad93b95026092a2a303fb661a60f9f3538583066a4d4037de3c1c5972512249105429503a868b0057b02532e3db9317d342ec03d5b595f49958eb0045860f1e119b17d57281050d3e42ed10f03f65e6219dc7f9c05b7f6043ba5b68ec21040baea9b6e089130310d12a3ad12dc08b69e87759ace55833570e3cf381305d46b40f3210b528f84da5bf97d7f096321c1c79de65eceab8d66085f2e4455ad67269136a64d6251ea84011b9a3b2b9878cb9f07eb1a479374518e158e6782d88c7de9f03f57e8cac76db94e864b6a27ad6fb90917cc5d86d33c430ec5090c4dad90b343fe08101331a3cd3ebfcdf61e4596b271698e3e62a88807ac0dc31c890ce5310cd1e6d57312b8b14849b44cdea94a532382ea8a62ea64e77ad816e9d0d06d174b811eeffeaff827e397f452042333f08fd26152b23aa6a8b5d66dc955a35bf543c0e2b86b50cbd2e4a2296f86dad50ecbcff83b0841ec178dfa835b28fd5624a73e3ddf9621f05e410fad25d6c32fd75edb7a97fa8bed8591160d8790f40766d1c07d8e753ff0e998a48e9ce768d431efff23ee56c7168f2a04d90ed82fd310ae6ab34ee7ce2922581a2ff74deef97bb2655db2981894958f3d30f79a661e6445956841d77c661c308b42c7f2a7b88ba0ce820576e16dfbeba9a8c062891506439f37b567e23cc30892c75babe22bafe4d01abd515d168d32ff8fd36762351a202cc998f0f9fd9d232a5845ddbb053e480bb292f224e3f5047179960f32889b9c5be05128622e50e88267abb6319017e534efaeba7174eb4069657f3325fec91af4901b5ff332008bff58d53afed94928a32f2f8de499eaa2a77bdb9551c2e0a1c4ee7b0c8cab19355895a35d0c69bddc2dfa2296ac1025225a0c628014e0d273e221ee3ecfa810876a49dc09221ad88b7372eb085712ab3e9a445458279d188135d35b74cac5e9284409bebdc97f1a74bc5adb2e26a74ac78bb4eb215806ef43df3e4e68f09f98a7c9fdbeca23ec6cc3b64d6cfe5048b84a8b5d86d61080782632e198f536da9c54e32eaacaef6f594882093f5975894d958773f383c01ad91e0acecbc4f69ef0e302fe583ee0c86a104ce50e3070d108a9bb7dfba722ab9c1c070bfc2eeb049ed4222bae07ce911dcf303d4bf22a79072092804e07d5c8092a5b49296382c4edf34ad692aa1e2676f913ca95099fa6ee447095d45e393152cbdd3dec2b487a68727336c73a955a04d3a1ffee896e06f9270d35d5c8f14732c111edf224d1a6808bc99265486cb10e48fa99b1799b58837d9f800dcb15472b7bf9110cee1dbe4dd4514ead9582ae01b256a5c2230354d9067e022937cb78639884d15d370e891e35026eb21c2d80e54660a09f03f1a91be80af691902562aeecc961f4669bae64a9ee88d818626ab8c93305162b6dff3da4743a38f7cd5f634f56c10daf5d8d5e198a5dc651c7660b8c2a41987a3048866d2b4283cb34c0ef20b158f2d6a33e77dd232cbdac0d17ef1385e5eec702b08707f9388d75b895210f47cf2e6944914770d75ebee781d7d518f414e691ce54169f6a319866105843aaa925ddb0e238f0d23946ab02309ea5181b7236ee2d8487abaef4241c4557dd3108b77eb18829b452bdef12a38d693ddf072c3ada8030066324985f84cce17edea08a039666a102f15053265167c49c8457e8d7d1104fd41664b306e2335ee81738bd0e644ee1b1be7e64e6ebad7b121fae6f4e08cb19b069e920bf059da7c308923f47014184a0368231c4cd701fdefe2353f8275a44b613b935e4a43d184101bbf4a2122313a233090061e42b125697dfa4da8b86475a5d62787bbf634086e57d3e8a0c391f6cf72bfd32ec65f000ff8b593d776040e6919d027a08f3b88f5add8e43aa813255218839c24dbb47a22825b0b63ee0482f94f241f5ad1f0ca0a32ea85e9c0006ea043a68c8a2eeaa7c9dd7e71db74856407b490488ced3d7ad080cbf34ad6e70e93926061325fc293ba36f963b758211dc31df37bf42a6a1844cecc624e710cb102a43c780acea4750afedc005f1c5778b0e1fae48ddf9afaa44938a209c3420abc1813b13f992a3b3574196aa9d27e5f871cb44808dd4a5bddd27ced1627036910a018a2f0289fca5308cd65bc04d6f39bc9b8547b0f19cb48a774864f4d6ee25a6c44ae98abb07b11ec6bd22740592429b4247c7f051d8923939c0e01346b01aafd7c3a515050b53ad7c6b3aa0633da2ce8345d14759117d9ad55aa958a112b34860b1b8e82165c2305a8d48216a7e6478b0d4228c006005a9c2c4a2851aaffc010769fe49082e6028a68558cc92632c99452e4960186036d03a203513f8f5c3509d5feadf650dff976458c47e9b3461a4bea5e3eedbdf7de7bf70b7809ea5df256d0a16ead887c5ae8feeea7aa28ad1f17beab2907ab0063466c7407c56f1ac642b41a02aa85756b3584532389621ef66ecc5a8a00ab3762369c3c979e6b2a3e614a030cd0c29d41c34b0bb22abc644fa03ba3838a65872c05d6896b2578b56284a6406b1ebb44b7684c995a1aa1fc04460a518d94b34237ec7d7d8f80c7c1b0a01ad5dfd89cb529c30470a8aa993c11a23165822c21334a516ffabf2d2f4fe1dbc037aaa3dd4ce14b65aaf12abd77ef5520a9d0e9bd730e152f51a5b7dad76d54a90a2805dffb38dfe37b6ed8fb1b178058b75433193552a6e59e5279744a2688ac664c048029b057a305854584d532e97ca730d37192dfed2ebbbbb2f7a63381e4aaecb2a17ad32634d59bfe49f958b7521325ea8fba95ded86dc9dcf7de7bef6fdd52cd943547dd52cbf4f2f67408cfc92dddbefd752194c1d13767f7de555925ab7a2b0929fd00c6676dde7bef676c74aa2e294f7e5b1ec5ce78ef7df40a570beb369a049716c3db17550c9a2faf142a9e998c045c60af31c6ac5c58126812916b67404e1dd76d34094a44dd46b16d35c7cc88662dd76d5409857fae40dd46bd5ad41f359207c13c903be753e28083711f9644dfd870cf71facb333de57372c83289acd377233ce539b3ef0b835f8ea11f26c1873314c2df65c6cd24f6e86806ea563aa352e2f1fea7bb102e628d5a00d8db0b00eb6c996f3841609b301ff08800c09690f19077325fef40f69c1fae694ca2dd9e87ab8c0e755090ebb4e6c38e788582f1b881d5e1eabc91f36c7c5c933d1d7c741e5dd9158e3b22b9eb860a076b8d98a5af19ba2c9815aa17933c6712d3a4ee24868fc994d1b376a9d839fdf04eec5aee6cb8d941fba43168f8963649fb4758c8f2fff0f74b7e10cafc2b7994421fb2b0eea383389bf89d79bc2f6dd6bfe7a08fb4f198822567f5181c1c883a963ca843b8c7fc2f7164a1e4fe3d3cc4e1e07b96480816e7c0d99b8f0ec3806030e0d950f63e5be2a3c3fff36f12b824c4933bfcce32712ee1dc242d12f79e8dc39348b1f1a55d3f1cdfc3bdafbcbe8bc8f9277102e6a11ffb8fd95774703071b8adfcf947a1e3411d411249b02dedc319d2267f60be1f3508f3b358cffc8520384321fcc5588844383a0f761f3ac8f42c13e7371c90b48e8f38ac7f57bfef55f6d8eb9041d32aab05978f5b920e097e2a7efda13a1461336d4956726f5f0e51aa1cec76a8db6996a84612b9930c4c47cbad9d159c2e17cd93cdb0a25479e67e68feee2df7de72dc79d75dbdf7de46284712e9cd0c962d8dfcaa8b4b862348e5dfce39e7afefbefbe793e39905cfbd73ce39e79c73def9af5babe74987c12b8821e8455c1fb76e04dcd3dc07694f23b90fd2dd7bff79ddb610c4e0767af8c65e04c96b4f6f1ffb2ef27a7a23791d1ce12ed8540928bacea2683851504569d0323e67595c4b2b5862f4962a57520e82b4407d41c9f4ff7e39fe7154081bef5dc4fce9b978b5534cfb247e216539efb12c0499331ef9b3fc63ab154630a861c8fce9b968e504e1158543fc59feb11e89d5ebf5307f7a2e86857031e601325d22d1fa427a2eeee94c0875a823f8bf146d2aa556495780304212b1f119f8b3fce32c9890b52e62fef45cc4aa2ba27d12acae10b39cf788450532e68c47fe2cff182bc7188624a4e74fcf45bd912fa8610819086c140e317f7a2e569d6278bd1efe2cffb8fa03f262cc0364fef45ccc23d9fa18fe59fe31954b44d617cef45cdcd4a4906a07a002527f7585560cb688ebf6eaea8bf61aee2df2f95bb757592e5c37d8d311bb10b830d72d04e94db7340f4a2d113983cce0ca0c747fc13d06e9d64ec9e28ae336d5b765d2479426c07cb531a92a6d46267cc4844d121441b6672df2886ca1c8162cae6d91c13de28e20e56090fe41ba24487710a44d08d23304e92033480789821ab85eaf640b619e7cebfdbf335d9c8b2f97526f28b79a422bca9adabb6736bc4829e160924e94024d3c4faabdc12ffff8a334f3c868bcbcb02a91e29a4d10f8576d82396ad94a92bd2cbc28b9e8dc70e2d646577bb76cd380a639cdbde0134b5e9357af54091f0a7bd20fece1cf67f7182c721a3917f9f123fdd6fa81909c8c169aaa4eb6fb1b78ff59fef1fbbeef9bd4dcee4ccf45eec4d5dff7cbef0b1f7d4b83ed464c5a0bb69fa598ac89ee467328a7af89cce4f5ef9556d37d6718f63d4683ff9296f5a6bf7128728c22b121cda891c6f88e82162d0e52f052b2854198cbfdbf7b707c843a6fd4e0fd33307f7a2eb6688a53abe922aab2dc687c92f9d373916a2cee2ce73db2a0831373c623cfc0ba194842facff28f9fcc391950c390f9d373718593ee1a85434c31c97579bd1ee64fcf45292a1c0c0f903fcb3f8eb2e671b17ce1fce9b90895168735c361ff59fe719ddd950f4ccfc5fd9494b3f29d7bef83fee82483174944383e59ef9e3f3d1751d49b8eef3adc3fcb29903d635c507c5cc8d89921ba80138461f559c9a47a004db68ff37bef77efbdf708a34e5b09e36cfc755bdd61a991c6922f92b5a5e90bbf291c96aa9d873f0e52ae7d737a604c2e2773bc1a4453efbaadea94a19508df4dd3ecfeddfbe55d8747e8bdf7ded3ded331ddf9e69b1bb9df5ea7e6b3d49ee6de5781eceab7461a4bfa680efb9deade30e7b39ff7de7befbd53c562841289f30f4d3dac91445a68b8795a1960d1c0bdacec0a18d1af2ad43c0a1282d2b93bace50dc54c762567991501c94809a3cde5c8e77b31a528d7b4ac28f4a87d20381dbd106b5a91753737143ed1ee97ca11bb77f78789372ca72849599bad197c25645ba8e0e8548d9223dcafc1904e0e5ad605d20b2995b8f795dd4b6ba16675718b4a9f43e331aedba854458d34c60d853629f879ae37fd6da8c98b0362533bc145a467c28eb20b25aaa84505544bb72ae4d93095d4a2f2bd35619ff21e30434ac20b5a3a9963c1e2ece54c3c45effd5dea5a1126c513c896136685b24233b8217763ac6e0cab7ce931e9dd770e6dece2b5d6b7026b4ebd690dac29ce64224c087e5836e0705ad0d9dca125e3be963a707f5b3094cdb0ea6a512e85ec56303be1f57375aa3eadb810526ed5ddd489284da8b414a984151db17eca193a2818253aa64fd30e48464e8f8d6f8e21075cb7531568933b177693a20ce86d4696953bd7eef9c545f9ad498d89294df1d680b05240c971c99d5004f872d444a7a473a9f9b1425bbeb87ac68da0242a438b6922597df7efffa2a0c6769415285da113041dc255f1d530a9a0966029bb9fd81f522e19ac3f38bfbaa7e15b8da732a63821a9c02f19455f5a2148b73f48cfcf3cefbd0d3766cdb040b2302967905bec0663df98ec84a4b04bb7c5fb5bc290c9a1a6d80b2a8bdbac64983396564ec28e825c3cd96003a2428be6ba5ea236061062caca18b9c911a5080a72f94c17e7e213ef27dcfddb35e90e5453dfc90a0c210fb7c6514cecae0ee739b3e4f2f7c42e2b8529daa26209353dd8c85e549548ca5d9182755b6daad5c3baad36b142295025d692bac26e70adb96b24ac153d6ffed4e0a466f9cb74d505a8ea02b4adad4dcddb427b5cf8447dad3d6b84e0baa596b514f9385ff80ffee350b7564126fe7c5270d1027954705d3532ec9d8a1a4451b528d755e3b861a3c9d2a1c82cfd1c1dcf39a76362119207fd8b4efce1bcbe0624c03c264f9ad5cadf5be275d382417a7d7c2b4fd8a6d7bffef56e918b94c82eabfbecb5e674cc3997e31f076d2bcea66448bd88ba8262f1d4e464d4748209e7863999a53915157f4a78496f4868476146d6a22a51d5d0530a241441423a41723340722b27029d793f713e6a3d623c5d3b593ad09c281c2513286e786c9a35712dcd38149abd9939269b0c590c1666eb45ea32d5b2c432b4e2b3b451817b51c2254bf425eb526c0451cc82275f812e00adfe9e7e4cd9a23e279f89bdb718bd37659edf8d3b3cb73b1a76607530e8a87354724e714770406f396e6ecc36b7a50dc01a37d8e0d6d26035b1b42bda168de9d9d3aca9ec882c686c47ac39a3cd25ac2d09969571f7f5e6958615bb5ebbb6624cad4f184d2f8e5c0471ed6c35b56cb864d9486265ab77d4b7ab342bb1e955ba15ad31fd2df49941130647170459b0534193821a2e13d4484a908de00e82b707d21c106be0cac0d602d392a7024d091c21103462e780a608361712b6e4316bc05d016f04a419c506b88e6c894ce9674853882301828a3b013441acb900b0969cb31fee3cbc81a411c53a5c3fb63ca6f2b3a389e3884350bc336c7ea1da0baca6fc80af9ea7eb6dfc38971c47a0edf948cf4531d9755db7e438c28223f6fdaf2b22bb34f2c7ae04aeebba9d3b90c655bb34775dd7a51d705d07b8f2cb5dba4bba0b5f1e83058bf76f676ae945dcc922f39bda7b99f7de63c8bc2ffc5bee3bf17b3fcf2927961ecae1ba95c650a99132fd0c4a6da12eb7eb8617bebf1cfff88596e68a579dd8d527ea665d4240a4d45c5e955a56213dd373719bfc514d7362d0a69c512b88ad82020d0da5732d4ca668180222633423c50b4688ab6a2b1388cac114594185e06e40f1ceb55191f6d2f25080aea2270428716622eb84d7de5e5d5ed4068e0e61bd640afd6fef239d3160e7a4350be839634b025aad0f63dd72ceb91cd51c40768a19316a11f179a16d58425a42f8285504d08b29c2b904005603e2aa0940cfd4cb4ccb47bae728e6834ccf32b16787e981eebd37d59c735a7621d83408ef9cf3b78873ce8f34fd875e887d2427a7430e0bf3231be331f722afb5748cb170506f38dc6013e3fcd00c719832c2ac0d2c07f34d98c9bc26be587c8f8a4de779e1266872b67cd387d38ff24d1ccc7cb3b6d2f986d2b4cf952e397aa980a694eeb03971cdeded64dd7be788e253166155c1314d7ad58956fbbaadeac4b9fce572b5a7639ea53c162f3462f0c49975ec14eb52dd32f029cd07ad811ebb2c510f96130c216bc74629e14f455a8d40ab568b8ee8a63fdc6938fc7f37fc5fb92bdb56970dd573e8e76b9fd47befb3a9128fca0a67dabd7339dcb40d4c15613956415a46494e6701811b00d549058fd9a8c48c9e886606640700631904008060204681204aa212c70d1400071fac605478446c5050481209c4c58030100a8481214118088401208662488eee389239dd00be5b346fbf2664dad4959b426ef3d36e12a3e69c69d34a362dfd3143123335e526a9d3f4bc9b88b83937d56c944d5bbf09326d76a52629a7f9b59ba9f0666e02666b11e6d26f82459a9bb949c86dfaae266adc9495361bcbe6e56b82459bba5353ca69fa5a4d224ce6bc884cdba279fb376191a6aedc2c749b9e76131537e54d9b8ca279f9374392a6aed424ec96f9b5cf44859a99c8662bd1dcec6b8653da6cca4d524ef3733551a1a65cda642d376d5f336452e66e0a9394d3f4bd9a54a829136d1a89e6a5bf09993477e7a694d3f4b49b89a829136db2ca336dbf32c125cdcda959e8067d46856393e95b4d46d9b4fc9b604973776e16759b9e7613316ae6a24d56a2b9f5c00c8b9ed99d9a859dcdafd544859a336993956c5afe26c8b4a9999a25bbcddfdd44849b3293a6916c5afa66c22264eeca4d6957f3f76e52a1a65c9204135889d6a06f4141df525b832e837196a3a406f5982b9601e8a9261ebc295a34b9cce6e869c6cb9a3eda4c230ecc6fbba92535c9394dafab89869ab3d266936cda794d7069b34d6e12719b2fab990637f392665b01e6ce3f131cd2dc4a9b649ca6df6a22c54d79b4d95436af7e1314d2d4353765dca697dd2441cd5968d3549a79f791098736f564cd32b7e96735d1505356d26413cdbbbf198e6eea494da24ef3673591e0600ed0c36a3ac1deccb7792616d4245b347d46d3885fc103713f5e56280e98b62bc29c532722cc57e313a3d4b393ba20569acd8a5b71d8cb6e394e597778334da6f7f1b377d02c7a2a0c8bf4f4e3728807a9fb73a8edeb0986fba42278739d41d03bb8e2a7c9bc8afa82599048162a663e9a18b11d14cf75cdb8c92a8cb207abdfac596081af5bce65561c489372aa9dbae688b650a82c2a07aef53e3f6eeebacd5ae1582d8fe200bea9a949cbfde1874ed55f3f174b19c532d3d276f10568d1c7dc9fe44f6ffbcb8f2654db1347e40bd880673ee4b531443d4483d9bc072e6f276acb9eab50ce524e9b1f2d09e75ba4a736026f329ec2e85007e0faf8ffd6fb1ba995e0b4727e788ac285599ef767a62626ab47471eac597ae632aded3752f92782ed7a2a80d74bc2299389500b58d550975faa36190b78e492af8f1d9890b460a0a4cf862658be95b123724c8a2c43b9a93b7cf67d7e8131314101d12c4ed552eb3dbe856a120958faaeeb8913e7e2ddfda1f20a195f0186cb09d554fafc0a2c77556af9dfc96358b049513efec322f222bbe05b90bdbe5c2038369babf365a2354f659a889607fd55b8500cb129b7c0844587af94d239a08e8073f4c86ccbe536c5842887532ed943e35a990b2097238c5da385f0ebb228b1d7a042d472ad4bea0597342cae2a20645229a99651667b80a07bd70f6d8b1879eed078e04ab1bb2c708b39901d4e9beb62be66f1bb2f946792cdedb518f86343403f4091a66ba3c7e90119177f8d639f33afd7acf941e89501f075c9ecbad963afdcbfc0b58649933b7c005c0277f67e2c7ca0fc1bee8957270801fec39706669a38755ef8e12b31decda15ae4310fa4a1a078f5bd8070fb4eba2c9974ee34aa410723ce6dde7845290a5038de09d547961ee51c10eb3adf6cc02dfb1ebf3c4cc7568bbbafa18bbe30edf19bd055b9b2a259c1b5e3dbc1bbafd941df104d6cf7b8e8eef1e3d56bcf7d6f75cc0dad4060ee87491698010f320276834be7923b5af621e463779d743d6f1fa2be281e4227ab3b427290514a61546e996b642a69e6d00929a64b6dafdb31d31047df71f99ad441028cb19299e4e105b8557d23c005b5bc736d914e10cd3bf437d9d72d2b1db0c70efd8268c477c7bbada14b93826ac4ae3dfe6d8f6eb405d18c433b9c3bd5e8a253c3b471dd960fa5961409305eda6c01c16f7d9e339aef287a0e67ef56b5c85a35fc222cf61a8aa08bf2b64e7892d2bbfda477aad682530d37c90426a6df1d2c9ae22ed8adc6fa79f723483c998bb9f8c4e85b357e3055690e0c59858fcd8e14a310dd6305cbde2923b939d29ac6ea2a075904fa8a44cf42cb8beee4a13b2a56ff1ede64415a900c380bd14e5d60ef52220be08ca8558a79d2bf53704e645714ad8204ed4960d31cfd3a91120d52163a099222faf273e322417bf9cf94f656b4054a78815bd693ebe28b12c4fc27f8e6d2f57418a7a788bf6a3d56bf9e3f5034fdacff7f1d30115fd768d438f95d673fc2170a349b028ab4361aab73ffd6d3002c379bfc206731c5a683c16dcaab24d36e7462dee0379605245434ec861056e30652bfedf5c05103a9c6d3154a8505541bb7521055864344d4acc04917c64881b2c482a3bed3c5749338e161a41f8b8a0062bbf014e67388d248d90cb8396a50016a98c0811ad8358820e4344a5f198e775e3792de29dbf0632825fa41feaac5b600d3a8cce527fa7b16b7631fff7dcdfa6a9c24e06c8d42d9dc5393c7219c0532b83791b5fac3a8bab223e903c41872d80d686b9dffc95cd80e57f8d09b91280bf17b8689a8660446a3142b4bb074e6ca48e98995d519db88eb67ecd3cbb201eff9e22e05bfa272cd0b451befef2b98ecb696b58f367f15b902c54f110a8eb49408ff8825e565e40945f96b408af7d90f650dfc16e565b10f60fa437b876d3a7d2bf2899164494e411e12a9da4e0a278aef0498290ca21f75dda41778c235afa2a151570e5552006c94d988cccae21be79ac257dec863a933749eb8b6460f9b9b3893eb4214cb48647c29d4d6fa9e1c52e410d94430e203104230033e2519b5ee6842c85e514bba120bee8dbe31a0c736e8d8f9a166a5f0f169cd12e786828c419bf25f76777ebec41f73c447a5606fff65e919bcea32aa1c541a706ef93f810a6b68f09c7ddb0f394a17a804ffbbbaa173a19f75224e420a2e486417d4dc27e9ea6730f1beae46cad66ee05531003e64c0a625ded44a3cc44b47c02e47912028e224ee2d6a499f55f1a5abcdeb7027694315ecf231729c2cbadbf56faca50e34ec3244e3031b133e70f4c1afa8b5e64e6eb39d17023138cb0f7cbf781bceca17209cc8edfb624cb239dcac20b40ffd9a67f7cb1c1a865bd097e831e3427df50add2a17c918646ac8736440869332a11f8e1052d6d45f069e8084121b72eaca06f7c4e900caa57406690f20945e6b2f6f9017bcbb4d867cf1445e2eb7845b9c454b7e6681ba3a36c8cd51e66a6ca9efe42d59e59d39a8841eca1512bc44b7901ad4bba1d1693791991c42bf41a9a94e12a86e900ecba31f7347ed8c95b5878e24a2012daaf09c587ab610f50d30f010f439955ed48015b3aeb121298bff5f400ed805c4eed6bc8accaa073c36dfb3b9f581bf10c078e1545b77fd65560b8500e9b1e3dd2b38056fc0ea571bb08e6a430826db8a6f8bc104354c963ca04ed6df2e3f7854a28bf8ed429b99f7121e0418dd7116e72a4fcbc5161f67d43c1e5bffb9f7a726725c090cf4a2432eb90feef702cb2cf792814ef8e5f77a046a469f6f7ccf98711867d678b0109e3bbe4959b6935e204659606a6122d6ff97282c544d56f205dc56d73814c8264de227ffb6daf3ccc2dd42f5e409ac29ffac93ac1f6d9c031190c695e17e7ec5bbe35bf42bbe94550bacc61466bc7185d12a73d385751dad2a7992a4613e4e0646ae3a7a85d313b24534aa822f2c61b4e1bb8a3218c79ee81cfb2236c3edab34451a41fb444376bd42d5622fe855ec0e4be387e760fdb2af0e9c3d5e3bc4dafec564668aa9f25f45a1ffc3e1bf2ce606163f680d7b5f7f666adf9662508ea09d4e305167ebef85cab8375ae0db1b28ca20f62e85098259b20f247bf32dae75ce613dc8d5005829ee24fd9787890e8af716a5374e70faabd91fd6d8614704197bd75a8efcdfc6d1c2e05cb52c75be19852667998d0932cbc931bc393aab7cefec8e64d64144448e752aab91b4437f186969739d734547c48c9ca01d7e8349352e26e23e4b9420c2224023586143a45018088b9f589a7aa0670ab82b8496f2a361fba8047d2daca42f1eb311990b48eabf6d90ede124cc64d89b590a82842c4726a1d7482a69677dd8b1ad6343a25a294e19274dd0dbfce74b8c3668bca3b9f5d21c667edae8ca19a2ec243ddd44ecb9883ede90f055d5a6c33116791b6e95585513fc90269df23fa841b5fbc1d6e5f32548ae6ec366e67e3122af9c613ff0fb4c59e7a052b6f0d88aaf26a28eb800543c99802e09af0c4bb00534f032c1d2915b13d121d3375c5cd5e481a78ef1291a4b15f1a0e9e6c335a6d43d47809c512d55841ac67c503f8615f06705be14ebb6fc845189fa7517120aa30e81302eda0e50e724a96497d889994385e745125ed76c048fae8279053470d0f3a6608a815e9d7053c1d80c21a2dbac23df98c8fbe5498732a905fe451752f99a7e17ab12fb3d808501fc27013600e9e6083e9a75173c2cc25f4b1f0d50431867369033498aaf0edd43e7f368dabf8df07d99b4866bd59f966e9a6848f1deeca9fb211132c1c2e103980d48ff5317211540fdc24caff7eaffb88b50d4fc5b1fdfbb2ff34313eb7d856aad66feff66c149b0ec3152025438b259186b7ceb1ec48686437957ad6701f6d8826f6eca9f2463b4f0c351bbda30a86727853588fba6e77414792f07d8d54a316cfb17a84dab0cbc9d4c0440cc744c58c7924dced27aff6ca520be21caf68daf250622260556ec6b00aebe1e0c2baa66ba2b7033e4864d4bfc5d30bc16fd2f1bd194c6b69cccf645a60a7333d58d60291a771eb7376b5262c1369e0c4270ee629d58c77e2c11689c01b6ead5a738353a75f4fbe47763203f9fad4716399e1c47d34c7ae3c9f825424fa4d0b74eb7d62cbc7fb1079b5c3b9314bddcf403b26fe5ee2bb9af4c9e61c2b3604b9c0738d7abca83866ef4dbab83aa70844419a4e655c68c872a26018c1d6ccaf60d8744b36861efefd2891c1d3b244f1f102313a5968c1ba2a47c4c828f8ae38750f7dec29d3a8d9428cb369af16e6e70f598f58a48738211b29111c9434409204efca0c7794e3f23f7cc88d0aac0c2ecbfe16620472dc68f830f894b01ff9d150c82d08519996c598a950da22b2ac75892979816517a9b812e39b05b80c7cd237545e408ecda959aef5913aeb8a17354e88a5d888bc8a0e313514c0f03abe5b66db43689de6873c3880c9d352f1a44b076d3cfd10ba7b27aab51775cf3c8a84f03b7851b9831ff87caf6db61b60a647c9f665828017b70623bfa674fa32e29e4215fde1ca374e8374b46d4285452ae89bc052b92da9e47e632b4c356c689ba02664ba616d32d4ad4721e27380858230a7929b641f7750c444f51402ec9fd9b2e1252b271b486db5258b013ed719e9176d036e90f853bc9d6c81b58479f8927bfc73160f97b7865f66b0a47a108cc8f43b91b84f4151a7f0f2f99c72e2d5134e53bdc2bddd05a44cf961921b904c5aaef4468e4ae74232b858b52c3b93c2b9825c93d6548e1f48ff3f2021869b08b15f3bac458cb0cb8084658d97a2b427898706b7a91905ee77105295cd9d41e30ae6d3d1a255ec9c6f921b704d782e9fc7b34924f0ac30719f58c5ced3d3e6656e2d6d8beea3e74b5d308bbfb4001516544a3d4eec773568d3e57b231357ee7b9688deb851cbacd1fb846f8d4268165d458831d88b7c45305291b5c88a2331b915208c0f2ad11f772703f09cacb33e3fc102b6a3896e271643d70846f54766db86e8528f1bd1297089323646a23f2406c114725287ff14afaea2485c3853894c9e3c2222a1411167e47a6e62c9a2effce23220901ad463c069f6941e6383b631727f4dc33dc18c824577e11c2f9079069e138dff49a1380a6e95ba750e32c3744aa4a58831f871cffb405c5f644c6c94e4159114983d1b4d182af995e443cb4387a2b5fc8132f4009511bb910171fd7212918c1c889cdb3b9ceaedd0bb13f2f56082913179ac81bf011236a0a362036f42d102c5630a40d05a644f0429a2e9411e6a0d3ff1b6688e17b6a956f0ca165c520ba6a1fc38bd0cd3049614851e280f050a3f6ad56df153443f89d321ce2423e864dd143c5fc5c137369d51c5134a6218a78c001a20c3743624101d1e6b498219e4983b0c731acdc0e467e8710c6ef2d16a2e24943cfb51b42d30cab9203f5fe1d337351cd21da0e95e09ccf20780d1d2a35c89a4fab9c41e356233a0fb71a3c8c293642ecacc391db54db477b2f88d5af8d93cd8540887e9f0ff160053511db65e921f3dd4a200e2d8cc74150daaa8f2a702547fe10371d39068105f2a1f29dd2409bf3b3de3467446cf180733fd6514421aaa4917cf12b0189b678848b9ab3113b5ccc9b450ed0aade232d8a844f55418b069edd653eccbaeb58c9e206ab0064d518011e5054067686175daf358094a445353024c3fa77e4c1be2cb8233a21d7ecfaced3fa125624a192bef374c1e5573771b1d44a03249539423236e582d0f535a17bfe2b22885afe4433aeeb42fe4ca54c90e4dd1cb0a7d5ad2af27bef0fee2aede1117669f5e4d2fff3e40cb60ef33842d210ede1f1bcc98a552c0b6f5e9e403c9bb957a44db15c017b7c9724e5bf333d3027c2237b398fcd111ad6c3e4bda931d893255eff057e75fdbb7b995c28a9de6bbae5bd37137cefa0bf159a43b2bd4e5fb3deaa56a37787c099c7208320af5ae91ade18e9bb3b68da538c13b8800c17dece8e6238a3e10c7715364f06cef0dbe606da90520bae682dd015c484ee3c76312a3b6cbcc3d180d7a2e042a06939b970f294dc8384bf599782d1bbc28cb1cb146d0d11a4dddd7e1f6e32133e2b641cb0120bfd51f07c6f01d2bc459342292eb81802d4e7ed74d3a1fd3fc892f1b0c89409d403e8430c72ca7a587260600135e39784dcb4eeb136753cb21f78a5d67cefa3949af547c2da385f845690fda3e93734c19c0dc80d79cb8741811ea017a70e850357f57f4948d3a06985df569a422216870fb482874148034a0fc0f063eec2665848841e5661ec96118d0c0e93902855299dba11278206a61f8e366ad6a2620f1437fecce6646eabc21f3b7157a354eacc7d5106f6084235dc04e40d2fbc6d94a90617b7e4a6421a27b31ce7b139209258b42ab32c7a573d28974ca359ac4f6458b5001103de354b1cb6ffa9706b4cf3136875eda80b6c811700e0a246aba26c0bb396bce6ea21e9276d0d26529e3b55839a3257814420fa720dac32552e75bc766a3772bc5760161f89f93360ec257802b9fcdf0f115da962171eeb2b5ef855c6740118c8848271af549990022fcc85909f96e48ccd9bce518466a9eab68ce3a560e7f535a6e9d5742b0c42fde9c78b4d2c438645eca91243643a1cad30f6088978d291c55bfe70a553a94e7db431db88048a880f311d576195d59849c741c8a1d3fd02a78bdd237be6d6d2518a3a08f264d531876e9cf71a988f4d1dc6c2e26511b517ea380a3874373f13753032833ec4e874320919355d6e9e3ae56463ec2f511706ea30ab8a7d94ef12587fb63ac4b61e6d117c08d529ce0fe547437939679c2f62659bba7af00461245863a8b3d6cca0d9e59cd5a1a6ec697a79ead8d3c343d85820b1d3da02d102901d1d3885656161877b3f782327b43b2a942772cf97252b3bd2dd1930224aaed8c9b420280f3134bfd5e8b754ba8bc50e7d171102903b2a0d61f87f8e89395473285f77a8a214cb2a9a3babb014c8cf9ab74868029474a6331d4cf19d77ae2e7375fd3603a0a0b2dc1ddaaa4ed284f947771bb17f6c9f95419e774a501a5000d9a8a80c7d09053c8b1bcdd0adbe4435d75e29d8bfd44aeb5e421374740923e5d92157eee20e1d475cab68b7d334f88e78f47e65e4ee54231174ed2a162a19188cf11c4cb4e8e3d23be89aee2e9ef0d5f936416ac9ad89e0545b9ce40e485b3d7917006820d3dda9c596429fb4fa3d8d227fe19f88a04711c3c63aad343be72c290e259c7dafcc6cda5301517f4ea18b43eadad1a3f5dff3c7cc0cf950f42de4b5250d29874393b858f30654fc56fc97493864d942ac48ad04133eb93a7be178be46f38a5ef0f3d28c358b383e28bb8f1548a1a93d652816eb3b2e755843d8560f5ad463e44d7660d034980b68dd55a66f2a1b09a429aac534605f9461b7b2f2d6b521c34d78621551973c577b19b149fba2cd0a01ab52611e89046b3404fabc40464c00c2f10b61eb04bd490e9a4a735ac45e7cf1fc57cddb56eb797ab1903b7476ef04ddb73579dbdf29ebb2bcc409f048cc68ca5c5b483ba579826e8fe0595dd0a058e5779094f8dda0f3fec5ac1f69099c23d21c25c498a8ab4a5d488954dcf997600aa9ca213f22d4b30691c589ffdd5638441caafce3f87f29068c03eb04c8ec999982ad09761c22c313a6f14d6e14357fd6814923e2b258006ae4616e8af2b45a36ec0aac4bbd1534b709dc0271a5ea6edad1be398696f5688f5d81f553328178344b1a5bf0330ad2cd604dc7b37f2901229a4a21443833766d624027f5d1c45e4ec328aaaaf0d56afce05d0f63725d7805d63ddf8cbcaffeca9d3f013edede3447f2de7cfc64ffabde9786baf031fd2f44da6124abf4f48c2782456367a10992fbcc9411fb8c3884392d4c35f7ab59825b880ee0be92be80d15f3024a626e3b21155ac4d33bdf0929b0be9f11c489f145a1216ae90868c4c761882240f2d53932b44bcadd21dd7014f2c69db7160a419429e66d7444e733db165b1c7364524d6b7d26492bbf21f8a54fd65c5605202cb4bc6d3228be83959b48aa430122162b13292cf10df66209498745efaa0ab726a0178b5a0157e47c2a91b88780fde1ea652de6cf2fca39415ac19e3eecdb650ea97e6d7e438ed8e71bfc57a118d6b4a7eb331792aa79cb6614cb4fdf05bd8ef3efedd5f44b8c341684724c89c163d198a96d27f0c1f289c577da6a0423848685969fe0bf1273e95deeee598301628470caf0f52f5af6af7467d0e7c58070f43306e338269138209c904bfb968d394ab3570e44882ab0d17c411e544c235448e16c52c9dbdc39196ebb7fdc432b3f5c263e9d9b1185663d57df65d7cc902f20e99a12e4c186937e6bcaf6b4b542768531bdc98422a61ca7f74e7f131f58ca7b4d6f158d665c0d03ec5ca87e25314c53e2dfd590a9ddc413738dc8dbb90a1e77e8b2f97e16f48c09e52f8f2a454b2ef67a19f2155c83aa9e1fdd9cfb2fbacc2ea79a4037603e282227bd6ba2a73f6b440e9e51b9081a6e2eb8f32159943efc35d03623ea32b529ed3e28e3ef97a6280d0a9f026604f7c1ab4995cf7505e77049240a78fcc34a8a31dc1a45e8558f6330dbe2d7430c4bf46c0cbe4db704128477af97f1be4f3633c004c757d130c96e23d3bfbf217bbf673c002c7b390c47988c489785c8cb2eb15e146a895fb3051597f76562289813f6c71ce18100638c89ac881b2b1ed30de78441ee8f2cb46059f017776d580f9861acef1587dc878b2b8bb12076731a7a19e05926f922b8de06b500560fdcec7287492160ece909c510bb1f2047cdd810006782296f7d7b120b6b9adbd5004341a792b6456f239250a1f4bd61502e46d4bce8b7d0d6251d8adb492e3d2d2e0014b329a48963c5ad8c496b7b06821f9b85441e3341f1e195f16b8a4ee828e0891621821742c3ffcc42bbe4c0f82a5c0ae5bae556bcd39cf10df2ee0bf10ffae6074b84b572c0520aebbc13211a406bd4d4054db8a0ffb377e0eba46e4089610842daf2dd59d7037f1b0e58cb79f301384637d425248d6f4fd9cbb87fce6f1a676faba08a0179bf3744cdf68beaea8a25df1f346af21891fa5e38fa86efcf6b513c4f2ca20df8060e78ca138a41faed1bb023fddded97321fd4508898d0c449c8865126a03ca2a17256415e6a62890e18938360be0f5095d283531925d3e1cc300b3041add4644d2b35edf42dc7e3b31b820ce7875ec72f34bc8391063f6f2fd1250e9a01c95b4750d164dca78a37dc827e38a1061b7806e53fc986fc716116d4fa4b836946f2929e8a3c416ec2c75ca5f4a5aef82dd47a4877acf5d2a5d3928b405c81df4de5f6eda7aa8b58b204598eff38f1be79e39b5194f7fdc38f72bdb2ba853d4064a694e6f8c673dda9c7bda2f0f77a33a405f70005d4d141a96a2a0a6b2693b18c7c2fea1b8e92bf7114787f4facb5d1d534f40769b6857bff8313388b89209fdfe8e3ed493ca132eb90b168ebc3448fa0680a4f2209fc2bac035d638d1afa123a3c46526c4a369e2b19b185b775d12f965c4be5be203c15124280fe0783a1c1f116d70d06fa54bc9a9f31615d1f7824f3343a9e31d69acd64f41bcebb5112ca3a36dd9a713ec66a6989fd99c2a34a49a4f51f4da1adb5c1196394919155bf9035f61450645f77942d4ee2527e656e2f1b8e5170764a158e19d4f21d42e83e0ef2b81e9f0ac81a176a79ceca28016fb48d5a69bab3421d7819ecc96eaca09c0b1b41ccd98691c62f1e657f52926d9132f9b53c4724a67ee026c4cc60cb333a500f438dd23300344eeb4a775dcac8018b4abadc46960f7aaa213806b646750ba9bd4efb4fc5a665a9cc45a3d118dac47fa09e733022ea6809442ae2ef4784d102d1bbf39c3ae02511888c27934d908c02be546e1cb34c6d138af7b4010aaf0528113e0a2c5f7180d980e913914af436bb06b12efea3ece6db048ea9564d15d578f90cc47cbd5c00c72dcc6b45b186a265c37468d126675a407b002a60da8e551b101106a6eeca3a2e3fe2bdb7b6f5c1ab09540e6c40952c086eba541cdcc8b70b885a09d05a1707c0ec7d7cae6b62e27d67649fdf918c6250f9f1691b67d07314f34580b9b76fb8c6277e1d536ae9aaa70c9fa3b37685ae78edf57623552309645b250d4a9927a7970f03d8f6c5a76958ec3758a40e8d78cc9b6de0f89b75c03b3386c4baa0609d3d1dd1d3335e347c106b16d5474b616624db3d8c3c1802ba20627d73473c0082fd57f89149e0c0fac285b80b0a601e961ec672652bea3719bf5a75590e66b6e4f2065928ceb004aa7b42551700e6d7517809894607c06924cd8e4165c80adf1254b9a50df2f0525884a9c12aeb8009904c4dbb276b52e26b666544e26b02f14cc0db59369902bbb551cb6a077e97ad55fec6c0b1f681444ca2463510b560249023b02366c40df1f24bac312f258944d5f504e241c2b007845849628b7b71d1daf18afa2103af0cd2ec75bcc1d5150b747969566e4e5239317d366dc4a6630be1ec66a55c3fefc33e6dffe9fbec7f1c2b79e75d548c337c75bccfff3aa8c00bbb7afec82ef8ea574ab2cdbf3a7000324d2d3f255d615a581558e62b25cdaa412644bd7af0daf7201a3d1427171864ca17a32e09413d2b098a2556e585aff7743cf59ebeb4b18d6468f8ea791eaff6ddedbbe81ee2426cc8ea398daddb5d65abbc7d3d861d45abbbbbbf67fa90ddfcbf116dd49bac125bac30e0fa720a17eb57edda979fc305eac680d30b17487a4a25d33c2284529473071274d93b00b0f4311f12dd5fe9fba3c1371f732ecf8e1be6b3a091c2fdedefe11d188b9cb3978ec557ddcb08f93176b77272948ce82a4389900921cde0f0dd54a08b6eb4d9cb60573ce097fd0c0cab62cd956b258ded73d9c937e1f42f30bd9197e7e86bc107f2e042467134747926920a78e1faed6d11718ab66c57225a94d7a3071b2b343d71f342c584e068f914cdd8365041d5a2ea910818c3051c0a9ac2d05590d969578ec5d91c8e347d19843007f3f043c3a70884b3cf6ac7262477cfce8386e65fd2d8ebe8df5bb67b9a9bcb78a27e2eec80ea80e872e664e4e8585dc480c772be2e4d0e250c075bd55b959db46b041d784d472d266d0e25854c4959ce599ad2853231b4bb11dbb12c3a22071221a3604b66382e6cba504dcc9160ec48b45171b17d9d697364b0b2a6b8a95745564d55365430533f596947a4346d141b965cdb06057ad55eac9a9aae46444fd99369b9624dc5298dc4446d82dc1893806525844f99bf44b24a086043385d09c9088b01c24e6014c1e1354721f9048a6bf000e456a32273433cdd199a12026b962b5a952ad2d6529e44e8f5b929d988a9c1619163ea4297de1e4847d29395b924eb93382996c11f342d4c8ad8435ac0e47280913f7fbd2912d45148d5c85585bfa977688248b6c455ad4b789ee0eae1047c393826ca1857596d080951ec84d4b9435db179024a8ef02eb7f39e5ca4cdbca17099833ab01e683902f159025105e6849cfabb3e8bafc3a7e148d1af2b2feffff0b0ec7de940a73141e7b536a89daab996021b889a93d293ef389854982a4e8cc27b347eda14632b2d6dafdfdddb33b5b079420ebf62102377bb6217089eed0b32680fe0fb81a2698ddcd5a09b33be052311af09db3528e21d1c3f7887e9f9d81def61de5dc50daac75d6295cc049e7b4426667943f4832bf17e9105a924af32aedcaba64f87e055e65f684448745f2ebe5456e63975e5b1c991088b73aa81e6c8b97e2fb62d3863901a3eef01c167ccf1d7abbc30b05970104ccce067434cfff582de067476048f41bdd347cb5463a406ba0a001afcbf1166f8005b82fd11d62953f02ac452e1cdea69b071812ad570dad5d80576b6c556670a266f1fbb56badadc90f01b85610e0fff68691e80e7fdbfd9fde323670bcc57f28a1df538a9461efa92bf8796bf48cbeb7d65a6badf5084917a3392b185e8e1cfaccb82569e9690742c78a6aab35d644c3900845a6f5920bc0f304e0e2e9ffde938cf03d67f4b66fa81daddf1dc745fc69440323bbd655baa030841349a6f60da609c69904b274004deb926b41c21641473651296120d44e98bc4842b878ba7cf8e7051071764f186a9a4e2a7e46acc07698da96a78f0677291ec0cec490bc5c50533b9a8a9bce5c377aa6db923a2714a40d4e0b16eba428072ba56a8347d8446601a1ccc4d5953db390b8b0484614b0c302dd98d89a99cbd83382b6295c9a9112c8d4868e54d7768b64daf4c1e91dcc444549e5b1f00839210bc8e9dafe5425d3625e468046ff5d648cc79221c3257f1c66c9cdb5b77e5c94866dcf57248f3b4461c7186369d5b1bbbb94e9f8d831c6581a3571dc81e32dbe52e667ac2fdeffd78e1dbb14e7fffdb1b4e597ddfd1d3f5e1707184dcbf835b9fef70cf6db43a2d3a1401251b9d67860338339b19d6c5328158d454ece2763fc02344a860753249373e683d9629cb62dda490c3eda2b4fcfa8fd7f779ae1dfb87d6fd7ffff8f14cc4477f8ff8fdd23ea83517c043a30fe3788a33241fcff1edd39feebffd1110c5f6ffb8e02fdffffffffffffbf1cc5e78b16a56da1b21b632194c10731af0604373176aa2060236b5173c64742fbbd1ae7d7d821c0b177752e5fe4389c6862317c4dbe75ce1716e4c90c95a86153d94a71c4d8871d023153714691cd6949b1b9f546f8c681a618d5c72d286e09dfbc608415a22c038b42455cf73eab0035f634b622e9670643a547aca402da98148d00435b5b7163e4d9b363a8d211638cb1c773439f4b2547814409e88a4b69878413f9abc993e6996c95aca4e02d8ff6ffffff038f1f4523d4fd757777777777778fe7c6b126517d7bbbc11db46bca8ab6f9482579ae34212671d9a757ea00d6b1ffbb61d654173a506bcd517cbe2e26f48c73d65a6bad37f27edfcbf1167dc3854b74873fadb526c14e6badb5d646a23bfc6dcff0fd1bdecf66f3c49ad2acd535fa81820574e3120707e3faffff7f48741f47f105e1a8e566acaab4960600925a36a46a0a69f7844463c601cc75ef330aa130e7d3a6a40d08ad20e546aa83d285a2a2f47227b62b84cb5758746a898211c2c8f214143556364d0366272e73dc9b38c3c5efa93a63bc7593f6e8781a73667a9cf35256723c24628cb163ec9f947376c78e1d3bc638e39c7334e79c73ce3963c78e3d3af45edfe79c73ceae75ce39e79cb3fe9cb331bf4663474dcb04da57f73e9f1c31c618638cb114e36bcdd75178ec5d955333fceeb5a41c9c16eb1b5ad902472a65216327ea3c586d316e72c18cd984b420a249d151b26518f9be8656a8519944915c6b84946341bb0e28c153311af09d3dbc767def2c5c200c4f2ab61595faf0c34f11aeb9e8d512568b0cdfafc0db81d5934b0c3b54663fb8484c264c040dcf16162868008b0f668ddef6fd398b38fb695241f3a62ce15e198830d0ba62027a823b71136a18120370b56b6004852fc0cfd92bc886c86d050d2f6699e30e99a0028a8888042d0d8f032a5ed98856b5e70ac2f5524a95a65252a8bda9704dad6aaaf28aae401bb0d0964d6ccb7364b47d197ace6ea6bad07daab51e7182426464b6eda9424137e0a0972b8d8a123a2259ad1c6b42017f6fb846a23bfc6dff81c0e424cbfecca99c9568a86c00c646a2046c6a666aab85a3b46d52158d50080c84a1158abba854ad9e470020982d00f3191c401cc7a120c759b51514000920d24058904034404c540c8a83c2004118068602c13020140a00200863480ce949d031b70400f1c3b9c8a4976d6f525fcc4dd8bd539e9aed3dcf2b46ea0c0954c9cdcf859f9acbe04af3438b7687b61882f9cb465ce0d636ef6030be0f62c8a432051425871fe924ed3004c0f8c652edd37ce454c4dbdc420c82dc809246810cccc6106e022f32a199dd15f6392aece8c0689aa511d8de1a1d1aaf5792470bbcb44cd108667dfe4c805dc20fc3089c3c9bd2217e9880af5f614c5cbdb339f417ebea7138c306c99b4e7ac091f56c22313b723d7a0e44132939293554d5b724fd6c56c83aa218ceda32a0dc8694066d2613df367ef78904424cd02605cfc47f703000741699da207bfcdf221f21bf4c9942356a72a6bcd105de3ca2613a5a698e7eb02afac0f9c54dc5c0ac87f12e50e78e60752275e992791866556f64c7816771a2230fb51cd887ae9b1afddf6f67c1b727512144e82f61403e1544f7715fbc81e4ddda7baf3c6b709e6343945317f05cdb01df0e0913c3b7aff0e6f6a8d44aeff8d4b736b5dde92580266854d6308b0eb668a8c272f30ba436b9049af6768bf290aa317dff50edea8f085c8b3be2c01c209f4574c8f4faad05de817403a80b22b5db1c0c1dd95152c7430dcef6c5ed06efbb963310948faf3671c8852c7c55345c0d9e592e325e35cf044535380d02c59372c00eda2be5a498dc59cda91aac61d0d8a645e5a77792a8f44856ab88edcbdab337245f96a3fb3a540d86498d6bcfc1a02883489d2f51628ea9c17c6e6e6f9e05563b2241969d2530ab0667d32fbe6cf357222a3b0dba4f25ecd6bc78f90f41812f13f84a0c7c8f1be97c8129473788e252f6eb86b8c61bf5efde3f7f9db4c813187f2113d6ff92b1f7acd15db0c9b5c3b7031a1fb89c4b509a89d9e15f77bc6f5f66e24a796d2949daf0f3699cf5ed4ee03a32b42b32f1522ea6effd1485aed30044d171dcc3be79836d67d8d9ebfda8cec523f40c20fa81085e167041341168b79b4127471d02575dd195db75e071ff63eb46bc3f0741dc23a1cc4ccf04fe45166724fbc107a7a3efcdfbec88b7a25df05d277cba1b185ee8d10ebbd6475b03bcabeaab3607a1f21acf34c726ce5b279af1f1a675bd90ff399cdaac7802a2195539adac02911e4f8e0d466ea182b3017449c6c8c36652bb050897fe050ba6bdf444ace5abe07d1f74ed758bae6fb37094f883938187099700e9333f864110e8ac0e553b416ee60f3aac241cdb5503b53a3759263ac85bfef5b9d73f280217e8f2377f591f5c4e3d220248f982991dd5d8f4189de346f393271ae5ff3961cccc7d1a79013aab63d9af1cc63f305a546fd4b25fcc01ef9c61eeb9e2feaf11b564ed107ae2cd51e942e4583b386c06a2e74e4b090cca69ce9509ecb4544eab63ca29bfa2abc5f6a072fef24e4b07bf3cab73654fb637378a58f072d0fb1ca0f411db3bda6971a5879b134b3738604708774c9c15065910d1958a7ab6e2a2fcd549ca0b774c103d953f11106690d358254eed5f5dc1893432aa43c952f86a6da092d04b452706318bce0458b40fd61ccdeb46ae40240d727796ce20554ec2b7de415eb89ec53083dcda72c8d3786d5dfa3ed6408354c3a1c4c00378927d1aa6f40cb2bdb03142bb959b418623669237f1d0203581244c22846eb5c90c455da86598913548c4e6e3438a28ccb053ee4b06ee9ae43baad8175f8db8be41a273b235f3c97132210925d4862f5ab4fc2c70263de0a55d48fbc4a042b47e728adb256238c89e5e82a98f9f0925ad87ed9815ba457cad89007970814d17ab28ce26ebf7201557b2c331ebd54d70da9004d0172297b110af864c80cc28cb41425e71f3a2faa2025e2f6d81c2d3284afdc6519f7da4fe7c38c874b05b3377dac6bb089a1ce4a43d303657166ca4300e40b5e36c741a7206c85488f1545747764c2b187770902b0d81b059f375888394609e992a3807dc5d29bd85ee2a1c2404909f0190fd3b352b843e37c850f35ebf645de81f5f76e0ac1e2412b3a39835fe3bb8f6647406c3fc719fcfb07d2598e61497392132b677b00aa50fec1771af426f1fbe4fb007399721d886e72bf0152c40d4488729c0c848fa525cb4f53434e006ca02fa4de3f1413a2eaa2f05f2b9774dc1d8624d2816f6201ba1ea356850df0c5241426917d86c1b28eac209cc686aa20f524722a4c05a17c2e4e70fb22932b180dd880c02738d4746c4294b8de18486961531bfbf930f529983c5028809df17d879a0fc2326fdde677fdc0751916a300354442a8b42c2de26abe95666da70849fb7d46e19202b34d3fd02c37f7f4f0640d023dfd76e56d7b41dc15f19202f630ba94cd14d290f5e18a9e398efd011438cbbff7800e5efc1ca5fc51ba00d4a9a60bdd32feba334e92c3426a10f8ed711f942b92633bbcb0fa1997f6db6a58df6a4ff15621926dbaefbcc6230693e1bbad5664cd00f12d2430ce5baaf9980cbbcac9d713f15d0a0a97af02e630b2f5128c0b06cf3a445eb62911f1744ed5ab8e46b0d3ddf2acced6c47120c922475e2cce3fd05bcae89e5909e8b3e2bbd0d9b813da4d34b5c4be0494fdc715d4b2915dbb154f832650c7fb6d0c4834eee1dee5bf7387dc83b1aa276ef1b44b9889a47c32b663d5e1ca724e9832d5e14d5ef4ed86a913af60d90859f15968abca9124da5b6f5c7e47a50877727444471dc4c218c63bebc298c5e4c0f98f5397500d2d4ebac3c1d7d9af48dbea025b1c2477bb155182c3ec72dcbf6998aea65b1b0b5dd171267903b3c8a16209e57768172bb6259745172c8c53fcdd0a8eaf0d7c043ca7f94f637d1d0f3c7d4eaced74da183c9cb79e35be9e1f0104b4558b32824efed8fa8a7d525fa5b5606cc0376090910d724e1134bbf41c0b9967efa60c6761af048d44fe4a06faa470c51c48c11784a31910af37dd16e60d80da583e2eaea428c20b5f0e75d0ff0e37818a5d2b3c27da2d0f8f78811026a5b494097a90100a08cec0eb2466a312c07fae483438b9411f298c885cad572a5202879be02841a13694da3c6501298634b7dfa0d6ba1b33ecf8dbe88a7fbf34b25239d9c13161c4e046576d3df141faf230a91eec9775cf7308c114e68471de510b070cbb53605a5c04dd386740a112fb1daea286569f75b927d3020f846ae5c3b8968f461bf403ff6ab237d16968696f4e25b4789ed9e97cd51550743e4988a6ffba82c714b7449b6bd9b888361cc99df147fb5bacc458377ef6e25bee5fca31f312645431465dc846a41b8fbaf964b04450c712f2f1b85ffdb5bf4fd8a8505cd559b678df09d70e97d852026607f8e7dc646b1d15b74441fbb55afa97aa25419ff8d07725d7edc4227fa79be12842f946223202f3f68be267edfd43115d6689d1bbfc0ded4f242347a21c53285215a8585ccf8bd46055311576280e82da6ce830353f3c50668cb79096f083d2a6fd109e870ab26f92206e836df2343cf1bf3736a291892fb1863983ee45075e755caf3e611fdbc23c6407ae6e71feadde0bd591d3b9e394d840715bf91aa102cae1352d14c6e9d424ba8c5ed0ee871325bbc2276d541590434a70d7d0cb6206ab52d6d8f46042f5324266de5285fa424dec52ec24f9549b7e84d01e0f2bdc8cd73f321d759e43235051f89338e2cbecd20e1fecb4c386fbe72553d696e747ea7ca0c50c6e0390a91861425a8d8259864fcc16ba03e2244ca917adf3af2005ab5421f52214c04e5830e2244626d6e8743ab15d95d637847411e7223ee34c855715bb1d335b30192b76fc746904c46b08f07ddc9b0ce8a52f47e27d058061a2bd46575eace1c6ce795b8f2abdec250537913ea35b9f86a3072e635426e52ccf47a603ab3a55987034cb1be6508db00ae2291e2c054142f395583c6665c4fb54351949c60d4809c8523fde2409f1d51fa81a370703dcb0459ca32b5a754a615d89f8028ad304451cbc6912b778ed79390c358353c84c8919f1b2b404c467b4bcaffb56f3ace83bc86d81150184322709e17ed29175c82ae4081b3de5bebe3154b6c616208f058a1009d44a849a1e474a1777a75a40161077cfd351dddd74626aa568ed465365c76cab547af4c63da7e264e7d73244ba3c31f9689ad5c9918840b0f45d6b0fb74a5aeec5c3fc6a45fee03461a6e782b21ad631a2473d6dd5f89cf96e43e7119c15a67d6915183ff0232e188984cfc29bcc4aea86b21bd1c7af3835eb6a468bce1156da026fa9adb8f84327411ca44d9b798bab2162ab8ca6edc2e93d28d16f231cdd851d00b3b29e04d1d828db325f61777f68cf01c4f64e66d4cd51beb61e786c5041fba20a9dd92884e118e226485674229ecb3b82c50aca8f5f2b72a3d723c46d99c9382bc368e2a3c8f38363d02bae55039ed83e6194404d357d65ddfffbc0a69d667c41118fa17982147497048340acc629a722549255523a102535612e275cd54f2e5683333ccbc8480888949e72e08883a0d744eba32b5441a24267da5427b6f60fae574c96b9e1225199e48f2b08f7bec805f59ef047d3dfd8455a805485084582d4039200b1da5ca3426d9b1e005280339d827523a66b83a65bd16093a99700a5c0db84cc46ed32b73a5e703ba57dec9a3ba0e3bb9e733061b4a748a6639bcd61b2e44ff52144c28f9a6d2310a2f434b2978b3ab42487920f11893fce837c54e889de299430e460cfbc9d74c822315250a04f0722fbd33e2c0ed24a700cef71b3502ec43100f435b31106affd3cf13e6a156ba3a7495f2c0e306dc023ae5def46e1f81dc43d6d0d5885a0deab08299b3be11427a25bb4a2aab891b00c13561d6630651a5de27b910ecca81b4cc23498abd846f0c1371d46895cee61536a140a038e9491b5a4e582291ea276cbf417cac045052e1a3e124b460a67637d207c5edd55ea4aef64878d8a4ed629e2f08c1667948d35d5474ef4631bfc80416c2cc66d9335a9a24e160a5a2f7ea3c7a5de49baeca1029503cedb12c59d73492a11fdebcf1b4c6760ab88434b6737ff3ddda2d0f802b6bf3a4f979003e479038df7a1a0c0a1d3cfa970a247c5a882b60c660063b3f046733da06a0aef5440e688deb2926a7a203dba244fc22cc8008b80239c0f773f4de01744d4eb67cc75a01d3486641b1a88493c0b40c7e5f33ea6e319c97c9b6085c5059b40cbfa94b08a813fdc342defef9e270711e4128e23cd97e2e949a44856e02bab15d6c716f7f58891842da3accbad8ca03065361dcb8acf07c1ace4abdbb10cd0226e21aaeb9458409e6eca569536662e7863e66b0cddb51952212d0c568945fb773f751943651577160d8984adb8a16d0412ce2302eab0f5441af31b82eb4a73271afba359b170bd3dd97687a8d25513153b0f148ebb5f2a4e267ad994536d727920ac7d672a2aed49d7e4aff38ac506a9ccb43ea3198951c701a06b9213a44414db58af9d5c9c9390b5652c8edc6c1150588e84b08741ae6de65205b799f488fbdb328102db06cef7859feb8f92b0e95d1570c4cbb8b0ad7c88a3b995c5a8a00e8d8b2537cc350886c7ad1282b1b06ce2d519677f7e9e32f03d54ce8dc65bda9320cfa2e15f3900c11b902a285dcd53c6092c2262119d705e5556b9b312e1544bd89bbb2b0754dbc273057e63cb603dab8aca39d1b6390d48cf15aa98c586ad736b0ae19c1f14011e70ef7eec655e3684f55710e360e286083edd619ebda5a2e05e60f915ea696a9a246abd6284801868da26c477b21506add26b2ae1262012fb57e37071e75a6a5bd1206ce49163bd66e90d1fbb7c4ead51e8ca168dc882857ee1cad4bb38173c7739fa5a088267a4baa56f590fa05451da888d4342634ce0e3e60ac7c4def1e6042c4d7b8fb2b27d25f0496b15d8124bd8c35c49ca796148b64afe6230357a947a3bf42a2de141d191b0515b13c14cc351e893407966be479ab233aecc4c9e2e004a59fc8260e58523c406643462223ade6d74f1ca2594aa1940895111775a47d438d1674c3feb8f00057be94b83e3e65b542ce0e4a5c5ebb459708ffc345d22b0b32eb990f39cfe2ccaf0ffd26388d64afed0ad8efb59b1d16505da173d4780df17f69eb9f186fe4cb43a031723069e1c9fb54831bcecf09c3e959c50dfd3c4f078f1a2281c321cc97fbe38fee54e6afa2c92b704127a077b6e94d3b11a2aacdd5ef3c096d8031e918246147fa188b99cee5339d6f6be47ed8fda22ab58874b75b28e57b40424a94147db5be9457238a8767a1aa2839c6ba274b3434b6aa4810fd0ec34a9a53c0225a0de2ce1d86077198be8cd1761b00052ce23e041cf3c538e90b1c6b5f6afaa29242a8d03ca42f128439e611248a4bf40569e399b99eb7f99e2fc200d8a7823dee1ba02f72c3b9eb3cf176d6c0641808aa575386632d4a02711140e41986a880e84ceeacfdc7175f25b1d1d6799d3d3dac5e56da16ba70bb25efbc0a49421f0b4f400824b968cbf7842d109c8298c40fefaf314bc4ec828dbec984f6609062a5b382169f06bf9b10cca91cc9153e3e7161164a2038b7b10b38dc0d3a14a9d7ddd0a9ff7650bbec6be3d41c2b3d1957d05f7902dce3706d8052706613a2e624dec4d48e9e0cdec7afa6ab2f594d47839526203ef92de202dc5bf48957109a2aa0d8f10ba18c9e1965ccebc3b4977b8bbe34c103ae2c5d7d71a136a6f6945f03e9d01fc57525f473dd228acc6ff99ae1a2094b5a965cbbf81db7d640eb0240531ac98b11eed61a1aadc970af7a5da782867e9948302fdb237491261017385281c7f8ba24648808b3f06e5004a5692a6e0f8b375ade33f8732930e57e26253af1809d0bd6b40a760e354096ec80abc3dce7fbbf76792860fd87bdc3a58d0376333ffd0a529a3dd55be79ec63747677be71f485bff02669b354de6cdd76d93906846749a0a566162facaec389b04a34d5bbc79326fba6e9b24c96654a7a9b06a62fa9b1d479368a46989354f66ca74dc84494836a33a4d857513d3d7ec389a04469a9658f364de74dd3449896654b7a9b46a62fa9a9d4e310946cab4c49b27f3a6ebb6494836a3ba4d25eb26aeafd9713409469b9658f36cd674dc340909654674c2545837717dcd8eb34930d2b4c49a27664dc74d93906c46759a4aab26aebfd9753409469669898f79366fba6e9b84c42b702a62fc29041a9353b75b2052b29a745554217e6957e25aa9dc5922518b78b7ae9b0267ba1fb83785fd91f7679e2f596b68f13a821ba27715533ef6eef673a30c0582be98d5f3b81748070f75d2f7516d3bea5e1e6f9ffa7d5edb5a4b885a238490bde5de01ca0b610b7a0b41290095b06ad516d59b4375014479a8a796bebc7d8e96bd7e94a1408934d6a9b29c4307a8b3a53e444448410515474e2ce580062d090e39ec6005340461841217e1ebf5d7ff8abd5eb1bf6e3fd98c8ea433334850b85092024a0a9bd4809555a67cc937b2ac32e529d7226e4540d5229c14d1a4a8891dc0786232737052924a4f66930caacc4f08675dca1ff983e334075f5f73297f0470ee47c75597f267004f5dca1f117e74de3a220c40470e01046026c30180106ed8a8227f623e3f4b207f665c9826903fab4ff13fdde7270cf2e77502f903933f369f9f31c89fd8e7a70cf2477e7e2e913f389f9f47f2a7c6e7e70cf2e7e6f31305f227e7f39306f9f3fb69b10c1e670d79b6f0386d689d855d789c2ac893068ff3863c413c4e1cf2bcacc1e3cc21cf1570f7f03875f0aec2e36c92e753789c3be4f9e171f2f0bdf1387bc8f34ba93caec60648e362b5642c6665fa9c55a6bfa911667a1c55a68f5d2975d8dc4feaa087d1bfba2ba50ef1d67046c70d0a272aa4bc5d311b89cb1443b6520f67cc5a0c4f2990483c340178767c5a4ae9ad65e6719ecf574c009e1db8a8addc10c3cefde4ac5670be8235d4cff97d29086900c4931716141de1e006862d6ab0431730c0b8e005144f96b4200865dcb298075110d432191ea841249922fb21b3a630a5f61409975b2d5a5b2d1c557270c1133cfcc008232a25ea8831bc804282074f7ce1c5931a540f4ba620528a01194304e10533ba84a1cd83d3ba0e4e14587ad7eb9d5d46a0fca5eeacdc2585ea1e7a9a1a99baeba0eb4e1b0db63f12653a6bb3e699dece3d12d532922ecfc87cd6a88c8c8ccc55200aecccae99778febf3b34bfbd8eaa2ae76f9705dce642ef3c6e38bd65aeb575395abe365329db1470f0e3f554bd174ad995a36ff1a5f20eeda53671dfceecca909e2a51d5d24bb6907ee272d9b77e176d24d79d623ec386d4e28c6aa3bf37a654e6fccfb284f1999aecb33ef44135861c284c933eff0cea29996b431076938735be1775baf60157dc47c5fcc14a72cab4c69a21721cb2a536ab96bd467161d65babab375bba9b4e5eff5dad59df9c3295aeb2dfd74eb2c50ed64b3394da82cf3f634a3b6d46e24d3e961df6aad4073ebb2752afa685d658bc42759c588a22c453b831d672d570cd628967e95674deaa096b638ab163b4adb90d7cb5a699b5b5e55a65297b4724f4de9a4ba45a42db7ce6105b44c4a4ac1532aae5041a50a155db2ac4285153e595679d29267ad7bbcdb3c5179926263a3e201794090070fc803825ff53a11fc6743affa87e454bf5ed67e6f708636bfd23d369f97b59170d9261585125f6481c60f645ca1226349054ae060c9135e7056a292b875f1c513337c740c307880e1882d8838524185c2dadc3ba558346126dba4525f7ffdd1d778e391debbcae61409976dbc14b579cae65304627317e5b2d42b347793901b538a79b8d6536f99f747ee8d479ecf7b8dea7d56b3deafb9630b23e9dcba0a8f35a7801051bd660f1369e171d668adc0cae09a8f1caec163cd345322dcbda73ec5201c26a23a973dcc638a906261249d47a29c52610f8f3cb9c1f7ade2bbf0348851a83c52a97a692ec514fd78f2298f39c2d78928803c29d9854b5d905e9a4b1d1e4ef44143732b7deace148f29c2bdf7e570ab0e44557dc79a390e48cdb98fd5137fd49c3bf8855354dd5b61e66ef1e09592470d4f068feccc33171f059828be4ccb3a01f6d7eba91a631fbeb5fa666454aaa7ee389453dfeb02f088a4e90788b2874190931ba70e445377f41ebbdfc18ac7156a66e12673af9f220af48d2bccc30b20ca9c4a7553afb9a377f19cc8009aabce8925cc4c737ac77e0af755a5faaa68467a15ae344f612234576122de45d299e20f8b5f5d2a9a3023832beb148fadd796b54e709de03ae8ba630b7d41f07ba7fe81dfdb059ef50fac293cb28e846670ac3406c43167c59cde185ceba765bdb25e8f5371c0a3c69f181664e6fd99371e55394524f59709b0bffe3a508fa9ef2a95ea5fab0ed699bf5e4fa9f0d859f55692fcd5709eea34775dcaeeb9177b8b86e6aa2bb38b06b3309b9bf9eb85c7d40288be3bd6fc9d36fdaaaa716d1998fa0c7ed18c736dbeb931f131a20f563773a00e32936107676e1f76ebccc5f71dbfcfccdcc3eef865582dd7eaf4495b58b34a334eb1be58e3bd020d13264c675ae3df5dc1cbbd0202c284b139ec1265899174b6a971eb6db0e4b1e3445030850e65e0000c9725243046184c5efcf0840b2e785c199dc9efd0a1337b776a8144d4122c680022a9890556be6c9122c6520f5ca0d508638c1ac0304113a6256cd11428b6181161850d6893faa014a8bba1ba65aef52bb05e14bed76bbb74175384fa8f7e777570869da4a15a56570dd574052faf561ffdcedd5127a7a6d746b59a8f5d9b53a88fdcf9ec7ed12438e7aca9f084b2a53ec759cb56ec3850efb8b3369f5a36afaa42d8af65739c506a14cb9dfb0e0f1978c7e9347ee3cc524407487751f5dde6c0d428faa56f337fed25d3efabf9be8f35184937d48f995532acd319ebfabe736bcee34a39db716b6aee7dd66662b095c1a375b9febd855918099729cdbd77ea349822e132782e770dbd87a9e7f2528dc786cadfa7baab7fb7ae3eb3b28a962e799c46b28a162e79e6094a1116b4e30e90b41d3bc6a01df77406ca7a6bdef77b432565900bc57b27d29d473b787c67e7f2b83baea4331ad5bba1ba50a92ec5c62bd0ac127da868eab5ca6e5b9fa6babb0b540aa89bae6a6a17356fa8eea9af798b3e6a926a6eed2e542a55e3ee628a403fe96c862decc29406830fafcc33f75ed308fc77af4695bacce9f8fcd5a89ef22ee9fc3e23bf57fe6e7f805d635dd2b72ee90b8faf57f6b08753584aaf6b3278762d7faf94f8037c8bdff4ec17d677f6e6e751f78078ecf77435a3ee69f9d379be6dddc51c41e686ca400d85ed7e5969ebe4d44170ac3955638a52ba25414d249bcd092acb5394ce7bc89c74c61eb9d64ae9e55e6fab56a0b9ef121940942b7675b4eae46ec77910d580f8e18b28529268a20bd10b34786184134d59a4b032af539f47ee457440b0f2b8f54b7d68088a108fefc0433bce030ff150e1b1855bae2752faf0183403a23c64deb1c250ee5e3914ea0a34f3b892b6e34a9a14bb3a91a6cc024c14a32da200618b19681300549e3c51840ca000c30bda7cbd126899ec2c9b68410beaa5046a99142bb8456102063f582a401a2670a106209c6851c55cc28b0d52a2a8c005232cac0db8e080c90f4a98d1027089350013a43c3f8bdac7c70e4d7a26b38f1d9cb44ce689447d3a2044942e30e8418a1764a04d06ccc0075144dd60861112b4f9599b9f46452d9bf57dfab2b2891650c164c50b54204313b47a396b325899c7596b8e48a7a7132e34343434b4b26c82082636033a62c82df2bc9cffe65fde173ba85c9d9979a9b264620636c8e34ca572db00a7fab88eab3655051a49ac2caba01143973aaa606a0f7925d327a030cb2a5138c0c2ca1532f862822f3d08c1650624ca840fd0d82284931a9c968031c39082460c615cf14314d40a04b6d4e0490a248458820959bb0e085e11edba94f5660d33008298a59519dcb6789ee7794b64a8b14e3530e5d279d999d4573b5b038c6a0717ba884183105e62a8420233d0984205891280b14469115f9e6e788207189ce41752801962862c9a50a2410466d07083188aa28079f2961041193e70028b253466a8c245888c254e5750c0c318b6951251456c51e28b1f8049c3055dd7755dd77151e8e7759d93c7714a7495721c15aeeb8ea81da51c2783a695560ae5288d2a9ccc0088339290685ce901081cf000091d808106a5f40625b8b8e0d1c75ef5f33856db2f840094131c31d58ac4903243254a0f6e4248595aa28929ddfc2b4629a5f43bc2862b404451e44210ae10c1a248d8b8941103315cc0a28989091a41d48ebba1d383c749a707cbd5e8a1fabafaf2cee8beaeebce09231bc3135298e0a9e988234b9c9e5822e9079b0e4174f8018a891862882245658408370882096c7065076150f1bc26b4845c8da995d2ceb3adfa755df7434de52cc7794922ab7e499ee7c97075556bad5ce5aa95ca71615739517e9f0da0133d78de085750e0e48c1f3ce15464a7dcfc2006286882c50b30a2ba0e0c65a8e779d78158c11b29a14403155037b0420c9a2282b2fc60830e54b680c104b229ac029dcdabfe7decf17dd2be14b284a97f505bf284099934d5274df5247436dfb2c14a9aa4811826a47aeaaaa7709551d596e7551f6b963c0f6bdc595ad6ddedcea3ed4de9a6ced556bde4b9e475691987842787c439519f1044018288264a3ef880046dbeb3cc77d314270b82368060cf1b11edbb30a16f469d8826c516ec87bce2c50a9810d577d5250d26a47bea29acc47b37ce5b9e62ff7d89500c0b4284c3b0202c7426422faf78b182667ae5152f45f9bb92e619998109e994a4de09514293620a4c30a16ffec36de43da59052820979fffee1a146a21dae595a8b0579b063734a1f11d73237c88353acfcccf2272ac10bba3801172f9c51822468314c6162b0898182a72368f2f605cac7f2cc1da4668a972c9552079c72045b1ba253a2f59d12f5a19dd2143b2f73a7d43d334fa09ee1b4f960555be44f0172bf6381ec94e44ff71364e95a95dc46e42622371ebfce05b93fbaf27c8cec916fc91feff356fed08b0f3ff1383f4e5b4dee227da8139d7131833272d3e9c5cbde05228fc0beae043a9bdc1de91177f49ec62e2af7e98aded662c74e891a719758075718366fbf7aebe15b183657675d8a41b0eee02d2e328117264c181a9423482c0c2f2b5eca7469d3147f74876f5ddd7aa3b39ad4013545e8cf0a46eeb76e0d4312a06fb912c89115c31296be91e495a04ccd4d991856ab6d0a37850b77c4e4a618217fb8bfaab050e4be9c352bb9e79cb3451f757e5d77cb4c3589fa886ffb66816ee1a0e4be5d926402151ebf0f7bf855c329479867e1cb6377cb7db0c379a70ea4087d4efc316d5dd745605af6a5d670de5ad66d247530d9b1fb92db03a7adb5721cc74d1be7a34e5b1f0c98bf29dbe655ae78e440ee6e5247bf69a0cc5662e1824ab6c9128b0e9eb20d7dd896b132fd69d41c81e269a369c89f89e7165207f7c3de194567b56ac5698ad0ef6a9509b9ea6ab5ab55a715768242035ba3c8cd25ade08509422dd70b33c17bf7ce3483a9701e4162f3dcc2263aa0692c3c6f498cf5e22b06a958ea850383b92fd3362f07c5dd5ad64addd34e9ae9c99446a23eac7f9fb5afd77f847be5a25ad64cb9ff3d9192fbaca49ec239bdac6d8a6d0a378573caf2b42573365a15c2726030f7a5657d28dc17b1019256b15870da7955b9d61c9c9b18ac86cdabc645332313d3b2ac951882aad4e7755ca53da58e7929b22ea765e1179df5e7ea765eb725b713f5797dd6563cbe7275ca7d10775996b03d3b272dbbd98e09090b7632774f3cbc041ea8a70dc4b2675da714d583fa807f65591ea72cd328ead351510da03410778dcefa4758a46c4408367944a9b6c102f9492b5ff29f1f73709fcd611bca907100e58d91d6c0ae033d4a3d8f7a1ef53c4abdee159c6265066db092cec676c2e2c5d662479d8fda22ac0c42105c224216566a341113d174786260479d3c67444c69e20917650ca1c5484d8817fc70258a1667d0e6757a748fccd208283b0053061543b4400c128ec6a859c11404a31c8840c9051c7a880107693c3d315925d1240b140f5c6a48b24145185e1c5153220733a6bc010f7e30c2055ba400ea0b10a0bec042c5124d6a473968e086265b8c71c512267e5471818a2b4d7e6002c949492a3de1c105881fc6f8c115348896f8204b1730b0008aa21e66ad7283c2890a79c544e232c5484095276198018411675c2171e084963380104605b626e4acc5f0940289c4034c28fcea2b3cb47a78229a786142a278221a6bc55af58a655b2dcb5a81938266dc52234811c529cf1124ada1f87d5afaddd60ed6de7ab48c07eb6ce95bdf242dbc923645d5e90766f6d1dac18a19069e1ebc6c420732b214818879c9e8b4f040ed19800952fe96c2dfee81612af5864a5d66f05cea159c612a480ac7bcbc7243e5e9e1fed25ec2f796b0b76c69d9fc4bb0b4079d4dfa29935e0b08972c2d939928cf39df0388faace659ab2be5aca98933b218d212801ed0858b15a3206088810a6d5ea7477f69d97c91dc45e9e4a9e3e1b146b5ec26c5f6bf8030b094d6dc4566727335f72d4a4a5a031b080720ac00420b6dcaa16dd9d03893fb9bdd3475abe863258bcc647a551219f504441210480df655b668dabea491251e7574f2f831c9233d5a3a92d3ca529639ad2c39e539a358270d12618f20b199d2d064e4254f1f499ba93bcee4d4c1b0ebba0e3dcfa3e1f77df53b2702f9b0943afaf3209d4da98aa96545503e4c9db48c3e6902cc7f5bd8911e39f9aecc324bd9e27769a6489549f77c556545265f52f72065900bbf0b7e2959fbe354563ca80ab99082e1773bd75abf8361f8dd993f2965e394852290993f555da5defdc352ea008bda098b1946390910eaa47b1acf1a35ea9e21ac10363c08c582d356a076c1b6777a3dd0489988921b2bd3a3277694514759fc849a29db141b4069229e363aebeeee685ff9fb30e5782e9296c9dfb2b4c2c4841ee599e428cf0f75cfa447337f8d948f7c60e6143ea2fa0f9b0cde1ff3957a039a26690a8ffdee40b4c70e1769a4a82c5fb191d60ef6601076248a22ca395a265f60256da2c9e21db67492bfac8692d2e4ed6b6639e7c447661e43daa11872b1b25957235196bf116b999cb66542d45ab9d872edb0d7a5ebbcaecb16b62dba740942adb46300522c50d0f934e7a47503964e91e51532ac60d1c79c744e793760a91457c868aa3580b21b89eae086462361a1055312c8a26f5004dba7e7c9fdc67283a7dc544bcf177e328777507ac04a2c3780ca5f96335359f7c8d72b33b55e0c8b0d8cb2c4a245964e50f192c1d65b74c05bb8f6ac2b602978632d0b4f89401d2b74e60eae0edeb1850cce1c8e1f68410c2fe58f3deb4aa9c3e211a41e4889a8300b33739db92c35d8927f32788a472c37309aa20905c820965247084439ee406d83a81a40e5d4c1c971549452073d08b2f038330b4b0da24089829558b430caa95b2a86a7417e323d07da03f527fee09e82a5ce7dda8378ecf0e108da3b72f7b883e02552e42753ec819f4c4ff1117a245f96528777ef1e472f59b7aeeea87a3d05c383233d8864291e89c24c4710dfc3aff135aa300b33bf68779d9675d37f3887c773c2cc1c26a18ba5efd7ebfb38ac839f67a697401d36014116d87919d228be7aef4b5d9ecea494722639c97349d2996d993d9d75b707774b58724a81ce5a36c7c994e72753f7503c9bcc27ddd378a97e1ad569946433329f647e880ab46910c05a41ee7e52477f480d15ac44238f616e245ca61c276b133c54f1307b1926b1943a9c28aa41964e14ed20ef4872d2b4657e8a148a9c2d60e91379fc7c9821cc528bc435fc150e1d78f4820b5f111ab5d6948a6611b374a2c84bd7751d75a2b682effb3e2c4ed454406b2f88609658c2a4b16a7dc10a45511459b6092e2e0e58b4b084c922cfc4b45a3386ca8474d22b58b6f821cf804d802b50de6882e777861d3f266a8801162d39c0020b29b4be610a1da4600c148cb182285adf483f497ff6bbec91bb314c080fc9f1cb30a13a345f31118de25196411eba8a21d943c2e5e6660ea0bcf16a59ff46ee1ed37aa7a28f21b93b09a10db1f7c9f37daad4ccd1b2e6e91e6f4ecc02973bdccda094b91cb92b8ee988efbfa88865e796f5e7029daedf98bbacbbab1fbed197be8e54d639f2e79556d038824b173730a1832de5c309a66849238a0d54409b975f0eddddf4dd7452e19494bb9172834c6cadb204972cab2ca125f70b906595256cc8638edccfc1516ebe9b8105795251d6b2b72c05b66ffbafbeec7f5d6765b2c10eeda08136d4c24c103428f42dc86441637d4896d1c5d38d36d4c208524471a2b1de4227431434d058180acc04ea5d1606655577ab2efa508dab77770ccae255b7888eecfe09ab7ae843d54fbd7109974e565c7dfe864ca5c2637f15be41daab9e1d7e86ab109700549db0e0b4dc0b8375092b675dc2cebc32cae281ba6f55c24a113c502ba0eff8d60ef6e31010ab5618a865f3253889176642d7ef2eb30a574a19386b07ff8578c908cb48110cb46cced724ecc72f8faf7f1f88b1ccde3c92b762b1dc9d8951b1e34c9ef33726f72f5d9edc486b63333d853debcb8fdfe4e46d944d250f8f393a3cdee0b08de171267cc5c0dfc82309b93109427ae84c31852c734a6692a2100a45677da7d92444489078a056ddfbd19954810f8968a17c885b1402afc243aa83a0bce36cbae3540ad2a1b329e2d7486b599a092694bae5f086e0413cf475d28968f474466772cea76945cba8903aaa9822f413a8c5ce536ca50ef9713ed55ad7aa2e4f58a4f89eb2d46c0f1da6595b5d5e3613f569a439eb2331d9dc4d7f8d5ece11be5a961741ee76e326e7023b36d2fc38a7e85ae6301775b95b544632eae6bf5ab928ee2377bbbd3cdbc74571514da27a2a4dcac28edc6d5eb151dd33f608515cd4176ef5495b61a390b67a3bcd79569e2bdc53e86c0676565b37512a2ce5a66caaf8234784b5ba08586f7575f509eb70100b4b3a132fb39074a2ad703fd15977ddb94e0a4b0dc00489d6ef267b44eef794390287975655097c531bbde5a669d83a0b6da746421ec0e8455bbdcf6da13e2ddc418978ec8778ec27128c7ad0561f7b890e6acb96eb399122f455d589fa78355a959672ad9d3c198322aad210d4f321b7aad6dc2d7b40e4be97c5d3e25d6919c54b30a1d647efca1d6a5d890babb7304c48eb318fc14aec5b18cabca4d9533168d5f211c43a16ebd5a88fe744cefa4f3e295e2d5309c2ca3c7a4e3a2823db3a489f592467738e200229c2b441e2207be891721ff990fb0735e476c1529a953c4592a1c96a9af7e45ad24839d63d23fd8ccd8413c75e3359f6483fa7ed9e89c3965191c595cef4f508929a976a302193d67dd23a6c14d2ba4b3a83d1cf0c0bc2caf4acbc34820e775e588a851d2b6da47c1a40909efb73cb7307e5cd714336f37823770e09d4524eba92e7b2edbffaf2ebeb3c85aaa62c04fbcd6ff0908dff309c73181eaa254843e98936147b0b50bc13d16e4e747c188609c18e731c3c740f23a2c9df541cf419f54804727feda4963151a2dc05c245a9669524adc2e2fce6b0faa111787144abf8881097f485867321dae48b229068371f1ae2e2862c37dacd25ad7261d23299817039ca603d102e47dd0384cb11102e4dda072933e12233102e4d40a2dc7d7588fc9937373737bf39ce0d9c1ace713e76546e2815936a88fcf990a48e7e4b115533a24cb469daa06e7d1a5533da427d2a67d4af50fd7aa35390a88fa4498a44a3727796dc4d992ae16ba90873953df4b5dea24449cafd08dc34e0e638f843a2b3a0cfe84abdc13950e360d972c867d4076516548557886872045594fbdda5bd8453f471642eb1bfd209267ca8d1a478691bd2ff6e1e819b7f4ef6bf57d2ba7cdff77ddf57e4eda3f3a098c8b935aa96fbad65e9628daa054e1b4e31e660e5c1b6ad7b3c1baeb05282dc6fa8f6f98c7aec2e48a9d42b9df51c9765e69c5faa93c1548cf9f4d14a5dfa1e327d37835206bb8377c41c7765fe90c2980be3f06794533073b075db49ebdc6d272da3616ae2996692e16238ae7b2bd160b9733178b42deed6dc36d69bf510b39ec2ac4f5c03670864f5cec9f77ddf10ea037b1fcf1c762f672c964d27d36967661e5ed555aa57d6673e73ae6d5e92fc39c0943faf23d9f1339a475ff7e8216d52c26e70724ef1d87df6d091fd3917e7de5cd87d8ae6df95e1c04ff431e72753736ba91e19198e76f4a39386b445632895117ab232dd978969c9261effe10e73f855a3468d8336afd9883f52af77f51790d56d5eadc4f529eeb2b412c6339f07c68ba23efdd44f5aaeb4ac3f6d2d2c73679eb9e35794fb3566aea151c90049bd5e2885efb396e69946464373297d86bc762dd76ab51a876d3dde4aacdb5c31e63636977529869fb514b7152debb6b5ecad83f4cedcb6efb3962ec1ba78515b703fb5ac5f8fb0fd7db5d61da797dc4fd50b44e69883aadbb696756959cc6b2e03825a16834b006770e1fe0a3377e7ba3b735542b2f3b276f3401d8a0c104d9861824c7c020d1326870f592b71b85950028b278228a30a295a7c081d6078f242920b4bc0ef3bea3a248ee33efc19e5e82e122e879fd1fd903afc8cbea3eea94d394e3a75b7afdd59e2d773ce5933424acac2ea5618ca215073e167b80af192d169879d8561f3335f7608bbb34bcf7ace2edf840aeb73edf119759983ba7306967b97cfa8070d1e7be8ac8c66f02893c1e35b38c45dd781e99ef07def39c4e390fc01512faa65cfb3cba4f5ac5aeb539887852e7fd803d3b2d6f1a272df8bea1e11b7130f4cf7b0f012ec627ed78cf493f487a800de157ecc0c44e6a51eb4c862053f0081054c2a90c3105f6c63d020053e801f13255ab4b0a2a9043af04286068ac001aa87a62a68805919e5f99c2b69b02b69206883d591429b6650b1c5ad6b95be1b2a090bd6206c67a34983bd080604d060379a349c8fadd4da618888360445e8e638875d66a1a6e1e02123332c1104ede6528405c130ac1e76499359884586d315b41b0cab3808e73797349cdb37b761d7d6465debcfc8073bb6edb3b5d2d7b44a12607201b2aca204520625d8510a76b5765dedbada75b57e075377e6567abd5a4985212dc3c00cecf3f819559fd3fa2d76e9baee840e2fb900a51ef68602a7b024f468594bdb90ee19fb185040cb5a3ab513d89572f6b5acbefee8963c01860e7215a9d451ff9ddeb1482e32d346dfed5acbba6b436c34c83f23236ba4d44f8c9660ed4489fa740dd6b5fe8cbaa70c283da0c1961b0eb72d8e54a1039816d410c40e34d87c40e4e48a14a6190031c51359d01aca9518a03821c3cdc912970f4b46b8c04b16b52968cdc50d8c78508517232bb850210b273e34a15285132b1a1005058316347a7084348128804822aa0916b631bce081144ca294b8f2830bba7f4ed80a72ffb274513ac6107285ca3d53421eb917e99169db7223b5acff1961b160ecd62c48464e349b0c94b8228c17aa189104f7d8ad4953b038d1a4e8a37e461f934b0f3b32a23e43609f918f21565c2088275892a8a5d183135abfa3dad65036bd811a2e6fb906d5a74015c0d10b5442cbea48942587f157836c473bef3db8d447ee1d06b9cad57a221cced1b25aff6dc10362a07bb8d93454a17b8a70148fe0fb6091994c652dabe786c872709403393cd61ca40308275cc0210a8734be3ca83e857aa0fa12ea0f7edf57b9944a012dab97a00455b804a096d5571ea5d33905e8606d903399c72f67b144be32505720708aadef1ba88576b4c352de519eca771f2995a7f244684ff9f56bf7750ffd64879dac74cabaaa19ec4406745902e94cc7283263c5a4f90b7b36e52aed496b775c77b3e368953f72a459fe7097ef56929de7eacdf334137593a3e224cfbf62dd53a95891e76b78a5499d7885e9841637276cc09441f0ca486c9e7301567ed892bb07b62ca0b274ca82491ee712793e479655b240223bdd90d247a747965247fa04d11ca1f4a941f2493e19914f495a36650b08972e7994b7c64664b02305c2641ae42e64297a5ef8bd6faaebebd0efc3a195b9084af7961969d54109721e1ec3ec3d49f7341e6b703792e4442a46f2a561bdd4c1cfc7f72f0dfbdd0892249ec800a21ae699bd7797e07c620449922b7636e1c934996a2a454506106515a62999bd3b2753cb66909a39bc143e6999cf4c0a939866d24c62c28e37f23c68c58eb562b1325956c9c2876cb3a4050c2f904205366092635cf121071980392a4305b4792349e6ac1949e214be7085085bee29f20a11529a0a574337519f6ab3357513f599d506a6c08edd649b229d6af0c5d10f74f08216511e90032e515cc1440e5ee0c394ef9baf50d4c73b5163a1ee2a3cf41a7a11c1ba3f240a81e141587b17d618d600efdf85745761252a25508454f8a34a249d716458efdd61fdef92066b21a97f5889f8d48580e1c14740f5efd3e84a0a133289a0628817bc307164d8f0b3a4541258c54a1acc6683275f7ca034a730495a0b862e5bf0c056a38d73cacc72c9b0b03e114dd239b7d0a68df322f5494b5d0914a15049f81d2664080a2c487507489a0a4b3a13d245dd10c60e3b64a9d568323a9b1f326a9af81654ff30ac0f3efc38b7e4f9d60d56d27ac8a82c89c114537411b1921654b896c2b0c641b2c06041925a2e6130a9e5a5e3b78327d2f8c2f17b71fc75c7224872ecf7397722d1cb8a9bbefe7e9cb713703c46247699ef5b4401cc308a83e078ec381ebb1483bcf2183b8e03f58d1d0726123b817bc730cc8426c26122f4f68d8db44c36b9397779171e8b20c937a75dfd28ceb97337774e114625995e4e1146121c198952192753cac4073bb38dd7d8784f8b6ddcc6e63931efd771dc03e021dc388d8d1bb7a8db1730b7a8db173046b854adb917769154d8bd3790d4fbd79ad38460e37d3c6200841002c6f13a8e170e1c3870bc701ce3c0386cc4e0c031c731ef1b9303628c5fafeada1dfbc4b020364e6f2327e736366e632348ce6d9e63e33636cfb14632c58921a9d9e6291bb7b1c1638e0d6d685b16cbb98dc7ee5831929a73b0cd6b0e4455d7da5c99c39aa76aee893e302c084db671a0aeb9f1181ec31c3b38d658a59c1451e06cceeb54c4b1d739c27decdd1c01c763213c16a3371e9ec3849c07efdc8fce76ce73d075ee0038c87377389e1d17d714f2dc9dd95431e5ba3081e6dc9900534301876229b38f576c2e79c18270d9752ebb5caf47bacd287aef3958ad56cb2ccc3ca350c0c1f75eac91996d5c5ee69cbe4e6d3ce6a08d1b735550b2363e4a281b3e303ec1756e69e7382eac1ec765be1756f10f1cf91eecb03f297646cd5bcb387169e79263e500451f4b3bafa2091cae77e69d9cdb710e80833bf79e1ab54cbe8564ef65cef967ef65440610e52b693937c8c53c47a20f1d9da65bd337917cc8649e4bec488db2fc28cb1207cf2f37b34936cd24cc8d61e93b144fa05f81860993713c0ce1f29e480d6ddc5f8a407e1b076a9c73eee6e4b42ce7e3cc39dc5d97483d77b0deb86e5c1816a4ef3a90be2be7068ff52cccec3ace893250bb5e15dfaeb9620fe17e5247ecf7a6a48ed8e9ad5384d871dc6e8a103b10b5716506c01dc31b772c125226f62a744fcc2f6f84d2ff98a62ca64dc400bb29cea5e8a3fb381f67d32d2abcd1a50538b8c190c41619449c831616b4739803246de73021973be7b93de84c7ee74a3a5b3d7103142010e1a456a3f17ce720ddb93c74876787b6738d567085cb195f1c39a1a145136e5e398af3226176dd5c166606efc263cdaedf9cde51671c47fa9bbbc2508e8c834255a17b702e732e716eec8a9426b93fe3441f393eeeecf4c6e8ecb1e3dc48f7cc2e7170289d21cead995e290299bd4f64f67e1569ad5895736397620e2ed232393b50cf29b3a9093b7bece36ccab728d9a56fd184fecc8567978305a1a324ca38b3d99db94818fb8cc68e9373fad93532bb32cb5468d9fc52298e17ce726e11d9e5a2ec28a15c076a23588596c917f99eec28a18ca850448244b90809999e28d73ba38a5a26efbae19c9aa6e079639a49b8994828218bb4f926489ffee6148fb265b1533ccee49b13e8fbdc25d21c876140385c8484ecc223779cd713e5ce39156a997c5018f60927074b2a57ba4766f999656a994fdd03a332cb79bbf54cfefbec685faf2794ba1b1cc22854dad525736fcfa3d7533cce2ca200e68a53a8ed51a1ae5b03d37bef653e8d52b8f7f3de7b655cae145c53067c9776feda39787363383784a7441f5d6bad15d3a750298e9f7bbdf1fa11c7d18f995d97edc3f3f1e6f463088fd5d78a73fc9cefe09cfb2be7f57a8391d09cf3d86d25d9103092ce391f8fb9c7e86bcec1446e700ecd7d0323e94c1ffb880323e97cf3181e2597dc8d8389dc3ce70613a1e7720e46d2f9de503c659847b9ba6e0d3015d6a84173b0419edb73508a3f709ef3be37780c6bcffa38b7e7ee9ce7ee1ce7e6c4766e4fcf772ecfab277623df1ca461cfe53918c2cdf9cd8d1de7e6cc8bf39d4b80f0ca9e8d36bf08d0c77167beb97d9e4b80ef5c1e9c73a02640831dee5c9edf1ca8715c99732ecec19b3b86f9e63cb7f6ec3738648ee376beb934af71659ea191919189394dcc6b3eed2be6b0c31ea37fdfdff80d1bc7211c0031ef39457e4a9137e7def7e6ae3b22c9ae9b7aeac2b09c737884a180f3e67270101c2c5bd6f4ae0351d71d5db7a139a78dc2cd5d6f9ce360580e0e728325eec7eee83a0d8edfe07873afafb9e91b1c37b89564395c24ac694c04c76f309110de2fc2e12261c68165cb6ebc86709a03e08e35e353d104314808b8b6ec06feeb8d471b58b60cbfb60cd313ee652ec513ee657ec716b20c9d62109a65645cf764de57e6af7b326f7ace85c7d7a5f823e663edcbe0ffd57fdf378d81afd76bfff5fa1a5dbbc69b3b96f9c4b02031a78f89c50ee3620e8b39ecb0c3ee18bb2be630d863f5d29ccbf6d939fd70ee976bfdce05a23677c51c06c363cc15de5497ebf4de8437cdc99ccab83091d8633e565c24cc310c3b8dcc309b67eef8ca34b7b923924cf3aa0963626a2521d399cf048e48ccfbd29c5e7b49719130c7c4e02e6addf98525bfbacdd43279f1f69396c910cf1b87860555a9cb244bef52f481adb3a97bbedfa2be3bc1cc2f2d93bf02832c593a657905064619e9f253ecf0bc75b1236592e5291326a7493b972a3439c9cf2c4d5328cd4def8f93cae5fac7cc554a1d9db9db4b3bcf7da79496c9cf26ea33917690b29c482d93e79a8ab88db1a40633a0887e38819420ecc003a530251040942635273110e30c32a47cd7e4db487edee467146ddae9e9022b603d388404f1f5b7815f47c5c284540fbf870fdf58488987bf8717fa1e62d8144a5d1586deaaf51656e211c55c4660e63417d23a0d560245c8bef599cbfad68cb5d96258d0ab66be6a5e83012d4b410258a86543a8cfa4d9d45fc665a3437d24adaf3a3d1a07953031d0b2aac29096b5d87a1dd294eb1bebb4ac42b11deae8ac7a501fd8f42ed4baf779cf7e8587bcdb0fadde3a11adde487d92fa21f52ad4dbfb263b3ec36eeb36d7d678bd06765fb7b93532d70892a7620db2d1913a64c08553f451438ab01e22c5ca2341535ec2c07af948cdb0a057cd5b8435ae3ed824d4470e913f5eaee792e4cf08d9bb1c27d2ca019266838b8a682ef3a299c79c8ab006b4feba50ebaf156ebdb1907d0d1ef2545f5d88ea2bac048a12f0aa0b09c587e094934785982b7367aeeb86ae1e3ae0554f41bca47941de817a26d159bd088a17bcb0f9d589684392ce30088a5fe12111ab4067f5a0a48943e8acce0391f9c84bea98ff4edf71e285098557fdc284f0878364eaf3b00e4743445be68b9442940851c2bd9334d96b72574977eef42aa96f4075400713e2fe5d9810ed30572fc51f9dc9d9d4d61dcc9226695df87921a1889588ef4fac048a90f8be92f9f0921686ac90facc4bcb7af7aef525fbb065ddc79916b61dacf685550c8b00eb7d21f6ad0be9c76025acf75b58091421d6fbf6923663295e6a1da8ed95b47ac396d1ba773deb07a500d4bd041686a52e04fbcc41b18777d240996135bc7aa365ddeb9781a8cfa4e1bc9b46af8f32caa67bcdc19b2b69383336aaaf7bd79dc3b576402deb5ea170b4ebb02b52eecedddc3ece0d656217ca7cff05314645ee600de527034b5fe33817f629828fad9052d11fab0c24c5d24ff10807832f773e8e7c87a570508dea83e5685ee4facc53a0dd6b94fc19417c07247fbedc5179033d11c82a5718d8aef1d85380fde6520cc2e96e6255084b028779784458500d583f3c50c3ae12f1e16b5c2550b82b99b006ccf785e6c5879734cf01537480070bea0eebf7ad3e8f06529bbb72ddd6cc657945fd3004c3db9775ed6ddd982b7363aea4f5ea12d56c7f2deb2a144b3fd6216cd1c4b02a4ada09cd2474d67d9e88d6170a566fb08aeb271e8252b1d0ec3e710974d65d6249674434a2796527856d491df574562fe98daeeb570cc023486e8cb596bbdc1948019884f9346dcf24d8fa136a6e1162e94cc847e50da1b1a8248d53e5a19c850a9a91810000002314002028140e88c442d1603c22a72898f90114000c8fb2466c4e1608a41c86619041c600420c210010036008800c090d0a008fc363e5fda3f1fe768ebe74f5e756aecb1691711b74d60dd7f93452c81046d35c994e4bdf174d8b211928df0b29cebfcb2ed6d42e55a5bd72d4164549208e9f1d937dd335f6ba2fcd5ba0a19fe6c31872f356c469fb746204b6efd00bec048275889133e7684ba2e07432ac97dcb8214db7ce6a945b0a2b550c78e1b0728a5b29f3827ac41265afb24dca18ae6ebdd2363f70c5614bb90ef9764578bb202a582d900ffaf52a35afbdda438ab94ce85910016626b54ad86b8d962ce3878a966b0f09ce4c6ce3818703c330c411621805e5cd6af6e8d62460377bb14736755a58c4619ce7954ca0edd96b1f9f4d8c1b8a5f8293fc566d212199de338cdb1d1d8258acc10b7733fc9e0ca4972846087c24f8323acbb13211e30a991b87a93652ffab53a83a06112ba42d54dfb8f614949fd14edb747cda42e014a93535c2afd8e5405bc8bb6c2579a1b26cfbff420af8b6b0c39a727e10dd07ad9a1a93bd01dcc7240c31d6b9c6acef03c47480db4243dac5f73e2b7b2f5d2619b12282c75362609f57abcb526c4960c1f80db690fd7be7f4d4a2610c909f3c32f7594ccee3a9c06d5c9b411f98f1900f97461497299c2d3c91673e6bc62023ac1d8ada3a78a6a323128802879c0d172acb59b07861246c5bae3c51a6609a3fe66d28559253aaeacab786a2114d94294894888e0351be01e5e4686b2a8ac604b132385e55f4dc49c72071e4052422a5029bba9cd495fcbea65e401891d1b0c6d69523807f98fddcdaa5ed950f79b1be8e74d2ca5251975a446b507fc0bd78f197ce541670200407e68298d5a4024947d3e4f39648a9f70aaab386911c06d8271636370aed099b8550e1db4a4d870f8a0e9c0bb8bc7a6b2285188a105566432c5188e316f6b4faa4c50d4a02297ee007a480444ece37675df0613f94f38ec5fc035199015f30a6f1d8f7073c0b4d8b55b793138080dcbb19018b054be462302157d4f9ecb161196afdb6440683e36641d3c4657608760f4c5eb8f47bb31e9e32ddcd94b2e35f395ea0774360b0fb945dbe915bac23b5ce91b0a4b74d26c32a84c71b5f791f428d14c24ade3519999c4f9add313817221c5e5fd73ec5b8ab699c9bd019212bc599f14c9b33c2f5394668f0ad530e54f2b046e2562df3d693b51a136dac89ac4cab4f49ecf4b289a3936c580482b6c9d02b9797202928152c28889ab1d1c74819670b7d44a3a7b859a6583ac1ab32a0188ef91b122b7e7fe541ece992248cb64d5d03606f4cc6f7bd530ad6586ee40a2f410624b4edf26ee5da33d9c5c5a51c463c0eb3969189d4abccbf72196725d1052634462f8690781408a3a4e769401d2a88db89b27ff160ca6921504200c93ded22d64eb83dbd6a4a09a6e4eca35aafe7a668bbd8bf68a1a7d001b4a77f6675003edd6a79b86f27f47580f80fb238db1e52963d3d4c79d580251e9582aa72b996d799f14ba96d30fd1f9e644251541250bc2123c68110981b27edee2309ae1186c316357973db37c1627ee104ed5840f6c3206acaab20118138e0d58793aac657a706cbdcf650edec3af28ae9888af8af39e6955ab7d3bb2fafa305f4214e415fb19548b71ff51e7ba000ea5254f91f8895298c38fd77a0af0e2870010d01102ea66aa6fc1ce5d42a64f19d4c9f72e6c6834cc5dbbdacafafde8b2a4d298bc1e6d9092431924fcdda87d44d1d16a96bb7e177d1273d3622833b4eab8b3910e8888388d4b51757278845477b2e943058de1fa727b16a96fe5a34f8a4f993514af057650de63508551fb452763a626d6a0a4fd1ebe161c76da6ca85c8c529bdfaa0bca9dd6562e4e418be716810aeed36b83753aaf882eacdbdf5ded99105b9500577d21596d19fb3c9ab5ea5608363d12f950fa2da1cf97c4886947c850846e2e902f79e04a2eadc8b0d9118092ac8fab242b282ea74e5f7eb28dc01e96a7fca1a79894b8a2624a3254bcccc909d28b880c8975e3987c518c05237d6afdb54524682faea1ada7611519892ed5c06f98f5383032ab616ea84f30f21df3f70316a2be889c64800480254d1b9694455f824538117db5662ac3bfa5a1043f90cb28d8a376629155002708e781b7a4b0bdea78aacb15c97cba3e1ba2d7622eecc3b05f3604af69149212beca2795a0d64608d872be91a149eb41c0f8c19e26cff3e67d4580129129ee170ea5d40b528e8debcf0a7ca6836f42668ad4eba1adb90ee8afba5bb28bc676711d5dbe178f5fdf5d6d9c049ebd720923f9280e33acc4efcf1139c0397630c771aa4635a001ebe69718dce169431c0a3f72f6acbb955fa7b41c6b06f2d4c08d7309191fe84d206957bf287f9eacf9bedf0b19c9a392716d1eb97de9a3b16dcf8afcf327183e75f395480c1a50f942fd98dffa4c7404941b47ce62fdae53b4f18d0eaa72158dab250594b1b3c0782d7882ef38fb1114b542fca212048c1193603789336a0ac1b5e4213001fe54bca6e83efc4004327e6c3199a535e5e1096227109fefc4fca3539b3f40768126ed2d90c567d406876565332a0d9b499fe64cbccd49d7cb144f38b8ccb86e7a7b8b067511ae033c6f66772dcb4edaa8b47c5cc1d0ec24b722953562b01914408ca97003773573924adccbfe4accc8db1cc829a97e1afd005a8c0578e53d88ccc1775ba5fe47feeac16a00bc68946708fa099039e8ad5970477672e3d4eca1833648a5c7e2ed341bd3daac0f8306b7a843423bbfa92d5f853d0ab04381c1e7cb1d750d2600971a96c09538f3141bf9606d15449aa5838b82c661058e4c60503f83c14a4a31b44082582de27b2c6f2d434faea98b9d37f77bc0ef2ee88030d241a073d651fb35bbb8ebd27fa5dda84ac95131891cbd9625a15f4047e8cf418f0f0e4435b514ed1ec203932007540d14020ee8e557245cdc77b0cc7c77a6dd45ef72cf7dba6945a174aeb7e2b5b057448773d9ca138aa43aeaa573d7ebdc4b827c820aa2816f15ba188665681b7e934a615c511a1276486607e61aa799552d730c3ea33b8e87abba3c469ef552a2ecf830176f39f25e135e4f93e95911a1607962b18473a647e2996fe104d7930442d90788f1ac56dd3b656c26f00a828ded11fb11b62ac226998ab8838e90ce350fb3e6e721938c9970465c4852dc0811db648d8be148a46435aeab67de98715c5a4330570c579166fab6564709152f9069c71032809fe23c748f95023ece78b288577ecc6970865b42b3153f827c61737ca9d798d239c5dfe955dcc7c3e30ad302d06af86a2f222d9bebc39dd1c4b39b5fbf9ee98061b88d2a817f3c8ccb62f558728c47e50768615c5896c97ab299b1a15ec7d6517f3060867605851e0b60829ac3819c46be2663996fbe51911f7e774da6604289c5bc96d0a56801c3938c2b7c45150a2b513e9a30f149445b34a3e6ed1e0eb07831d07f485f9fa0a53e2bcdc9af00628d42456c016c77a4d71ff2f7a21eea3230efb1a5694b0ceab58918ba8b7a264f43439e138da75969b5689ecb16d07482c166d395abddf9be63e3611befcccc06f62ce071282c617ea119589f29f77a68dd5f0b190ad0c165a9fbdcbc4abc9b1da952028d2fe71ba0efedede0e28045f6d19b95433d37bef85c09cb7b0b671997b512ea729a0f9a908c492e6eef0a2227c71f9dbeedf16178373e89de262fe7a065e0d1a53de3056cdc9d605603e23c091ff6f05818e6807b89c485d06547fafad34a396cf10e2640731321232295fa5113b9cf666951b420abbb9b35edb19f650cde8a167f4e8230b0419135ef4864b24c3192f394bdb3da8fdda60b037ba053d37f7ba349ee11471b82902ebb00b605416c2086562cd834f6c1f0324e65e5dab2c35a1c23cc1d94e4496cbafe88bebee243367ce433be224556854b415e3d70f61a11ea7571ec44090244d9c47831b8b184bcf3d458b212a32994bdfdee51d9644a1ab1d1cea4cab773defca16d49710957e3ec9963452f76c5fcd692c68c357d0275becb7109cb88741839e3e88ebd2af6e1e85c93a5e0a2715f011977292dbd7d618cab54b28359bfd5b15c8809ab27c4ebc11e9aeb93804566e4ed1ba93f44144891ed965a768b32b46bc9908f0e817bba6c4853dacacc98d658fc142908532adb0fc785d853208d99b72203d7bdd02e8820b9320e698abf38a3e3b765d07dab472804a23c0f022707fb98ad077f7f4178a1d5c9c53c1140465634eb11aa2d4f9ec4af9f2e20804806cb8e6f5442b87a0f0b2a4fc623e2d9a8862b90686f29caa28e055f81e532d0a82a00f772c61fe396b4efd78e082fec455c08bbb7153d59556fa0c49542a93308f0beaf21be9b110d33d7e24ba87341ef23f72b6fe0f11c0580c9be17852d0f0e197650aa574e5140a7aeb44159c2a022a69682a4da4a2a50aa5d87f80aaecff078802dba38d3094fc7c6a2f9de618bb29cefb9d606c5301d4a43312864ad4421aa1e649f7419c2abe9feadedde27c4f818dae73510d377617bae9e4e3bf2b044b0b9b3306ece505fb923da2c0ebb646d10bd104a1dc433236e70b7c2e2a16d82bcb66ca5e07761057054b6ec9b070a87cd10aaf146a55477c1e680e1033261ef0f01e96eb586b2c2660cc61ef756a23ff4c3728e792ee85baa0a0147650b8be039a03a8a883527045973ce6fad29c27fca6b34ff446b46ccee2602a0c524cea9108e35e80b538e4dabf422f6e1e99414ae88ee56d12931fd078d3f7b09808535150967e5728e108dc8bfe30b8608ed1f721ce46fdd90c6b5557fbd775cc0e615419472ea37ea5e45ff0c8faad7149cd980c2f25f585fe9d201eaa39b501fa54cefcc62d27259401e2947cbe33529789d9a72eb1092d3059a5b508cdce37e95d85b6b81f0072819028ed8212291d0901d9316c149a5e13547c0cee5ac03002b1e8428f90289605822a09782e2128a1db6f64b8b51c6876ae2f8d0faa405438ddb1116bc513c451569927ae0442401f5c0e63ba0dc6e1062da7ddd0290ee811e4afc0f7c793928dc438cc5d162d12949277b5029d41a5969f95d26c0177f2dd8307d2af79feaaec3362a343f1ad253ce1ae10a2e26b99b2fa79a0633445969710d637df9fdf02e05eddac728614aab845ff71f1f4eb64e430cee3dce6a51dd87333cf61f42208eca7552e318da689270f1fecc279e4874b1c044fb848bc357fd2345a027b36affb24432fa19bd4d1730fa310498e4c3f86635e05aeef7be040576065dd4556002274faa59cd0cfd97e629b2ce512bac2cd13e8d2c1407382b7dab831bfbea1edbb3409b11aa06435f6dc78188b4609afa4183bfdbc88ad1af82f54cf85fc66da15557f8afd7146aabfb17e8441775e73b23a2aec2b51f560c8fd65a2aac0de54167b3f6881e6e8e162efbd78adced295d93d7d60a4435569f4d03b83aeb62f681af139d8106980c9079ef2a177ce49586fe4529ea1a3ab68b67bcf2be5dd04404cd6c3daa0a9479ec7ea440408d0e2d9b402eb754a88f6d16d95bc361af0fc413931c10303c769ac4e4e1a9ad90a62f0e3d79c32f41fecaa13e992623108b1367734f46bf30c9d3a9950f2c861437bf1208b756dbef0337c7c17193786f4eb9c2df344779213e7c65d35e41e4df7bb5a37ce039a7e75521ffb3ef45aef6cebf289cdb5130c36d75827cedfc39a572d10a59b5178f2d9953e41818651724c826b23186a3f4e32fad86267586b417bb90fdd2a549bdcc8b7d73459ad12c0eb45d487b20f40b523329af0df8f437f03112f0a07ed98bc769b4b87d6e821235615bb680e9fb798f3e4deac35d3ce21d055387b769305324231a44b5139fd58c61cfc92041edc7efb032f0d05f7576025ec84e8604a36c219faeb68b595e1ab1d17379453674d0994e78712ce64b97e4d05899f08e952454e22e48188c00eb9863de582481f567ec25a0224b2b6a446c465e368512017274bd13c2a7eecbf6c80427c4918573dcb18b4f1b9a6ea9c07fd7d2c261ff9d9445c7d6788287c20f18f4bacbd7a7ad45f7860b45b27906aade9288c5603104d8d217d08396a33d339316817f9af5ac7d9324e256dca99927fb2237a3f5161671ca800d941d9cf760addef3941458c528dc57f2ce7d1c20591026b2c8e70d711397f4eca3f59bb7b9efd6923b7db68990efae0d4ccd76a4cf8f9475fe020ac67e5424bafcd25aa4073890920ef58fadb28bd1cc5f77f434dcd825c86a1067345e3ba2ce3246ccc82630df34ff085f20568bc00b814622e8d3625d24c22bc1e514e0be61b395d5caf2f6487adb5c4cc064fde41e4bdf1d9468e7647a5170f41970a72e7004b15d18b1133630ca7081aeaab57525cff91e05602c87c3eff3b75560354a1fe2c13cd692da87000cb29cabfd808f5736dabee0a20cd271e10baf33b854ad9c1639a5f791f47c0e55f244b9de43ec1c23648364e0c8b24320a3601a8bfef3770f8f2ebad8af96acca43ff4301bd3ef4c5ed5c9a2fcdd840dffbac72d5fc008311471fdcac9d947a34441c853d4148548fa768292834c9f557dde972aa28b42f0cf2b3d688b53d5071ba5f5a8bb37132dd34dd51aeed46697d82f55d83a6dc5d15a4a483a95702513bc622d046bd8cfb35272536a7a599de4200e51aed2fbba9fe9097630e3965c832425b260e8814deea5decd34956db2753f32c3288b293af39e136e7758aeba0ebd7b3cfdf31b21f47bca59485589cb0e8b5ee8e5a63ea5764867da517ba814885a726d5b1fa740cbb2ed4f638e876645891a5b9f768a32f2a03e052b3b9eeb956635b82d3f9c55e8da481da19539b20a7b53a4d112e74dfe24d2a321a63184a7598ab02ea281eaac6b231c6cf4b3af204754c33509d491d7315e0b7bb63dc543b9881531974dc59fe78a2c7b5e17fc2b03ba0b92e22d211b8b381165d1162b1c0e28760f58cc06f06a29aa40d8b39bab798ed20b6b795e95e35f2843c31b4b03e4729d516e6f0f1335aeff9c00675efce84790a842e9e0efb35f676cc4b4699a0cc33dee81ca260d3d1a072211004b41f271b5dec2b7d3edc51121ac531302b5a32c05e8486ad1913c1fc7811fa2bd4756e8cb7904cbed42122c3a4f72460cb15075cc71633e0e1f42beb25e7d55aea39bdf6abcd01c5fc879b51c9ff0a356bd350fda381ee7af2f5ae65879f73c49f29ebee93d029cedd46d77ff03074feb0cce158b0f0004a1117a153b1745c6f137d970c07b9419e19bde213d227ecb4a14e5a6121f103f1c95216d9ca4d342f8401b99d90a45d4e73b7292a01eaca0d796f9a1c7437ca4bf47320082a3ba2b73c4e9f1412a14e1cbdf03088a13c0e4b3d042c4483e29df59b9f2c9c50a02160b75b137829f14a54d9b32f5eec61c3455b068a184d420be9f868452deda1632a01ba15c43cf509f52d97567688c4b8e90a21580234383739748853f7a5c876fff063e6f45f52ab3cf964f5ee469c91dc47361680ab21f68554dfa25a6efbf8117ec263496d9683539e25c0df67e6ec4e052b6cda3eea7980cb5ab385f2ed30782bb1458a5cbf75c1b2981770cec8db61f1ed99c005ed4cd4414bed07fd05187de3ae4fa999c5a45959527c0f49366e5ee1ee1753272d4130859083e5b8de6f944743a4d86a8b591b184ee2bc533b12fee4075e97a218b3c91ede4ec0123130efa15c34186da611078e0e7045701794ced1a9a8187a24af395cded4e6d3f293573adca4bd595faa4435df00e2b7c0cf943364eca012485371096640bf23b07b199a0ccaedd8ce3642d5ca89fdc710d77efa53e79aef536052185e24de422c161f66effee381d7f52f2d5219ea6c5c5cafe1e5f2e65a0962c57a9077cebde7e4bcc334b9c18bfc3d698fd6a300d39a6591bcbcc1584f282446606ecb4254219651e1fa8df195b419e0147c6d4345b936732154aeccb5f074ba0301b2d53f241f25ba89469c05c01448043284dcb53bd570895341970f57ba0422fcdf1e74278789b3ce7424775152204da0a21146878b927e0bbc63e8e7f22adddc11e72385a5d8ccdb4235842a7790cd9099247238194a1eb2d2cfb34b9fb1214b4d12e9b4f9eeda9f02cae30d7183d2e72c1e078848bce6444141e15e0f13d5c26e09f0eca5dd99f0b3b0386116d2e7e70747a07915a216402bdb3a0f75cbe74c00f4cc61987e44bed4c564197aaca07338f5a94321503da5ba052df028961aaee39845e571f7f279ffbfcf6b98ddfeb60d0f0ccabb902d092ef6697d53c8017d23a258e8a081b183788d63b188a649aeaa30cbd51a7afa668a633b6d325487dfe26289c8a5881924f403dee5b10e0a23bd2920a912c6365a2dc76a39ee6e2dc7489a907e4703cb5f4422c6b73c1f4d56575cd40c89d69e52c6341d11b1c7b356fdbaf1de250a0175a41174c823a78bff73594242b102799219c1d04e750b0242aae6da90073470754befde41475f89ea461d0ffb702865aa9f8bdc18ca2eae7e61c7a57fd56faf7ecfcf26a36fdfaabfbb8673dbd4140027f490d87d6ee60a71b740016c43f53d9b87a868fc852779f09509a23b2d3990eb83b368e9dc9a0b693cf293d5ed02349d811a1fe6cec2668e719fd988891d4746f1e6bfcbb24ec3c8fe8ab4672c4a8758a10ca184278faa486c6e110622040c3ae20167284855a4646364af4d0e69f169b916a2a08290bcbeb3ef5a1240bcab5721630ad3238b56f35584cbc0721300c8c9d1294ea1d55377540a1e3f72048638fdb1481681d3764af8545766b529dbd1e4abc2a9b0ed8eb7f887c0af05c67a8187910e0ce78a54e7ecce08e34cc6d24254a0c494ebca04b1c9daeb43eb05bfd826811f8f61b46606b8a6376ad29e1255c5f12b08007f1fd2e2c66d9b6f5e87dae618219d76aa27a5e70f76d6b697e3ff9d9583c556418f6a31af7294c990314762d94281c97ad8759485d0d078a39bf51ba1fa2efb1e31aa78571d53a302dde9d87b258dd66511e1043416e0ef3e4b5e0d4455f54c367a625276f05581087608f2da44c5f9856dc0b3c8866897a4f102093133f4a79d4b350d4678e72e2be6f1ab01fd7675bd68512815ff792adc3fd5d56c620f6cf980bdf3c65af54d47500429175c8c2d04d0131f87bd8daa54d8208c75e881dcf109b1fd6532886574fe1549f614c25273539b8579e32918d9104221d7397534a4ca123aa6ce3c14eb2508361d1134983a18b94365aaf6164c3b68a68180deeeb86600651c0d48e500d3e5e7a0a1b20d7ec7203a604def3fc5130a8f3b193f4fc87f79246e7b0f2cd4fc3441231a8e0dcca4452dde4f79e54a226816e264ac8404fb3c8c416eeb74559c00eeade4f671d806c62e5a0eb618568b7595c9bc6edafce8f9fbc10847f8a7ac0497b7176cb3d204e479c6c0ae099e0f403d14d583151ba892074b750efb1861c8e98e217894e6dfec1dd8713297f6bea828c26080cecb28ec63eb58b469ef6d719221e21ed9ebb129e2d42cdd02518686f4047c53ee90d7fde1846c5cb5765a2089dd5242d7538e8a009b4689f1323887932f990f54156c3aba94893fc6010e6128d74450223d06b78435a9280a6108a27f80c6e74feb544e0d06b176a7dbd76acdeda6fc0ab93df6b93475ff5cfcf7ad0f900f1d77440e49e245e9f157f167a817d530c5e916ddcd711de7acb49ca9ebcadab784f0f1fd4c478cf4a7a178df19e2db60691c3568113b2fa2ec73ca10db3d8394871f6793317751d2beed6747ab8335065b6d2f6c44305b3f1ac19148b6af332b39b3b7d952aed5a4231cfc784b7d6556bd4d278ac6265df363d516ec92a44f25ea4b2ab4b68afb1892b18a44af49b83e0a02d385eb811105f9c3be3bf1906fdeceb9abab4dececf89361c38fd0eb687619da60d9c015ffcaaaf79340b4fd4e51e70f2d3f2a3f72cf9cd2c21b0d60dd4f02ae967ee4edb68f721886a22142d6b3560bd8140c6f6537e2b2e68dcf55ebc009d3fea68ccf80e75a56b0612ecdb10d43bcfc44271e2bd0a01846f497ad371ccce67cc2fdff8091f0eac1d42ec632300ea0f21fe08833961b1f4e20fecd7595170b57029f64b27e70fbc36c2f613035210f936172096de4ff706580158743dfb0c62cb00154bdc4f5cefb620f6f14c6900b9f72234f0b14a47c74456a49acb5ddb9da6dfcf26f61c77d7c017eabb0145684cf9399a1efcf19dd0ba5d574c6a78de7b9f525edd9b40ab8a83f90f9239206f2c9556012bb51a0481fe363e25371f355ee271d0034cefc6a477e5f872776eb314bc8641fef157acb0dc068864992c75216dcdbb038b9bbbd2532934336720f7dbc16d720f90249a1bcb55aedeeeb80000843afbc8f4be38d39168a754a69b2d3e4feaadabe20512d22d3f98019ce0c462b3177c659f9af196171d21393ef89125749ea1a5677435df2666992cb21f2c271348924c23611b5bea8ef4be650aba0ca7bfa6cef0aa2bb2ffb477f820299ed2fab250f9d73474bb26f2f925bd7a0f8f4f3546249042b742e7b64cd063570d0c4728a490f2e94d991aa364b28e3fec6a324c61d657b7d22e02a38b7ef802d44ad4cebc840e4503576e6f237e843cea5ab7493750d0423e3b70f5f5220a36399ea1fd597e2383dc1481a7c9ca73845561e8fe782fedc133648c1abe797bf981022dcca040566ed745c568d53625ba407bfc4755db33414c0ac1caf9a3c24d5b10f4c924dbbaf0ded27a7b51f27ef3e39c8348c4462da1cea7a67a62e33003c40e1ff81c8a576c2bb630e7e5ea47c936149392dfae66c828e9a944b70f85c5d5641f685a6e5cc080832ea2b06149f4498ad78c0096e36fc59fa7241379da8deecab0fb04b8c776f7aa6697a170d048f1c2b06d002d2f5599a02ab1e7cb262d21e87ac0c9a958aa3acf6d0263adf630d2c83b15e22f3cd7170e6f3f1ea5676e6f9a1f03f8dafd603bfdda23b27d2d151574065c7407988a9dc87eb39ff6cca418473158ec073bec67175ac07e5b3e1a900c3c4d3cb5428269ae84c2ad5f393e2ad7faf952db3e40b47ff3a84f06b37bdc484466f38e1c8234606dc5741361a78cfc0f7d4c18b2b6decfef68015017dd005bac5d9ba5624d56494a2c6333c95547ec8757a7324107280ac5fd5e008ee79ebfe368664d560c9deee8739ceac9713484b738d9dd46844cbfc522b66ed1004a82e193f5b75838f2e63af8e599ca2aa5ef92ba45e580eac931471b73607f9b08bdd087ab00610a220f28c3a88f640550240577f552e47f75b8aa852a056e2231db3e6f9b893b1e12941f3126303e0582d6a17d5d792560336560a4432cd255933cdafcee7be7050023ee2026eb7892115c291dae3149c9e14710454ed7ee16ba791a699eb7135885ff39b4d5f623a25bb5f1862973c582c036f9179b7c17c99ddad7ed91064424ab28e6cdfb08aa53515dc52e1bd7742291f84b20625f18d78d0e0e7d311d33a10f741c8f66a4a2a8037642762c6c868b6efcf1d4c54e3811a4a21074a85582365f206cffbcbb33062ca6f8577a7426841f04838f7bfbec25e3ec99d00510295ac14c5cb9e6611d39121aac48d38b22d0695aa732cd68df3aa072ee2069466b3d550b1c241b93d8f5af01fa833a9c888b9c5c77c0d3f2abc33ce4da374e757c8399fe657da7c64792426040ab41b389feb8d7db96a72a07bfc9612007b45f964f54062897f640ae1c64306a0cfc68a13451b448c2d14d6f23c1200b6578743815650b38b404eb9345c77d95f8b8c3246965550efce0f539aae731894ce50f6d809fe15335453326823dafb60acd081d6b608b6ed88902bf82f1c3bb41243375fb313f9a2e168e04ccdc8c9428c0f69577a1f7f06056c277910017e47c4f18e78775222e1c315660f1040c391b8d75694bf29d2ac8266dc174051d3a4bbc40ff69079bed802814468cb70e6c914fa9de7b9c65200479d83acd13c7d5f1083fa654c92d5fed42c6185fdc651d30ad094e63ae63dd3a211de6bf9918262e1e222a16feb74dcfd87591cc5c77874b09aa60415f60ce3094a231ec4d330ca5e47622d35f30bf6e8cc73e14263be97b788283d35446943e81f1ec005226f84cd1d0b5916243631e5f508623836774f83930ed19093a411b0f343432251215926993ea8308b6144fdbca8b99e34026aa81213b7fe3fe45070a530e71f60818774252e0d99c0681b7a61b6b50d389bd0973fb3c17d621b98c95fabe0aeb7e6c3ca2820143fc59a9a1680308d32d07d3279f64922ead7ef999afebb2fd3788f030c01721a4f5f4e00f281a76aced325375c006dbab8e1821f52fc470c368114cf71766715161986f406bc4a19f9b3a580c4751ee778dd83394cf1109ef38ec140ad80c6684ebb63d246371f400678b6e740e7e7b49656ea17ed607676235610e5bc197d9b09c851a6daad38305045e9b67c97b799809c2d51c6d4476e11f8f30bfb770ae93436ffb901d1355ae0d8e2077f6f0a6b4e76a4fff7c7d25cd4a1b8787702ef18aea8463b58348c520fc114bed99669ae74939f156daa21b95ba8296bc66e437cecc1f37a7a64ecde7f53945acd360e91b49d4f673dd17bd353290f6b8328b9b1c221b440143c7a300216fe639d4c22cf2df67f19bcc30c72179420bd2bd39db1098e4d96e87b3710b52618291549d709bef52102be954ab65dfb1c63e12a8bdff560071980fb83a70e94127c0d563664094ae065178b4bf787753104ab0bd8010d9f88719ad60e9e26b37409c0dc39d1d6072f6d21e26af534c249825a5c1221a94bc8193a2ce18c37b449b955a50f5bb9edc0252ac059c8913a2c5d5405c72124b34be688900b90f42d6abdbae500018bdb00e6e2aa45c92c70578ad7b14a9c5a1072e967ba48c073fe4be07ee30d512a6b3bc1db8a8014066ecc2bad7a1badf26c086bf559d4558687380543d0839999084e44f855294c7d2e714fea0b4940e88277502c8fcaa02c8cd11072781d5e129e0d6fcabe9859600e787c7ad9daf7645a19fdf78a8207ed448a9a411cd5bfd38610077fe801e7dbf4027e115d3a46cec477d7871795c9f42a7c4a33b2caefd22881af5472d9a8e8e8afe9fc4120f0147ccda8cd0e2213e31bfb5d48dae342f24d6df84aa92e2f15f20d0138629231d4f20c61c2e05df5468ff9f056a3ff5cd5bed50ef8fcdaec81f691b553c1b2dedad7cd43c9c7c70b2b7319ba2c1c37438a91e080b00da22df309b5f4bfadc115378e439b08f246450213a9ef3bdbf962a4dd530ed88642eeeabbaf78222dfba87feb9b9193c92efb0cc0f5a8deae25880e9d76bf45a210431a9c4dc05b7d380329304c8e88ecb92cc9b63333a61fa79fc0118c60e819678e698beb140e0d6eb49f540c83f05f14175c243bbb67466d3e7e3c098d362df669e13c85e41b0e51a4a2c64206c9869e71de44e6e0dd06a378ee14dd7638ca210adf90b86cc9b63f5b5d352dbe2216b96e0c7b3e2038da0647780c805c9c87712d57ee3a25963550bfa61377f08530c35075d448220604975ca9a192a82f823b57fd1b6a1f1da2c740cd1ba04212d13a0b64e694c4c987ff9f2aa71a997568fd80f0b7edb1ad5854068ad78cdb6653c088617dfdf89d4143bfc6addec67c0e086c1a80b36a6917ed0117bcd98d807b9e01a73446274db5ef11b8962e5b1a9c44975a62b8b4f7689ed8bdeb72674edc745945715612fd1550d5dd2f3b83dae5017b350d5385882afd967bcd65382dd7eab753812c925d6abf1d07ace8fee34a6fb95a739ebd363786e08c1fb3930010f899fb80f023efa1bfb72228366b5cd8f516b1cb0af29e76f1219155edb5f9de09d1365633543507d91efe648ed9b43057681f10aafecdcd4ea2491c2f86f7e4700e6e80e558724278c650c3a7861d8729bedb8260d3ada9d7e4b9c968c0d5ce55131ddbb98aef2301ae828c300a806c6a7618fa93f5d31357b3d09577f03b9e82af2e302e84ed34986fab847e5daa12d7903441b519d475b4877363c67f1387be53f3c0ebbbe4188de50c77dca40ec69c55ed32cd482c3ab867862dfb46d8392038283dee76f3c8440733391d22182963e6fd87a4daad9a3ac12f1cfd0f1a8f3757221cbecbab7d996e27fc7c048909e0c03fd2106735ada213d3e1a54436f062df4a9a2855e7ef2b35c5343742d91ea22e83cc7ff38f9ad7af91d2b676f33857af59af8dce7fc711a5662ddab4989e98ac47ef7a1890cbe8f5b491bae121af4b18823ef4e884d4c60957b642e8b27729bc2a5c35e43dec0f5e6ea1f7ded7b22b2a8c1851144af323f9c31628533201d5b79c01a5c07d6d5baf6793fc1fdf4635818d6df95b6d91d0f048a8d5d64206e1c5a3eb47016c5b9702e6c9f3b466b2c5b9ea6f3c18442bcba9ad44c14bf3ab9ca2ec4bd75b5256fdff50d8ec26a581418348a88a1f1bdb6d851b5efb84e5464f5e0e0f4ac463c4b1b1f651e786a7e3f00c20a83dc94b89ed615b87e2d268887be5a53383c9acd62577a29509b316f86212a2957262783e4a22fe81eed4ba2796af15aefe345298cd24b5c56b0c6ed914e9ef6cb1cad6ae0d96abde005050746b54a77cffacc955a1db04fe85f9cffe027063d6ab9b6330176cc7b08f0deb5d60e61f86cb2eecf457bc4b5f69707f8f48b41bacbc6d233b2dc47321fc18e4cf7ab21d66eb3e0aae051f24c51f4b96ccd26961de4be52927bdfd3fb6875cd1f7d845c730ae685e5710f919e8c3c23c8564065be23dd3322804a91c010b0f43f7551270fe9f1d652a6c4a1f9c0daec1e2036c93db22b694b240b71a9793d88e02486a9e624e3437748f1c2cc81f41847c06f9df2ce8c2cee548b56adc56eb5708954fe7c9060574bfb63091dd8402a49916956b39468bc9a4d0bd09eb5574b3e26c4415046268179b4ad59e78e7f6e77f9c9a18bdac3b3fe35c2ade8a50e6c71a587b0d0f04c070ed612442ae95d247e4826909361872a6f450d95e4ff837d1fdbef08e48bf9ffdb6f77d1353b21e04c0e3a22d6806c7905a44e16f09954ed0b9f0b918e6a0c89c5e7d02d718bbf69bd332c8c3e105fe234e3777d90382d84e68d6421cd6948674469e66384cbb0ff609b0cff242f0749cf33b3087408dbf856ea70e734b5cde2d4d67842bdc5d2f11e3b5cd855e9b0944c41cff37245205540d74d53e07f1550e91f3c6136eac7d96bc10e70f027f1c751376e01aab061c01f2b45bf5c64abcbeb0255eef431ad9303813814d3ff22ff73b48513293cf43f92373a93f99985c06cab767d3d3724be92a7bff16059fd3638f83828a3ccd0ab017efb80ce105867263603104aa6b1040c162d17517923319427affe4643f8bede7e5e1b5f9909e5008344b092ddb66d01435c8c600b926fd2203a02c9367bc0b6daea71c96dab99cc6d6756fddf1686fd283edcffedfd4be2ac921d4827d5feb8a46a0270ce146c812fb8a003bf6471c6011cc410ce9012097ece29e576626aa24639a6adb0dbc0345b612ffbbfb42b6c7348c41bdb58e44b6e43cec39374fd28e43292607c7aada271faeca4025869bd9da1469f26209636f8eebf545538680bf3ec8cb5a457ab3870ff63ffba246dacbc5ff283f6017b022162ab7fc5695ab7cbda876095b92147662506de0545ab3f3fd9d0b8f43e5d83fa60c3c571da3e6c41238c3b1509de7c411779225d46162ab68e90ed84a15b6db2b878f11d6046d1270dcfcc5e689b62b8ddfd21c981c3cff46ef2459cec6f0b5b1d7865c69af0c534db88e5cc8c63b126e0ab734354877c6fb9357ddea5ac46532a0ad90d36f4a016f600d069ab5db6c42d3343cdccdc2d5f7519b0636cd8bf9ecbc94d17e15b53a1ad9901504cf62dd46669a4701a7f46863f06ec4e0813650b687b50e2c31a989446539d2446df61d2fdf0ca500b7a600588adf60c2bd4060418b7e6fc6242ccd2831b6d61e8e8f70f2e6a1fe8e934d96b4cf90ced2ee01c516fd65b572b551d7c4eb55536bb3bd7125f5e9ecbb8be472f2c3929010d66bd8b0c6e0147b7e5674867ecea66d35b3dc43f90d7f607f5bed8f6fd9d6bceaef1e374c6f0d5aa780bf5e6f6ad7fcebc6864d06a32304ecac161910c2506e1d8e86cd0e67a2b8246714d0ea01c287e6f4d871c3cda8bfa681307b0b1037a3d5cc115d9213ba082d2148d431d4a8f4ad6ff69efdfa6cf6e4fa159c86b6dfbf69d02aa05db14bf6bd8b1af1000b9b359bd03dc6e00f43672a63df7447b936397e8ca1d68303c8807cab75b1f255d419209bf4ec444f0c0b5c6fad273f768cb1e098390290e97edc9a273b89e55b805c032a3672e93929829da491d52696de3d2005448a871c920d5dff6603651d8c8ae08ecf3c3d8cf3d52123c5c80b4c4525208aa74b16fcd484101806c9998e65eb50b7af701f96576ad52436437704a73d4d6e7e61e469bc48034c2abc227275ba0f8a1c1b53330f6de30a2872c97f612789ea50d28319bb97e64c92a87ec95d0ba110c90ec057d5de5e1e36496049eb1ae4156d7b3017a8e6560381c0cc289ce183f3936e42a4aeae643973e220f6b55ff0da9991b1ba301658b103aba8813a20569b4f38d8b7cbab30a0a03554a818c72fdb25e465fe4f4098e9caddd83479cb2f219ef2e9bcf2c23384a7dd94f6e3fc1f1dc58580c614b46f9d3458957b68fd318cf80185991ca6f713368f1f925afcc8d0101da768be9c36022aa5fdfd043299b41286fcf7a92faff043101b21b28196bef0157b28a5f7e0a710633ad17fc4227b6bf748459e1b27d0621f2b9a4c60ae08d8ffae4f746131d1310bf3188f4c26adb030079104fb7f8fcace8c44f4dc0c32901648df5d814704dcbc920175114807f028e4cbaeaa04f39a7722a7e0c188d0949de363232a599827d1fa9eeefbddcb7257ceb616048a6bcfc1b99961762380e3a06b6e5fc35815218f1e7d651b444a1a766270522b2b185cbaee77bea2ed583ede8050db75b2652e44f230271571483f718b1ce6e8bc4d673bbeccd94c49bea3348388016008b7098e6e44da549d603c5350a47ee968711c3e9b3dce4724404a36bb6f44ce04b54bee9e58e1266df6e681a34c21833f3108207fe4288605900056b60aa961874b090bcc0c688b62154be4a5d2ae44422fe10a4864b79d785bc59b943b67f67b31666342ab1a62c4e988d671e2cc7872898b5e9d162a784e806e3f6db2fef8a003814350645be4dd68a84e609c53a03e227436004c9b65ba7da75229fca39426de28051acd6523d185dbe76457ad964b1ba4c27d8d7e2afae03af6fd2b5b992f3d914c2afabc58f4450424ca7a7f977cfc3dcfce3f15f69110a28438bab05595e59e513c14bf0456db986c9ac7398fdcbd2abfe9edfb65341919832ca87cf3841496f466b40f494e9db859cc0f557b40b2fcb6486f86443af373a2293d542aa9ff0ac857977487a09f9370b12cec99df24b6f5377eb9bbe05ed94c13c3038bb3bf6a3f343fc73c2b341370f2cbabfe529bb1012d0eadd04f277566a559385eb379dd176138c135bace69f5ecff8e26c35976a86177adc7084e3e86fbbef1f8992e898ea0aadaac03ac7c709591de2448e1968f95f248cd330e51f889731a011382955fde7cd41010589cfbaeb5f3a635a24fbce3e6440e09a7b840620193e2d4fdc4c5e02f3da8dddf8d1014cbb914ce8c58ff7227d407d5798dcefcae5a1ee8088a72814727d264f67aa0cbe5e41f13354fc9f331f845c399df96d2452eb375283e96dbc8b3de456ce9dbe17a8643009d5b71536f21efd40f23e1274c780ffb023747516298ef2acc011a4caf2b434e99695c7141ad8249247b1fe9a045f9e8f885b01790454bd4697ccf8b94bbb4a487e3dd0d1d6a45acdbc7c9ccbd3e5c08f292ec3b4a449712c4c0b1c275cbcfa8842bb0f4799f0aea6c3245db707f7a3c08814615d00536e26ae652f090ede1e53758ff1ee63313ee7e116f147e043d4dfa6781b23dc202789a7aa3202e8430ae19fd9bb948a08c63da2ea835d6114c6bb9963a1c647f404c0d4c9972792de3fdcfd8eed93b55fee311704a414ae4d4c90d81af3e48176c90880f1b7e218e6c185c3503af71712525d42ea95e5159e88e150a9ebbafff548a77cfba34945b525eea81f0576049791f1c2bea67087affa9685d6077c05797b39a32552de7da7027e43ee58f0a8344ba05ba2a5b005ef5588746c54601818a631686707e1acc26f87acce043211552b4f47ad66c8bddd919dae5f5dc4a59c0438c775586f81a9873102e5c410035f1cb685c0115094d51f4743e4eaf0b2441d17b91053370093b73f890d5bf678b7c56c8fef4cbff904600806714fde8e0c117dbbb18d9579adff966555cc1eb080604ba07d15583e0d2c4a1a78646d870baccc04a3f3dbddf1837c88badde4c6aee82e376dd73fd8cd078611f86021814dccfa5c8c4aaa638ce839d61a502c92dc122c3111933dc6b4f530378292c778df8b8b9e6a696e9fc4b4f251fa0df6d1b012446b5ae2a1ec18c11218912e7ba9e775fe62595aa918856b31bf74cb0c93ab89c3e4d2158d8ef01449fbebf1a1afcec7e54f08bbf355774c3209d9f35ceb43be495a6eab7e316e57f85c1c23aa8c105ef59ac2b34aa4b5d7f75d90829be82ee1205d11a314f4109675275e2922b8c243e050c778f2bd72cc1d16cb7cfb351407a97814bc8369fdc0fd7644d54f2e610242f5455517671cf35ff4046b3bc007e9d38ed050c595e103a6f1ea2d983b610c739d95791b3cd8586f4ef18e9e94760fd75f5f64c75069587a4efe5cf9f43fd9aa9f19f1bc975a0b3ea8523b275ce3a19cf8a1f41ccb638a9cfc520f06e64c21138a2c938ce0298a17ebf4a989660730a529ce44130a5b168f41ac5ba9f44979daba9bc6d2b15dff1b95b619c1fcdcd23b736adb9bb801c0f6b2233939074c5d7614cd43372fd3e3d700c5eed9a689eebf903d3c7be84f09111a9f1585429688a84eff713732b8364622bf9dd46b8ac104d6e0a2a8a6315d4e534a3369358ddda5a3c14d2df901134d4aea4bbd2f7156111646394a2030e8d6e5d74ae3878830676c84d0f18187d087674acc073c4734306502a7f7406d5464353749d9abb05c575358d5a7f6637a3bd5b08d54c96ee7455b7acc603cf20e973a5c5b1de4c1c891a872e1116861f4f09170866a26a255d2f71a04561684cdb4231e3e2ae5950cf746f1fe6ddeb8a450652a8408d4c9aac6f228ac347017eaa92fb3bd75e08564055aae658305a3c17534703412830e77d64f82835677e1679d6d1578e0008b9d5db72a1b6b41a9b441f1f442f4d498fae25cc5b0081c1b65f0a39a2f85a9b52da6ab1dfe53a14d36543ad929cf200a4e2dc314059d7c17a6820ce72e0ba334d86303f95603b67f928310dacd0aed7df8d0fcd77c68e5e82b8408cc6372626ad835fea6ca6bff3b4eb15bdd4199bdf890d05f9a3b44e68ea727c6df354e95c82c30d729f0d6b98f17ef1cf5554043be5f975b07ba869c52fa5098205329f08b4e905c64c0e8c701947b4e4006c64d216de06f4b2e5541c188a7871e083ea95b086ccbffbfde5bef1b7f222974aeae36c24e2308928e2bcf3490e432891eb518cc586346155fe6bb080e51c809217a03c863218c567b2bea370eb8799359bc6ccdf561c922d778d859b46d3a7048571d8628778d98c28da219a26076ec05f6d0d1ae7d711b2dbdd83bdc045a85690128e029609209faa8acdae6e414bda3f81d6eab1fecd6211e4953b24ef14207433d4573d380e5ff1df8ec12ad269013c57ecb11d79738da63df1289bc87f29614f629c0ee528cb8b7734a13ad8445c89b0ee167d7d2f0189e8a43120c6e28fb114092c778ced1840c38d7a27e2192800df96b8182dbf8b883bbedaf3c042f390bf517d5c1e30dd8150d9c88ad9eb4c5cba145a978862c01d04b41251ade57d0a814ae631c1920a255cb16203e51a33d744809f315bae15d3a4fd404697ccafadb308fd047019e787c20bfb2ee7ab17d7dffc7d962b8162d2a15d5af38bc1ba244989531cc046e46da626cd245da1ec349b9a87e1af3cfb9ab2095799eb7e42678a6f520192857f139b0a711f20b23828a34af753be6fa61df1100a2a4d8b473c8762e40ea6c787f7d1ab57d7b42bb5afb3db524cab409fc752620330ec4c1ce10fbdf2d12e684ccb3980ab55a108564e295def99306fbbb7cbb5aac195f8f4e706726e644ad14130e41eba726c54ad30a6da28807c22b442ad361db6cdf041a2083a45bbb8775893a2b486cbc731eb1294a8dfb7edf1deff9a699de7bca8292c230e0f4ee0bed65c241ed8dd20bb21e32f6e72ca22df93c76f82af519ecdea0e6194a718fb2ed7878d81ab53d0529e33a17435df4edcf82f861a6f70a8af3be7a22e961dc1445a65b057f0f4e1f463582e7b34e023150baa1e6bf69614c98793b3be7b136ca1efe44f5ec042a191d6e815b44b70d26cfd91f7c933ce2fa016fec6db4ffd655e2e293962b8d2ffbb8cfae0e90866366a536ceadf67b5f51c63a7b1d23e4b8ac527aea751e27b8f2ba4ae880df66e060903f96a3ef45618261eb1a8892bb244df0b5497b8b3b1753ce3fd0c90394009773f4a9f0e003d7c11a2e2276261f6d807ab44be0301ea7cce24f9b4d40536a81982bb55a5b1aa98593f9ec2c956991dd084ca4982c180ec9a00283b2f59bb8c111eb36e55ece013990d87c000dd68c791bcb8355b62a046cf7e2fce1762a993c4725fb3d655519f53459729da588121cd5b74eed2f84a10fd1c4ff6424684081e0b750c2d65151bd26f9b20484c5a1e41edc6b6e0113a679d1af5b2fab65ad6228bc5ca525ae6757604b85e252015d096f06e3610ca5ef42a07f3331aabe791b0c8dc1f6d034d340a61c1d5dfa6a58cc15c62bbed2bbdc947519f0c03140b1ea5e8dac46052f06ff656859b95783894ec5827101628a5f4bcc647d6093776855de3b3f795c70ccea0a7b5f357c5248268ab87f0773fbf8dee7759691369f1f0de7cd83b730e0e9536c2a72f3e5fb4ee62ee095654521109373b3606d1c8eae7ef54d630c1c07a519502d0378ae4a65181190c326d48a70b3e4c1476529868578395de5e55a26a0ef16f98034731403964403910bc32156e1f2cdd02f450099c6f3b25c0cd0a884120e10aaeae9598824aa93068d9f9141217e2a44c8c9f3277aa745d09b9cd038619c340f5599191957e571dc153ee60c06ba68acdfcf13555140c020991cc8d51d9d56471ac3ac1b7f031ba1ff2024f046f0c03a59a6a6ccfa153250d04da2c95a5ce53ae37551099049659e3b966e29f15d8a26870a4b8369133553b1b86d27d087326288d61a5229c890587567b68a80365fa264966d1015fb60fd191752cece15e26c875e4d92ee8150d2feca8be96ca5ad9410a0459eacdbf7e70fedbb32e92c6580b400e717f51f428c5dd180988fcaf0fe20073b0f28f84d2b852238f1d01ef82e918a2101a454132f85ff966f19056c440b15f10113486dccd00204cdf7bc574ac6f4ab8004e712612f3fca869610d4bb8e81b7a182dbd7884292348f203ac678217ccca57750ebdc33a32506ace43f2340048ea62625dfacf0ff18c37012d05f2fd4963388f6366d9e0644d6bbed0d5bcaac890390db3f7577a4669e6925c42761a18e26f59fc09c9a174c821fb79db46872a6e20cacee0110077e87649c594ab55677376256a45d5f2c51a6a4a9a92ada0113933960d47cc00a8a0da6422c84a368878556dd0fc971aa4fb59c3127464932e1d041dd18c4fedf214ab3492923bcb64264650867afe1730a6b498ccad35f4450a5d42515cbf7728fca23c0d34f85f9190147ca0cc53df21effb9216dbe25ff85706417c6de516a099e8ae9aa87558c95ec297c8557281b5058d13dda783a8d0789fa8c167baddea12c37ba679decec157a613f49c39de15769afd8b6a92988d40924df0a8c87d4501c5ce51118cf241007cca08686d632e127bc2cba312a18b4fdd7409b5a755147c8cbfa03a4b50428b198f8d60493e60baa84dc61e380d93199fbc2022faa2be04db244adf9c2219e6d0cbdf2536cff475d40712663f06c52541f95c99439fec90102da2132b45c1093b756512d2a464b085581102525f647ea20c53b48207c61042973ced197c7690d3052dfd32b088fc0f28eaaac1fd0559421f9127c85d3d7d0a2b4854f74305784328521fba69412147faa1a7890ed4d16b2747330cca81614930e6c22d0fe55b8d5fcebd5cb0e18484c49456835dcecfa2124ab89d426b1491569d688d64a893db1c5d05542c78d29b31c729e94c835e9b76a5951c239f0b4e8abc08466521ecb023c8236e78b2ea13e4303f28beb82b345407456d4eb4edbab8983f35c4b8721c1ffaee026f9705df285ad996e681298cdf9297ed9cea5694d93d86005ee5c5a5d18e1349d91e31a61a0111611c9f9207d5ef9b12ffd4d1edc4abfda3da82da52267cf8693b62282dbd2856520990ce0f44904a7e6209cf63e9c94caa4f6cfa4d5b7453c0b589d2657628bdb1590b47db65add45ecd6625a0bbe2ef1bf0e74a23b1da52837e72087c3627193927d9903af58c889c55c5b7c0e0d3b4c7b7a483d2ee6588a356501e33b3de8d267db29965ec908b14ba6aa426bf7e9dfa3fe1ebc814404fa8c458e78d9299ae593f33472f3ca2f98c68c03ac5dd402c0e9ab9209c04a8ce173d1e0016d1971bc1d6e66a601c49e9b0a11274ceeddf8891428b167896e83fc5ce5601875742d610cecabe7e086a27438a323c0b5755d7eb88206c12c2afada7caddac6125c917454483a1122fe23132cee92e236064b4b4e3693aa3099f0900c5ca84489a9fc7b5d8cbbac8f25ed33eca41bf0cb7194836470747e05a805dfa2c5084158f26c62625f17404b500fd63548ca6d61993807e01bb209540fe1cf3f9921a44ff0b9cf0e88b44a1d100b0429b477c7f6140f3ee140a6821acc5326d57c1a467ffe4444176ce33e5759975eb3b48dd40922f34e623494e7924b892bfc1b4bf085eba201fa2853964cabe0d049f4eee635f027b5b142fe3cd69f10fb59aa40d7b06bf6d9fbc1f05288a6181299f6568ceed998427694ac64a3a45c0786c50e05801c200a35811a0a89e8a5ee135fd8b1bd0eec44b62c69c6ceff7865c952073bd8a9b94e1423526e10fad5871186eb6932771e983d19f6888802be3c0bc2e3a069442057b61dc6124a6288964390fc520e50f447e2727a6e05184b3cece0512074dd700588405566889ed3522d0283daa0909edf0198597b4210356972c4147a089ac407dd4dc09d99db0beb611f8c91bade551c10c831a06f7d7bb0f26f0da1ab14b5e550b1d3b36e2810300dad6355fe90f9f0bea1f1b0a43bb26621f4b3f722d87d9c41cfa2aa0ec2115fa4d44a14e4bb2beb57027e2107827749ddd11970892f625bab53b15a8bceba9865bcc8713392548fe19b4d11eb0fa575a1da42ac86270d0b103471f7d3adc6cd3a4f4cbf858c947d3e36d9f6722302993c64bffb95d4d108ef5fd35bdf8d8fcc8946e6111b139d4c476024b2ca3a9e005735db898253bb6a7665f7bc534fea2c9853ce1d4000e714380f2d5fbed9da7cbb3bfeff44fa2c90742717ef2396ae871a05fa90ba9fb341186e8da40482f2dfaa830f6ad68235b4c0baf9946c2564dea150bad8e9526e84b2eb9d50e629c0451bb80f7f50c0808c50cae713ca1580b0b4e50805f7e833e58b07c4560614e64337f43d90afe5f1cd0653f5cbf13df2cadd63b076c6177a0e6370449326c3537fe808f58384221f8fa1d88cb8e9e2a7b3582725828a39141d0bc99bb403b9c078b551e80c6fc260727204676914eb708f6bb8263c51c8985ec7a1fa2bcb4f96f09e779dcaec6390b954e1d04011b54c4b31ceb3cef764da975c5dbd980a4709677c92c407400cd9cfcf0d254a599f0eb88e50b006e779691dec6560e5476547fafbb694fc7211db68714a6d8a2c84347245a0bc6c8241204c20f79f191ed243e3337872f1278b15a11aa4dcd965803e51a213d016212137dc91c530c2bf56d5fa91184b186cab94209358fec5879c28b0837398cfea655d52559d9ba19c85692b9c3761e9ce50942d44516ad078b5d04a01545a338b8363a850fb192a74f6a9ffad92f68deaa43812d09f9efda111b4f229f86e316a2024e285e27e73fc11ee830905109b794a51bb425416276e431749d7ab1845227dc6ead71f98f9f2e7a7a1060b563093f79f55464f102a8003592cb8cf22e45c9d6aa6fe282baa047792b23764a19608fbe917814ef089aafe418d8f1334201bec245875b73dc1b52565109f1e3925250f28cb39912f123a0dadd13408fbd57d7ec2953f350b02dfb270d71e70c1db9bec4ae5beb762af66e8d3e007b55b7f9c457375379f3a008e81b999c8550dfd38ac997905934e0d854b76ad6d68958d4e3771e43c50ec38798a090f761713f0572ce17eef28b276452660afeaaa478abc4688fbf2afb5ada163b4034d05babf74ad7511868bf9f730f24c3305ac02a1d3480b8308e3552e54514ac25e8187df34b80c494af28c8d8381f120e64788b5715dd3c89ad1f4a8fc7827193856ef738cea7153dff4210ece8e7ba20976f29d6477d1c9aee7553a7865650b9210ac33708c61862e4a9064553d6fc5ecba5e7e6018606031ddf512d78a24a324957290a58f681286e1be50db7a6c9ade2c703e1416db2d54292139796821281d3cccade14640fe03662a21a4a8e0436858ab4562c0c8b974a136a3422a79a2e82bc772654106480d30c7f1b6f579645670c988d13868575a848d4684e36dc261d9e3f4de4810ab9b5e57461c31784c29dc671ffc180bf8f1e841d81d26e7d22c3ed43c0dd2812068031ac6a009d3c793a94940175d2cd4f00572e2f99ee687404bb3beb5e4a53efab3ef38a77ceb8bc25d63cf11606ed352d2912e7d6af8b515ea0173f200369782bcb7d3c982123a40bf5ac574d757feb02901f4b6fb7ca6fe85543e6ece47b230f2260b905da28b55320b49cdfdad2774a9441dbbbaa1aa92c517419a755561532e5e095b9c925a191dcd4ec07c0346ab5fa10f36266bed092247336de747a0ed5a6952217ddd015266b41f29e464be2273a27e44f668c212a2e025d767891f76ee0a2ff12624084a34c9c133bf0817d75f9688f96908a5c8580f0ba47b9d02f2b3d72a905f3c4bdf437721768340644e08a820622f7d8fbf58b0a53691a0a9a5ff335d20cfdefa7eb1d7ea1b56e15f320c498e93fd20c1b8f1e47fcd840303d86956205325f70558b27d104ca1691cf4d04152c12830f5fd2be29d2f79a3c3ddb207463a6cce911086f89287062b04296b30eddc4deb9e41cb5cb52a9abaf9dcd36a43f580b4ad58e9078ddb3a783cc1fd28c5ba74ea70ff7ff3c2beba8c5e466c0b51bd8090f672d5d9d1635cee3cf1ec2051a313921b0c43913e64af1c265578187e72a1df111491820d142599580212ff82ad474382da61ccde20c23c896fa59fba16c3d6c1c0245d284e6e398c5f05e6d10dfd1c24f43dd7f74e405f39166d0f40823060e35ccfa4c4014d74f528c2803199343d4ad0f4942a68cffea5e02ac45e20baa8d1a18d51f8b0e85e19fb94095fcc458e572c94cd84031e950f83ea1d00be5127034951fb9dcd97a0dbbda4bdde8e2520c4aa8520e0d0d3d376a5b5c7c61902f1c43785a3dea4527e8378d7cfffc07b10605a2868ccf0dd7a995ab66d94e5d966273bcf1545c82c1bc659d2694311676945957f8468e23712081ca200240b208ad69697642653a004ce2ad132955909ee71ec6ca15dcacf25da08ba4a4189381d55fc25b39831a43e2622d9a4183b4dd007d816e17293a01e1793b1d49e3653ffa50dd4d7636495f0b9750b9068da012cb86311eca7368c81a2a63b4eb4a55c65007144935203f012417089fc7508eae59e310069a308e1d52cc1012c0c874165086e9c186bc79c5301084b3da5965396322b5beaa403fd2d32876caa960184ed8a4afe1756041fe86de33177f707630f060a2bd59ade7a40f1fa88a5548b283a636890163c90670df44a15c2d6b902ab7b2d8469560e2593ada629245d28290d4d09383b0d36599dc908681173214552131c5f41bac29314892d6988583d03adfc0db1b3b4a50dd8a4c20edd7092649133d4d8b83c2e22c105a814662999da3b70d9b343ee5a2256dcc1acb10b2504058494402debf16b32349de8709e5c4757e2aed5392ac97d86b1acd528ce4eb3b240ff41364a198e7f9ab5ffd702f86c73ca144c8d078cbd998740aedc64a43a04ad40d4167c9a6f354b6dd7e068dd61410d976b8a7c3b00ca4df3e8f21c68054a6540ec6cf1898d52c3da620b6056a03a2ac500d4f0cb9cdf546444bc966f0e6d707ad51c50e267b7af2500c5852460c4a30384958daf2a695e0042c242ee7193aa00a579acb5c4d378daa189f22681c60ba97ae16f6bb0946b0540cc05c285fd69ce7e4acac87d569d0b406804c65abeab9acd95b1a65d661fbc30ffe738d26873e766012c1ad9286e7cff8bc1fe521898042116a042a4732d071762921e1fa6311cdcd0b956408a01fbb7a8c28ec3931528b24c63deb50228a27bafe275ab259579460d13f1fedca422c40d114734dac2ef0df69904858fdbe34313e3f45d2ba05965cb350875f25a996b05042f321f5dc8d361049ccfa3fc39b80244a37edea4220618e31171effc18f1fb32a948c00661a04992ae1b6db6bc9469aa212f0adea4224d71af78f93203380ef47fbad36a56019133960cd24332aa494580e7ef878fb67a490ea12aa0392dbbef5401856abf8f2bf80aeff1d947a20ac01fcf835737d64ebe0cc2ffeb431e18155174552a8dab6fe4208f82c9d84c059e9a9190df6cb12b3e4a0e95a4900800d90d5778444542de39e41e922b3541f51ba16452f4a0a3fbf89fa1c414d890fe3f2e6d428d4532905a20a44b2d7fbb4e36f516c62d6e4ab07f1c6124c7eaf21644c90f07ac4ca5c057f8f380c601017b17cfd816e48e8d3ad8d141c3de42c16cf180e0616e0375971379950d1449d9b7c94dd4bd824bcee250a2d80640b6adcc8b6ef0b6322030549087e64156ae42a54b6113fa805a5b6e2339217e4193f8b0f097f69929ef5f2fbe550404ab28f6c013da687fb9419a736b411b6a94a0dabf4d2a59a559811e9c89ff41e1a1ce875f23cc08fe5a8140051c9ce4a5f1f5231e6c9edceecdecdce82fb1ebe26381d0e356ee39ccf6e60f981c6a6fe22f2ea8317f541f612681f1ad2cb05e816cf0a5d75a0df79fb349490d333554e005db04b6f5a705176e82bf51c5c2ffd8f3f0f217a56619852d87d529bfd374e82cb264b2c72f791d2dc863bf46984610bacad8e3d1ef6cad9c0f0a3ef0aee93d5b5090535fd3a5a34740649f88e21439487a31d6876ef0bf62940a125eefa9a7e853d8df03a36dff59bcaa0438ffa6173c831de19b53bbc3f026d017be6e2f44ae540a66df8773e68b64495c48a7ffd9432f94cc9bc9a9dbc63b4c8365356174332f2a76634e7d8e57ca134e0be2dd5e156775e0ef9175b89580b5ff0ad80d7649c0908cfea22f2b2162d59a02ef3e59db0cf135716bec02cdf2f37f91f144eb006ba128921e3d3f25bc7ede5551fcb9fb92f39bd228df24bdc77ef4f33e85586fa95a2d01fee6a30a829069052bb6a8c85ce95d0bc4838583d540f76135c695c578d64f6ac7f8b2f91f277e839163508f81fac2e0c2622eefb7c802bcacfe9ae1b1cffd39ae7690390499cde940e1be867fca1b555b165da595a7e81a3382c9477c185245f8cf3bb2e5dfb0d4003a60b831ab29f38947d295634ef741d4eade30c5681bd358b82839b1b12bb0bd7edda657d5d9208f27bd744783cdcef886397b34aa586df3705ff18af94f6500af5a0b5ae649dd61d3fb0c93370e5348a6da3a6b3c3d20ba972ab9062045f920d31e420672f269a0757c52e8af4096c746d9515c5b5c0e0be28d45e45904186964d956e6b2ac342c989da546e4aa6f68fab5080ff9c40f3899d7b39d115f03267871aab349a30e88102de046a6ca54b7fcb28a17776986d32ed01645cb96489042a40de467dd84e6015597b4a47f99fc91cf308c33bc3efe83bb95d813f8b73f400392029f98a6504ce94b6ca05f3f73ac1d2e05dd8bfa30960e4340aecf59379574c757f487443dc10f959986353e1de9ea54e023700880ca6ba2a51ac2c7577d0a2cb6339856e4e00d565ba7aa9d6b153f579a049f62f12dc0b2dbfc97f659c16ce804c1eac2d832616209666ae5cddc33e80d28451fa63672a089547f260241c2795191a5e57415c03b3a2ed3c152ffc0c809c0d931f0f7a596d1bbd06cbf8784ecbf8bbe28eff40a84d93da43301dc3376abd520086e260d6004323da4f851246b6ad258fbfe40aef72f6b4620ae5683796418218861e07e0a58ef007fdc274011766c4986014f3649300cc80e6129738d0308b1e04eafbe451278626ce5ea92b2d091335b5809c4afc3ecfae1a4df0a8c4f1ae03f2841907a65c1675635b9cc4cf66e6e9292399267d8efb7155ee60987f00b8ce0e51e1a2cc0656cb771a38d176043720b23e8a1c9bdb15d4a4df5cd192c5371e2530b889277b5000330061085edddd7c08998572582446c19178a3e1dc2b19a53889d659305a036d015d34148e6a0754a9d0fb285992bf0f26d59010154e5430d4c41b0747c812472809a6898acda78a86f4f3fc2e3d948cd7a1216c69af992ab48c9c7caff310da53d21b6a0101b66f961ed35803f8e95906132730b9a8157edccd86909b0083809930bb3c8bc9205d0a5788ba29f1c3bdcacd8b1ac396eae883b3c3c51b4987890003243f7ad6cdef9241c35f8646dd7063f5d3c855e912074257a465fa033cffc98aae553205530af8e8f32dfb7d7ec2ebab3a080871c4f1a500f23cb2cf89edb4b4a1ff0570a9057b680ff982b96211538d8eeca336b7ef1edcad335580c04a7c79759e0f6ccd0af87fd0e46906cd1e09c7935f2510469b95cdcd59d49a9c40d386780ed61cb08113f995760dc2210396bb08afd1498094f228e8c199935f8997df4f4b2ba25e1888e0a1779ff68c38f14692f0faafa3ee701bed93c40db3fd6371a8179bb91e1833252adfd0c06710b7dc9b8e92648267bbc224441ed550e00ccce5b4a5a4ff4dd32bd5100264d35432d80529a486bdafd68a823e291be52d6284bcbb98f4f2153ebe0ffc63cae598ea77d1faa289d5ac73536f25d7e21606c0ebf94e99600edb551890fe47276f7a7d14ca55c4e8879263e7cb8ef0a18a581d26a72372f6ec795134e05cecee4e9c1b328486ab911ed5363578a5ffe3aa0204ba1b263075548be10471c18038f3669041bdde3083a5bcdcd46bba10516d87b1230d18816bb15550836b07aa95a5ddbb9f8365c76ff6e1378d8096fd99ee52684eeb36607933ac681c546f9ed25463a41178fdd2c1724d0a75c1e8ce5a77ce2493a41c9ff4da5151e91a6afe054059cf562ebbe4aa20d2ef71702a51b22985b9b9fe2950a05b3263c175b355739e9971a71f15b7d38b1ac206063b587549e74a541304be696cc89630dec162cea583f1f62292032a06f5d9750b34710acca301f276d07565fd28cf5a6a45e7845473fa73d68a64a6e316856722583ea55726c4de641e61cc51f98a5ca75287b55a6ac180d2fa9cf7273c4badf4a95ea6aa91b75829847daec563b9f23ca683053478f236341488eafdd2d69f334e13a4741e138e0bbe6bba46d7e5a22f2e85b348c2ccde2b9225eb14ce8a896c1cd9aa4a8b74911f5bd7184734efdb2960a5478ad3763da31d0ce06091e2118672a702054c24232860c5e2f5445bac7724aee7f31b6f2719b6c31f7a054a42b32dd2142a0fc28759363e70513f3a3c98c0374576e083c034993b99db9ea0ca8298b9019bb5901e8a6e486681f4e4c2c5ec4ebe7dd1fa12453042ca10d3dd8bb6d9320f417e78aabc5e97930df3e5c8971720cdb2bbbb9a5704a247674380a7425cae4ffdb18cd9b057c8de46cb051bd08353d19bca5a585de9c88ec3ca4c074fb70849993882a353bca9f2411c5bde3911007fb35c6024b0dee905b24c25438c92d7d7b788d9370999725bfbaa01153255cf77875a158c3b213ab8db8b545c99afa9cb89797089007621ce9bf0a4c45b35e0ad83ef213b34fd0a6633adab9bf1006f9b8c747718a0ed6ebc3b6ff2ec45abd8184a00de848fb9d71cb94b57f7d369a83cc87afd72f6ed1a837153cd728aa855bd1779a27810da86fdc22eeb80e01ee7a39b57ed581a88135e95525fbf5d840f3af0d64f9866db18466a58b8e7765aec96bae47bb55e03a8ed25b5e37ed6bf9a2cc7b18657c6c4946cd5b61fcb428b367a9e61b6e7f97ad2f50bd924521ee4619fee5f504d03f9399ba4fb322c8d7e1d6e08883c9cbbd9d50a2b7934ae08d4701c8fd63bdee03de694c3cb4097127800af48380ed3ed4fb3ee07d63922f6d4f377929bd13b7a077d2a31d34ecdd8a182345cf699d10a2c8503dd23b1ff17e35d1d08dfb0e9a11488334ee1ee93d1f78a7363122224a5832863d5a8f1484d5d62d3c32d98dffa43bba500990e7012ac084ddf4a685f70ae9fa704795f0ba69aa8b04199c25835eb869b958c87cacdb341544c4d40fb06ac4dc61a9c46d1ff24e63424cbf60094b0c21fde2e009329f02b97c0938835689d8b44c9a199fa3907ddabb6bf496f81aefbfc6b836c140b9a6a161b3648d8980c74ef390b0ad2060d3dcb3187d1e790c1a839b7b9038cdf01d0b976dcb0fb0c9d1b91038a1d8062237bf84c475313d1040ac1628786538c63b97e94d057edeac71964211f11d15f9b3e3edf333ec8fb459979d624fb9e9b73982a03d229b39b3f139ebc9fa68b1703370e0c7cd950f965ef5f4f2715a47cf6d0edaf73c7037223631208a95ff7d25eddc065978866ebf89c8f91dd2a0107733cfef117de81334f6ecae9d3d2fb2bc4afa33a4fc9a2fc7f2607f0e9daad179453917254494456d31e493393ed3ab1f4822f717e212debd0c31021069d14653c0b503c74ab6bf76fe7d1956677a51e3770f1aa7f4a555af5aef382ab8feb8dfc7223285beabf12dd219a0f4d88cebcc0107a5815e4c49af613e334d95984ccd6fcc519e4c0f4826b68f735d94c6e375ac3207ad1e189027ef1c48e0ccd73ab975c2432f3eec40f76fa60b5bf899ca4d20b6468da8258a4a08e2f2d22d20d031f57a58010653e75df99646e9516a1a043ed8a7862edfa571f3fa50b8a90fe1d48a0260a56bb484ececbdc4de4f25e527386223076f4a516ea93e66bf52bfd44d0e84e4ff95be3944d48c056e83eec252fd3f09666efde32cad279ad7beb8ad4b1f47db4b076d3c2a497babfe7912c6a8d213a0b0cc695d9dda398c8aaf0fee199fe49be48a33ffaecbe2853dfcfa87aad867e241b17d719ffe2d6dd6624bbfe7076440385c6afdf9f4850cc75e2441e0f73774bbd7aa90c6a4f4ddc2bca8acbbfc517d8d43014c38044a9fbfb355305e51493af93830f437b870c9841694647079ac7564742bc5cd88ed8dd08e09bb3917ecd7b783433800a9004010b4ca1bba00895bbdadffc602b7df0126f41e6fc75e1e7f1b5347d7c692d808d9846cb2f7de72ef120b7c0b090b33aa1f50305eb0a4683e7364e6e8e6ce18b9b939fcccc97d59de90dccc1ccd1cb9c1b8860756393a5d15a39a2124705d46a46609f03347cdea6a86668e34ab5b0dcd18691676f8192d6a86800ebf1afa21270032705800f06115a3071a182f66647e54313cc0bcb8c0f72e2d2c29d48aca8c2994117101f268b0c0757308c9b1232f67bea43473f4542572e3b9b1f1081c3ce22090e71032df3c468f977349dfbed273f3c42e40e81057d344a7047ccd50b350405c9ed886cda3cdfb259fb75fba35bff97cf6925be2c1ddc09beda674837dd0f8cc110d2b9a6e3d32739c894dcd6ddbbc816c1e314aa88668dadce496787036dcb5b1b1c15d7cd71829d5bceb460935ebe6908487772eb93b52eeaee5f46ecbddb1e4d67277a9957736f7cc3b54ee2cf78b772bb9b1dc9d4a4ee93787e5dd95bb4bc94d737728b967eeee24f7e5cb29397e67fabb98bb33c9fd7e3926efae94bb2bc9fd075f8ee9306fdcdddce6f6e6a2842eaa850a6a157cf9881c6de66f6c3054ab71e0cc9156d5dc99a3257033ad6675304442cd824705a17634cbc21015e0f007d22ceef0ab183dd0c0783123a38ae101e6c505be3f38a85b90ebbf69eeb35cb9fba8fe4a5f65cbfd943e4affe49aaec9ed47d32fe1c9cdc03a3107413287647812aad5492068f6403a2d633543191600e8ae86607c91341fc47d3b3ff7edf8dcb7d3735bd90e0b8f2803cf735bd9ce8b321d4b8f0cdf52e0ba99a399a3192d62b6ad09710f45cbc00311c201612a0222c354f4629b8a3a9bb08032367c5276fb08e233334711078628080c33739421110a8628c3a386503c502d94106b68a797e800a5dc112d036f84149c068d90f0312f636215773a12c20492ab8c8823ff606baa6e152fe97d52c723b9d61b708b7c9debde107b51f43a7654a8fa5ce13c03f7766edff5a755f5d869bd8db7696c0cfb88345a557bb44c7d8db547abea4ebc473d727d6cd547a1fa3eaaef23f5f6ca8832f5d9a54ce05035865035b2291465eaeb5b0a5cd747b9566c6302e99e2f80ef07ad959f13bad0ca283be73b2072bc22177f8a510810cbb594ddd0942b461bc29e33bb9df6665445bb9eaabae1fca3a957a9f08bd6cd477af817156c097f82ef9585940ddad3a20c53b3ba950c2a72d0056c0738226cb55a2d1c310b56d6d75a0f379eedb50c1ce9da6dc76dded20bb82e893cbf5dedca5659285cf59b01e21675c824bc82d12a0d53c1694fe0b66b45f2d168dfaef65a5b356bf4115fbeaa102d236fa7bcae392be46ab44a4a1ffa53b57726f97ae9fd700018437ec3217939a4fa8975eafd8182abef9e10215a255f0f007f40c08b212fad90e5496e112db3dd1ad1acf95ece763baf115d630837df3d2b7c8a4001c57c3d76beb07c34f5f5ba54552c63eb91f9c2406835586fe3d9689cf1b6d8628b2d36edf31ad6988819885641f9682e19cdea2610f35246ab649ef3a776bdded78551402609983210ad9232b2bc8cc681d132f24e04d9e9fbb66b04462b384285118e00c59d1006220f1ca10b4f5cb17344c4a94f66d6904e04d9896fad1bd069d0011880ec3489b4bd95e0fd448637718df854e64821c5b151703d762f39ded6ebaa56452965ab70c43eeae3cb75e5837a927c1246b29473ce39a73ca550e2c7aa2c0883a79a3cb48743fa9c70070c8241506808c2e0b1a00a9e0afe9190e2cb7f619966351292dc80264eb54e19764915bc1c9a829783a1e0e564f6f0394eda782a479a9fd884616bb3f3d93c96636660c64cba413fea3da0840a1e2b47b3bafacb06c43966a90255d8da6aabe0e5151b5ed7f530d27b34f3399a95a3551406354b9a723fdb66dcb8400a668061cab0059f1638492011718a7844460ffe077e25a3c7d65b0cbabb4f50bee5a1b0efa5c62ab630247790479e873daad0c2913c0f9d9837c8f1a30646227114d7d89ee11c753b762dbbc9c50e2fe924777bdf1f14db376e7c8a32f3dac5e049af014fc248bee11c32486e6282cd93f073fca861f2c6394cae71a792ab4a7f3bfd764c48ba9a2f19397e1051c239e00ee924e7ae067ea2ccbc7c24e122a2cc7c69059c7cbc0672fc48c0dbd9815803f16f6af041f21f803bf1070a017dfb1a7d8b73fc986fa17e86732081a150949987f888514ff80e0abd9df732b10d287b66c13e2aa0d8911f1542d002e74785108832cbaa6675499752a6cc99f2999282c29d8e8c7aeabe9cba9d704bcd39274a4c792a95326f53f3a90bb9d4672aa65232954a792a25535266eac6cb9bfabc29ab4bfadb5246b08274efe36d79427eb4b20ff909e981147214f23bb2108e94d4dc48da0c800282b984b98e6c4db49a2bcf721f96ad6a8c02c225c7dbc68382c2723b1d99c53e8c9a41babc0fa95bb68b0bca51ae1359eeca51aec94917df1218dcc91c731eeee9763af2e9dbc663721b73512e77bb4ddd2e2939e1a1553ae572249b0ff694542af53ec95a89639a65b2b0b0c8b3cc986b03e61bc872feb1c4c494de2c3a3dcff2ee24ee3ac3c8be9418a66bc9826de0c35cbeb350937f9b0160302ee1b36014cc59ee620020f9be7cb3c45c27c674e92e2cc77ce69bc4c252c22c27272c9bc662a3c03030f7657cbb0bc0ee6ecca223c794f350a8210f966b23e61bc82df1a1cb59dec1a1dcb1dc65c65cc694bc83b9cb598e6509b6d18ff97c0783f12dd43e635830c6b7fb3031b85daedd92935c1e0eefc9eb55b94ec48a68d5b66def36193347007f70b12ba517709fd8c6314cb35866a05c6e73c3a898cbbbdc45cebbbc04a6e42af7b50ae62797872b5b855d6e63622c65bf04db784aface1c735fb630e6028ddf17e616766c52970194c70d68ca1c7321be4e6b313795ba11cd62792a0547007f803975144f0a3f0eee7041b9cb636ea723c7bc379e181f96cfebc8f2a234cac57f1b8ccb51ae8edc1747678ce108600c97d46378526fd5717c4b4b4bcbbbfbde975beee3bd1dcca4db3ee9f10ac118f145902e5fbefa161175ac3cca36b9b597064d361e130b744b39e50adc914d4c564c6e943731318926263a7105ee6895c9ca753aaef435b9bc2ba6d38dc764e63aedc205070305058a8861908782657f063904d28750480e0604e2e21dfb45ebe88890563da188139be85a046d67b8c5b88eac2343214082c4f87be3a073007f80268031dedffb030f070e3d99771915cddfa116cdeae1ef1df4725e7e31e056d025e8d84d4481ebe0108f66bd269ab5d1d0d1d3194a2143940f1f341f37ef960f1889188d605e05bd1cfba744b36afe8ea359367fa8bfc75727701177dc24c11d2d3f371ed2e3957fb9f0da5ee2e93d5c5e9a97ebf332cd4f1745f39763dc46ade6da9c74b7b31860bb0d460175a77a5f476621bd06a380641e6deaa65cd4854730c06991dfe5dfa644ab9e91fc8056afc149b4aaaeee59eeccf66feba9828b7123d0aaf71eee11ad7aa7b946d80b3bc3a047f38e44adcf28488988f3769e4fe7fa0418f7e5ca06ae834757a4dcc55dfcddd63570f9c5db2024bbc88f8aa327328c0bb3111198294d53794c2a86842426c6450c9749528ea53cdb78306ae6174d24bf48e16e70f9853c0a9723ca1c93c8fd793b05e5de782edeb74b650e6e3c292e4eb71918c8c20eb2d023bff8db7ab8b73cbbdd0d25f28b7377719990f905b6c1bde5b6e5c65b299990b95322dbe8b3745b4fc7e934cb5fbc9667c45d9fbb4eec58300e255edc975d707826f268d5ebc6b30d5c742236d1aaf70edfe14b1d6e3c31b736e6f776f8f7a7dbe19f60605a5c5e5c30be2f7f19e625f514b611d3b5fcf47bbb96df5b39237edfee767db221eff2783b2e4714dc6959ab286779ad9ab8c35dcb2fcc753a9e6ed78293c091637eef726ddcc89161fe32be376286c1a81939e224628eb13d5f10bf722f0ae8be7fdf3ef72eb883d905bbc4982152dd8d63ee72837157f3e984bb96eb44970bf36df9cd4df5ed629e7acb799687820334cb325857489d8e1b64297a40857cddae364bfed9cb212cb6416f6f83640f379fbeb596b4fde85812cd00f41677f1554cc1898ce1f7682a499552fec977f436e8fbf23d189d01e8690fbd74fabab00ff143810e0cd223cc5794e14f578a680a81a611ad824445344b1a410f4f21e40eaf82e74e5770f027f8578b5ad059c3db18b9be11c89298d79a451ffbeac1c56c1e3bfc1117868db059d61bd0c4f2888687a74634cb88231a77049048624ecc84ccf02a78ee643429ad5c4d99ea18b8ee7f81b0a3a67a81b893b7f25662b4d28b52dc71454644487a71959e6a42b86b1539fbae98b519f6a23d99db9c7c1226291f258651b7b051d6f9ee44afebde0b6b7e2ff96d325ac8b5912ca59452cabf23b0e79c73ce09e1e37db9a91092673cc22a4fa18873bd3f87224efdfbb3c761908ea255f36ff351a3cc9c9f33489066757546d1acf972fa730bab3c83e4d918337a34531524cf19fdf2bcaa592820272021481675c08e1c984342cddad1aceb13bfaf54dc61e028cfb9a355f373880245b97b4f620ecda16e814a252323a352a954322a558a4ba920d601fb2cc96b167cbc361af2d190c4d6cbe9bf6b055cc7618b1bcf3685e4de7a6e9641ae12fd76d26d5cb73ca463d73e5eed3d4fba98dce2b6611f245aab268f15f61a678a9cd5aedb57a96137e01639a5359c42e211982af0f07759611e533c5c781e78c08f8b3cbcc03cb610345c3183ea851e405ececd12c8cb79962d13f4c303708b9d1f32563944be670f20cc1e11620cbe9b3d62ebd1c06bda887050f620827d2fd99cf3c2b0392f592b8430c28853397bef8b323e7f2d39bd9de1e6335f42ff9b9deec53e713ecbb5065c6682613f44b46a8806113f3a78437cb26b3eb427660c572cb8ae9a4c27a62678340be584ca6651773e75eb4d3775210f2720902662fed9e2cf89e9178604f64a03ee64e5f2100a791845b34e962449f2a4db937b3d754d3f5d18450aca8550ac5c0824e61f49bacd28f7e59598ad4da960ac7e66afa79fa69b8e9dfe624d97d12c0cbbc9450199bcdee43a32c6fdb44a62d48c935fbf5e96170f38a472b15a73d0355037609eaf971146d2f5378f68160ae8faca577097fa8551402b2bd7917564236e9f02aebbdc3e23b83745158eb2cb51d24aad081ba95fb8881acd42cdb88e3a0ad790a896a3301cfa75e336e3bacb7b036ab90bee506fc19047ab20ac022753972d97874d34cedc9187f346cba78ae5739b800fcca9b7609e14968f860577a8ffb44ae6d453d8060aa3808e2002e695067eacfce2158a01f7f818e7d0b173b16a47de5e2caf0f7695241450cca9c79cea369059fef251582aa69fa44e1c67848344949127b9855c8b3c0402a1b830088ca255f248484e722a2731bfd6b40bc31d1806c9b3dc7a032eaedcf46ee6d4572eeae4a6b3b060a8f2eb95065c7752a2554640b2c581bc72d345999e84e9ae9c48f9130c877ebdf2e0ba485c257a70d8b3d315fc9e2a251f4d0a772b47e19ff736a0158c02faf5154c44cf88003ea2559701275c672a0a45542ef67961c48143f6843b0e0577a7a11970d8e1d0c5f8ba38c639240c8eb0e302ffe21c048081508f1d7c6200cc848130a936e0b2d3798a3870a8964ea753b3627e3bf23a9b8fcc7088889f212e18e0e2106e355eee02e7785ae0c1ce0b847108011647762e7e5126e6d25d422e2133e97675bb43dd3392e7090e5dc7600ff8041c823c3a0de054abe450ab7838f153ab6446f129e6b0c02f877f2ff0f86fabe1e22f3847cc09765ce05ae31ee31c0f0a74f8426be7626cd6f91e4dc53ae605e79470e88aa156bd897daed80185b0744c0d7ab08672cf83780adfda3873847e80eba7624c9921abdcdaee91c30bcad0f2516554cb88eb60887cd0380c11940f35abc0754f4814f2682051c35cd1ac9236717d42ea14228190e36d2e8f5ece8c5005488ead126d9e909ad8a59ec41cca2ab796888359e52915c89954ded2f2127793ec2b3f41d9a8a0a084e05141a81d19ceb8b97929be6d86cdbba4e6719660a01afc5a8581a3dc2f5d27966e57bacbb5b9ed9a771ca2f49b47540d062ac5dfe0b629b95de9a9ec37d927b639cbcd4d56e2c1b13c621bd96fb00d942731e750ca6d30ca5347a93cdef488bb156c6a8ee3faf37672a668f3791327678a7d9b1bdc9954fa7413ee20677a9bde7fecf8474bd48725871805a4f279954fdc65b9547a4babbca5f496966bfbdeb4b4bca423dfcc799b92cfdb2531876e7a860a50bf0577a5f70ddc86e8c6379fb7e636b79b43d966bec6e63ab16f679bdbd9fcdebcbb29944b3e331eb9e406db285de536388939944bb8e5a9eb442edfdb913cd161e028a71e371ed3e39298439909985554300d3c63a465e0556aeeb93f4c210842de96a21db0f6f5103894100310fa8e1087f4c66c54c41ec881e497a247b3354076135050841e59cca0e4146b52a8a19388b31a8a3210a7660875559eba2b2fb931725c15b50caca9a951b93347ee8c9178926ca1567357457785c55d95a01c7e9572f89aa1939493d7d4f0a8c135434446118746c4f9393c8ccc2f865a35733483054c110c51b34a0e0f7345b322eaaf596f65745758603163147f1e673cc608a91601e0812b86a40db86ee6480b29a03600819121f08873c1cc918b055cb72af291d94701be2a6a1616cdb239fccae8e5cc9bfede0fab211803fe94aa4195bce6f3361755824d3587dcb3880120e4d1c0d7c010c15c0153f468e05743f087f762940e4beffa354c9088f34383e366d48a5f9481099221ca065c876ab90479393232345131a27284f351315231aa95e3504ebc1c98e1ad159cc94dba29943b54ababb993b9e3723773f462a88391bb99a30ee36a862410b028c40da2f19e9e0b82efd0a0717fb4910c8b40356c810947a40d62c8c0f4184fbc1c951d277f2114718268c0bf186ad6e9f02f9a6856cae15ff068164a2c7d854894813741fde6aea4dc9b9f62e449e336de96ace52da37c8594ad8c17695ea74972133c542e4da671e50e0c51c4795f21c2ad105909b5805bed887815b4b205ae9b395a05d53c468f9aa1d35d35d12ab872a228e2cc38fc8a51c429c0e1578eac1c451c1a07b21a6a155ca162e6c8cb29410d6b2d8b9a959a36b58d6aa48d06c99c37bfe9af50b13204ce49e373c667013ee77c443777d5c48a47abe011e456455647aba256c11516b2fb88eb5643f9766e3e58ee3f1f3f5f0d459c1f0c431465a0cf7d4476f081215a406135d42c2cbfbc0f1fe3e8e5dc1c96bce6401abf143d9a2a701d0c918ae8d1c021bb6aa259a5c3af78bc9c1b184d44f468e02dec072304f28c9016b8cf802fc0fdd07d8f56d9bc53317201f268b2c075aba2d5aa478637b9dd8c161d0cd3ed62e8a09340b0a99939cad60a4eded868373f413c08233f86fc5c548d9f07f12052b0f363536d823015998a5486500e058a4d8a0d0b4d4b0f2e31beba406001b818c049f54200181d1eb28a4cccceca8b99140a868d8d8d8d6663f320353c526ecd10ca3d9003f921e74076b20e010620002056317aa081f162464635238607981717f8dea58525855a5139158084280037099110a918a15a41dcf7646c502d54cbe62e40de7a39b55bf9f016781622cd2251fda71367e3aa0867550400d3c9cb29fdf9e4fab0fa01d7ad824a25942a649c77ab2119ef6a86688e1e0d3cc955fd1c573b468f47034f7d50ba6d8d04e5f3b6e45591f65a39ee74baf64ec53ab933468ea4601a21f407d7ad824a8f667e15d4acae6425d4ac6e03d9f41277f32ee5896ddc3ccedb3636998f2082985a10f7e771f3b9b9b9b9b9b9a1373794b4d19811450102404294e165dc2e720087753bacad00c0ed302b7cb85de40069fbe1763587c6cf0d42885551c441b55a06fe74aa548817a176b4ca0a4e46cde6f6e6e696448bb76bb61a3c0fe26d0de8b90f46d5f08135a0031482ecf85cc78e4e0771513582388dd3c0395e1626d809e266fee63347b6e43097e00e0299a4f56860c9e78bb40aa634d12a1e5cc953decddfe099a379678e944a3e6f63be84678cb40a965efae9dd9ca5cf214ab7317f739d9e39025b7a7089f1d5f50103c005eb0547450646060f0188c959092f4b6c426d8a2434915f86145ea7f0a22e480f2faada2c42f809e526e5cb2fcd3a556ce3b9b184f66da3bf249c570b92af04e9755dd566d745df16afa67d8083f94d310523395ed2d4e9456e3ecf0e9a0633bdf608a66d706ef4da7a36cdc4f9486cf35191db66e3c09d80837fb143c308618c72e2ed4595026ea3d8ce8183b771e399620a67c8f2ca57f6b93e5fadcd708b97570563ebe91cf10b564dd9e6a3220ff3364325cb0bbb7e491b07eea297f49aa47a9b5d97243dd934c66ddb5e9bb51d3edb786ec02d2e0d9f8e7247e9af79785dd4bce49cf65df6ce6618bdaefb329417e6eba55973f67598fba272be1435b080483ca534c6a7bd172faa5e53c6f8b088691816297d2fc67e316a319a9a75ca3052fa78e93b6a20e03aa882da09b852867638c118dfdd76ce18b17a75cc2e9f456b9af3d4d3b9aaa864194f3671a72347ac0971f9f4722acf3cbd9c8a4f8fe6fd15e57738ffa689d2f7e89b8f3e19a534356b766b508b83edbf97ee2cc64ed68bca88611986d17e977fb367bcd73bfa87a16a1f75a168cb27a394efc22ced6b944fcaf76c48dd5c0f0b5f55308c5cd15d6a15012bb44ccd92f4ba3adbec46d4a20637a0f772f0151d2356a9cd8c6e97f65e0e96bbec3e70d9bbadad020b455693b766f7d9c86436a55893e9bacdb2ab9dccd011c509b6c89d8e285aad3c8108a4952515ad5696b893ad56bef012435ad91e4746241e69e5ee0969658b51600c18830c70b8eec9a3313509161c2429039792a3fdb3d78909e576369dc873ad2c9bb501e98862a89527a06309405a56b3b79afd05713d69565e9bd92bbbbcbd280d35b3a3b0ec2898596baf7b23662967642c934f0cd2ca16482b5b7c231e696589331823bec218f164e06036c4bd523f80b3216f3349a2693d2c494e1225914817a99248248c64491949ab41ea1c90dfa3c9f6b00a2b00c9b60a2247285a1cb8ecf2526659cb2ccbeecb52cb7a92e4781aff002e3ba5f2da78325c6f77a275305b2c4aa0790c77f2d9fbd8bbec99bd8d0ce8a4bdbf67d9edae67aff5aaf6de88f9ca916d76bb09dfd167f5280c05eb51b4ca6ca5bd7153b3b81cb52bb2766b719775d05aa1286bf858d6c92b630b1c6c7c8f37e5b745fc38538f95f24113c7f5cb3f7314e2c1fc6ee3c0f52ffbae8ba2b2678eabbe93a82a8f82b22f987b629d6665391291e595d1aab84388c6b18fd79189f7a15572e03a2dfb60821e99755a15af95807b42b097c11fba652fcde678bb69f26a22e0deb51df13a2f27cbf1960443a5eae61b2ad68a6862b024a9d3a90c243890dcb0c9566924e0debbbaf5bc2259cad32259e22e725bcf855133e8afc3215fce21e8af5799c1ec659dc54bea74e0205f87ad913a07e46b9ee2f9885827ba556bc53008ad35f6c07590a88343b2149a15b19099d04414b90faf681684196291bb5694a4335af94a293d4ad27a2347264d1229c68992fb3844c075af88955adc64aba00838120beb96602c4a7221fed32c97f76910d12ceefd1acddade2fe27d2ee21ce1e2dd2a3f23ce02adea23220e143aadd747b431d68abb0a641af18557f4cafb5028e2401e3c84babbb5279e803e605cae0f1ebe5d1ff842d6422d6389b94eb3dce803c6070f3ef06dd5b227a2e6814822c5781b298661bd451c492449ba4819e63870f150c25a2b725ca4918b5c8443e6cb0d82450d80be8b1b24f41d180c82efbc0640078b641e8ca5a48445b294b094b0d4980bafb076903266d2ed59ad169d49b7eb804568e3467c18b67dcb342bb163180a08c37cde17b2cdae1602ee4d910427f26b82109cc8b7732627a552d239bf7d7ede5e729b9ac566cdb22dcb724bda2472ce791c5dad361eb3310f73bd5de7ba6d36d332793a4fe5454d49a594b3ce394feb9d33ce37279d70cb308e66d5f7853c0fb9f826d5b24bcb4af00dfab1fd8f41b504894178c4ab81a083cd91bc6d02306798fb7610f07660feb6252600733d4fc975dae5db8d5bfcdbb8ebb4766b5154a3d46ad8945ab63772644a2ba590c86a1fe0b2fc9a1084a05c879058091c5bd54830ada4554872bb69a9d475bac26cbb794ab7907371e1e11eaf1664ad0673e1d185570c3131b945d16090880387b44cc321413ca004cca195a7920f98cfcb072621795bca759a8407285ad0d369950b7376159fcea4cc03269b16afd6011389f60b8bb88d03db9622f393820864e0ee72e35b2e2c2a61adb59dd0502ab9cfc6cb72ba956058a455445b3c2de20b775e2e2c7a51c674879309eac2221e120c89ec5042d5fc986084286495152dde959b361e4804f38a16dc8aa90e1965e9c075af08cca92d623b072e65bb01f3c96d8b3d826d3d9d495fb1476cb62e252ef0941c55e24229dbabf8c0ec033f55e284926cef76041f9853ceb29562c06d47d8b2c5243c981bcf8dad14038e24bf2600810724d9baa894d64a6bad95d27a9229c501cd16468bd71e2139fd6e6db8f2965f13808006ad5e9949e2ad0badde9ab50d01ef0d4120528319480004268c61c7be5cf565bed017ece5e5757c8124a42e47ae1816f5748644f00a3970170e185a2ba535d32c26a5ac52962e7d6f3dcf0e3d38cf5b1c56358fd163283a576ac5b04f3a27e92fb458abaca45a3b89d22c2629cd66cc19a6937ee5de88999e5427a4143bcc749b919231fc2871348bd25b0f71d895ade7d921cf5b1aadde2ae38bf1bd175257813c9368559f2bb98f763edd974ff07d3b26242fd7bf8c0366fafa8a9a54de1b31cf59eb29a5f7e59a23a380eae55133b6cb6f979774de88131335abb39d37c6b97d8341360e5cfdeccf7a51522766efb477f61d86ca704f96511aeec9723ccae29e2ca330dc93e5ce30bf3c6fe4c8120edc6bc20a8e7207b728925f1d7a9e1732761ccdaa75087923cad34b1c1bcf0dd96aa920e3a087b9b7192999e2ae0219abdd3b928412381a870bd222f71bae400832e19227a0a366f8dac13bc1c6e0e01f156ce80ec2db59486682da37705166ed28dfb83213251b09bc316f4cd0bc042cca4c68f9e52c015bf9060132bc6cb53204e25a196620d8ca90c8be6cdbc059fb726dd68b31f2bcf8de8bd1be1e57e8428600f7cc90df6d15b02a1e7ead6203b4f5a56112ac108954d185a32aba40864334580bb967b255742108e4de8b391dc621acf09a29051b4208b9aa7121a3e28847ee62bc0dbb4e631a15702892bb53370e87713875a21805447fbd3b69f618a623a3c9ba0de4ac9bc0063276d235922efb1549cf6ea72353cc06899e84d6d30cc314b672973dce0840b6b8c37e75f4576b90522ceba1efd160f2992591ea693d893d76b3db0b9493b1ec1dfd75921efa8ae2c1489ee1aeb30ecb9e75d46677c3b0637809ec22d193aedc6e07bb790973666f3becd92fec19e62a762660ee609e959bb06661df4b278b72c4e049aa206cb55a2d213b8f489489874f487e1b8c45325614772a4824c3446251c4e9a128135f63511c5aa9e689e3607c0ea763a723d1cb797988b3010f5bf9e50ebe5b19364e8e1f10bf47d344880cb56e075b30076cede84499f888e3cab40f5bb9af4cb10d9ec63798d0118237870c9fc3bd9d89636b27ce217757ee57851ce790fb3d5f60c2533d56cf179af0542f772f0a39be8343728422c82f3f3404cd410a5bac400e2918b213912084341021cac10ea880841d208a10c51a7e60040b473cd88938f061071f383862440d6dd8897fc4795608411355a0031b5ef0012becc4ab228e0e1874a00b28600217e64034831d1729e23084257401047448c34ef4c291106c8002181c61c21c64d15585f8ce6dc7f07019b84e7b555c2194fbab8873fae93d1573c430b0e0de4fa7d41da2c8f6548a1e3891bd769d657c672985dc9b0fbe42b66d45b6510bd94aa26ca9266f4759910352a0e18a1c2f5f0ef6f8f972ea23a679668c0999b1d7bb23df202192a5e8410fae8e99ccb26c66593e64f8799d96f076a30087e557c513b4c8295d9ac2ca1f5764527e55f4800dd976b3b00f82723f25e1ce3bbf2a7c60833c6fb240c611e31683eb4ed3d45cc855fc2892fba997274b17d65a45f1955f153e70224f6c823192229692038f261298a289042638236a86fc4567f7e9d42a530aaed7b7864c0f2f3a2185f105434f5c3dae9611ebee2d4a4d081a3912638c3d7277cd006af1c290e3db028acfc3f9c1f4f89d9753f2f8201e8b3ebe23408e3831728cc9d125c7948e24c75faf5f0ef7f8f858f3154123ad825a0ce108eea2d85ac1dd8953c11d87d2aa27dc552e0577dce92ad50aeb1e5796655976eee2db7bdf45b1d5278eab95e35aad56ab15b3e9c36a856fcaef3d3d16451c985fa55ac9c89d347a7957e3f6f7505cdeae228d220e0c964fbce068f44414f284906d62998c130f361f4f3c767d5e3e3a3a3a0281add1aa3e118f488441ad13b4da091e3c620f9e78228a202408a275b69b96c123ad6a2069592ecc7428e2502251a6bb13c70d7dfe6a3ce03a7a94a916471d2d92839ad5ac4894fb9710d5a27fb56811c8926880aa7ecb2c5e1a1e4dff571681aa3e2542fa094a234d07dc15d42a239e88af77548bdccf7e1471e8d093e9d7caa26d521832a488475492041246271138a2a8844389dc167847e29436a4ae0259cacdc7c709b8f5340f769cec1012aa439612df805bd88ca1dce5a666a15cd7361e9478036ea1d566c5d9722bb548bfd0d78b74b95aabaea36040576b15f607b32d6d126b50709789269b181aca72b7dc97af63a96b4241ea362236b5ea44d384c0a1502144086d79833c2d424bb69e2986520a1440805c5bcf2b83090e263798dca00709608fbeadf3b3e5f235a26c3db485b6e0ae4fb621e6294dd1b2cd277e9e368534d259af79c10b5e178430a497a5b60d3125b673e08e4879d42a699422a1f133a4a4492b8810c1b059a2c927e47ad6a461da10f2319b5343f9bc3eefcacf27fab53e91b10bce2c9e2cd2aa99c553f5f3346a56c99b0289b34877aa7d531179f4686070834c817c522097140805928d1e4d3fc1759448b682445ecfae2602ee7a0b5a5ee0ae2022ea79987b6299ea24fbc81bbc9c57c4c868c6286f7061645ba2659737c0a255aaeb1d2cba28aeadbab0ecd1aafe1092a386ac6092abe02150a201c6e8a75c59e44a353c555f3e814f707732914f94604e66218d648fdc973de40d4c4e8e102477d70ca411c719ad68511a49a30cb54463b993b753c99d348246a016d2481a49a34bd26bca39a5d1d5e3b61062b0958b2fe74dfa795154c6ebbae67c94315e71ce0b426c6f2dbe2e8c6ca3266b7ccb4753773ac6eb8ad7755d935a88b181e4bd40f8a890544a29a504a2555db7edda866bddaebd39926baf41fa46fa856b905c23c1aa28d3a7176a27e11c27ad1e6adbe38a5adbe980d1bee9d56955ab6c1b38fa4e468419562f3aed8c79098451f91e152d5914e78e621d2ce30ddccb9d8c950c4829841976ac5e536699cd32528c8f0a21a284a144b2262dc14ab8022079fe92f232998edf7124ef4ef9ba708763925cd23625123a55bb14b4292dc32abda426a53dbd9ccb27956adbb50d16c2abc5806b20adfca83812ca7d9cfcaaf0c190fc369e1a5d6ad52f2f03f172626e2ad870943b1f729f3bf1e0524a4d560dbe93524a3827bce09c730ad97a54de364345b201be9652caf7761d6e3cf20a725df59a53c334acd639ebbce60c326fa376ad406e43c0e04ef24eb58a32fd12b9cad9351849e0b2772f59d57dc56b5e184fbcdd2ee944441c22f482425a350f8590c020904777ef48661f240c0812659a073c0254f5a13d657b89bb938d580bc1834678340d8304818343b08997034f2f27ce295ed0ca90069192520dab9452795dd725e5f5cbc471b5d6edba64add766316cd32e18e422d56c6f079590fbf2a561548b05b92e292f4da3d24a098334eb745129638c9262355e53ce790529dafa24052935ad556d92010733bc360319704f0a1ef4206734991ec68bd289d54829959472f3320def578b81d637bef77b3d70afdf7db94956d8474b5aab64ab4c36c608b38e0a5b28c7cb6e9c09b51d5cc700c8c717eff6e5803a608458b09df6931f8c1a881a588054ad646bb3011abc9680b7c34599780aa57d5fbfe8b90ce9a4effacdf1037e03d98e3dcf0414a0dde21cf6da15f0762cfe017fdd048480003b1a3e4599f84799786d9b8165883b224240801d7bfb6ce3b9decec663adb442e8c4193b92ba0590369eeb72ebcbfbd3aaf8eb12d12a89352470dd1bf2ca9097789e32a2d460c7d84fd6dccdffb48a883770930626a255b18726e4f937f1935342794d7ad9367073e26d083aa30e91aba4f4a226a47376dd92ca2bdb66d04fed04351adeb681ab938866c11cb3fc0f8dc6e176e2df2b3ab2efd51ccfad5edc42155168ad2e9d68d48c72ce4661f5a230766cd9dd9d02fbfe5a0bb97f280c450883a488835aab1e7e5007f2360e5142096196a1305485475d304619e30c8965ed7ee730d856cc39e7a473ca28a5d62719fe5d709b9172994c5f3075ad81ed6b28e0ba538e5ac7752b1f82e4986316728c7da1937a5119312cc3301489d58b4a29a39431d2cb0636febdc8e8688487b422779a94f20d5a6429a51008a117de40455f114e215584f105c25f1784f0c22a855996499e397f5d7f3a3ddf8baab306030e5ed7b547b0881db3d70e78e4f8eb91f29362072320e518a12abbaecf4bca79d54ae9ede9e9252f7a9dce8a5d765e93d2edfabca82dce3929a534d2d3a6951ed67c4d3b85e4eea5210a1d80bce0055248d144968f6ff3b152482194e3a58f9d97b3150617b8800d43e811c4cead47c2a00c5048437e4f258bbe4022fd98ec004cdc4b6e1279a2908f12ed62cf2e8dee4ca3553f529a386ebefc9352add64b884773a54ef2dda97337cbc679611f277f1b037ae704ff449926e2d66899bee9be0680c683eb9e90924ba3651ac32c1042b3688022bfac5d3aa7256558b53f374abaf144ceda1b2d4622fdc4fca6c8028b2cafdda705699add6e31cdda5b4c8b27d9ded2e576b8f1906ee3db7c945ca7a39d1b0f8986bd70a7747d94dc64ba89090b7da7a4051a877f68b080b36fe321f5e60333e956dba6c8e20a39db922cb925d924d71cc7c126e47879b73c379e29b228c952a9f426a99b4096f344e01f1a5afca91c89c4693fadfae1e87b443bda56abbd360edc1bb2914ecab0ba3daafde85022b97b434ccdfae1da85887d2f1d1cbaa0cd307a5d35e29438099b745d421bccdc0dfa214b5e2a3908be538ab674df4ebc2f4313131fdc4b57e83ba597dc20107ca774a1ef70b76ff6bbc692d24d4a2525f8b1847370f3144d3a9accdba92816ad6c09e3c53e6150a6116ada49cb36ab6d3c37e812dbb56b9797361fa916e4c36a3561d045372064c88075a24148b399a65d9869fc0c39f1b19a36af3d32b71e12212eaa3d0c62188475d2eb6a2be05ee457c5165a99966e8e1f354ae74a988828d38fa57330bbdd23cacd836a80c9b9d72879a9e417ae61720ee7f871dd042b11655a47ee6d891adc4b700e0ebf2883c43603cb17ee88e09eedbc9dd23749bb77e466dbe9e816607734c1c177709bd8ce81dbb699e53745165ad02ccbd6da9a65196e70070c22691876bd8341d72525c9252f49b2697faf9bc669d750ee60100c0a6a718395cd8a5b86557a5d5b5ba9bd66c91ab518e7bc9a505549fca28237a795926e95527b556de399f3da78e6a7d5b0cb395157c4ae0bb5d588611776cdeb9212067e51413cf2361e4be57ddae5658211acc8766e08805b027c6a9ea75b4f6789b38b5e799b514a6ba5d7e99661d73ce9b392485aeb0d68b58bdaf9ebb5466dfb9661d57ede6acfbe56db23c32a24c19433584d04efba66bd2e9bd1ebaad7ed76039b734e7becd2eccec767f36f93e791a7d727a4eaa8044c17b5518e3a45342200001000f314400020140a074542e1683853759d811f14001096a04c684e17886110c32884103286000043004440004440300007a2192a27db2e369a1bcbdb9585b6b8dae05008a6c2cfbb6dd988f6a68a287864374b8eb56c4876a4bcb25c94f212656ce00c35c8e83ae1a0026f8a3c2ee5be9899dcbd03b9d30390ea0ec10994ab5dc4dbe82dac5a1ca7dbf35767514860799b18eca6573a198ca039f0da456ce54102e756863754a55f090f966bc81b1e94e880da0e42d4486784638feb3c32172764aeaa2f567bdcbf29e715acd5f82ebeb73eaa5839ba281a1820cf869fc8779b1af5817823eea96ccd3b6e05961635760c17e0662976dc38401514a7634ec3bcf7fdccd52c6b4072923770130b700662a0914cfdd4da2686b96affe3ccc112f65dc360f22a8ab245f787f49b7bd453b0764576f6f45a97932bb8e52ae75263483e26bbf2ec993c312d17ca23aeb0ff35ba0461cd2368aed61f582f8a066a52caab7315bdcbd02bc28569f60610d37935efc4ea6b12f77eef5563758b994beb9088e3c5eaaefb482daed6e295ac020a07e5a53a60ce425d6dd92d9caf6edc15ea89acac81e862ace1138be58e06d9884b5d3e588eb062075a8098fffff57848477e554bcb08918bf1a83316abdc08e455d1cc015691dc91cb0ea856cda42898a8b1386e0a73dad04f2a8e59bf3c9d74eb374904b3510cc1bb08684d7b7102712671119cac1adc0aae9b017207d4ef1e3936f51d5283574d4974a86883fa36b5bcb7d119319cebc42a35777b6601c47f1441b43974372ee96958f3a9cdceeaf40ef0cc1589625805ca9d1a8c8403ac0a226a495743265bb6308e60ea365106e647cc32405cfe567daff9ca38c2dcc33b50ec285a5cbc00c8e7f44bcdc2d3863f18308f89772c498b2c22d42a8239cf7e3c09c49c8c902c2696643d2076d03bc7cb60ecd2ef6c90475e8ea61646caa108b1540f840a1ac3223483fddefbcd5a98de190690f56f372fa1a34fe7155586a85d50f9dafcea5d4484cc14fa452f8f98ea43023ecc0bcf102cf4cb41f88b1a1103b9acb966a66652f0931f7720d5e971f595026268d9111963ca9da35c01c8b660a85abde589d023c103e3442642d4063ea6897207ef8160efcc19ab8526b6902bb307c05e2a8e210a066d74f00b26ee4669bd55c6d14126afd021f2345d775b0b931cd85052e45c5838b37b045caae4c2652545f7d3b9a5cbf7d51d101dd504ecffc9c37422e221883e61bf5fdae68d9366f5693ffcfbe1628a4ddc75021eb7493522cbe00cb3ec318a06c24b175b69d2a351749af5c43aeff56597aef4e979f8213416c76dd6f02d524aa9e302da3c04e163bc1e1431ecf40eb341e1d3357c1db28cf813ae309bcab205188189c2365724135eadcdcb709b17d7e33e82df8a78d1c66ee4f5d0774673e395126e9c7703fb8b395cfaf95121bf5e4d18f1b69194dcdc7b2a14e8a9fba220baafc713a44103784cac6d4970aea1d65f4d5da5d7d302b01ff0d94602737c76fc3e86587c48e27e4273362b8e6f11b35a6c0708324fa99340fe12ab0cd4887b8e38ace14bae1d19e343ce4fef2c358c6340d51c7e90081d8d155ee614aeea122eed02094fc2c4a896967665e19416b63729489f44c6903857d1787200992b82742160e3e60e501efd2f4b41db9bcd2e246a25a3fcf5fc388b657b2c0426e8530915dfc9a5c94276bb4149d91f77ba7905bfe674936e116fcbfc308758d5b7732a577247941a262271f5b74b3f7b3087f0622b168a53421c0da6e256ef10302558993532e120184419a626315b0c688da2b061022a61ecc068e29013f40e19d06e24248a320b0118e02dd4d3011f5f3747862f400ca0a7613afaaf868e7755532edfee785e96182fee64f7696a89cf25c962355069f30519a1aec9e5ad8f32556515b525529e420ce53a9478a7c33d0123e7a3e2c9b20cc14ed01602004825335cc5138aff2fe27cc5f9114636ea2f24d5ae7caadd59a1fb77de267a582798bb82d2cde4198a0737696a91ee020e7dfce49f6bf178cdc06e11d65e011797c184cf93424140b875c42e2c092f84522ecbcc03238d479fa1c8b4e8792805980b2457824aedcb8cffd3a1f16530c08826649f70cca63296286684f49d22edf00682e73d45c212f91f686a79996f1f7f2ed516ac8652a541daffecd7d3f606b2a3f4cc68a0c1051a2f65d069ebbb408626cf9f142cd0074d8905e18ec22d6e0ddde0328edb30976b48b5e354294bc135387f9914f531ac302071e918747cc2dff5e87b968873719c7cb1daafb19e41bed85ff6983faa22d10336be76585e63d3176a4e025d26f62404e62bca4949c3a165276cd9e6fe3a85ec371f77612414dfc14e032be8f5e8b4ea34e0f26e5de4ed3255e4e8e133b31cea22093979b70eea3bc7fb27e9b99c51eb7054263203b8ebba0f854c8252aa0873c39d1495f328e3a3432c0adb4e77926fff84d51d7eb8f44aa024ef8d0192734dd4c5becc657c35f3004b5af32dd6161ee3de09150cc8467ab2bd8f1040384030fd05c47de7150384f37151832c6b604c2828d05688a0659d70b969681907e0ab193a534044e5b2da6f1b29e67eae2b01a14c4f6894d8579b3b2444e0d60b4c159c437d4e59d462cbb69a17744637f90d13ebd4be880ad6ca161c73c59b47115a2fb0ac96cfeec951d7678bf35ead87ac000dd5be8d0e488ea84af0c5fd65dd42d78c0a10f23df90e0f9e9f2c82ceb311909ebd215877abeffc3d20f0d58b5696a77a42a9db0263cc71d781de755f9d2966d4aac137ffef574bf153011e37a7f288874a9913a0298c7527e8b97f28d809b6878efdd11fa94e5b805c71a4a84509edc68e4e7d0a503ab439c55fed1fc8a5cc3a0a368322700c957bfe79281f2a580f026e001cdb290b707b7280068863f381d5e8d7d1e594975cc9f6df0fc5af90dc6ab9039346b6f066d7d4fefcbe2763569b38d5819cb608f249bf9fe73a6c5a6e4265738949993fdb3aeb5c36f9214b771933bd76cce18abc82be83d768085e5f34a63a4b7de34852f63bd7c519734f5d84bdeb6cf81b45c07139b7c4011e1786977e741fd23cd8c4d154f10b6df7ed3c7a607c88e1000d959dc0f66e406f30e8e4552f217e137db8d87194c944e3edcbaa95a8cf517a0754b7d52882b43b0482e87a4f72a2ffe254a7c76ad7d68090edf373851559461752857147985761e32fc17e5a242cf03e3db45c4f1bac8a3dd490bae760b6475afd1ec624e21414084a6cab45ec0142606192bc8b9ae0738c2a8046bf7d7cbca9e577a072beed18572c8b458e1e7bba2590df8a0fc09f263bedbbb8f4c346d8fec82f6f866c9f9b9908dafcc55fa5c312cce876a6a6eb29a6e191dfcaa238c55ca9afdf0717d48f5037adf4fdb417e4fcb4f6661af80375e2e9a2a2a7219ae5528aadbe81d40e7f9455db8674d4456e8cff92a09c6e35a37f5546b5d3c9f75e37a58a557a6560ef321cdc4ccce66fa9c7bce4d965d2df77cc8b1e82a408ca873c975c5d4f08919649aff466a4de77e6257700097c8ea7f3539910a0e747e312e4623fa620ce4be3dc4272a6101f383b305387f2d0500afbde028b9cbdec43e1fe796e692fd62209189d9e55e10b52b79586b7216cc4d066e75d70dfb787462d503bf0dcc063dc71cd04212e7d9d33eb5493a1921acaf79b64a70b13c08066dc9ec5ccf0a41d1188e1987633d7236a93d280f3727519377f90a96e15709b90436a213596be011780e086cebfb5f6fdd2079878d78e87b0488cb11fb21e403e797073224fef2654545802f580945d0e6dd12237c459027d42c0645107f5720206dc008f7640115b9d29e774e980cd4505084c4bc51125192ce6a19e0aeaab4c55e8fe405a485d446cce3259f626ea6c21516e22a9d7014aca3ae5a0d8151da5dd425a54e049a7fa5f8790b5e7fac7de9a591474b4dd75964b9963b7273de23b6a3d8f5288791305f171ec5cf48001285405561fa638f89e926b8240bc086e59d5e604eda6f525c596342b89be1dd135c8bc626c3aa04ce009cc041f20d1bdf80e9a07935c79501c7ad7e8d9a2c1bc6226992e8d735a4e8cbb18270b2fc9e27348b1108be27df45b8e30e14d5802a50796ec48b75e9a4cd5b14305041a762ad924770eb4d4b445165ca157b31640445b17c4db3400910b4d0adcf10aff62d2f648ee6e7eb5456aa2837b92fab82c78e67600ca306e27a1a08a04b9a7005c19c39a18160c289fb8e530c257f6656ee572dafe5916d3eb48dfa8391bd7e2d628fe68bf39e508e4771e2e9c0e4c987718035147e8a9de19e58c93cfaaa1047c947ed7e3c98dac586da0940f7688d9af6618d5eecaabb88b4993f6afd89566231b8839e6840c5f5bbd64d4e65603ba88b5d2945304394e15561f682e1485819e19c75d48d19997ef188ec139dd49a9ac027abcb534861dc20fb4c6a52c20aca870951fcf575302ecab07485e2ad550b5171493279199cf047348a48fbf00b31386c50d706a81bea53f1188ec73bcad3c08d96634635a483dcb1b8cfdd0c53932c7664e42d7769156909d6c7e29440e41aaa58b4ae6e6b7c575ad6c576cb5627ab240b36aa14ea390fc2bc6ef62b543b4f6ce9b232b0f071fb1596e0a5d8438dfb0433a0cf65bdcef9683013474e6d9f4a113f71b679f4967b7edd02c22b4fa26a03f2dbf4b77cbdcc98ca965159199c2de2f4fa0a109cbc433010b8f77c47de228daec4c9200ed99d5da03bece1272c6f3d5fb2b5ab600ef5f1a00c2a0845fbd1758856534b75ad0628de5905b7a2bc8d95dcca9bf9ca3f008c87b7213bc2af68de80bf989cd9b93ee4f03da2b495f02f823beacca31d260c216e6d1e98133bbe6fe4a3fb8b7cec00a12a50314e705847e69d78b2260e7bc6963bcadcd0ea4d997a828c6ffb4e43303b45196a593b464ad4abb529eff21fd9503829f113100f0e0cbb5175753cc724dea399a7d55c879019a645c08a2c509c1208a71fd2ed96b2eb4ca05ae2aa78b9e20f3bf28afbfe453a513376591d66b11cec3e04361ea1163ef31529855629499c9a22b74c144a40de73d8c1ebdcbf0454e843d7749cd415d5ef6577535628c7fffd76cc50e63df00c3b8c800eb9c3a62a9497f442127c97fb2483fc6749c53aff4a3fac94e1602f275e7a8919ee5b93041b9dac45d24f2fb37b5718536c1a8b5cb98f937e9ff53cc978671b393a8e12a1ec4c302e7f08f21d27166d6efdfa4b792b95843f2a5685d4ea0309f99e92770598223726823868d2d3ba60946fc62f5ff3aebbaf1dc1ad1f6a3c6dedfa308ab278684e87aef79b00ac75e0d9b5d7e1ad344cd238fc66f93acaa7ffa74ae6d6f429cf7c7bd7f1fb0b136fb4d6c160e90dc5f36a47bad117e05bb7c19100a544271ba7a9c7bec0ca51ae8bfc7d5b67ea2fdc9984f253731dc346766de4afc0d0cccc3d6133865c196069284f157ecb18eb399dd397bc4043da41c81eed1a466096b74fd6823ebe709d73b812750347b6d95a557799831218ac4a653776a001271365817a390b31424616310f50da906e0e7082cec366f1baebcbb5c488a72fda461b585e03ef80d37318b029be1d4f07dce2ca38ebeea0b33838216e370273e7417a413e298c59d230115ab09921ca765efa133c4d29453d136558edce4aed21b2073fe382083c17f59cab46a161e695031108fa45c22f779c8c308d89caa463da7e4ea6ef4361c55f2d24b374eaa13410f279239ce2dc5c87f79aa447c99273bb49e181491b5ef04783c78932ab4fd83a6139241a89dda69215cc38387b82fb4ce068e8658b47de2be7ef75d04142e88d705d41850fc0a0f38eeb63488381a53a9d62273526ecaaa6cbd33543d3fc4a5012a4af08095313512d510c2528f67f5578f473ecfbe58039d4512f9283ed8ee408d2cb645563e141cd85fd8c18bc5c07b0e79ee60e08eafc7a63a92024835cdec72d4b7b89e9d7da1b2d22cbad3ae976ea27a0bebd43c4cc3ca9c36382b45c285c44af8a701d6a8b33b31606ed9d03384c5d096f93070b298f6060d85a1f18af97b052e32e75d44a6f018114a1c2c27b690977348d7dee2d0b1f9abde2b5ba9a328ef30ea7797728739d439f554b57acfa23b06f1f02abb9d8c9d2a1257119646a8561912f5e1d649a4411307466020443fe68510d72d4ce2a62a0bc14060a52d0fc2d21f6d3102200f52b21c7b04bcf67a63005ac8a0ec958e6f60692786e8b9022855af7ba450ec5830cbb54d20089d79d8dc9b5ffad8282e0a6236da04da6e12fbad9dc8329e0c711f8d8eb90d840407b9238a0c3c47b1143b2a428fc3839c84113b44f2fe615e44ea418c73f81f9640202f8cd51ec1ee67ecf260a0bf5cb8e25783d553131a781cd790d2476b0289fdbdbc590041138d9fcdccf4bfbffe0e363a2c8403fed886d52cd2d9e70361087bceac4bb1c5849b54d508d3190cfb53241bc9dae03a56e640272de27063669d5f4268ae02edc7cfd44605fd4393aa84eee0c407fd2ea73410d668e691f1797d3f844d78dcad42e2afce1d38a924b093705ad1fca4f6d76f9054e67e726b277f5724c553b74514e06d5c24159112c8a42fd2d920c7fb9643786a3a8793e060e8c6fd9ed38b9b7c4c15e2c4a3e141bcf7213f22b4bf52d4e81cc084595d4868b404c8002b0e0406997861b467f634fb10bf89c27a302830b8d3c7fd198b2aafc17ff289c3a69a137baa9015915b15b0b47b3d9b17040dfd24b618e5e3f979ee1d0129b9c2f03be77c1a10671058bcec8da19ed3ead673f9100289f7532bacddc32016c35feddd34c4c1b3a8d9379664183d9b1936d0168c7d664c098b90f5505cac319433e59ed1292fc1bea80d1b4415c31a94c589fca365d0ef0cb2b05bad9a38680c4085c9f0b24b1752aa01f4ca2aeb8125339e68c1845b4b792a0f11b9b63e00c3e29d3479472e349e4212a68b4dce77fa34d55796d4562a618dcfae3a4b8dc6498bd91a4b293d48df73c9a6b6d43869b560719df5c20e9de123e562273fd423935deb5947a2a240156e6d0ef3ea66d06ba2fd9a47cbe7a79fe7417aec772766a81b4db216b9d74b6cc65390dc08bd30c3dc0f131dfa91eed4f14adc6468e00f4970e991548702c3a7a5e15009efc441cd2a83342113c7008a47f705a84cc9fb047ca24252b390cf2d1dbe59873c31f88ddc4c49db87f52a473fea33e641ee45fe331b39dfd083a0b8a46f466b8c3493c11e6d5d980e574a349e4ff8e535f03618584a6e4e27e6a9091a0ea8645e0af0cff77146a5fde162c5c12d89aba8f3f769a3b7e5400fbf1fd67b3f11d6b4c24c1f8c3c35524a71d4d202a9cdd2b3d64ff8b1a6571700282dc39029fdc6d44c992705383be270612eb2169328b713539cf724aaf64ca361892c512a7c1fc97c1d8a21ff15bf768e78a4f3a1092c0c2f6c63170c17ab6c383562e419cc724134f943d1a15601a8abf2c015fa67ed6c62ac4977bc0bd5934acda7e42daec3ccae222c1f91c461c9754e92f2fee513a8096b299e8be3415c2c5e0ee6686e4fc7fa66672117ca7c4c1ca2ddea40689c03f68c729d565fad2bb5fa270117f0cbc76662448707451d918d91b4ab719a6800b06872245a0bb4ccf9a163b202e5e651cc3324524214f52f3553e758c78dc81ca0615f440c4aa49b1e59a23f36ba83eb884882eb03b34aab2512338492bee72dbbf3f20d6655e8b5ae9771cebf4182ec99fca27215f968b7177cd5af08df161e24c5fcae82764c8019a51ca79c3c9ce2538f357a1b777e10cc90ba6f83da4986b24e6a2c2318a77fb5abb965654e5adeb028189387536665fa341fcab7c4fc0608270a6e21d073f2c184a274a4b7a3e8c7c60d3b0af4685361fab8af8852543fa4e4e933669a1418ee27d751567badf824ebc4ac4f1ebc84809910d232567c8962601e24edaead886df87ffadde67672f347dbbfae8b6b3a3761c5371217a18d7546bafbe7ef1780d0c0a6ea7890b5113606fa35e94d4675f9f7ee2cb2d60307bf470246c3013f51a1ec7a129bf989118086f50b61e28e7117807cdc5b9c9fa163c54eb1acbcafb559a255d92918d9170c69f6f9f497eb6b188e5d6f471e5f9177ba510eea8180afe401ab2ae1e5ac40eb1e4917aacfc38490c7635ae045f1d83e995c05b2e67a0dc84871e3efdca6cbcd94596d56a66024ee3c98aea1279a0ab2922478e36db643521353cb1be9a31accc72c8777e7d8c87045d398dcfe2dd0bb371f9c6520bff0822c3e104d1ecc835b74d7ac91e03e086bb63a4c29b0a38273ad0641ec2fdf735334e2de19dc2f906fbfce342906f41b72451481a657673923b422ae3781a259793b56ad8d075ba8c4c9261934f26703a53869de58fe55e7e75c792fc6482edde4c759095a7c9252dbaaa8b7dc29d9d348e877b876bd7536754df7c894252070b66f764edaa1571a359989b95c6a3d07d09baa554d2e820879c2d6fe903c6c59fb38937867a3b6701a84343bc5d91c410d40df6e856d464e39270d0b6112c62d621359ab46a32d8140178bdbdfe440e6e958aca313c9b70ab17c40d54e06045cd3147cd015778d6d70013abb090e9df5b56f5c59e9f2e634c2c455d887a878ab77270c2ed15c36faa0e9db94880ec30b64af600fe76c2bd5dade82dc5025ebd83834b2c7c1edd5b6726b59fc1a2c5b40a5e4560a26d6b9493f28708d94b42ea422ccb631c8c38185bfb6d2ac120d8b1609afc5dc548e53dec62a4922c9e3665614d6a086c6633bf4f0dd5d51e381e06d81375073fc5ab8d01212775d3e9518c108d10e5ebb6ce6e047a4cdcbdb4edb0dd0e8ae90c28f282dadbbffd2536b2ba06b28430d51ed84f003408f7a409e226a075006dbcb034170534bebcf3085acb1bc9c3dae2c3c3418dcd9b28b808fcc453abbb96dbde5e1e578f45a5a4f4f4d1f6a1f9374242d451d86f5626ec8d22f779f91aba79a24917df703980d842f8109d4db9910638d770edcc984c7b67820e0226dacb3baddbabb43cdb8cf4f2b8483e1439f3072f2db014a3f675bd86f433781d80d52f4944cf2d78e42dd1a8c43e85144605985e71251995831c09697d5c39b3aae9e1baf06859904cd41f184f833f9b619c89fb4be6dc80ce2a28ff90eda120b8869b9523c1c130f065355462256f6020095b2aac4190187292ba1ef904bd4d998f58cda436f3ff496982b33bd373d14cea9b796e8a856321b4bd29b6f4ea2e16cd2ee348d81c82e10795ebe9c0b97f3f636580cdf3a45de7117f6c0ceaaefb8949524963593bca2dedc1d32d433fb2625d15c222abca7b449d4814a7e491ca8c08289990db36984cab0210157e773f07e86ed0d3452231c9966c6228e260d0869ad34f1dd3e1aa6eaebd14a871252351fbdd072b50d4a8242eb5c93fddf0fad17ed84bc98a889fb2c8d4e2fe0e6a2aa4665819a02c229d824261bb5032c184e3c1f84c3363b210b21e702dee6b5348e34f6ccbdaccc217e4c3b936e49a1ca21c2f5c8d1c42219e1f9efc6a57db1e2f475a51846d65cb107f87980992f7aff6e7fac1285fed98af9378f7f1e44d10275f6c0fd054e2a97f72340c1121b501340c3af6dee88e622c02ba348ff13d91277924bb13f1e77f80b388f592a82bb126ed2fd8e2fef64079587c098718adc8fa304542c380a2b9a0d0baeeff7d0559c9f8fd07e33038fdaea821f89157f1f7eea8215dbdee775dc7353adfeae6efb1ce327cd948de0094d786ce25907488d0f2b9656cfc40814ec0d68ba1bfe55de378b8532614c49be91fb27684edf100fb5b445f8ce8278f726c8060666a16cd80ea01d1fcfb0891a9c7bf3227855010a37e78c6a6c05ac9b90c3ad56de4edd63253fb9fcc1804a77628a5d8e2183362b8c0c8c3848bafc2497c6543a8320bd97f50f7d97c888b47cf71d394232a0f6b2554e439a1638f218695e764292115c262f9986694a966986b20713e807f2f6852287e1d2bdb653573cf5bac0af095ae129268c20b5732468b1bb66644db03ad9cb259a283d04750f962f6fe1931ce1c8c84c3ba01ec31e30725b66741da0a5953081cc6161780ca8001b7862eea72aaeddbd57c7d427ee6506ac7d855fe894e3c5aab4043d0dc15bcd0ba1ba45f5a928f42aff24e7a15588ae1ec46833d0fee8a5f89a7fe57fd048569d3a265c4923cd48d6f0c790b81424291b6cb478fd7de929f48596ac437a796d9c0318762672271b1bd0e99891591d40b8ec850913f76f3295bde953bf405934d38aa4bb2aca4219a5de834757770036faee79bda1249a3d775030c6e39533ddeecd170c35d28f9e29d11a685fd743bbcfced45dca8d726f91bafad5b891fa58387e3a86ae876b982183fe3eea5fc42f92af90eea89887cb65685325c7317ea05c254f3825e1fcae91fcd19fc9d07486a8599a675f728a1de546ae74dcc784fba61e80c7e4772425c6fa00b52cbecd3606e610c59ebe393fa7894e8d70e2bd4794f81926287d04537b92c3edc7888bf41092a51493f6ba344272ee5ac10040444a776210bac517b4f7bbe2a6012e8d95008f4af3b2a808dc0bc5890aee026d11b8381264659681c8e00a77cb8d805c0b976b66d7e443a082f99608e539f9e3bf685c601c2617b9a58642959423b9521ba98c9d06c356ea046f26f6a166adf5c4c91d8cf9b094e653e59a0a26fa1f28304e83e1c11439784136f9210aa14c9c9530081f1e61c1a218c065384c7c3355c41486791e1e7c2fd52cdd41cc428de8e2129e3bec0b1c5c36333032e072106440d7d6a81ca03c790510b79376c7e7aa5012680e3d5e33d1a31f522feb4bd9823d5a75162ed454a0f04b6920ea44bfb31648441a1ddeeb95275ea41f4b6783ba08c1d27735c6462114070431f7c8f50f6a6bd16502193a1b63582c1067b435105da467e22d74218e8bb118a985e243711e0a61bbf8f4cda42ebd07a7b1228874455f7b6206132d9d4e5d3b84a48442c9ce472901a7ceb6993a1304acb35e5e9e1462e710d606bff651c8c0c367fc4a622d2747c46bb15612d52ecb113b1f52ed460c62a83897b7146e5ad557d1233d48db65fd65a65d9b01306c227c12b84a7cba94cb47a1aae4d1cd263d554ec948e99a926fac8115ade054a581443d1e2d00e18c2e91d1e99179533684509c17deb71ae051705845c74e980a70d21154db9baf327fb3a9289091a195088b0741103c6317002a07fc23ca419af557dbb3600332e8a3ad20f4b6875e542cbb03b19cea938e6ca74fc21e3eca233eac84bfdcb694530251ada0ac920adf10944318cb0428b75325da055021e2084a39c8b8e7f80f3094a13935a64fae122b5713864507ce6dd9c9db4927d7be39d8eba35c14a1d5783f770cb0be318cbb8851e0d874f8ad5937b7504b9c1a3d0e1d994cf3e1a81c07007f9bd67785462ba0b9ab68a66127d6fd2ee29451945fd7cbd40eca4bb8e7e8582bad50a529c01bca0a31d81d42df534ca687109785ac7b2ce28c58ad9fcee40842053a081f6830559011c36181deee31c58b154c0802bd89e53e83190ee06bc1e12631764f82dde099a9100686f8fff0b03cf5831511c45b267440031fd7fb8f810874d7cbc02df1b82c3920188f78dc59a9837c51bb66a71c3537c95c3eb3260d4a30372af75e91c0ab170ff45f5b8c5c4869cea6899106a0b1ac0cfbcc28e626c11130ec6a489e49b3755102d96b32d2066881c6fd31560a467461ac0cad694ddf392bef9161013979a72104ac8a793cc7b996d95602c8b5e889c9a6f94334a592581f492fa63a51d20e1a024436650a7519ef5520c375f5d0905c7a4c62c5c66619dd8fc767f853f7e4de2a2bdd2168f83764843df51068180f8daa343536e5252491b146893e9f1a295ee6dd78c1b4efe6d99c9c2e10a92beebe5194df750af2c76452aaf026c91fab6585b28f13f35208028172433840289f6bd4314b1dc26458d6e301785058ccb6169e3569ef2efd88a70209f7e3acb85a9e54e10a12b7f5876726fb87eccc586a6f9351313120175977b59a47572c301ec9c3f68f6324f5b029b1ea4db4c8a675e45d982e1ba83787406e45ccddf6474206c3826231bf7542f88ee0e97bd86d6aef2a31ff58216b4a4750d16e92a6cc167096711e960bc12541c266c169c342e730b25f30596d83eaec2fb8d77c413dc2504281f1a80b9d417378bd0b0a35aeded999508304c8fc392862988d9e5d18abfcf36042526d75deb357b3bd7805d922dae7bbf0ec7f7ebc52526426efc7e988a5fa9889b8012164eeda59f55d000accf805035979b3b700de1d007f03e0dd0760970040f99d0fa09ab1f4d019913ae1def0bcafc38f33035b9fbc693661309d525a155fc60afa0fae85c4e6049dddf910776f8a4128a7b31242646875ca556f0ef835ab0bb7465122e810f17e73516b92ca178b72416516d358196ffa54c1ece38622f71cb483ec18611c25d5ca190730067fbf94bfc0159b700ea8c66d290b500b4882f28db1b3e2c0e48388e1710c5b0fe29bc33048a06488871aac8b38bea13054baae51a8f3390408bf9b24437906b7ecd0990f39f99c5755ed65114256d0c6325ddf03d63660b310de0ba1ba9a2b2a26035625bd396446094c628910a24ae2b1ee742a71f15aff81dded2816dd083ba916347c3f6216b4100a0b19d83e0c6d8c0ee7c8772a0b9b13e7b673b1aaed394040ddfd9526121cf8d2e8b4296d3c5a5600a180ce2cbc56f576d99e5f09f6ad1bb1d81f92bf229b2b7ec952fab435cb13d673abb7b42850627b49dd70974e0fbf98010294254990ae526d5b06aef7018df2c58dd10bcae134abbc45106aca026d2269d8ab52b6dc30a0eaf4e0a4441e1fa2ddbe6cb3cf579887d7970e2951b778ffe6071524af160a31a761730944b1f2a1c97f6c8c40601d96f6f0f1c360d5e9586604d9f0f835e3cca313abb1ff7ac903672b17c870a916ec35abaf6993f7367ead387e5c2af9a0d2f55e33f393516cb436dece496a15454c881af6292748fc6ca121cbe7cc2bc67ef2461bc19e4ebf669a2f642c50586bb4cd9053e7422a6b93e2da7f0248ed056e420cc353fdb9b6a609690f33593f6c27a205f5c008bee909d24f948a9796b9e2e1c416ee7e6de7348b3e1eb440862e824eab6193af2f390c0d9f36f8469a5f27ce064afac3250a64081868e1c722ab89d34b4b645349dd14d9938cf3813709a1ce67dab7e1516d3e83a05e2a2b3804cbe19989fc1a513b339020784441ff402db9195c890c9331b526e9162c490564220f1466ec0af4cb61f27a690a00dc740075d44a715fe97066346319e7dc06b822728a3bf64dc5eac37853527a2d68eded6aefe7200c96f7fa8dad3ddaaeacfae20851fa52682652209bb514e26a9fb23924370ae7c63b262b89a6bdd5d7049a047c28fd56f287d7a3523d26e15a54ccca8558899105470b0f174f29165321cf88205580cd88509f5f1a10bd9abaf11214c176bf2537143b5ba3e81811486495f055899f2d8ddf77ce37192bc5d52f5812ff0cdef95e26513275f0b8d476d76b1d8cbc3cb83c2fa2e81a36cf70459094862908115749865cf2b82298e4440c04f920eb9a547c262452d4953ac26e80c9ec6fa61b62b4ff3bbd15842517a28aa786aa6e8b6b937183ac5d08bec887aa8fcb17a64a5bc894fbb5160e836cc2dcdcbb3462d75b632368a167bd3d7ab011b843c4161bf8213596b1c13dc5d3a191aa84a9001bf639239c49283524a74bc2b5bf7fe05e2677a71317b0b5308d716491fb8297e2177589ed48f891a9a34d9b1c8d4e39cf9ca48c0d8ffa3223f6d0626a14b6aade73d01756c643b82baa2c9081366597746c41b4b4d8a30c4d8294254c78022439c92a4524dcacba89481eb84a1c114d3c7bd1aff257bf30d354f748eaf7135ef6023f9aff3b90a2a8d72e3a7783d6c80be418f4600be5ca72a0b664e813fe92714132367e8044c2e27c68605fb8077e9554a99fe3a9b55fff565329cb68964d886ddb1fba8e3d68f4cd5f842f112ffa17b0db2332e63821234e10db72d93d91bf3c31ad25705d25eb23acbbba424b8cd1ddcbe2e85d2153cc3503b92a6acfd9325c0a065b15fc6196a468b52d06749fe2cda01bd150cffb048bb1fc154e43e91c970c6d8513078b06244d2a6d57d29b837eecfa0f53cfdd7cb2849c30015848d3c7e0b1bda1ac85fcc959a148c094c46219aedbd82e3ef0b8854c4fd9395486f756ce19823e8f9d0cdd83a3bad9526bf63689e9faa31e4745f542fc46ceac734d82b2e5bd3ec21b42f466422c4aa799fed308d9cafe570a2f2dbd07309a90afd556dd5d824bf8256c4dc3ae0d8c927725c83796fd9aa790ea2bbae1e3de0dc58e541c5705a04ef59658315e3e263f7436ae9cd6664ea465ba522211c8c9787e78dc12f7e23570739ef468d3a38f65a5cacca2e332449a2edea38949a290bdec01d4af1801f85742bac115152d986d867f5175136f3f53bd822df0b6ef8f7a54cc618a1ae3560307f17d9ebb16aedf221b867ebc063f42a42c3a39f3b91f05f6126a3de2baae19ff1ff9ee35bd9d62161a42fc895236624c818bfee9dd2244597ae14064c80295d14aa2dac4564327ec46d2a07b77df83ad545ce0ae2a2afe672061315e914dc0a44aa4bb43da39a2f8c3d83ab0912eedde12ab3c471c8d6ec8cb48c137d911adf51e2038a1695e1919520f801ce1bafdaa127559a146e3bbfc89e857cc388cbae8312d304e98b466878ad95a58bc70f959b75c221702c13aebec99aab68096ad7c8dc955005b23bfcf0919cbaf5239f8eb40398f1656c7432090e3b7a32c4650dea5fbd170d440809cbd124236b5d1e5fbd396b3422b52fcd87b2956e1c442d665336741581bb369baea7811178a60818c10543eb13a64dbc7f2acfa25bf55ad2465821277602c8069a3249bcc02d4ac84f145b3941f6e63a5308fcbef52610055bb0611c96f8f335284c53a50786e376705d279240b8020c0062c910ed2a4eb4b8280fe10bec4e2d178bf8cbd33cfbad9fa48b510a687b8cc506922386bbf84c2927f30776c465613d15c5ec28e32182e01f27abf6cea73100c8c41926c501d392999bc113ce419a241dd11a0f1b55c0852fa82b224efcc2019bc4dfc34516fa9ad08f9e4903ee44e20e6bba1816e6b97157e9c0fd36fb0ac188e2f9671cb2af1efe777a9a7013af97a4e8ad8731ec2ff6d912da6f5c8cd6f6a528c2a327e48629b5147941b9953227fe4b6ad62114d8f178208496c89143322597693a6520caf903d35e8a44bd08dc84c9c003f70c8b333d887087b870fa21177e889fdc108fb15b0815c345f86090f5fac842cd4a68cf1596cbd643cc07afa021738f6056f913234034cd1945f186063b8a826aee607353b4f0e0df7d02d06620ff2041e9e4e30b2d866f7a449ee123d8c4c5e6758b3739c6c98f410949df426d34091132a2cb2897a70a6d2eb15cf65bc7ed8768de946125e53bcad55043a1374f790cf6221cf08dc0f96a4476c89143bb24391c0195ec6eac06ae623a6ba9ae31b99df6ff2d3865be689306cb002969ba59260674dd95dea78c808043399af426a1a050def6154a37500b19b08224ac4f6c1ec7eacaeb32a4936a421616364794b67c12250d0597544fcfe5387258bc8a1d0587d3a8e20cf17d0eab36bf0f3ffb3d2c36b677364d73cfa2a25e5a825fbcae5f6f37b5ec90f4f7482ee0dabd2e1a46188e1103dbeaa9ad5efea211f2ed4efe5371b32b5d62c51a42a76a3109d4552a7a797addfd1b3b7d2a8a0493c8628c1757001ea983c0338d399b8e28a55573268673a9b35d146a8f2f200e2fd9932f5b2547f3232b626e18cc1e1b35eb2a7d900018920a0cd5bac10a10032770f8bc476da362c7aa2646fb1bcd8574a62661cabfd2c775d223485ff790e3e28b60ea1857066a428c43359bf91da8bc1b825c974b8389549c1110a1ed335a5150986b0182b74fcc58f607bf7102055724112de0187139f560754107555af1f5bfb395499039f3685b45d6dc60d344d88b7a0ca508738c42ed4f7038613b1688c3cd54b59323136c6a9de7d575f30258e81da35fcedeb13ce45bedfd3daa4a8074a766feb4792a435654f9f9e73a000c113b905b9cb56d4f6d193cb34f93324e0717a790618e6f58b33a12bdcc4104de19851e3d9d9e46c0eec98794bce065366f51ed30e69c68ba7499a62b2547921225423b590fbe74b855650c467746584c48f7759f50f6bac62830a31f801dbcd65b2877fd3190c877137b4c72c5d3b6480805ef487e020b0a865e90cbb78de09081b8ead08a5d76e0751e1e9a8010387cd04fbae105a989f4bcec53a584f5efe5ec9892169964bde564c41002ea98700982c2d1be67a01481c5d5e757a12f46cfd3a7998738a519ef837469ef799da6cba0e2508db8606a4c0a987a22d6312e1344c3e2451b269df38f284a56648025b4485a2a118c07619ce858d7712c664b6a2205632fd12e8b1178dc6323a588edc28acae1794f501ec20056ad17bd1204bc28ac5af78563bb4ab9c68c374dcee2088cc47236f4939838fb3e671beba769eb941d250f9c70ad64a05340849635236a64d6e07974bc89d3498a8d1103936774b8fb869ac7e18288071824d866954c1c107541a247103a83e3982250e5583e533083291bec519b40337377116ab77bf4a1ad1a752ca118128d6d4b971af097a2dc38fb19c589a2d2a864dd391eaa925ba1de105a50db517e4005bcfd9d0ad02838eae122dc0239295d65ac26d3db3da8d45c0a1788db9efb953719d5baeb682ba36c513cfeadd7d998f8b8167f35550bf8f60e307feb0b14238c61916c5ce1aa6d9ea205728991b4425554e1f9e6bf5617f27f1c3bb756223a02ab1247fa1b1e04918e761698c1d71638551e49099c69cc7a985b18cc30d75a4465b08b492748b1ac17c2297eebd287fb1b2cb26687780eb8216cd987cc00660771331f5b218cbbf7dfc03c137132296857fb53c5b9120d747069c6f20280054e927631428c9f3af5a3a6d40d4aaa5c9da3b3cc3450f0ea24d173424503cc84ca7119d69f196cf5a129efac544028a45522877cf882fdcf7726ef7967521f1380930607c4ab5c172d7b6e0c22d65a80c2c862cb37069cb6fd69f6d15d68472f69b5ea5331f85a8e17703c63ca2b38c5c25fba37405f7b3ec93ae966a5d3c5954fe1b89b3dbaf475916ae17d90d8152a79cb3d31f578e98856b1370224a38e0c613fce13975fd88f731b49ba9c1fc2652bca7810683afe1a25be30875947ab5da1ae52c6ceedc9212fc291b029bd4f8bc5100d2bbb067dbe0150980e534dc26594b85c538dcb97306e6a0f0c92848660ff9ba1655f0737f617c1177353c4dae81ca9a9bb813dfe6549168c529e37f1da5e1ea633e53ca99e2af3d1378aa969d876d82aa815c179431831fe7766297ccea38de1630c9d4f5b1e63b443d029c93332c065cb4ee5f90c670d90b2d2334826c59b88f5805808822d282b60d99e47153b6137c89cf752888b9e3189610acfd3d2e9c93ef6b544773a8047292654d8c281541e46ef355bab89482af25aaa60593e2ed619655e9887f375a528469515af9c18e997efc12fce5059fa677c82ab86aca4a611ad8e0e5c7c5519d7f7e6c7302ef6f5daf55802de82d3519838ae9f95c1f9527b8591709541f4cc4487cf934e5fb2d15d1f25eabf58320dc359ce490a766922250ea7192d765a4ea849ef252ee0a56e685bf618dd62b07d43f696255c315798aff64e635a6b3bb34e857485f39c5c016a5e13799b8c62ab2c637e25d2ef0d3c5e140f590c7f2517688b7491909a84410ba1c98cdb943eb1f3de23163f505c069820771cf73138f49b0e1f29366f0f7793dfb33df460a2aad65198e75a89eea299f1b3f9de986c0ea51efcf1792d1a5a4017f6cf00da4602292ecbc46d627bef4be41707bd8dea4870d1ec458531383c865e3f91b62e9e4237f033482efee1eec2db0c241b0160f01ec65850269572b28baf3ff047b1a94e9b354a9445b7138a81631f5524f6a9112656d40166662a44f6c382eaa836289004f5cfcecf97b3f2b6b328c572f58ee1a617dc2beb8418ec040d5017d36a5f13c567086d946496e6413ca6f97d65be3f5f447082e4b25cac19c0a53dbb72c3fb51b2033a9213c9271bfdafe8561ebbbac6ecf6d1b9f697f8431d14273008faa9255a179a6342a173b4fdaed5ed30197fea0462100feb11f88e2dd14eb1c52ec2aa2290937029fc24e4c545b621c86413c1b7fff554821709ecb548d67784052f5dc43a2bee9a6a02fc48eb857dac476289219d605d68a8d41b330aea18bd7fa342481a53bae5fdd451d8227da74af424822dc454a89ccdf009ddf448c4a2b7167e74ea22c364d36ca36a497d33de403d3966cd4afc94d6e0bddaba1ba0ca1b77c1a42c5f287711b40683087347f2a0be0af35cf90b8c007f4215bade2331aa093d298eb4ccd934d3d88677274d526f3796b1bbcc50e6a2e5cac0c32de439ac9ca77660be96c3231464956ad65e0943ed02adb7952ddaa269b0fe9d6f32186997a00470b0337b4e4fa087ada0112d48abecbdff7158984a3f77b9448375b202596665921eb02c3a4697670d648c82c4d426e61b7edde2dfd28961efed9a9853020b8e7200796b8360fe6a93503e77eae96c2875e194ac03124afc49b7a484bd1762892ca18f1e505781f281da838318c8e6aa1fd44da9c2541737bd560690ded1f17824f64df9ed4eb99ca733d42a82af08fd809e8ea672ca7a1823514a7c6e0c257316b72d1b54cb60cd2ad75178b9895fde8e420cca9af261310acbf120c08507b96419aa4f2f917e4d6546c026963af8daa4fb264135f726e179fa5dab739f825ccb669c2a3cf376a76f0a188caa3066113e693b7355aebef11eb3357449415ce592aa42076755c31abc6d88ff063529a46b614606b6a927136f98d2c041b30c00908682184fb0230339ccaa5dd31868f7019a90539758c3ed15e1569e6b78ad340bc4b57452d4dcf90feffd1f1eed56a41fe49a1e35081990fe9a837e43015084ce5aff35ea7aa7c8a25970ed0a2553209e86c2b507cb386ec49a423fa54d9969c74b25dc927a0f7052706f26c0d344eb9cabd01f63d9bee2d3ff80d354ea1ceed5ed2d43f534abdb4bc9665a41ad45e8f967cac23b43cf649b60972afc2918b2a7ee94d3a1954c59f18931d7e60f72a2d1b93b1c1359b7dd30aec03926deb7a5986299d18482f50e0778cd1225bb3b177b18a78dac3c1378450d219131821e8e58a3896f84353ed93742c51659184bd992f890e09da854c3b5d605a2bc78be99806ed6a7e688c89f4fd8b51931592a38c887cb37fb0628f9d20f81c86ff6440ca159e24b634e0147510a6664c3fc0528929db031b391e219a35a3daad1949f9476233fc9b7210fc4d27419b8672b218d0e57d7752cfa4eda0acfe2581527ec9f32347284ade77a51959d70ad4530f1723033f7566246a6b842400643a850002bf01852e341d0acf2930f02f78f8e5befcd3ce4392909f80bc19e83f05f038014f0444103fda9e356b9a2710f7836c523b71b998e28e1f1e5b68c473ea4c4258f9aa2096455f58d3c7db04db78b49cdfa6f8031191ce6d4f8c1944ff2ae121c087559131207aeec22eb0b258a5df397aae220296f47642fc2ebff0724152acafbb4cfc2c4a443b1841570034ba24308737ec72a106624cf5f7afa1bd2556b31f95f04d1f474f8f8a390f2e92b8f3bd5a40200dc6ca05e596a9017269874e9c813fdeb80f40e5a963937b7a63f6b62150cbc73da5606d8978581e25cccc729277855382b71a8292056f8bba464e6094a20bac5d92fee7f61165de7c791316176929fd3b5d4cf9b2e774057a97be4b99eebb9e0ca6aeed7cfd2021b3c3680f203f6318794afa313826629e0fe6dedc4bc249420170f5eed2ddc84fcbb590be25cbd1367d156cc610b62623ec034c7fbe917d6e63e9ffdc9f123c2ff3a27c7409b04ce15602bdf6432fc20f27abc5c9c14ea7bf33baf11b196aacc5dec97e33e1abf6c3c2897abcc68ac2c66a88b69b0cb538ba46ac6820d6faf468902355388f90ba12e83c21dbb6b15a22b5d9a226569fb808c38f1dc9c10691a39ff6ea3eb32584091eed20ffac2d88ab628b008556e44851833c84b1cf5a789e04183e4fa0971556c09861a316923dea520918c6c0946b7f2437eb64cd9c5991a785945a539851beaa324ab37829d10e588af087efdc6c74663975434e672a9301e0b24c82bd9edeeed60488e498f58260f4734512e817c4013146674768130322efc4b0054d0b7f4a46763b72d629e28f2f61b35bb22eb7318536461adb180f00250155c51a0360e8bd3de2f22a4c17d23d3d472f00dc35d6a3779fdc62c626d07f30f8a0e0650c37eeccd23e9532d448b9c590e7705feab2deb0ad42295a7dfdedd7ed27e69312743541da1d5c5c99da32ba4c94081c1e01b95448b2928f9d5d99879a285e502d05d98b633cb4a626bc051b1809e5d1b54ed5260c4a790ce9b257843e5264be459a439fda4a286f0faf0320c07cc6ebf0bb84054d0fa1c4ef968d8a6f0395d5ad4888142c2a3c6259fb0c2c3fe502545965caaaf2c926cc1dde1ffc3927496df44bbd721a2bda89fa49602e8b74b42c83a95fa400df454a882ca720c0320faf5cb2d6a9daf824920704ba8b7f7f6a5ccc4f0becc54a765e989efb0f437745975b947c024647481a232ee60806091c9b2760c2e0246f1b90e316c011857e4d8663da3f983ee63cc7a07c9dae119b889293c6abd643894f41e338a10ddd2389df2d898c20b3c42dd8cbd54a2cced1343b9454b7a30915a295342afc711f9e6198721e04d5237d2d367803722ff31a6c9c6d68f5a2fbc41d2631e36a926c2cc5bead6d40063ab4de06f7612d1115be88662b078deae5dcbcfacc0507aa4021fdc5a7f79e40556f78c7868f2f0d24874042e052b58a2c1432d08fd97a385ca92defca75096949624e401e563e93c0f8679dcf954d8904df3ee383ba29e9ea99cf2e189ac253999b465ccd99d17003caab4706c02d38e70172998a25296fb097a127d990cbd7a64065aa4aabe14d896ab79d36fe6fc38c28ae6cd1c448a1e6c5133a181022d83eea257ff79b8f65703e732054015a341d9056b10f5c150d881917f1f170e07eeeec791e79c9f974ceba072f4ecd89a202ba9ac97b38f96dcea5f49542776d8dced2c0af55955fff752b0d224cdb01ddcc02b0144214fb67ec65e4f2f158edaad13fb545e24c526b3debec4505cbf95294765b223a1f772f91c375e9347cedc9b9e6a31000a5c8cab9dab0945901d458ec78afb17a83bdd52422b8dec963906e9ae15a4f088b7e92e935c263e7cd20c8fa011c5c9bc1b311b281bf6d7479aeae20f97902629510b96b762e19df7888b7c80d0bab1552a194b800ab8b071cf1da0249337f75a7b7a503a1441bfd0703c0d88283319c0e6885f1fe262a53d8e8f5fdb0b58c5f9f2204e0b9c22aef8afd396221dd2e3ac84fb71b1f60899e6c1c54581cc56c56d09c9848cd6e5b7edf197950a73a759b6b315f8522f87156c1d74ea1bb5b4f6059f6392e34817feed4fcdf12c42742fd81897f9fe4508bff016486a6efe2ada0f0cddfb3b3de86ee5a8dd59112039bdcb415b34a905353375cb2256ed7e891254cb63072049819ddb92e5d1bb8cbc37e8f41980c6212be741d7ad0292251084956849ec621d2587213c852a8b2db65da8569bae1da4f753e4fba16fafa0269b145209f5be9205867d1b85c996286ca1e734382e9448ea5d648ecb800a890efaf44aeae4def1f4443536aded1e6beac88d1577953756ad00b0eb257370a2efcba1d1e63a939a8bb8e9213edd6cc5c777d7751fcd76ed521629852dfb77f5460322153175ef88ed0c1d7c9fc045812a6e38f06991b2560419008b89e1261c43f503beb4f0893e5901b01e41e95ed881734231e3114f4b9080f89a3e87d87f010f2f9e021fdc9c14394a3c143351428c0157a94ace8f21cc0d60544a16d40b41ec1430ef4768210e52932437ce7d00d555636b79299b292a14330dd21367abc0c8617df4e936e291e87962d1cff6441c9c8bff85a5a56190f6e6cd9cd9e83f3a65c039bc915322b17061d77703ce5b88f25c527de7b6a83c3cb350fdb6103253351695645dd8390cf0e035795aa5d5975c843fc8acc2cb7442ae5d2c94f537a0e6c2aaeaceafc27e6a5715e907f9c5cef4906bae95d68b86367fdefdef193fcb82da8906f379f8330229c9f2df716e6f7f2604941dbafbecfea0188f9231ed44c5c29bab93c58d67fd259f9d4ae47558569be3827db2bf3cc643085d79d1ce0fa4bc4c17cf38bce77caf5084f4f93869243636f53ef4f729f40e1b48c8455340b3b54d476c8c811f1836dec15dcdb8f82d4adfbc9c9bebbefdc3141e502b2da166a75e484972fa5c212e69af64f9a5722aa23217038e6b25b8bb75573b4c70de37087fee00a2574540af19c60056463c52ba240103e6daf65cf535aa504609097a099b9d6f6b64a2a7649cf7c40d3a1ae7ea8a0ef03812305024f35932775ee1d91d3346972363752ef2ee9cbdd2ae49180641f0c56bdbe36b13804b861289886d29a7747703da24de1180d6c39e53c02f25ee15eacf38d82a112018581a41e719acbeb4407c8e442b6fc09ed2d45b21f78d2c3f849bd47cff55c787108b48c273d2fdea3af3fd458d0f07d1f9631ea02243f9e9d63943e6f191edc234053a06de797d87ce6663df4c155b5f379ddf3b9a16eb1b9fbd1a143a52a97aec758cae016c5f08035dcacf6284070d29393513d5842b9c31a9c7e37ebfd689c16e1b3a53e21537bc4777b5ba9f0efa04abc5e8bb4f75a3b3801580169bf9223652cf9fb0473cdb4476df832773238f480349300a31a8c73ff475d14c8e56939d4422ffc388235527a1e990abc6762701ab2f2edcdf9ca7dcf2808558d49190aade3662ac8f1d4c851f567ab9fa09f075a7f031f8595ea25fede0d3156213fac145ddf0e55bd867426cb486bdcda0952ada5f56146cc80b3723d29adaebec2861bc342f2c92f27391d9781d6b46e8c3ee15eefa1b3f8bdbd0e2060f34a276cb5249e384d4244cabbe85543333cb88f12fad0268f8f8b92bd11465417882e1a3bbfa4a609deebd6084526257b086c4d44c996722cef1492f2454cd06f960e31004e1aa8e4892304ee86ffc742a5390c9b5935f25a652e176962f69a5616810c2322d841e19845d6b0f0769e8e1095bceba2828f7d0c3605579314c1bc4430c712e2567668ed9c0d3edc10c9c04393ef1994e892bdcc8639b21aff733f29ad307d6fc2adfbc1353bef16d8da0dcda9f467d8469bf2c14c448a455faa6c1b11760cbae948faff1a51fe72357d4442a4b3fe6820bdaea90f91573c7739af2bf51ebc9c4f5ccdb394f354a94fcf62301b8edff108b4a4c695911a01191f86590896e97718581ae4d05cf2881f93c75b3018fc7069493f8d4555f8b8307d372a1f17f3d000a9051de20c85682c1335a2103305bf412c92bb44f25a1192a1e331927ea7519c79f000f133cf5c48f873acacad613468a177cd006dc34be1627194c4a880979bbdf1806305fc3162fe868e767ada150ec3c6f4e08941b3c56e62c6f8c7969318f1dc31027b0521f189f689c6185f043774617fc3b14b6a0383f1131ab0b6c1734f8327a335b46ec61fb8ea88481f52ba7402327825316681093b006e1210c35f5d2ea8417e7b62d36156367e4930415adbe6a2d8cac4fad6e52867af6de0ac099e5ba6af80c2341770e3db015f02fa463432eaf4a383988b25164ec9bde9a14fe15f125866fd019f0552a196d11ee24116360bf2f5d2a811d511c40070e72bb39a8fb2ed67392eca828a4f4e59be699a8de5dd5097dfc350d9d5ca0d0f9c2c7a763ac6026303b393a579d6904e3a2c3cd4ed549f7bbae16987fc3a04c0c74b432c8caf06df86c4420d7de25a08b4ee194638065d0f79d8dae92b6af2fea6bf2f8b10559787a3b414fa56c93503a2c0b79170176e1d1e6d4284e0f91086cf75970303c133913ae37b31ed491dd0e6329f27a529bcb775152414a26efa170a269fc2f44e9b1a3c1146b8f1c881c6e301583d404423cba3360c6d0dee56eef84a6c1e189d2b76d7f45f48ac3939fdae1a60e5fbec52ad1240c85947ac04df934ed541a5702376122f628df84c4c3462fe6aaf93e3bfb7dacaa9843e0dbecfd0c51045d9a0c13f37f92af44cc2a1d964aaea28efe313b8c4f0bcaf16f16762b7a8d0dc495b583385821bb9bc86594801acf63f56ecbdac5e0b0b6a4018a941782cdc54f3db435c1f2a4a6cbd6ba294356f9341921b9be5b67de44654f0f07cde28a654db30904426e03a166ca724e19ced33acf2cf579c7467b4f8e51c62a8aaf12fc87741835c797a7eba9f212287a789bb41d7c4c8c18b70e7aaf57f4f69ced9e314cabb08cdbce04b054dd417bd963645e031d15a0d570f00ce8add1153901262cc63d3641ef72a9457967c16e90d7fe6a8a9635c02011d91f3fe5ffa85cc7ef925a4e3e2c4b140088420eeff595587572c4693c459c5d7fe3bb7fc2abb0b837c742d8008588f4dd5ee95abf4e4235eace2d3551b9a5d0d83f1f81b778d6072cca3bb1d31ddd321fa7f5b7659422a06147a6999928b53f9b1647f0d2cdddfaa616fd22dadb9aed39e39d0fe6afbafc91e8aea9d90da754bafe876b8d09aed1d34b236a5644bab6e523c13e1fb8f1035604d4688f7cfa72901186157ce1fac2cde7a0bd56621190ca61e4f8f3119128e0f44275bc9d759dc63c7c3b033120934d36179cd2c955f2c0f14967be990d968814cef6b4998701954702f6967593abf27d5f7add54615331753b6b73707053348287138b28d6067d13cd3e7402c258fa19bdfbd0ac5d010981d8c2c4d02fc591bd9b3a2c004ff175ed212906f6cdcdca14d631987551cdb0cc3cde932a4ccfff0245b6f9e1b6aa0087a0a8f87761b0a7b1dc189f45ff11c46bab1c6079fb81a9cddeb19d525531d00954e30b2592ce41c74f2bb268fed3064363da5d947a3ff761cc8e40519feff7dbdf4ea6775ff44bb4285e8953406cba9abfb17b6a58a45a4600afead1abb2faa66bb287ae536c1c1889e932e17dba8b39ff3d5d853dc4b16ec9bd16b8dd6e6a802f037c8ce966e97f7579f9c038a1e662b79ddf5d8a6118de4b858a07162699932986ae8d99d682c411e57dd616153a13d6a28d993404ee2b8daff4d143a101eba5515bd12edc88c4fb1a4e319e4e56849a7b5cb90bf280d123d48b53ff2bff4110d2fe9cafb3e919f291d856afb8111b044fd1d55a6fc9bfa5835dbcff3701b98e2745b9e104a1da7f3651b3794bc839eff962d5b7179e5c3652de0b0646b2aff13711b1ba659420c39ec6b5d54fb8f319d4c28a7f29dc9dc5cb1d075bde5059ddfd206460aae70648f9be114bfe91db115935d3b299747e28333964a2e393240a12eb697e41d91f87fe0f39b8467760720b512cd32862b26368ad616587e318a67357b716624271cd5128dc168ed99aa9e6f2f81273eb3e80ec9cefb3a3b028ef90de3e7737e5b7a4fe89416ad8493ea72d3b5f5ba3a182c11ac8dc17e88fe2ae34cb64637e996b3aad66f5912970e20136624b0456c533b491e15580a05d165ad242e2b9ffe7bdfc3d1018af45db64d8bc578284b035688bd9bedda808c67fb6060a7d7e80ec29c895e75da1eee043d97e6f14f60b6f64ab090273226bbd40c606e507e4fed9522c826b78f08218ebee0c680e13923c7ed1a87e0e19a229c7ccff9a05034b5f4efd363d53b9516ad34ae506381fa0620fdf895137c457713f422d5e3eb609eb1bae04ddabf3792ae4bda4d8981994156e35e03f7a32b73f27fd92e58fb499bb5a87598eaf8dfc9b3769df62608599b0faf07ba7ebfafa2308e738213c27d5633c1b0023b56a7598236b2c2784a04f7c23dc6e22623488923cd907d454c1903472138842cc64af181a0ecb118aba6e907da4ae2dca78e3b30787781fb6f16e84b89de42eb802a01a21fbba8d9eaa239074ad8f1420f6bbf6ce437f4b874bea84cb42c386c4980026c471769abc7ba26b10a622c3083b7cea18f5689bfffb6c8ece418160c1cecdf1d7b6aed8ef29d2d3cd5fc83921da4be20557a4aead77a2031727a955207d5e3f239b341db951a54aacf20798629638d18031218d492bb20e1a3594b34eb9aefd46ac69624909086b90d85db56c13ed67f89299dffd9ab4af3f0919c7efb368232cce4046b680cc50e683a8da7366e08f9c352f14985117ec3996530093982cc2e883314e4c4de59a02d9aa2b66ca7f635e5adeb74014d8e1b96d82f2668317af601376d56682f78fe7200f45a2c9f40b6c19d8815c14d0fd53f286e2d354953df50a364f7de563a256b8d031b210068ac1b305c3ff041c2873f520e6771b0d6571c44a68a037d290e90cbdb197a25cbe243addc68a66fa628d72d2bd807f71223410955bbf5c344cdb43492de7f3714f26ebcff26673098fb125b2326f870a50b44449edbf0e69e0fd19e16520bb51048d2aef6171b2e21e61b462f9fb22b3f63d376eb9687d6d3221c17e67e8b491adc8a2a0306d5c4a7c3b136483f6df900b9e2065e89f17d33e8a29923f5291a51868b88b8478765bd5bcab474a7ee92c0af34b76e4b7bb680936914ebeaae64d705d49c648b50d0b64f90f656968ca7f06954707db8fb073393a7c68d6e6a96771d969246ba4893a924389ffb85f71b5492b8c13943c3e1efbbc79b9341bbaeb01fc0dde58beaf271140e61cf47d7e50a81621330dfcc2c6505dc614cfdac32fa702694ae02780a8158f60aaddd1152a78e2154dab37fe93eab02256b3eadd099aefc66b1225b1a829617ef086c95a082c096ab31265ff1939d2a1b553e206fb77bfe0f36815fb069f5505df09efb66652107056a5174e83340f146a95adcef67d193629b92a85ce41349b62829181366d5955dfa049a40b91353ed857d49cca9a44a99c0d4fecdc144952588aa7a4260b7053417387bd6e6d5620b4b7c68d6f08334f18876169ead4e17aabfc0585c81c92ae0ff23cd056b72cefcd21b13928b0ea9d46b7eea6a324d2c56729a022c136ad8e89a1735c6733613fe69fa62f677028c86142f04c3f1ba15eed49b2eef483cd65d90685490c152e2612969d0126a7f036c676377188a9aa10ea54c955e16891728208fd3d0e5b0fc7dd52b4baa255fa6fd25a6812a1e6f4c710235f5660552bdb63e91ebaf631f86657dc0072c3817def1b1c552dda0cca79a612548f2c60a953f360e0dcab84f90d31950a664c6cea0ccd3a15ef58fe5f48ada893f67c5c3a0ccbb818a2191c4878684e89d924507c64e250f6b3256401fe718cdc5306714ab773648f9b5c46307d7b6ca363471b488975ddf7bf53c567d78020cac83e95232b40170a4ac3a925986acdadef91af59d6a51ac5d0e6069c44c10c1a7d2cd39c602dd8a82dce84ef82d2265e2d5d507d73de2e700f6db2c1ec74964a0d5643282a99ee8f4cfae0a0febdd2346f749338763e387c7a9c5e2f3a67a34a9f075bd1640858234d1a4f001f590a90cf32047d51bf0ecbc5acb907532ddf432e367e61447a6702644cfbf808586cd270c2454b81053f30043b9c465273f71048d901b462559308bda5670e7b7546072d09988da4fda82c71c1fa7aacfaec7c51a65b47bade117c31ecd2798888c369d847affdb10f089017c74bc15091ab3791cb318198cf401ec995fd94ccdbc65858e044c277a78cefd18ce4342901574efa08af136301f85c10e34b62ccf07f61c4e8b26e3ce3dcaec74e9e0cf76a9f37c22ce380d46ea6afeb1eb6fe9655c4e46ef95ec6cd82bb9b7243d59153b22098e20e2c794a39b15de5102cebe539ea29163555ceb27296b9148964c88b96df1a41e3f89153748e8f01186596dcf4c11518712fc4aa0b42bd7140aa7d11fe199384ea9b1e3bce03b897ccc4bcc5fc7227340f0d395d2bc3a3958416d98e24f072b0eaaa01668c2104b674e3cc7e401159543bac42ca796eecf702c3e5a99fdd332a514cd0cc8d0203e1802dfb56c6375f0feba14d15e14766219530f5f9f1302a513ced124538fbaff0f8cd15aa4cbcc48a1281aaf9a93167282c19878b136c7369f670f8eee00bd91234d0e5903613dea67835a84d83c066b84bde219c5b67ef80d315cccdacb8ab5b10164f4245963294beaa4afbc1f7481d27fdbcab9c55aeafaf792e40383aad6a6d1d9adf74df6ec34829ce3b4fe719e6f0b900b568c1d37e17487f4638aa82dbdbfd99ee53b226a5ca64bf3a72b55f141397531553053807b63f14f5c02f331acc8cebcb3aae70e3a6e318d08123840c42f20ccaa348c508dbc828865ae70b012e62893de103b6d71a8975a07ade819303bb8282891a57935ba7b8ef8d5998ba89006cb2b808c3e740b102a3f99ae270b5ab5d13c0b3c99ccb4303e4cf48491a5629172410c36ee3652183ab8167f7745bf78040423d61a5e523c6715f23049c53c412699e1b3586b9cf785282d620c67e67abcf074f3f730057dfe412537df5406868cb44f5709849ad236fd47ac2158355233d7b477214bbed003d2e1ba9fdc8d17fdd4400c0cb5f22fb763f3240b54ca9a2f87a5ca3932e8e8e44606abe5364165f3ff987939736678913f2f8af47e6f31162dbd9044151947044a7f5470093fea5a04259db7968a5c2e667412747d9fc5f78161ca870c130d3696a4ab7be5348277bc98340b91d9fe1a84043b5b4acf20fd8f682959cf6007fb41d34ede3e268f999aab106998ebb51fe5bf61e984999cab7fcad9e9229effb34021267fcf83489eca75222179e82f9840f3facb4f1e7a95e5e923d4e1bba69cab919c148668891ab354f333524d7d259f76a2d7d08b2d1813fc64e724e74431f44788a8242b7c5e58d67339379dd0c5bc5c1b104bb54a76a64edaa5d33d43dfc5e68cf8b54c64dd3171583b42d2db612f5de32bbe0d912cb5fe763a0f70615c0892a0440a6236666263f412b473c8526130b13ed762e05ebdfd334b14e9a8bcc9e688519ec3cee23e9052d8dbd22eda205043ea2e1cf5dcda3de0c8081e202f4a918b74180dcab91733731a26f0e07430c14e51fe98805d79b8f31ea672a8d38ee7506156a24c184df6cb5ff4963c1e3ca1eb4703cc9ad995d7a60857941fbe5a75194bde9641bb7ede873502ddfeb55c21f75bd4e1eae2d970f03fb0bd86b787eabd547b0c3d088f1dc61e99371646c71ccef0135bd3d47245993e437bb50cd3b3c5fd1226eaddfe338e8b2c2a3f7e62343128815954683eefdef7d46feae0d1e04be28c72089aeb9bf1c774b10c66ee8d13cc8daa96c0d8bd10700e04bd71a03ba827db9964c4b095f0c9dce7366e59e2574e281cb9d2fa640ef7714d4e78bf2387e9d85764303414525ba38525fa5a18d604792fdd72b567a43de18cd9a7bdcce4c641d174a82445256e5343b64d7634231644f491c6c8705b13a96fa232cb9c647b30efc675a496abed20338e27f5d8fa9fd2ac251c7861c5a8edaa71da9154138338b63a45c04187c473b03d128b0e27d637fe1d9b46910393be99985043c933ec4e0ac9bf69374394506b21719468e21f90f40f952704ac01307f5b66f94c030a8838fc22dff22d93c84fa582cad1c6b43f59f178267683e10d7d1d32676a1d2feb5aa2ee32ffa74138a38bf90e2912b7e3bf16493c341141ba0acde8e0bcef447e30efd9cedbec1ce7c0722487fd3cf95d5f1a989fa3bf9ce5c1c130f22367f783f1d443c4ccef7f3e87e87b422b9b490c5834f89ee91eea7110e5ba164821fa9380911ac05238d47dcf70ba859ae3de007950b59a118b3fe961039c30ca6dc0c1093860e5e9b5bbf80be3012071129f5432fc9b9703d7047aed5b4a606c10b2998a3a0ec64a98031c0f8c16c690355778768fda5c7a83dd0e375f832c2ad0c100ef7d418199e44136ee8d8aafb11cdd3b6eb1d8aee009891c365c19a0e4b4b940702d8ae14fe15575850b5cb52ca46d3341dfa09d6dee48d84262b2f6eb4d889fb006b677eaab0e756c5eba43fa7b1b6fc379af8d7408d0fd4b67bcef3f255460aedf77823abf33a5d76cd7a543617968de717c8da8ccdeeb780f5ef406f72f73626d7a825ed6491826dae80c2c4fc5de8c668ffaacf33364b8e2fce426a46b053d63c72ddcb2719eb0b7a616a5e8232f00c8bec022173c0b9d079190427bdf39a0937f8620d57a09bb3a145ef21a31cc50ee3904667ea309ae1a53fbb97188ee0a3558479d42900286f04f0175202f4fd67150f24e5fba4047d377cb9d0701ba7b82f878f831c83a1425dc6a8280fa2f44ae98e313b9ea33be47f0bc9ae857a771c1013cdb0b3b25a660de32f205fca12ca6af1fd45555aa08d86be255761b985186a205eea9a00adc7b2b8e15406b09aea7c56437af90716de7c6c0cb52a0f12f8b7c9051b0bd8c9cdf4519d81919ac40028d161f65ae1c15b453ca124d15eca45053b3347ede7705958ae89afcd1a1cdf59f8ff968494e718ff06c2729af74820f7dcaa122b15847f093f1546a3213213793aa45eb65f61a8c4627f8ddad33eaaed0d6778f86921156bef86558d0628e8375b9d6b0471d7f5232a9598aef90bdc7403088b68eebee8e8c759df23a2c8fb085350921ca6e63401e2af6cc4248afb96a83d54da0c5cc798c55561dae52af246ffd774ace5b4608774a282cbdbf26eb901091730f27f7dd4ba60a6affb84bb2aa31e8a1ccc6ba3f0af8f9b1dcdc16986a4f16d4403bfdd76e4817ec3a815c146b0217f8fa1cea0a35dfaa4c5ec6dcb04c2185d539733bf2bdf7745d93fc110a187c199d9a3647eeb4b3af8cb99ef1b21d46dea830ad4c399953a25e940b7515febb8b7f8bb6869c7d6a1bac37c0c8d1ed55406ab08fe12153f79fa1983a132775c7514e779edc3bc8607e6612f42df9ad27cc2da5a32b2ef1668207c09a251296b445fad5d24e4871a2da4d6f33f26899bdabea1a7015ac02953c75006215e45c281097b54cd46634b18dcfe7cc7760823509fee0c52a8d8bc0124eb9588514d9888084a978c5bbedf53e3e76b4287e241bad64d983f7625fa90b3a43e76d4d4e7f6d98db404c38271520360f0d43bc96bd69113465054f0af6cd632facf119860f97c1877cec6b1fc141f0af094e2fd60c782cb2dc128a6402199829f1e72a86b20fbd740edcbb22d630f17d4ca36337a9b4147abaa73c15d8cef47093b126c5eb0d5c4c9496aec26da27a818576c1f2dc1456ad078c5f299675692b9812245e4901e54944a02a479c34da31e1e17610b84e991e8009dbcaa27526260839a60da4624c9bd71cc328a658c001b1a5b07314c929be9c0134d7f378ae1a11888467a24c962ad452c8b574b0558c1cdb63f9fdc0849e69416ca828b24b12e6239cb0cc02fba2d6d7d4cd7d6fa7d3b6b3295d89fc4bbfcfc7a03daa2ed4e9d01069162a9a3c252d1ce019487cd4fa5da6150967359ed72f732ea9a82e768f5bd97bdae88864f0515e85ff28b83e7b477d644b3233a29461560f46aa15b7ba3ff366fd5f01d67222cb0a18eefe686605d98ab1d60f1d927bb21a9c80777d937cff0a2aac3cd2b6aba9bc11dfb30423540e41a9e2a263f3eb66959df403e3e22a89c43e7bde56935f4071a548b7896a56e6f07597c4f628c0b329904144c080b927e774d5095ddb28a93e68e32074e944f137786849d3d1f7d075cd3e967606157a178d1c4fbf5941bc50eedf039aedb7fdb47acb32bbecf7f669cb4b1a7cd894e3414df23198356dec101f12c92861ae5d09ccec67eb934939bf81dbd56707bde1e6dc86c36095fff70df92242546e10e1d97abaec3a23b74833ebcb1182578b583407aed08385950fd88a0418109b9067190b21dcfb275bb5d3d4d157122b103e24588743d844f3cfcc6b48ea841588bbb6764222c2585df23e778ea65dd8361e6a3c55a1c164f097ed52ebca76a744698cd0f4023f122b9ba40baf2ecc7abd2a56abf70078c9926d23bed406b3193e5e178c6b05d79cb02e10aae260365b9b75510733931112acdc7651ebe8a56c13763e65234e7867cd0011b31271a043898109dd58e37801ee717830b413989157208ac167493a394dd514bed2cc8acb06891fd556e3b667f8328746bb1bf01664e5805f317983d6c01bcc4bc942a3465f516ed2d7d358184dc81060830241ee948e547b17a857ee618b152a87e990b76e2b26308613b8c7cd472d3bde1c0dec854bf1fad179cc0484f46899e1418f535807891e650441bf7742408de296ae0b465538a4859b4dcf40a20b57598caafbe7fb56eaf0201e9fbedafb98b103e0be13f4c84faae5aa43e2735331552bf74a3443cbc663755ffadef1a216e513d93f145b5b6033db5af4dde3a618b43c41101d8644b1a1c3506fb2af4d52718a08474bacce05fed644290f54201e954d07b92e31a8932bffcd226553bb95fecc9927fbe0d4bd0f5b964451c1a8b4d43f1bac6f384c0b684978ac24b96f45be47c18982b162c187c8bf88ddb0552a41a04cf0682424a4edbdf7de7b4b29539201de0ea50e2c0f1ea6bc00ece761ca0361531ea67c8c85b1281ea6fc0f76f330e51ba479d96c7e9c926255be45f6f362716182e21b95f75ec5c5aa7c006892aa6f8bcd8d5b3e5a2dce68fa9ce9ccaab56cd94fd2b24fd202e0496c56e1708959edcfd3d5b7f80669007063ed1500ec6cb11187ed83f5286afc9ce97814557ece743c8aca491be3aa13f030cbb2eeeeee19b3cfdea1a837dfd0b0a631a1e11bf929299ff2f26d6efc1f6d1c6a2d265bfc61c0c0dd9f29d528d83e68351e56d3b19a4f4cb6b61cd7b69c986d8c62896939f773a693631b9f8a904cdb4b07f7b603c36640b2c533a2eda5fd944ada8f26e4acfebaff349e486233201e6647b08bc8b1d89c252d31b51ed8ffd3846ecaca73dffd3662d04624b276e24ec779643d994ec4998b26c996100fe3fd2910cfcf8e50cf916cc164cb7f8a9cc8290c8909adfe246182e21b9227798fe4e42bea4f5f3fe5adeca7d6df9c85fa5adf3b5919a3762006a67f3a3141f18df66d8a304cd625c643d37b118c31de1b14c7d7b4fb1eca1858de3989c0fd19ea4f1575370feb97ecf4b03e683f0feb673fb295f296fa5ef20dd298d44bf233e40c27b12a5f627306a4e259952b84eda4e8a17521d96abd3ffd116558bcf6325ee6fd678cba642bc6aac5a7f2040ae57f8e45b4c703e50974c37df75eaa6f2622064e7da77e864cd916d7460cdcdfa26329dbe236928746e28bbf0cdb2e193b00db3f4d245bbc48e52c1811a9b3fd52ca9f21637cefa58d9ffbb39f8c2843721689e693fd6440349e0c48b606f0fe59916cb584d83421d9e23346f6c3ca7e60643f73c85959be9c42ce920fdb5e20b8bd60ceca4ab108ee2f454d481ae193f727824f4c6ede4a503248ff006ccbc6d2a430a268148be09cfd60bfd19de5ae1775f693a9babbbbb528370fe59d48453c7423fc59a17691874be07e437fff06240047e20e9ba3febbb96bca43ae56bb79c87d7f3a82fbdf80fd7300647c20c2f8679f53a98f9f511e67169cf25551b7add6981595edc4e6fafdc9864fa2a8259fe3d0c9a3ac47514d4e1f97aa2878fbd5e682b767b1bd6ae54f6cea5736ab30f72c6c0e31f72a9b633077b38d1833b582623d0aed54736c1fc0db0d89fa6a8487f51d8a7a4f271a5c076212bee17efe66b9139b63502bc7c05b8ec15b04caa1cbe9b70d6f1fde52788bce5a7d46c1dbcd270f7ec9f6517c7177798b7792bc48493d25b6318b08d4f3e33eb57bac0afb255b9cc73bd9c624d6a3a8d97bfca7c76138648bbb50d67b3cf4ef24d3bb23a1ba8ee7bdec21948df86404dbef4db37689a9831dc886766223ee2dfbceb2041c71016fc5c73131ae6d97ad2a972893f2feb70331f0cdca7f9fff9dc5729fed6fe5399bb7bbf22b17878a4db1ad23bef4bbb0d1b6f43e2bd48d090d679c1c7cc3bdf79bed1cbc7dc75dafbe47c2e2a30ceaf4abf76f1fba47b65cbcf7e4ca926343e0a79c75f2fedbc927a0c7bf2bd4bc0d6194f722787b533462badbca7aa83a21c2db9b94146d4f82b247f0f63ed8e82d2f6cf416161bbdc5858dde726df4ed33f799f6269b678e4391e808e7686f68987e67f30d0d6f76db70d62f6d23019964c1d3f104ed97fdeecad1713ba75dce9a33c735e9fd9650b32a87b3321768c10a6bc0feaa4fa8e6ced9de50654e1168778c5916b32c66598c59c7cee697840d0d78e8df41bae8080c29ecb9f3d04670d21442c8c1feaacfc12e637777374aca23820e2a6afe70cd59836480cf8012479499aff55123c956fd2e7d7f27798e6c994e7d93c0109db0038e3f8295cdbde959a271ee1ee7711e3060e7d1d132ba47c3f8b727658feb2ed1384b1e38778f93d57cfa3b0caa44518112a85fba4dd477cd191da577629b313d687ba6c123e64cbd4ea4c034537a9ff1ee4db62310a58fdd734078374fe71142959f9d47f2c81e1ebae4a1f5a89207f6239f6930019b12310f787b6d93570279bed9c0f37739693667b794524ad932e2d6e92352d251ab28fa1623b3e088892d24648bc79027db3cb49f3b1b8fb3c023c4d07f78e8a7a74fafc6e3e18e4f9d5ff3c359ddc3fb0891d53e6268a364f9f789a252f9c9f68fb7f8b78f28e3bd7f0b21ca7cefdf41e81e51c6f4fe14a4015375fbee4da5cfdb74a4a07d44d0f68f6d202e84b74f066efee519edc4ee61972748c3518d87b3260fdd34970ea47028714895aa5639a3c62331631185e1a1c754f93162e0bf00a63f4b5eaa821759729683fdabcc9ee3bc2ecbba2eebbaacebb2ace35ecac9d98de3388ee3b6ffc00d6f993ed298d447deb27dbfd7443c8ee3b86f24cef4dcb5e1af26f2839a7d6e239c243bf0e6dafd77bd9b3f37120f03e48ce94aa1a0193293445bc4deddc95d1bfeb2916388254530fb6e07fc85630bd54804e736923485da9fe5686bf07a26b20ca1e676f57bfe6abb76b80e186a128e374feced9282bbbcf5399bbff010041d277e46fe14c285f09fd8db41a0a3b6176d0dc7f2080668bfddd08f71b2e06c54a84d418083e31b20bf34c23e450f18768fd1b9248654d42d7f6cf9b1a5efaaffb1123870c3a1629ff508f64fa13cb1655996dd4c55957e4ae3ec0daaea202ae97657f2ce4f06f5c3aa9260c053006107fe80a0037bbf90a399064bb0c2710a240499264aa3cded1dbbe79c936a33fbf9d37f7eaf3c6aeeb43b46efe9ef6dc3b9a16eac6cb77ea999770b00de664f37d47e9f3223c24191148e530022640a4de831450eda6092724ef971257dfaa665d1ed9445ccf79772befc0615c04997b163dc5e5a7104da88479d1544e80217bc2c033f25d4f89ed4a2bb7bcd0fd8fda3cb28dd6526e58c9dd988a50d37434e0c3a38bf41053858a308f931914a01089b26a55946b38cc62ccba4f46c9b0dd3ee4794720532a74e3fd2e994729b9645ec33cbec8a6694caf74d93d3a98dac97c6e62cbf7eaff4ee66b07d96ad7d8333e20e0f101344440843c6f6fe0d6819b2ebec38d90ac3f0db680000cb272a12b1230cfdb632865a6ca1f44d9872dbcfed8fe0ee04b6bbc4d34d7292bb749372f64d00111efa11484c6086d625dcb66ddbb66d3365c19b420e5e918a22ece0f3fc558d0ecfab8409c76ff50930ad4c4c9c5d25641e1aa683e830e03ca3146da062879091d7efb5ad21f380071c1f40707caf035784e0480dc7990927b8bb7777bbb7bb0ba094717ab8201a71280bd8a988617f1af10d68c06e0620d85f0c3d1862073338211afdc0fe85580513b09085f8052143ea1085724e806fc8149637e33461c800c430801650aa95728d297c10b150054c15e11b6aee152b4208ddd04205559c6eb012842845ce09f00d4f61bfd90341664c297f200a271bb08660aff18ad0d8ba205d76a51c02228d0c34b21a60a739c0fe83804c67b3a246f69853ce39a794734a29e7ec2a4a19cb256047800908bb0cf61b71646b4110327ddd7b38db6bde4de0cdf460ff7cb0c14d89ed665e261acbcff235c92a6dab1addd7f4c7f892fd0cd9df6f7665e33d58dade14c11a9d136ffabe79e296cec486b9e76e8dc9c486b7bf797b1b32580969b29d07bcdd4b8372508023b880e80296b29739f185be777bf6fda6871e719e5fd58c20e5f64d7bdaa973f60ce280850e8ac31382e28084398527fc088a4310da06c5c106599665120c2a1c838ce0c1b7387490912238c59562c3c4a78117595a867f9c477cf0f68ebdd932b26f198e0120714a36c9a50cc78f2d83caf8f744cd36195fac8c30b1c55fa2ac944810fbcd5a84d93e4698ecdf37fe546e7e9778ac7d2b11f380079cbdd7e48bb5a74b3091e1ed6f6c580903e0ed767cc1deec58c331bd2e1e4ac9e2a1fc515970d327deb64e38e690e2b871387e8c32c286d1629078841d075112ceca3129c70534e0ac36a2593f74e8dfe1e6d2325e228cff908b0b0cf6cf00b82e4968407e769192522aa94bcb88d8c5656a9f5d344d4aeda594d225e7c342cd71f999cb99bdf73a6e73f79fe12e8b98b108e93de17d3ee88d52ad888c92c08b2cda0056fe39001ffcb839cbddaeb699758ef9b9d77133cbb6ac676633b7520670623800ef0f4a0fe6940b4a985a20941e9401c8910a24f0b88ffb0001670c437050811a84780e00be8308c0c001c01a9e049cdd9bec4190dd10ace0f94d901f59680ec7d97cd240e248059d1a78e8ee3cd8ddbd083f7ae07d3ca62f0875fef6ef833a3f93d9c778933d554076371cdaedd371bff9a8d91bf105a16a4478b493dd83edbdd7d95577dddedc38adeb7aebb6ed353b57202062bef60888d87bed418023042b58bb375ef6bd8d0e7bef69a08d86a319a2c0c15002a219a2c0c115b0d77ddd77d8bb5bf7db3bcba3b72ce5076c2af0224bae98be97810d6e1e08665f69f33c10f440f03750a3f8138217849ae777db4bf09be866e47b76dbbcf48ec4cecce78320d4ede5d398db0682366b0faeb4ccf36dcb5fe9c1f7ec6a7629035735b4e75e7b6e036dd31278b311f8db3cabd9ec58e39e856656c889a57b2c40f61108b58fa8df8e952a0740df7fa3dd52fa90e72ad9a2a9e0094df0221067be6b02efe3cc97bd3600950c80fcf83fa8de7b34c766431b10c123580c99210a1c0c99210a1ccc783f7d40bd776e8a1f30d7716011361b81b7f7b6d634aa757fa6655996cdcfb80de4341f7453569e1a719cf16f4d7bd95a6f3932d77ee5daaf38ed5753db34cfaefca5f6f207acfdd4aef6d9773740820e4c7ffe2a5bcd9ffed31bc2f24f5ebe17c127efbdfccc363e82bf2f416104c7e048051441d8d33e695d4e1cf5a6f4dfe7d2bbfc0f246246a9542a95feb3d161ee35e76ed67ebb3e5412ac89b8896ee609ee6587a70fce7a60ef391dd87b13143a38fb954de9e9672fbf71303764247fdafaf5d78134d3034b600dd8bd57fa3ccfabe1fdc99bc01af2bfec7bf9add5684f4da69bb9a72f4fbee2994f1ef8c006fc127460842e90e10954f0ccc4d872fa0fac616f4e4eef815f83344efee4e5cb3fd9ec7fe2f3bbcce5f95f9eefcd9053be7733c7d91bfa22a8913df81eca9a80f68624c697eee433b088f9a6ff4a7f62b35dd994befbd277ef6de034f969bdbf293da8bd77337defb9bb32b9347070ea5735505f7ad497bef4967b94f5b8efacf7a0cddc7b26071b1067587c67513e5c3102315ff5d472f7c67b5abf8245649f298b929fe12950bd133102916766c8125b8383539b0d6fbc8fb8da1bcf6457365ee9c6008bc86e3fbd375e2300270a4d20000707cf6b02138013851a6dae6acc1cd80438723f6d1398c3c11ef70e763732bc841206c0dfdfc8b0121a8ef1c5f499006f4aac60eea3d704defe8640856fa83077b79be967201133708c2e34b4a70131e84c9c31fdaa1f09d9e24b1cd1bdf70d883346dc1c44e0cc7c0f16dd95113a48be7befbf273a30b3a2d7081da57fc208f0e6689c991c85704ef7a71c92477d048d20b9ab23504ff2a84b49ee0a023d83fa9e415d9c19cfe2cc747675c4e9bb3f65f7e3912dbdaa7157f33b9693831d28276715ff7b986cade25d31a0fbd343c03b9dbefbe82f8ffc3d9b846cf1ef2cace68884933a7964e995de136a976e942de0fdc16e2a2a3a4232c54c4935478210a83c10d8644bf6df8ecd70ccecfcc13e5f1e1d0dc9a3a4529229c7e47216b7e365d231ed48134f94691c869a71f007d2709a17869a3dfd0ea4a1f1aee26f1f31a559428bf48787eea1e663843cb23d2618bda61ea925f5c04a422522d95a41a07baffb28547484148b329de37b13a0a0fbefae20e0fdf75f8eeebfbbf580467477e3912d9e7d6252514b3ba59d124fa907f6038484144b2ae5945ca5d70ff6ff010285888a8ebe2fd40cba4017f8ea2cce0cb803f2803db215671a3b4f9471ec8fa365a472b03f09a20cfdaef1698c31c618638c31c618638c31c618638c31c618bb2d29c65677b524fa1167c65fc6646bc66d47b67c3df1250a55debc09edc856b693555a52b8235bddd6b93a57278fe411110ffd9172c39450239e5454f992407227de4cdd2079b053a11f79d4b99c956b0cb0e7ce8577c82322b2883c9a46f368167534fd231665a46c75ef4fdd105ba61ed962f28c05d8b313c4cf940e3277923c9247d94e77b9a222f99a296b5a92a908bb9664eac9aa1a4d3dd8a396b419d992b6587c71ae08fb3fee5b4aca9d0b2997925cde3dcecaed9fe4acdc3df8c8ed1f75f3184ff0c9c02f3dcc85e89ff80deb9f18fb63c33cf49fbefde31371606f865442c31a8e33f7bf8c3ffb22317f869c57344cfc2568e283a0b17cf769d84fceb08d0f4b4f0835374f448932dafba7449920b59e62c79f80b71a161f892b5a064d84c956f596542f81c4472c849a6bdc5e8235f4f3b6db37d8a0e94b36c70fb199d2c3bcf74ad5a704932d5925ac24611ee6e834c0664a5fe58755555280a66938999452ce29bff9691d683d2db69772129bfbf6d3c6ec379bf5046b58a870cc2688e1e6e9c8235bdee32dde3db961eed362befb5422e860ff140a186a6d1d38f76c491f6f7109a4858f07869add47c2824898fb348f0ff66f1e1390d736d9926d9b8dec9b7ab7d19bb74abfa348d8487d2c884945e5bab87411028c26a2833d4a29a57db9084e0e85a3dbd3ffed7a93d2f994d2ef2b562fede9f428df4748f415283a2857701cc762c5fe7b4d9f5a1f2adce71223e911a547941e517a44e9d151cb20e2216d22d3bbb415a3f427aaa7467c0c1989e0d2e5be458b3bdf88162d6eb6f1e1d2b778f0b2b8363ecce2730bee4f9edad34e55dd1b12b3f8e7fe66fb8959dc1b136ae3cb363eecfd8994f986bca2af6819256e7b8a29c76d44f05c9952f34d9eda0ea4f04df726efcd4f65bd3fb1a56badcafb50f9520356fe7f82341ea5f453d9f927b6f42ad69ecc67c0caffcf703aef0c2f591ff6575ad8fb794bf7d4cb3ecfe4553526dffd0c3fb13e54baee55ec07d23079bbf22a56c713a5161f4194a7dfb700ff7b24ae8844f00cef426d0c7e63f067f8fc34939df46bea4d648ba7275f427994d5b3f87833e54b4bc19ff355b1a3eda7b5a193bb2b04782f7f03010ef6b20d2c3fdbc0db6fcf65ee51ef79928915ec6d3fbb9f1ce5fcaeba8b001cecddd30eea267ffed7cd7bdaa9734e93edbb7bdaa9db2dc2e4bb7ba3fa6923b5a9fefb1416e04f15cac99f7edebc62c1e274f2a5932f9d94a82dcdd2d3eda4f4a7d2d35309a4b445e9b6f8538ba7b60535399d7e9e7e7e099db4e4eb425dd9f4cbab32f9d45dd5005f3e6862f2a90dfc9489c94ff053efc50998a47087b9ecce395fcad2bc99c5739fb564278f7a16369fbcb7d9809ffad4cd2673bb32a7b0742c6d3e7992f7df88507d4e6195c983f9e4da4861939bfaaf628ab2d906fefe03694e36529889c620f89f8d6187009f956fe4e0fe7befb331aca8e0e7184378e825d9751a98001c4cbbfeba0ed3fb58abe1318668a9fcf79bb3bcb5f2df0c5f899d8bb322d7dd3ce75639ae278abb0842139070a40247299ad003dc2a1f59743ca1bd133fa3f2ddddbd7a15fb44bf09621388e1acfe1b1323c6c47b8187e1a123c1fdeadbc6b0e12f9ce98889e142f8841123012d849ab79557f9959be387d8cccaab7cdf1c57ef652b14abcaaecacbbd12af8f0ff2d0817e26823d838898182a36c6162b88e01047202b5a80bd1853239015467004b222e80547a02042700c10b115f3b363042ae820095b3032a3612252caa7940205b162ca79fb0ae9acecfa13115bcf8a1efa4cff042212f188c8527de7546714ee13ee380718aa97da03ee2d2597b26988c84a7dff8c7880c862f1fd25b185844ce3fe2d7e5186e4fbc12883f2178ebfba290f51a26a45a5aab5458b6f67cd47792f731c1c74e0d56fefe342f9ed294823821c57a7bdd97ef55b8335b65fbdb7d994ff00ae3285b3f9c3bd8a8162730cf77115b795f683f30d4f090d139ffbb6f139db3e0dd351090dd3cffda6b5121ad6b8e7ac16551f4fbe8535798fe9dfb61ab38273cc4cfdf62c6cc495d36cbe3131f7dc0d5783b3f3399bdb26fbfe54e7c64a447b63b2b0510a5565bb87898eedd404283004fb5731602f815790017bef788b6f20b600c5d691853b08c501fbaf013b12b961b18d88e0f6b8af89987b1c1c719c7650a568c20d70c4c16d6f48acddbea26126bd5f0ae53690ec2d37d0059c956360207184fd27108908a1ca06422248cd31457136118ab3c0413432849eadbbbbbbe77ff386917704cf08755251bd276a04fb73fc0ade470fdd3d76dc373bc64ce3be4d62affbb8af9b5ec779a58e2ff1236ed9130c5e7c519b254f20e77121fc33eb3d2e84bff769a1462b34eee99a1296d18465cf709b1daf4e3434bc42e1c63be4adf1c5dfb1f7a366b25565f5c935d50304fb7b8f8982fac2ee8a2fd97fb1e9922dfe1dcbb5933a49deec39b9e278b3bb72add99d3941354f1fec3f7d7ccb72708f2b6f58f6fdb619cbc9c9818127fd2625a51bb5527ec4262f8034729b3149b74d3e9537caa772c636db51db4514d973b372dbbaa776ebba9fe1db7b5ef6f506d26c947e3fc329fd2ccb721358a38dd469b92ded2b3eb37dd430dbb63d92879bd679b7bb9f870d82a5164a293579f03dd0ce2ed43731791c5c32f9b8c1e0924f953c09aaa49afae3ba9b71e0eeb7adc676d37df633d629a1e1afdbb6ecd8d37eb374fbcc760ed2d0fbd9ee3d9b6535b837b18d4bec128d73146af0234c0cc9cd610b06ff71aee0052ff81d5b1504413b138083b3ebf4ae6c26a63f312dcd89bd066b36ac5d22e24b8d1c850cf06e8881869831845fd082c98a9a6370b6012347a1cd7a94bee775ef81000753cffbae121aeeb6d7e867560369b6ce66f43536340ca576c63ca4bfd9ec6926afcac3fe923659810a005610a10baa6d6a9a26df67fab7e9618ee1dfe7ca756107dad63e7b1a3fbbdbf4dbc4c4e15cbac08bced27efb997577b7b775072212bee99737b7959c8ed8e2376fb82662a7e1d87bd36e66232261bf6cf062ec28a594b2c8080fbd2045421ec347d0f1443f8c8f2cd1663f2de267f9ed72232f0e0ffd6fc426100e1cf60331d6ea19200bc3d6ee9733539cdd0cc8439c654ba8d9632d6213c8944194b1bd54de7fee4c1ece727116cbfbab58b0e9337f268fb302f0fe12c959f6fd65111973d6bfbf34e22c00bcbf4c92479cd5f23dbcffd4e1ac17efc3fbcf1dce0adf7fbea20c8bdf664003ecff5551331d1510f6bc18639432c61c1707474d5342622d8299bf5a30502f4d523767f44afbfeda3ec6f813a489a5dbf674fad4fb0e189c5e3a103ed994875d1eb616a9e93b1ada63f2481ebed358de1d2d236279fde561cc375c7a2c79d4473f653fa69b37ee4130df90f8f4f2e61bf3e4b4534dee8d89637dedbbe47217f513c77b53e3cc3726a6dfa8cf3764c3286ed3bda11f5fbbc99ee2781d06272debeb306818f9d2a6deebbe52e9677877408573cadfc4f7e2d7f7e4376d9db67b966dbdb4a7cfec7b5af726f67bcec647d9d3c3b0ad12f044081a19b55ffc137b7a216cebbbf435f04ff6e45b56889a9237bdeac4c617226a282b1f86654d548935995e7b4aa3e44df4c4ca17c2b2de442bb19365abb7445adfc4d6d48f263b511686adde323fdafa538847d993e72cf8265bf2d1ced47b2436549e7a8741cb88389552423df92c0a389c35850f1eb8bb845be311631910ecb5fbae24f7efcf69f211f5b5e4f4e0a74af1b38fd1c66f2b637c2e03ca7e32209e05614f026bfd333c6a156b77850010e0e07943b082e35d99fe262681fb93c099f62ea4e99b89154cbf3fde6c43bbab79118083e95dd1bf99af3d9daffdbc2fdf64b396801311577e172d8df494b3a7f7b453b36b43d5c57b73fa796fb88fd6860ac76b43854f57de6c43554a9d7ce44a504ff2f1663095422900f5f56738cae62670adb6662fb5df400548547d92dfeac7ec6a3793fc0d894f3e4f939b7170bd264ff233fca38d323ec9cb6f11656cf1510975658353dfb7e47bdeccbfa98f6011277fff9efcbd3f93c0590a25bb51b7d69babac1ffd9a7cf62693f79975f12636db50e1d4734f2d138d5336277fefcdf353d7e699250270e4adaf59d3b7f65a5f99b9ffe1abbd99ff9d3e95fd8d2cf9be25afdd92d3bd99253673d7860acf7bdffb19b285ad3846fc83cd30b0f72e6c4e027bdf81342436549889d6bc976ff0e45fac66a4b7578acd2a9cf29fd592bef72c526da668310ffd3f2cd40d96b5588d66240be2e1e6a3ddfc5a6bda0f76fca9f06771f0f692db56abd04b28a619715637369972b237996eacd1642746d950e17e146803002b886005eebbb2c138b8917266f673b421c5b2aa28c6aed1c39b6d8438037aefeb49a85913da5e4574909c15652bce6c5b8c4a853385b1c05c6ccab6bd8bcbcf7097df3ec5be7cca4f6705f129bf39eb7eca7fce527dca5767917ccaa79c05c4a7bcca59319ff228ce82a93fd45a6bad9f0b179ffab6a927b1b931c9579b63e0fa9fcd44e0effbfbabb35428cff239d3b1c18249fea24c34ed9bdba62325eaa3f55e43d9f8f0e927d66ce432a3ec2823e2ac93ac88b34aef2525252825d0c6b8d890e53dfce1496cc45ffde15dd8dc3f3c0569ee8db54958b0ea49401b941f379001ab262651ddea61cacff9c32727cfd90669b4f893003cb5ab9389eb500de2ac8f66f59fdd02603fdbe223c8fdd642b205c40711f3decdb54309e116e902002d282178496c360df9d0d6668a332ae72a3f8ec56a42ae28131b24a2b197492222cd8fb90b701507d73b6dd0301910760a04e5b3c6e38127a8bd4d8a95e83ce4b82e6c73d5f4158532791c5cf2267f0405c7209f2be020251441b501fb93e018e47306ac841e388348414978053521865f700c6a0210f662cba0a63e4b97118e6690bd231e4d839ac108740423ec0f160163a011f9543ee538502315a8e0832f8e54a0c20b07e14107734fbd68811aa748c111f6e28d1aa7d07184e7ff2cc208114cbf4ba830c58e172f409a952ce3384a41d3d7b569b5af0d39ebbbd1c57b9fd586ac16f47dd682843c741049a24c2798be046b9ce013e992d37aab9fe12c709f70731844eace72efa5eac778fa3c34799207914a3b4aaf928eb3668987ca962b56f9a8f226367a486253cec2c1f52b98f2b07e0469566c35f2f0a891648b2b427d9426ed6b5194a7cfc3f925b12863dfc3fa9cadcf15c9bf79bb5c5189ab793cbf7fc5ce6f519a29ee27f7d35924cffdc67d8d32b6e4e97b1d48436b382679cf5a253e50a2807e4aefaa64453f4b578dfe92bba257c27694aef4b92698b7b88f207eda4a324d4a4a487e9a949058b088e927086b02e22df382393573459c91b332c99738eb86842be2be106556efefadac12265cf2241b58045d408d54083ad2bfb211937c127824c732d198e482463cd4c75dd30f128f243d4b1907b713b57d9ce58214beaad66dcb435dcda7bf9ad726c4f486209276e4ae401a2d86875a5f7ed662990bdb5805b4df1dea098e5468c1119cbda32c7b43e02ccb585070f6794bbada64c122d2255b60cc5bbcc41313536f0ec357d1fba2e90b221da9d93bfa729c95290cbb9c95359e230f297624480bf2560fad648d47e3d17a78eb24245bfc897e603f15f9ac9418c11c97db0897d4220f5bf029c714f4d324e4e10e0f513d8e781461d48908e334b143ebe1a1b3542c4e2817e6be630bc561ee661b21a62f9f038be0ae6988c80ef50634d2f8b343bde1fe461775de9bdeebacca9bbc95c964fa1077ef993adb99fea4c3f4fe9dfd55f7f6661c6cdf7bcdd6227b57ddb509b1e99e748031d088b3b2e94dda73ef99acca73b61655a33ad41567b22bee572bee436c7a2dafb86b1362d355a26358091dcefa95e969578b3cf495e9da84f81462ce252d51c9158148cea2de916c715411ce4dbc30f7992b3a32996efe006d6207e65e2681b9d72c7773f625362655ade76a3c1e3aca052a00ac419f7b4a9f32d198de930e3a54ee3388a4f1d0f7d8f2aa7734bfa46a2af2d029ac8235a8408520583e5dd984a71c230f5dca7bd2e1a173dc3505f1f0630169b4f8edb5a23652f25e5bad4823fae650ef678de87e72a8b916b120beb874c5a15eab05b1d146707f47412455882992a77d9b6df12c303d61ca618ae9777453902267d168f1dd66fa196e22cada83486011539049c834245dd4d5922e6fe1acfd19de048e4439c4dc739792bcb54a58259ac09c25798e23b11162692bf6fce348ba3d465ad2b820b87ed6621e9106e98d35068348fffe49b215677ebb399c20127729d6ae77e444a5cf3de8f5f78fa5c99b7c462abd37a6373df79ec904d2a84aecc49fcd1567940bfb9f80299ca5ebbd2313306fd93484fd556c9e3138c4b916a9de5bf94aec3ce56844ae15392bd29f4c61ee21ce14e64fe4987ec9e266154e7d8e4535a9f7c0d30e6aeab92b77787853ef2388f788d049ddec2f6c8258037ca61f0469b86f9b4d10b37112c083e0690772078834af74c917881493dcc889b0621f2b8134209287d2b5630d354b97dc912ed9f28ebc23e93a450f8948809009a4999f1431c76ddbb66ddbc671b4724560116f51c1c14710cf0571513bbcc5bd9820803011000c0a437d1e4194a1f1348ca71e4794a9ef1da15e2817f719e542edf08eb498c6d33250288da769501cb7a15c1ea648be4106f84ccc777def57369d6f3ac775d328efbbffde0022c5a40b49b66a114aa8659c841ac6bf168148a85a74126a1931c294bed65a543a09617f01d887a1227949f213ac715c7da8dc50734c328961434c100f0410df3340040184003e260820de67da2500d49f7c0a6853f226af02d2c0c1a837b1d9b1c9374803f53140b880b03102914dfee4aa8036258ffa159006753348c3e4b6eb8248f1c53f464271bd5da40d35c72404a062accfa0be5da8fe1c438036a6af8f02d2d4dbaedb39a52ed2492a0f4472a15ca81da897b3e29c9b768076cdf0900d35c724d008f6cf5c1158048c816ba8392681ae972d9648c41045309070f43bea07ef1e2aa2037a02f129fdf85340a10347202fe8bcc0710a9811f65a07a5d5e3629c36fa8747dfec028937fb80ec2a8edd5d03fd00f54f03f19e02d5a1d29cae81b2ce72f3b51f20a0ce80fa474af9d9ed1fa0fe692020f173ff24d152ae3249b5db2e12077f456a9ee1c7985ff3c43d3cece922a422468890adfe11ea9fa226f263d31660c1f1867ef78035a84d09e26d9f1f484849dca21ed4dc3d7c7ab4113ced120db4829c96360239819473d269182e2cf21b679618d5c5db480c8c0f1604fb57e923cb584296b0710c334b386b20851a24e128051d2318064729e804e13672d6e48c6abf84f5e8c991b3c323a8853cbcc31d86b48e919591018a34b0010769f20256031efa4b3b686e9052ca98b594b2bbbb1bd66d07198fe6677d74cd50b3ec3d32d4dc413d2485c89a3624a1b3eed734edb5be37f23b7ca3354e77dfdc04b68964c0b36d60bc20451e9ac0d96ff4ded88855bcf0bc1d8855e41c38bb59e22a5e9a9452cad316a49452d24c6ffa7dc037d428ca2c11837d803138b790c76922477b1fc1fb5d1d4ebccc7cef2299f1de63b0510a93e0eca32793fbb39ba5cc7d7313b8231970b721fb0edf81fda780f148692100e30529f230c37ddb9c03f78d8d48249fb08c5408e108df689cdd0e4422f8fa304113b18ad74c77736215af19139637f7a7b037bf4e02b18ad70c7773748fe3c063093d5802ecc87b9b338b000320a0e0074f98d1e1c4cb0cf72e92994e87133ee3bdab0033dc7fd65580192f871151b6789fe308efb99be32ff739124539aca00a3ed60006228c610b8f5383a127f08007521421010e3371a63be27372681256c8055c2e806f508f0c5586218787a72f74d16d220ffd1d84a94da4430a3922f256cfb8f01d86827207c52c5fde30dc410221231ec1b0bcf2066c82a9082e77e82167f595c1b9bf83863a287710f6ef213b38abbf73b047a0ee914424827d9b391273ff681fecfdd27ca609463ce708b0ca4251f4034ba5fa75dec77dbd1147ced7cfb53bc68f31c68b23e7f49d534d319aeae7f8387262528eefe3c9de98b8547a8fb9bf9e3ed7c7516352cde1a19f4c36734938fcc6c4251b1ff670f0f638d8eb6aaaf5f4dee9743a9d4ea793c9544d76f330e66191239dd446acbb3cd4e139b28523c7a8e21843457947755a4f0cd51b52730ba9b9913c2a6a75500a8f52e7711ff8cecbc80b5e207fbced1b437565af45999ef138abf85ccc2a3ef73833315691fe111bbd399e88f708fadccd91e36e5bdfde691c68b7b3db2e99b73823a350b374459996bf444b97b3b2bfa44bee30c2cf16fbd5ae577cf12292fc5df1459b81a44060c08831c587be7594c28b2f6ac5de861c6388194f0c61ff030c798ec7e4cf8aa78d56fe7cb93a82be7c7a7d088687a1f4f12da4e69818181e933fb6d89a1fe34f20b08dad28e329c696942e5746f48d52e0936ca2bdb590059e27747afc202243cd1be6e1c1b383853a81a4983fb019393cb09d8da79166bb4f8185facb6a63c237fe35ca96affbfb3ebec49756d43ca515f5f39b4f38fbcb77dfe69cd35bcac18b2c79cbe1a1c4115f24f7337c07cb3e92add78e6c912fa994f272377bf98e6c653b13e63fb009f39e09cbce33738474c2e80f0aa33d335cded92303da787af4983d4453072e348b889c35858c3cc88c7d63a8ee4232480a49207f1a3f89cc16adfab5c799c991fdfc23b29faf5da118b2c5b32cc6c3428d7722a121bef8c79938436366e4cf89145f7cf6c8162f922d2e54e431fe922d473587e18cb54f2fc8389fc52502b15646bcf8f811f7cff9c27e0faef83dfc77e8ac9e5d0b6ff5a180292515d34a7d5a72b2a84be2223349b168aa136e6311b6fd7f67f553393f94adc3c3978eb33ac67867d53173668ccde2e2da5f51494159b560a13a312989312a8a805324a8533595c0cfebb84dcbec6c59258b773e06501521a93daba3ba102a17c29f7e9ef566f5ec13dff7c374c6ef7e86ab9c152f4d5555bcbf8134f33ba8c6a8fa3f5a9aece35d65df78098a6f4c3cb5efc620a1e6185c678cb7e6ccd32a253073bce8c37b9ff1a704138013f30644879e57bebcdb949d271360382bc7c0885104a0f74cdf67541f77f65aab7f6b2f7e8db5e20bd6f8dd7bbd7d8eeff10e116308cff3bc6887f030c6101e4833b909220007c7cf3198863e6769e28d71966f34f2db7af393cd810dd2c87790267e667d7cef7df7a67f3ebddbbc9f87afdadfb246df79bfd85eba9b0b36a49a74a408daf74bfba49c73ce39e7d43419bbe367afa95a38644b91235afc2cfb1c67651998525231add43f59d42571b1a9522c253d98bce0bea50f1e65baef538b8e325106e53bc7c3d89ad6499e136fc73c74a41c97eb7096bb8cf8f0a2071617d7fe8a4a0a8a8d2bdb2d2c8b7e559ff49bf497f4a7fa4950fda73681a6185fe24b1fe9c771bdea7842bb9de4a1e7b81046356ff2e75f4d8b378a9a3ba93f93df72b694f2e288d3b4058ffb54f79e12fe351187f1a53f66168cd23dce4c7c16160e85850565d368f6f555b5bfc9aeadb2c7d3f1849c2fec3b31eaec8831be5cd9e76e89e4ac185f5e2231febc2d8f3e2dd42c3bdef83c687cf9f2c84324996dc4eb42924712c946238243b6f47589248f1acf97b3f10ac708a6631f2ecc02c72910f1685fd782ced5306d39dc7755e3be6c7c1807e3600e9c9786e3ec364f7cf1f73c1f35673b385a062a07fba8f20a79d4307e1465c61065fa3fd874755044d66441b6238f3a57e7ea5cf228dbd991473b59dfe9f27a6ade869a48c439b1739540902676aecd08fb07f1b60f6c417cf1075d0de39f84fd8f18f1d08b9862d84d482e900551467f67537a69132afa60df17220b84228647b2d55dd0253fbfe7923f18b86d5fadde05bfa3ee1ec50bc2e28b3fe8ca76228f6ce16430a028d3b18f0702abf912285b4d69ea81fd0011459936bd6209c754e4a3e28832f1fd471065c831c4972b1ac681f87898fdc0f19b3d1eded848d0b93a976cad8ce8fcbb57b7d3f1743d1d2cca7467bdefbbea0fbdcfb1eabb04d83dcecce3ccf45da20171a674736cd7693f1efa67459090b0d3f40569b01101e5110d9553a333a8d2481615797452f9afa300efc4cfa440e6210f334f74523e1292729ef6a16c11e0e3c798612ad58ff13d93a56f7d18e087a0415a7b92a35366f3bb241f32265ba64bb6e48032c8c130200e14e42d43f17f6aa94d776e935290c6c7101305157c6f7e262b29100fa230f075c11754986cf9a1300f6340411a8d466cf266b8e46080b26912fc32a42c49cbd15c25af9ae46f1a37b30efc3818078bbdba184754b21de6625c4ca87b08fbbdb837d0a09852ca610acbba0d67d96b204df71a58e3786ad8b31456a3d8344ba310c329c4d0ffd225442ac40702332f48485e6dc2342ec3bf6dd24e9dd76bf2983b3bd83f6e4442f1c5e7a70a40ae10b4514b71b514d630de3222f6a75c6b252b7107d34cdf3dfd388bc8b0773b9a052bc8ab715fc9367e8ea86574420d23c411bdc017d0d0bc0beea843db0f27d4322816220c10cd42274485bc9d899f7ac7154aa832339315ee829ad77d3565e5e24b4efc4c015c990d923257a6d330263662bad3932561ce39e79ca69ff36fd4948f32ab9fdf3f40a68b9ff7e78b9ff6670f3f674634e7cc90e669fa3059e6d45e73924cedc79c1a6ccea90dcda911cd39b522736ab139e7b663ceed35e7dc7eccb9c1e69cdbd04ccd16533537a27932b72293c52c995b6c722d98a8f919916c653f51e66613ced950cbe05e1061fc5f50c54bb6bcd7005eaf1f2da32b42f2317ec064ab8bb5602cd850cbe89086702704832808a296d11111c0cddec180f881c56260b4d88e96d1fdf881fd7fd8f1922d2ef6f27afd6819dd8e00fc80c916470400580b6ca86570455244b2c5a98870c55b9196c10df5c95604fb6f31d9e25ad032b81f0d83c4628bfd68c176ba79f381e522ddfc4638fbbcd09a70dc0fdad383435bd2753d284f68539ec783eeec604b82294833dfe631bd54e703e98bbefe4190a6f4600a0aaf581f0630800168520c22cbbb410cfdbd57176b982e46c910c510c310437f942862b884e88418fa1bc0d228c4162ac42bc42c442fdc800dd8ff0c31d632681118de805de5c66a3f4e59d51d2e178ec2bea53e3f14080d228ae1ed86f604c48706c5a6378134e09bea17da8aefa43a680e8dc25228220c9187431e0af9fc00098a2f5350c1c485d6843dd317dad209a441310a850251de938034dd938035245f68bf0c497aaf9e34c552a221201e05f25e9324b45eaaa404a459f912b0a6e473d1e1b711a7583a24f4a3932105c9efdee47bcf2bc996522ddd4c7fbabb3bb656da6814f18542419f10619cfe780824be4401fb674869c0fe25200d8ab37b6426258596c3269b111370c662df8af531840f509090b710c5971fd886339d9641b51061fc29176c80fd4f8a9c80130929b45a11910af431858488a8c07974f28536c39305f6545f68295ee1ee8f8f21ee84813e668f1b6affb433089c4040ab1548d3e974af16df2d808d33a19543d838d371b14ca765704411a64bc2b1cc85d2bd3a9d6ec7599496a404024b3b44aeb8009f55e0cb2f8025801d22a58bc96ec7bb57d7e968efddacfa6eca8df2aff6f59aaef6a59b57320cded77fd7bbf27aafee6355e14c9798dd0e0baaca668f1834797850beae53a3a694af282a2b17d7c4f6f0e25728ac07eb75455a068582e41671fce2ba8821c53a241315944ea823723ba1b013ea88ac2e85b9a0364cb6bc570783bd5456df2995d5a5b0c6b04fe9ba21ec413b9d112a588ac5c058b7c3e47d44454a442051918edb604330d850467f344b7db8976c5120dc8f9641a1a04395bb9906bdb047115f9cfb7129cc05264678f585b6f18af531c44f4b611efe80dc107fad0f573833c4a540bcc5dfe4d214184c25c53b9a94e48776621736626913a774d11febb2241cb51638bec75686245bdc3b43929fc9be1a7d513796ae2635489ec56adad77a089fe55dbc781fb4afaf69dfd644f29af62f603f301f20b01f980f059292f26ff307f0db98565f575eabab5b6345abff33e4dbfc7f625259d5d752fe5fcb1b5ead6e8d94fb26cd6aaf62f3ff290c5fab6ffa12cda6682961aef5de28227cedde849f726f5ebcf6f6c6bc37260e4d2ffef43ed83cb18b97a00dc9bfb8d3c31e2e8b0b1726f751eea35c1414cda2d4373dca6ba68bf22628afd5bfd9048544d32ccab56f625fb3d6f4a69b3d136bfaae266f32799366d234acf27d6f56775583e4fb4956ab67a142f22c56cf82e459ac4ca65fb9294f61a6949b376cfabf268bf27df2d532d158e5bd411b9267c1e2e6d5abe45596122c42ae7cdb7f93056bf4ff9d21abe955bf626f568f4a79954ec129f766f524a6cbe24f9a8d2a9b1f9ffec4be8034262517ac518249deebe1eb7afa1e409ad473af94e57c50363746713fa8d79e83fda0927ce6603e1e090a65713a0ec6f9d0d38b17208da7a35529b917b7437d5a5073f7ea7838cb593acedad1625126260024c207017e23c07f6c2080f574b6ed3f67997ebbf9c6c4da773cf5082388601a6b672b6da5d26b5fba1398980544a2a87bd94ea7dbf1767cf05e2f0a735613754d83843a1d0fbd7b79e83da899c25e3ecef228104fc7fb6d27478b00efbdbc97a7e361839f062e70b46ddecb593add4f6f11e0bbef184c0007351b49782ce00762b88bc996f7925c1c62abab41e462b2d5bd64addf0b70d227c4170a856e710a935d0d628b2621d22a28154f61142644613e86780a1bc2d217200dbd14968382387c48515989ce02000a9354e3b8c011793cde0e8704efc5c1027080008033805c38acd96c0e110e316b43ccd410437faf06b115a31d22076b19195296060e09d8ffe5b35896a4e56c58d21f409a39c40f600c0f0606a4a11a9e364342d260401a09032626060eb55fb2952121bd905e5c8c4bfacf5bdd4bb6bcfced662e898b693cb81867a47bc95617f32ef6a2e154b8a7e5ba184a4ca5ea863aa24ea813fa98b38c382b897694ca2771e9800adf000186dad7760a205565105f10a023c100250fea867386e459110f6320cdbc19d214028c5f893e952d208d007c31ca448f3ba148b814576272c2a958702db8158a771025ed2f68e3c18cb2e04596fc4f6c1f9fd07eb34bbc66bdb74bbf258ee8ed3d1b1b1170dbadb16df688feae0730adf8863a20621cec7d1cf8df4300fcbcdf381dde57abe3fb930caa123109c7998c6676200dfad32608acbdf7d59839395a839fc94e7a52ca0f2c71d72607a626b086c4370a0069e0d4279870ac69b723e71a1a3c2970a658036da40d0e14a450234a9151ae8b318018202c8e3f411b9c28602a059edf81352210bef1bca32c79c7e90649e9c49cbc29c1294f76dc57125bbcb5bd6f97c55b58cdc2b295be18654edf813616b0784a8a3dd317a34c9675608d96340d5e9c38d8d37272c26ce32fb17c6dfe666bcc9c1c267c0998fe1baacb75df25b2bfb161affb1cac31b14d07d60015e02f5f0369e038fe36261c674a48d75aa2419bc07c29e5043c6e4e4a29a594ca8f0341db3cbcc5b96d9352822fe94b8e637989a29aa00c4294d12848d3a5aa4f7cf1d76c2721be2821be2c21bef85350f2a04e9cdb077b04bfee93200bda27aecea236da539086bc95e3401a6e9bdcbca91ee2a89e477fbe06da5800cb9f138922ad484e1814b4b1009e2fbdbf5fda5860dedab989c7480941cc50796017384a8185245c0511b6384a51c50f0c04b3e20b3f473806fd106101c7a025ecc0de51168480b2c00367ef28a8c759acdee1320e387fa8d89663ce39e79cdb9683630535cf9f1f1e3a0c3f013a51b31c122404fbe901f32feff2fff77b807880f8fc38f2e281f22d7ef52a6f7fe54fbc8f38e288238e38e28823c63546df97fce94d9ee4b5377dc411c78a8ae15ee5ad5a145db2b38f2916679d843c3c0d79cb9187e41119834745ad45cf5d0916d13927c01ce71da15cdb75d066480fa17e44dee2848a702dea9afb6a0ae05e2bf288a0845042f422b910fe59558b58dcf5818227fa83c8282194106ac859ab1af4a634cdf33c2f8806411a1bf8c6460ad3a772db8450ae9310ca751242b950aecd4b71dccd366ce0ed9b280767ef284a9105225e11ecdbc63d17c3dd7c126a4ab9db27211923464c4c18fedf53f4b0713df2d089640be5d28864ab511ecaf33c8f1392ad4ea823c2feb5488b79471e110fc9432d46617568c2609f1d73df97092f1ca7008511bc8263d04f0c7345dc4f010d3d534003cfcab742839cfbb9ec8fd805776d1daa443508a8829a41a39e1a2318f76d7170046970b630d4cc151569198dfddd85b37744c33158867eef689b42cdde110d77534748a99fe13f6a8d110c0604d718f97858630404d451b91feed61801d1623188093cb83f05a469168e11ccc388bd1635463dceea9e1f0f093bcc5bde91b7f88fed67cec9d51801d96c8d91cf8f1e16608d514f8f1f27fd5acc5959ba6a8c7a925a46c431ee008a32d154c459d1e546ea4f0562d231f1601311ec2624ec5f2344c759d2088e18c6d608d10932016b8604ed384bc20147fc626b84ec08958035438484e4384bbe0147ec626b84e4c05260cd10981097b3a41b70c46f6b84b87e48c09a213f46469c256338e26b6b8c8cf4408135437a24394bb601478c626b8c927a4e60cd909e97b3241b70c42d6c8d901750056b860019c59c25d780235ed91aa3188f09ac19c2236487b364111cb18aad11b2034809ac190244880e674935e088adad11a263880f08d60cf139e22c99061cf18aad313af2e3036b86fc18729644038ef8c4d6180d0939e28135428e1c394b22e1884bb6c6e8e815657ac8ab88b3e41970c49ead312ac283036b86f028729634038eb8b3354645435c1b5833c405e42c59061c31686b8c806251a685c4849c2589d41809254599ae119244c459920c38e2125b634464880e056b86e804394b5e81233ed91aa3202146265823c40891b3e41870c426b6c6882827caf4909c20ce92473862125b6314444794e9213a909c25c58023d66c8d11d24e94693c6427be445c6364e42c3904476cb23546464376e008d60cd9115f2266c5a923b67cf2983ad8e70eec591e71232e8b7c01fb1ce490b3fc08145186d4d130fe3f128814923df287844519fa8d5b7146ca28248fa396a72b75541712c9cd2aed4e95004ead922e3fe22cefc8431d2d832b6a187f1309123e82a7d481b9972e49724bd48ad8e2540811138b12791884fe00b114880e15b50c9a8408e37409d87f7245d427bef87396c2ec106570efda4ecbe0eed57e105ffc77565fd3e2b777f133dcc5caf71e681b97501e0a2504b2788e72a1581059f455417cae319f376c2d1057f398edf6f0d15995087bd953bafab65bffbd2fab41becd467c1222ea57fde7ba6d26dcd049e82474122ab9bccb8b8b7df1e2e2c3bf70f91717181717985fb9c0c0fc4b0569605e6e5eb9b8bcf0e15fb8b8b8b8b864200949b671442697133a09791d27d471608d2ccb3ecbb21aa406a9433f7cae433fd4203fd84ab46d5c298234d7c524cb5eb6ed65cb4c4cb22c7399e1fb873d7cf41ebe871eb6a7281c0a00bee5bdfeb890130a334e88e384b67b637aeee9cda6a74ff2752d791290a6366e90867befc47e37b1eaa8a44c74d6a920758a462000004000e313002020140c088482d1784028d5b4157b14800f95b6586c5416c8498c21648821060000000000000000200104f460c46872819068fb6fb014a2e054049f1f162263687278b85cce911378f2dfa186da6b2b993ea85df4e74426e3e4a37cae4204f75f5ba18779dc15274e84a8f7461c05721b750590f9d5a7bd2cc88f149f615cc1f39980944fb383a1865f687206286a0ea4d8a5709d278f19402a806c70f4f692a553d0e41858b35a111a98361a118715141ca9ff97de202817a0bf1afd9bc598da55f5babbfb8b4740841c3edadf5eeae85bd7e30f48b7b65e18d50d43720998ac61b7076f47d46824c15250101a93418197746f997721eca8c98c6eca21a94cb2c3c641e2bd5c331ee82b105f59bf6e2ee18be4d96b4cc88fbabb43956ffa46e220a98a74829c7e83e87c5c5de7d62eb475510acceb5f06e195e11623ef8c685ab146571046bdfc3dd79bdf6e70359f99778ea1ea08ff372a0f0ae857f9d6c942d86e4d2eef542d770679d28c27a341edebd374aba33caeb998308b419b4b1e840f0ad6b690cac2b09b8e0267b9be78673e2840e760cfb9463814dadf31f66ce7e23e6dbbbbaa9388c8f76f59342468d0589cd39af9fbbb9f71bbc7cb788737cc3f090e84d484c05330e48694e1d90768cd141354a957c44321699543e8b2d41038b6e77c56e35ddd9f86579ef881464350da4eed3a4468428be72bf71d50bbc637b389d072f503a3a085cf0d15bced70881d4682d844fe4dd345b65c30f2257b0bbed39620db0a1d72485ae9d7156d7b0e1eaf82d0e426ec1167e5414f9d56b6bdb186da31b625f78b366a9840cacb4802f8842778bd9a5bda2340a45af16006805b23bdf35fbae15866b76050e7ed3c0f1ad2280ffa90eb63e7275ad5be97981cfd1d6a018bc3e7fc84e6928064887a92140b4c9ebce13cca2ed0c46102a3775942adab86ded59ac24d8805e2db8f0be1720b25b7057a782cea0c3882d84bdc3275be4b22c746eae010c919a965e8fb3432795fe3b59be78e08ac60ca7bb5099e792e9a02fad0249a37ef5c3b313a29068162d9b1074338c5c1778a26547da7000bc937ccb08a8ff5ece398484a5509cf201c73c26c754a86b38010d7f02d66e13a50647ee197b15e85f50e45e8eb0314c1b01ef6f5018d0d47e8298dbfc183ff9635b0af335ef6d924250833b775f2301f8ca0d17fad3cf9baddd4dc9bcb1253a56633cc85c61a311d036f806f46a97767320c207d48c7a8c3d7072ccb04c178c41fd416abff03d102de92cd528b53666c928c21e77c788a613a266fb2180ece0126da66d01de0008cd2da33f17c19199b1f129ad35f6a9480be599543f654823261d8ba03d06ddef7e83a797d3dfdcaa7365f03c5d22f0d271b258d5fa42619a0a409663e2e2708d10035451004d310d0dd3bdc8f2ecdd9d7ecac3e625d1fe010a19db6e9adfa1082950e8459cb30c8b95e9402d5bfa584beb19da3897142f898c1cfd56719dee6acfff273a769bf5febb9fcec94ebe94cfbf11d8f7c47bf9aafffb8e37a3bd6f6f14f77dcfdfd6afaf695479ececeddd9baee1e303e5abdf15e9cb9ed8cfddcb2b3fdcf07a6eb037cecd3d7a2d669f6ebfe8fcc0fadcac5a5e576a96609ae35d62e9dea8d9d1c1b422a1c52625c23ae2d81657408a7ad221d18c8e922f868e251b66a7853ee94fb130886640ca2e19b7c4a3bc4c5a418ef638f5195c34f9fa38996ff48c2dfb1a3344535b836568b008569268e71d375c60cc1fdd549b6c59bce12599f7a85cc1d8e99c69e1c2906ec135b1e5a0d6c387dec8e609d1068f112d9d89be69c4519865b0cfe5aa89d86ea390e0b238b7a23ea16311520adb9199d702b8831e7218af537177b01af6df21e0a16b2f9c8ffad2e5f226b3031c026cd0f3ec64deebf940cdc3466898a7200573f5941942965631fe8b5ff8513a67c60b996c10bc88f9ee8bf76c63e4656cd0e64295f6ea3caa0f77e178e68becd7089cbaec9e9a1ad3c64fa822db59194e420cf61583e48646124a288ccb08cb324762c601c871c1ef566a247c864b34e7ce5bc901c9f2d16ff8ccce16e861dc9d20e539ab6f36bf470807b3e36877b6c5d229b9f88a31b608cd1611a991ff9a463f347a6fcf66304a77f9b8c494e078a004e87706f32c8065720c4a5160f3b5871ad15544824284c23bf139ab9f267b1e9081f8444450274f9c524f86726198280dfd1114b9368119606e6c25bdd08df1f65d81e93f6fb30a022ab1a9b9a37102e0bc1a1c9066b893db225cd08e34d9a4ca124016880b27d58db7309667e33025f6b3a7cd2e808650c8c0f6242196000f02f3144e1f5eea6b49304a5c8880e912dd0dc52adaeffb6df53b046ec50d485e9b543ce416e1ad2420b21e15f3ff573714ce7bb55cafa0ec786a24844db8146e7f3faea35b3c461eca8169a6bab198a158e86f6577053325da1dc93b627bd088ffbaa655ea1f8d27e9b587ad5a58337a7d32f810ba01a0bdddc5bde3b9b956c52feafd2ae2466ec9b3dc03c11ccca6924ec62e66d5b906a31dff1f463e420c55cb0fbbf0ee92ecec8081252e0b4df5c94304958dc97bbc98b253e9e6066759f2001d71924e01a02d9d9a5ad6e9b3ca8899742810124e028c7caef4f13fcc108751802db507ff4e0080e13cd7443bd43cc5ef6e59bbf77b29b8ed47222c4cf2ffb251981284ce13d8dc24ec614c99fe2ce9fc0c3c5e94bc2249e10d5372bb34599dc5ab37b5a2a8b244967772b96a600f92242d79f5b6a9f094e185e3f3fd33469ee42eb1615af16ab09d03d5c33ff1509f0b8b6b1f6ef25b00c3fdc8da24f964ecc96f881614417ea8a04b816887739d70cf0daec62f91fa232309286de643717dfb97824485251fa03acd53175d43bb0fc9523c3e258d5c57d0c22be5cae37b0e7b7aa65269e34596540324f9ba92f1e189c4ea0d25b4a0185de8bd8130a76753318a502481922c38c2478d224d293f08a888ed08a0478e6b52276cb962b0f6a4885d762f34a29b2b5bd72870a41ba1a8721a4962de9969db5c390e76d11f13c883287dbd33e81143cfeb0bedb50d73d98413bc712fdaa0421c29f888709bbb61f9a281a10a7e4bd3aed1f41a7b2b830e90950bf129ddc3aa0bf52e85db0ad808afd30388bf6c38bf6e67411518964e91f7320c58b08f36d19b4f63d6efb275e1a10e40dd2f0a6bd23872bd96a5e07f514fcf341c77d3074c2306fbf7ff2f4c4a99b9981d96006f7365281042cb676729d0c87e722ff4494861a11f43d5a57efbbb66d768126986fc6fbefc28e71a5db4016c4a3563ce4fbcf637d4a676a49aa8efe39ab0d80d1d30d05930d195656ee16101190ad5679b8ea36e3c9c58b2433a047cc8f4438359226aecdff3e0cc34f470bb125245d7f170391cc6d91d28b20133a85f810cad9bb237cb0183380667a7baee6a4e6bb2ad7505d240b2664a324ba971f7d728c2cd0a59120c757ff77bf6947c5021c043b32d009103cd9fe08f8d450755e8689c8c76dd53314bc9db0250e001d3782c695385360e1b952c03270c592b21c07866897c621dacc3a93199bd972570adb4b5b5ccd932a04008ba834b9f8b0f3531587bab6ed38511b032ce751fa76c9c6337a2558c2343612264d4ea86e5ed2007111dabd7d5cfc8871f8ea34b5eb2d10e8f16160f23ba6a290eb0972c686109a78d1159e44bec103f8a655b8e072e12d3030fe42140ad06a95de05960099859de4392a93949768150ba0586882977f7786f5e0639696ca14775e3b33327913c5b791ea328714714f68a904e1b4777784998fde18733b3e13824d9cbd05eaac48693421c06906ba7040554854b199dc9a29dda915024db2106d0f8263c23414bc938d4ab20bc431eee3bd730bf2bc4fdb90b8ad4f272aa4adbd163c761f6618254d4731ecdade6c90b06578be6fc2dd10c72ff014ee05460e0f4037e90368977887e0b4642a2685fb14c032fa965d9ff3aba061234edecc075af22b3e4e649e9a2304d3e45df43be9cbab5fec933ecb60434c00c30d7a16fbf00a0b4ee0e5ca0f2701dbda4c14e9ab8e499f01c1985bf0403154e6f830cdeb813359a487a99ef4592530e78f2a73f63cf831fafedd68406711aa44e583522ac39846ed6178ec7e9eb1fe940702c263ba26ee2b776e0d058d19ee228fed785ce0d9802f477847cd32ffd089316eadb3cec49dd8480163271d3c39bf5989c5878ccafccdd4fcca7d6a0137ca322d21e5df8cd287ac3149e04630cf7481c85c934289114c40c9af53c91d7bcc47af2669aacd0f03b42bb3b9424983c5ed3157aa6a17609265c6627e284db9b921acdea9198498f555e9fdbc4432dfdf02064c62246b72d2ad550d99c7e81a74f985e75dfbbdd87dcadc50e6556e4d95745147572aacec2f023461c9c079b05512a694c7da6607491420a9e32b2a84352ad47196db24493e1e30da60a65ee1e9bebbf14e6e5d9a6d067e5120bb7c576c5eb7233b4edb536c2890afe5a626f84c7218e40ddb88bbb1033f4f855f59bba8f4bbe083ec55f75083ca094d5623a31bd907c6e52fabc23ae6ac23348caa261e7369c6cb6f0978c95d889b9b9dd0d4dd579393d7e7de64900576b1ef067596b39e5aa3bcd044db55a65d460d6696442eac2ca7e7c21bdcd119a63435e0dd67670d5b29d0c030e5a2a0e1f8aacfd7039ada0d4c95f2c2c438d2ebf6103d1a72c57d07e444b6e2e50b966c6137e7bb64b0a56a6bf3a8d9648f075842c96e4c72779f684f75fe3aa1f92e445eff174d22cb9695127502bd357f664e4545e1539aa8dff3d6d733bcdfb61bcb87337bdc52fa4d67d13db896bb8d9c59b5a44a0ad1a473898fccedd2848dfb4968a888b2c15bd5aac31d0e25b6ae4c5a554b22f0279a6f49cdb326df74335e35e01513892a1731de4b4b261c276cad33530d5afb7f196ec764b28fa0eda44d417186d50fb49df168cde17cddae510deff6d699fade450e6802020ecf74a6dc7ca80427c8db9093a7b631126408d18bba8b0578e9b1984bf670a2410308b4b5c0113ebbb355af089e3c4ace2b6aac26a0a6a5746a83c05a10314cf364da8830d2fb95664a4258d5fe56ffeb7ba9670667549ba7264f0eb80048f6ca595ac562bb619fe502919f94caf5126713779226ba2b50342c305a30904406f6c89f258921c65befdf34d08de183bf4c398b3cb7580745a6681d72a3b4347f6696aed683129cb3f825b3b74fc37fa6b4875e3a0a9103e78504d45d73809160b10003c45828611d3539174b454058ca45b3ae1157484f87902822c2b3c4f8b241c3fde45df3b12e164dc56b629f0a380ee1befbc709a56dbb3a046eba6ef14f297894ae5e79cf00d1cee9ffd135e189405d2ba7489fd602e95404819ea2c6e84611927d5e1a29e4f8152a1386a0a6ac69cd88454b2cdc88e10a7e4f2371852fe5eb3cff1161536304235d0020af05d83439e6e51a3bedc68a5cc77b9550be1a8ba5049a1e73c1db7ad50f50d8c42b570d99b5f1f02dca35e7adf5ca4cba5fcb8a6ddc9a7ca4789935c0d358f18f34f931d2891d1d2c73212032eaa8cbc59ee426f4b9a6da387d45f4a1723f3ba11bd8d67c79333589682409b4517f560784ca548a50bd0a4cca4725b1a3883da59d4e7548be69bfb8f90b1b9864e08c98b8222095bcac3b0f1173332f3668e440df34a46a3ae3cfc2025080c4db1a2b93abdd090dd090c5d2bf3597df4fa8ffc53b5af38858fc15f5f4724310c14478b1adc7672933e629b13e5073ace50db7593692bbb00146fd81995dc871984eb4a9d1a803b0ae86509c750838f4a58c10a74b56c2e41a87743faeee805927157203e57ea18cb8b20869f34ecc8c9678e2cec1306ab9c93a5ea85f2a6213e418d5f30ed44cf0d01e0687179e17f284bce67320e0d570e8a52fac1088e1e0bbed82ad0c51b6fbce8a45ec14a2bc7382c26d24a470f6d0967160960a3f5789b7cd39c374793d641b9002e5befcb156b6c7a8c12d6f0f54d180119958e55bb10d3c2b5924cd64105779488bf4d31f9459945ba24771d3c489c880891deb09509a6a100ec0c4ce9e177c9be68f1c0188841bd91843169c2d6a39f11d03c841ea0f759411578cd3eb0aaee20d38237f418f482b118ae3c6ac6d3067ab54e1437301f4a8e33752c739f01622690c1ec42033af397077007a0c5d1ba11cbfe5e57a2877011b381859e148d4b6bbb093f56d58d0d351416e5f497a74fabd868cc5be43449371ce51ef21a184e50c5258d48a675636d1d48a104de6fd54e347b410fd63077de3e218ce95e50ab057c0bdfa22af7c488ebbacaaf82b88f364848c0b408677529cba46375fdce99619a7688ba9b9e62d96cb65291d3f793b51a033a9a7fb6eda772d83effca113fff76841efd9ffcbf01a03522ea9d82b8798e6583f2188c290bd7fa962ecf8e57b323c5cfd4ac63ca4255746b8843ea26f6772bb287efbd7641430063016b89fd48da5a9727ab8caa58b0e83263d3f87c9ea7ceb09cae5826b20967d9dc26c819883592411b5261e78d4756b4da7a4b7e5f10a407dbb704ae122c379e4e1d3e129954f6273b04d7209f765ef3c8bc44a009456e1da98bea4c4555f3889b94f48931340207c695bbdec93ab23179d218b5e9c264d846a48a21b5279262f832d78f382bd057dfd21ab5a7929bc460ebc34cab4ddcc5c2f43efb8025d01da84dea6a64a273b0f5a05fc63ce863f63ad3cb775f54d7ec60088c0bb107f9dbfc5f63b2a1580c94ab659830f9b7cbdef3716317fdfd31365f051935eb75f6df21133037c548138e87943dd9e4d60f2d13b237f54e13868ceab7401d576661b41ea2c749f9f969a3f7c1472a3318254752650ee1e2d54b2525f7e31e6e3d803d6ab0700037a3a22effab36131d420d64821052dec3460ee22af46041ffc0fe22cabcc54c55157b3090d16a4b949b29761d565d7774b85584d881425e026e1c8166ca6c914842745fb61ae454246adb1679162742fc207104b2203a44722f83d7fd0624e9ab68592c54fe1ab3e2550faba52c8d2676a4da0044bb8935cf66ecb5a7d67597e41f2a6a56f336a674813a3f10eb49f03a74ae35d24ffd2e927c150751f8b4b001ee514ab37a73d5c2d6121338cf4772aa3d8ea17798a68911dd5dbbb527f0927cee515c335f3a52ea166a344a582a25c29d6de08808043e48dc362ff952b3dbe0271943ad769fc771f290c5ca4d2352b770f62e8ddb33d368305b1d16633d0954ab26729839271fde816c70b00d8e89c4b213b403bfe4febb0bee3755bb600bafc96cb30be38cacd1cc1e21afb6385064787b34ecb8a65b5206c920b103a1b0ff8c9a129547f4ff42b5237141a7190816e3acb039d7f47848af536f81c6bf5dc2dffd986220563ea9138fecd89c31bb1073a4ef4d027e1336f28232dc882f17fa84bc7b60017f0456eaa07386c73dca970ce14547792405ce9987296024e74bbcd4b78052137518b5b66991bcbe942a176e035bc4f895eefbeb760e2489c4e5cd9df1a9470f4661865418480277e4d173bc81a9791c77973c880f2214e6f51e8d829f42a80cc78e07ce960d0ac107e39fc2947ec1e553c2be533939f845b59703e44dbb418664b84ed40a2878761ea0419694b0786c9b7bcae52136325fd50215c0f37c3bd457641176bc4e35898a745fbbcb8ac13a17a3246b69806cb5d8d16d59096f6bae9935679dfd99478a5a1fdb4e51d78d2757cab4c9ad339fe57d0010588940350d5c1ca8dcd25cf1683f2fa3c83c48cf1646784581455f1c2574fd1801d61a1f8cbbff4edd5aee8eb66cb7764c5bdc288873bb775f85e4430bae20948427c68e7007f05a6051f193f3b5e6b20ba707896129394cbb0680ec89f9a83530d088b667b48f4019495b3a1ed1d1e2e36afd2ca5bc566b82a7e870b15dd2ce3950cafe66979de9e350b3a2b3cb8cb5a592d09f8fbce70fc87ffcc4b98c8074f98a144446eb624ec08673d20e5aeae06561979fbb03e0fde258179550b2feca19121463368a189b26a0a8d4a90a3ac3369935f112b96034a2e1e348db99f715796a836cdc16ab15dcc61919ea3d8a9a565a7312785c0753b6f93eae7485d941b78d5d398465657f093b6312887751a95b05f0a5a3f1c4b36ac7e608a7ec7b2db00b5dfa074db3e65aebd4ec15c9b127aacd1d2c056a37a3a49a7d507261e1d4a2ff12bfc7dc780e0684f483bb816a437d1aa8f7c071f91d0843a9e22614066ad3a3be35b363ec017a48065349157ba89a0ca852b3a1be935df537a948867cf4ec139d328909769a42fd6b77f9293b597ac5eb25476404d66dde8d232325abe144514643a8533106f9156fcdf08859a36979da32a8c1001808f07407017875abff2f0280ac1288a98340ce584b844a323af3c835ecb91bcd17624e213e4d9ecc5d5cd4d8759e9be297702feea6fb7a70afdebe3e2483cbafa60bbd066fbe69059199ef0ac3b47573b4505d8ee83169060cfd431a7959380e228eab0a84aea3ba709e79f9f312711519874e5fbbe30da9ffb9db33994ad076ab37d4b6bac93c0e259a7f8f163fddcb219fd91079a08f31fdc2d83f704332358b8b84784ed604bb4fe5f0cfb582eec629ac316d6cc030c552d752f26792f6b79532a2261ac43f11596c17e9f8427122b406d7c0aee043c04e2361e434cb0ec75df23aa13b0a3398308f1458d06b585010b9b407e7cfec5616eb83226c815cc7e91b5f31dd09e4640bd715ad43010a744270987d42a710cf476d872a7b11095bb80605c1c100e6b9ea23c0052b8c0b746a914f8634f04e9c51932f078c2bc1b81c478698650472ecaf7165c172c8af5b22e8dc53a69969bf1e8c8e1ee804579a81963fdfb80ee0eae0842f9316853d5a0d312bc084240b4b6fe5381336dba0a0d7f5ac721a8e3edecc0af5f2b6567b553973186dd56db37ed93e2437958781640a87cbb9791da6a59efa6824b54821d88443bf4c634ada9a081e92c5a5cce0c8fd48f1b57dc64437b10651151393f6542e369aa21455c02aa406d133591cad37eb9f2c6f45478ac7b51e50d464881b630316de6554f68c2b7d85cdad1ba2bf2ce7469df4b93f678e9a79db6bb22a3755be4dc69d2be3f3dedf88ecf6a74ee14590f3dd09bbdc157be5423b2187457e43b74811eecc8ee8679110af3f9c5700b34fb30792a8198455a41bf8722e8bd1dcd22c1dbc8fc3a1aaed60f01b2bc1dd1b21ffa8f1ebceb22ebb09bd446bfc700f26629d1d75a8bc1ff5aca810e9b27447724390585380df8114a640f793c4a6cae760d669fe40ae6dacd440e30b6da39ba5cd7a3f8f2173eebb7652f3dcf635a944ac784d890d6c57bb384669b5e6b9ad8f85737b11693e3466407b4d74ad96d82bdc64f67d6a151225aa8b081b906391ee6484605fa0e22f0041b958f98ad3e2664b787424e1fbcedcda13c85b7176f3c35ff8ab70731fc563feb507e1e5c1e58c04a530d5b6ba105e93a3754e19dfcea3ff05b26f4e313f5cbf6b329f766e19da886c272fb10103b5141ae32064f294b43d2ef511ebf743f31fb72cb5f83899572da03a4213845ae1d698bb12993b13238e3e5ab6447e218e2b519fda439ed422d47a018d1e08600de708e8ca6ac025dece0efd00c1448829f430ecc1ae73cf618b71fd77af26032d2bd34559b766a8a75728a6fc9eff073dfefa312b2213465f5125a5c811d231a4050ec4b92a88a7d13aee1c55925543afb7013c87fe113f62df3dfd3ad55665cc7d7673e7942709b8886cce99511c4166c9c70f4ae115c5582d72036ba2f23cb5108989185dd4b1678ed6567e1f88aa675d81c8006409baeae83c74b78e5d979fdd94a1056962ef902a96ad01a2fee8bff536d00d7cfd0c2da43b80734e23da1b6de8a41b7ef1de41b1c83b6d9e4fd4bfefe417600618502cc08f5c7825cd7f3e643c912104c661ad4e324e8a830a21d2dacd8c1702f29bced42801b890646b9cf295748be06c237b217750c28d544b4028351f0e6799fe9d93d14e312c4eaacc20e3a9577e9601d8add855ad3aed89b689b6ee9c88fb13e1f71e8f462f319e69e8edb2304bbe7ef99fef4664324779fea3dff8ae800b1b76ed85a5d9a640ee9d0f5a60b4d630e1ea2ff85345f2783f429ca75a1397be895902d7474b28b8f8edd587fa63474041a9116b20e58110408c6a3c3c570efc7391d50d8bd667e723862722e30a2762c5dc195b2d7eaf3eb4fe25fe2908e691d6caa709da68de605256916a9ea564e756d9efbaf57ec5d93ca7eb15dd56909ec77bd4379fd520121bd67af33f60bc4dd6f2cb68bfe9a767a6658b0c687b2c3da424cf3426c8525c92832199cea25fe937a3f4b9470c7df40b6265f733ecaa1e23db0ca778e2f80ca76af2cc4a55f4ac232e2d00797111760455d066c283f60a5b3d1eb73e968b0c7f166bcd1c14dad2e5fff53e196ec4849650a62a6fe21db8f5b47d27c850c5df383fbb5f6b76fa56256e9fa1e5b5c0acc46c99109061f732254c666ed72a5b9332f271e0984dc4a4084145ef8f9ec2008865f214943aeafe356cd7fdfb65552ac85dc6781c2eb6c04edfc183a3956157710a5972d2a0e2a9335d6b5ef9a70717554549aaa08b19285784f31178b1e14ac2832005338fc2c36785c1545d5ec5d6b591b665589df800239f0febcca26b9aa8c860bf36257a2428fbe1fce376db1104d6d985adb1cc9172405cf79cb100de842206859a8abb01f3e104d969e6cc5922d309eac40f612e43dec7763c5ceef49c1d62b3f12ef228f1c0ce381a042f0f0a7e08197c8724eaf1e1dd3825e51941b17d8d07d74a6168679f47c26ef22e4c59219a777393887e459e177342d63004cd71f7167c652d110b485ea73e1d21708f97b3c88470e61096886e1f309da2cf661b631690c19f1a5f0012bab3a1db1dc9ee84500c9288f48bef51b0afa5182759369cd67fff3eea19637b3e52401a980b98241cfd8dd6a94e462069c75f2bceb51853fdb2cb2e2f19cb7144d357916da444a91604653608a0e2476dd0b44c18e5af602765b5f90e201431f709a395796c6464f1a53058146a830966320e7a40942fd34d12dc066f965830d10b8af62672695cdc6e05ed21d1bf70d515b24d16c36730d03ad095b20847092e646908c1969127d2b574a9f67cfd83af170e964eecbc7fd907c27cd87c1c933be80544f6edd3a64363abe0411dd1ab7028d5bd0bc5c5b7ff1eff2373e7237085c9e77c4472c2d9e5ba98032cf4dba063a20f6687d4d8da9036a0cc0690ee4feed3ca5fb33060a1b7026b7cc67ba55a2da776eaa1254b5206bd2f0def408f4437646a9cad2da6494c6b81755c19d7b2d1c27c151d9d0041d9c9e58474ec4555e99e3c5aa221f81db4cf8b1ca09cf963ef0958a119c232cbaee0dc0392c807051a40d96b6cc59333ade1baf6dd991aab3285e8a5620cd1049634f8968f471cea2a3e4105508d934b82002e01c3f1685122404d2bc6e5c5ea7bdf3a9fcdfe7ff32bb8de268e5ab33a696c6fcdba17d6f61ea61498d6be287fe10311a87f0f1ff6a19575c110827c4d8749015ef0d6023c08d741ce148f1f41678772a20b2fa378c1ef76ebbe620d819338d49f3720fa81eac90cae260a2ac259e30afb44ccb9f9f41b3332b2a76387a219b6bf74ab3f442159f06f773810eb4b4393b88203668fe868ea22df2612c0a0ee0a98204e02d084590bb933216817dda6a16c105fbd744308a5a34b0dc330b1729c60797c37d6f7608fae3663eec1678ffca433365728e161afb813b21f6de49edb17ec449b5c50b60e4c3fd344d5ef3f656b95438eaf6f771f202082381ada3eb3ca272aa78c967c5713498f85861756ba8763b259ca113558a5a084a277b824cb3e0c766e78dc49b7b0f3d625083277f560e5bd3cdb839acba6c917d749189071c798874f568a5b45158f5fa6546de1230fdad800b37d2f1e47f38dfec2e06bd2621d6db76af36f8d0af4a9ed1bab0b0271aae5aba12a869480edccbbe9d6c7178831db1e0f4bd6ce79a20599264dec297ceeaf6a74929ae7490f9c9262cc1fde481b8f40dd17428ca80679e7effa6a9fca904f490968ebf40ef25659c8b6d25610178e428326405b49fc4e59a9f26824c71031c9dd70538e5d32fe6495b61c923ed3ee48ffe907100741de9556edd94417f4ff02459fb5bb63c1bcf11b86617019e5d4a2f8992784d91874656de1fc463e0ed4377d39decd6ea3cb9012d6b8c53c328c0f3fc5b200f4fe2258136f64445c3c1037a4d5a46aa9aa208fd5c5aeb99f183379f1156c10a50510864a76113ebbebd74c14d55aabc53ff3f81f72b18bd02ddca2acaa4583460ff5253573466ec4e59f144a4f13a3def5831e8935ac4893f18a581b0dc3f3a17f427796021fee28cf972158ed8e039aa2f21b5ce7f91d681b5181fa431964b25b0d7fea64e8217d5db3ebfdc9beadb825e5cc73fed692f16a1c4be6eef598365552f44074b70e7d59fc3c697964f0c00549ded7a99417ddd03430b95f3f6af88e1c0cf1d501bb0eddd6f9016aec2c95da968dfb38838376f96c3cae8b0206707a70741bda6ecac4f4ce1ef8e90a6a85ea5885a3e5e78a287065cff6160e1853263ddf5f22bf905f3959391ef2ded811518346e38a74f2a54b96d398b00beb0bd0a71c795a8d1075383a29662c6f09e70cb4211a9c152e6b46adeee0e1b2fccafced37b93238eb09b7ae137b625f0a96e6bbe0933968282a3795418e44f8276918cd9f09b089187dcbc98cc14b63d097a813d87708f873b156fcbf25c1dc93f3d05022ddd2bd941979f365e9317636210e28be3e3bbf153c0a54722c5a4c613bd67212fe6ffef41621a2d8fc51c105a398c4e76deea0e08947b108a0f148bbc267815a596bcb402dccc00586a812115f4cc7e53d274274aeabdabc98c10549af03641febbc5e35ee7a10c8682aeeef3890ff9c85cc3230f35af005a6215b1a3b8542bee5169e07376f7aa7893766cd7b6bf0bf73cbbee7d12b3d1f2a3c3fd17f3611bf1ff45b3c3a44315a782f036ba7d17d02129f7291cb3d964e0706dcaf6c4836f311654bbf0fc15cc2a9ebc11e572623fd1a00e923c40000b4b0cb1b7f5d5114e0a0c43599efebbf807997b371b8ada562570a02fc228e978abc5423c427c8573d0de878f893790b2d575cb9a4913a09e575e0231e3507591f39140528ca7d0a161f74ab6193a6f54ea77a3135a63bdbecdb2bc470fdabd0fb5c3b4ba14d0601b4c83f8be2481f02935bbfba0671d30050b6fdddde111b1119f381e009cc18cb6415f3a335806d3003c078d29453b1cc277edf433b28d5baa0a9b11e2b82c27106d12b8d73e0899cea9e95520e0f3cf47912b904ab0263f128e22134ca6950c64eb576697f48a6929054b655db73ade2633f42724d8b82964441fb407a02c91533ea143e0b7e5b625d57719f7a05a63f9385b1cf0fb542bfd82768ec91bfa17d38365b759dab0417432d4d0d1463dd20dde87b9798550a45efab020bd8e024ea930bec54af917c2a58debb550bfbde25fe27ff50038085fbeb824fe2c3b98bb3f435b2620d7c8330d3f482f6bde797dabc00088f539db9ae4e1b71321558254396a01fa7ee4131746fd6d45fb18fe8eb5f25cb6290426e608565b4214c61bf6b386d77bbc814fa25c862deb05af83800c3934933015370b667c619d40679510bb39bbf08e9684d468eec8737e4b84b4a25b7270e5972a96f28a9f959a8504d96d7cdf6cc1c56b818228dff569dfe475e5cc51bd7a274fc98d89c8ff38b25bcf94696346d109d2fd85c1988afca18b78bbc4b654db04f85d8fc2b94f789612b5e63978e2b5097ec54cafe64c7457af4e1ea5003153cac7c73aa07a6a00b7736b3edc39047ef3ee035227ecfdf76de5c5005e91b5447f6fcbda61ed63ec0fff16388cc6d0e43aa207edf08b77efc77ae37364f5536c1b4a7410e605ba6e5c79877007bcbe1f2665d1e4493a89c6674c3dd4d26620cdf27cff00850513288cea85d2df64a130c881fca2c0732da7dfef0acf557bcb7275a880de24fd699a430f757b69228fb1f3575712fcdf1fd2e9abfc6ff78a56b116149a7447503f49967774004b20f0d1cb6132021e3ba57aa1c3ab4637ea920b95b348842e18087d20bed6d6839c2c7babbd746c123d61ca68eedbee9d04ed638e2e22f15ef93a0027168fbbeb1fd81867f59e6f017e78c91f81c2fbfa7d9be2c255c05c947c0672cdc1f51e8c1f00519d1dc3e1368ae5dd0048bb01cbcec8ee65ed06959fa65fafb53f00d8c60d593d4f9272164a9983bc6666b929ae27e7d8b92aa4aa47bdcdc726633a41e84c6bd89042db7f89337156586b0c2ff1a58ff73378a0ea8b6d1cb27022596bb7372080fb3b7f69cfe4f49534825ed6ad2b11bb5b5e1cbbc072450a8094d27581a52aa90eba59329a69d4efebacd26d6c32d7d5c241937b3192fe97205188e2a2cf1676edc4c5708d70058b356f696be5a75c9317240444667480caf581f9ea0b4a1e8c4d1357237c82a8c0355209ec6891979d5611d112042c01b5df984564b938937992e47d6cd9cad500b62b8d986d4b22614feb93635708513c2fcbbccc784c8558e3b1ed10c7370ea4edfb15b65fd171c2a6f44e6ae4b66d3a839fe70f60290568fc05704ca2fbd164967415b46342fed39814c3dbc862726ae6486e53c56324e91625143b5e8b4917dc1243bea9f6cbc55c4a5aeab5b4946e261905a20ea7012a966dbcc75fbf510fbb3f3d98d21a058b7429400ddf823324db2c9cc89ec9f33b3a0650e7b63c9583860e02adeb410001dbaf4f19f06113a145bb7070365abcb8a5f32be2775781adb00e6de5109c30140fea98fba4db3a598c5d30f7d468f37a3ff53c20244fad4b53c35862241e9cdf94e41f51f88040554e69a9921451a0518c4dde47389d568857da31d397b0cfaada243d426499d9e7865e4e6a584531b1a52c9ded76877491183aed3c18bc1624e3375725e9887f759f3c2e97ec2f66c9dc501579fd4c3bc5901f0ab413331d40bbe8bfe4f5c8a56186efc1f9b1d9026c9518d68e910d37a79c9c14651a72ea99b25aa760424a1c8ee6563c835e040c1ec4a212a0acee487e2957608908b50d3c68b05aff03ff9af80cc4609a8294dd753796e2b01f585afd4ee377f0579eead7d6fda9dc1b1236881160461e91b13157e337e6e38867ff269b4984696837dcff8ba2b5470939863763380df4374399f536b3c00abc4abcb7826ebe6280af46eb36854be82390abd82bb02a0846c52b5f8ef9a806775d9b08dd7b372e2d8b7181286f766a4846b5ec143e3feab20928e947bd542f32bdaaa1e92917aa5b15661b185efc80592b4ff0816e9c17d88db04b94be99ee3eec92c7299ae979485a3dccda4b26032abe06aff8c45d4595bcd9c2131c6356e96891dee38ad7e67c71f32e9b1cc93a195354a334245d5f1385bffc29a52598dcab17dafd28914a4b342985d4d9b1ccd0fbcbe23a502708ab19095af549d86eae13df2de0a7176ab8c39c319d52054f0e4bb58ab600598159ee25ab7075262ee755cf8946fa3a90f21ac6b5a0a9ed56213a34d4823f10dc5f16b6fce1dcbe136779ad55b28c6550f74b28e1f630218748a98072b80745ad0fe60afd28e275e27304fc8a3f0d2daa9dbe028744096847093f754b2221646ba6d6886080b64cf59afca172fb41a450395d25eefddc2fdce38188ae5a3969b5fbea39ffdd40328502b1ff83e1b9fb8f4fcbd3eab72fea5aaf9486e9f5889bbe16388ca3a8e274e5ceab096311d581e12b4e0bcdad581da26687a9207226350525552c58bba53c3c500caf32f46d609a08c2d73ef279aaa21c78d6549c1985a8a6179ea38c2836d842649df07ca19afd97dcacf201dbdbd068c40ed5fc83a228d8fc409291ab98e7e7b7ac6211baffe7e2124f05ad44dad7c34b72d175e3d4ddfe473d1b3c6eb45ead97835653a25901fda18fc11f964a6074da57a11389dc0572ad26241d797e8eb05728b1a9719c27aefccb23d04b62806227aa463b6969c9405d6d27c53de323fecbe4e317a60eed228b23df6ea024a70aeb69ea6299d2c7419ec370793a70ec82866303ed037a789124d41a5d9b007f0974dd0a201c26c773aba1a9c7620bdd97cd6b9253f62549281180c771343c6be84b61d9766a2a5cf948273793c92a66d4315699bcfec4cb1b2e8febb3eff7bb3d87bd900d905902276e07a8b6d2f263bbc73ad363cc26f02b5c123e89e36718fcb4f97c3e651044335ddcf930893e6a89d07e8bc6a3c5365eef94d7312f1903ca07ca25460db077eb1cdfa94e92101aa452c2fd91cbe00f7072211bf7f14d3d8c5bf158dc6359e2ed3ff754296df335ad437b77f69ee957e8388a9dfcaef6521819667a05cef193d722be7da3b097c039a25079417d48f46ef505080f92c0f949b30d556ea1b4e364e9a03040886f1cd3ac93083175c3b4f60c69ed1269199a2a38dad26b7cd1410cbd4987f1a5093a4d81adc28d7a0cdf34174a6eb008aee2fb49acdbdf41feb53143ed0fbda1d752e22f6012cb86f27afd5d856cf2324187093d0d7e22942ed5ff604c8c9a3aaae0b4ddaf9eed2605ec84b69cc09deed743a773067cad190f8ad374d177b03ce5dcf49a7f250e09967058c880bfbf87ac9f8be96e86b94c6d2caadcb00f163822bb4670e25151468579bf993b7ae809b7f25eb2f06a61bdc8bd500dd928ddd9ed61ff74541d69bf4087a6576363e350130802236fd69bc086cd074614dabfa50b1cd1b209be7344b1f7bde3049a6679f94b2fd20845ffd94be53a36b845cf27f94c42418423f51a71714425eb0e1a6fe17598e90c5f1573c0029c0980c87e16235e013b8e5c79b6975d889189a94b6c852cac62b3a4a3a5d382006accf95430bb9446b78ab00aa77cedf8bd6153afea39eed20144f8d29208b301c8333b168e2edd0f6f5bd970fc9a9607b838e105bb36213321bd14b27abd023eeb67f6d1d6cb1b6ee91d7ea001820bd1b1015ec643ae67d8b8abe338a78f684ce85b8970c18911455826f8dd037a47c0beec90e545c81a0cea9cc733473121f9100e02be782f820357df2896a44952e84aec41b619fef6db6062071576a1e03b326b4e7048552ec85bb04bd71c6945a2912c22d2c50937b47ba914effdc9c8ef9da6ec73d256aa418a1b086e25dbe3da54b5a1b87b446cb83c10cc33f62d3e235440941ae471964090744c6d41f63075a4832fae6f79807a05f8a418a7c34c668ed4cf2153d88d82408b23f9017b380adac112777a02ee9e3077501db5f711597ad0c2a74e56c4753ccfe0e6854fa3eb895ff404afbb500a6456177e57f9c128b00e94aed6892bfafbce99266fd00d5574ff318a58fce725d20e3611c55e55700560a2c0348e78bf8f4afdf2b2e641b6f021841e57a0cc2d8f4dc7e84e8f8f682cb974bb3531c89acc6dbafde2180bfd97cb9348d20f7f13122fac4878f1c63a412f9b85393ff22d02060e19e92c43ec0c709a874cc6c3edbb29a65f5555361a4e3091a55565ebda0df04530c761c3a07115e0a3bc393bfad08d1f65ee131d844f7c112def2725be109681cae451d1e1d6ca02d5430f4fd88f340443fd4102cc1eabc4083fa9eba2c58cbfa986b2a765019856e5af990370e0ce97a48d3970c8b604b54ef17f228ef536b5dd8f470b67f95f77796d332cf2f51f3a94648878d40e6ea43427b55099f20135d3dd307e7c5d150830919ede95a7dc8094cbe9061f6954bc402b7045d626c6e5408227167320204be74193237b7aeb58b4f87c70c56458c2517b0d26c03aa2979be309f4b570fd4213ca4519637abdf4889c33e88ce8f562e885e84b0553f571823404b061dd63d0cb57f27b08ef3ecfe1a3f5d3b7c26260c3ec0568ad06fd35178b03edc4e53e025486d59385025ac57b35a8bef1c56772df8f3e9f008ddd7170c00f5c8adbb79d72ad111462506844f3f752f8f09a6d30be19e880c1cef9ad9116ffbad58323379e848b8610b702a7522a2ec3deac8e4f90833c7337daa562d468894e59076d836c2ae6adb85d69112f206034c86afc7aa317a9747ea1ca45a55a4c701acde724bc2bb17f83a09daaac6c3a1ec2628b96d4484be71bb49e190035158b54f2455ace98cc0d7fe4d6c896a0a95eab2a31162ffc2899b22cef0917fa47ce1cdd42b818eaa3c07e460c2fd6adff034a30914ee5cf9057ffb19ddb4216aab4ceb351de719bc90a0727f7b147383f35d607a207edcabcb2a3759418139644024da7dc0ea5b7ccdcf1e8921241eef853057c4be619861f68709687c9d60c5b96c5e689a9866e66adb6144ccbd7e5193644f03a4ab2da3e011dc3ae0e838f61c340fa0598aa494389f50f7d6be50d998522e9620c35e9ff8986333276ae6c96f34da13b277cc36281d64f647957e66b2d47b35060510a7254460434a5170030fed9dd1e5d156301b88b2aec8616d9f5272503668413872b96c05699aecf7c10b3b1e1361383bf6526f19fb133ddf4269b2ffd267e56330649ffaeb02dbc613c2a927206aae65156ec8c63e38ae5afeac19cd4071b7187e79029a9041da4d033261aee310279f0789e9d1d3b853dc6c5f5d5f8220c05b3f1c69ff38c354cecd536e9bcfb42e32cbbd8dcf80aa7629528eb81eca61176e83b996e6a59d2955710bb4df930925a6b38aa5df31681aad7f28751b160b3736a5e2d5710348a71ee7f7c99cc954869ccc9e090199de40f33cf7ac5e0ad83edb3fff8028f32d92b95cfa5733d090047dc9c5639dc6641b22f7b2c1a2278abe784b9af828e1bdb8bfc6aebe1c8039563330dacca5fa2ceb68455adf8c3a283dfb39bb83c5382fbcd7e23ee1828a95b5d3c984673a5f31f221a14fd51e5282a05a3792580e2f38514d9c95a20258299523ab0e7500c918d22051b61c4d391b394380d77264ff68e23d39b03e225a3dc801e67c144ee842f4dadd92cc4f248de1bb7a9b8a6d7bd71c75f430cd76951f9af6d881e44570f01d0fed9fb5bb96f76fc1eb88f4d5fdcc326ab258e98e7b8cf50e2344f1ae180a0ea926d7ffa29029928e7309a54cc84aa26a89ad0719bd29f77a84228bacfd540dca83928a56c3cd900544b37044f302630077a5a7358e1a6ea6a79b6626b94ffd81c15849b2a18c281bc191f22a8cb04c04f285d29098c6a40d84ada527d6f984b198c5e5c1d9cc40d37bc080057676b784f4da9c8b0a45c9222e2d2c8836dfcd53cdd9582d1d499d35eb6eb289d3f12252953809a91cc273349411e51907405c88b8913d8e385078106b808a1280b868095a1cc5e07dff7c1c46871335aec1c1e9be562e4d959cc0687dd6232587c1698ff299f7be9410d8bf834ad8f99bea3d584e17cf6ef97bffd9ef21793595584698af533f6077a264be88195bd4a1e43a660013a763e6dcb95acd2db384413fdad93f8b47b6d03a3bed994f40df71416e4600c729eff4103d38b37247c141d0347472113189e6242c5cb4ec1d4a68da7c6abdbd17ae7dc4602f68d6868ce6758b90454218fc5e61646a3b2f7d257be009bbe3f18d361d2f2001b709111019f8a79f92bb2dcbe904ba4fe8abbb27f252d4b74fd9e79eb5dfadea924267537ae9b0f26b7832c3f6351a3924b31f8c79686da6d7de7b13c63ec4aac2d55141aef6eb5d66dfc58d81d55325be49d49247699267b87728780293ee2bc20c12d6a01c80d4eb6a3c0ede0ba771fec9a22cd60d73c26be1f3e7f61b4c61d7dcceb7fba2727acc726ad0840b3a1268068b3734bf7ae54db4b3e40c6000bab05a5ef002b1f1284c6350d6075d4f1e8e0b192507fef82e14e2ae250fdf8bd5b6421854d2cdb5cd145e487405d55e5e022e44fea9b8079c58d034d46200fc7a0e29d8678204b08ea016b6f28790bb247873017fe83c88debdca1727ecdf8cf804aca12fb9029df51a4100a64dfcf284978238c96c8439d4980a540503992481bbd0096a092cb648f9c6dc493ef0d381b96e6b80dba4c48ac21d80603fb912654576ecf405c5f12fbbd3c55e9a636b78e58552fb2ca83b9cdbed91882609b4b7f69f185f344de37f2ae614232afe848cb33976e66c9178a20088c54b3bec69840c711950ad2d2073313bcb7e72eeb567f9d1218cc6136f41ba15d91aedbc6a87e0bea6d05cb3f257f2f7c3798b02edbca79d5f5568521682b22c540b29cfd93d8cdc0ac5f8385125fc84972b1afaa7e60671680d54d4dd6bd312c4640c104b488137dbd5e50492961ee3653896c262fd99f94653aa97b050a07ea30a4cbc291983c4bc4974497a63cf7bb4c294812c69206dcbc7ff65c1bdf0a9508177c85f10aee3e5ffb95a7560d18a27ad9d9eebe1990452f2d1ca126a281e55db6d2349fd615f19ec1620d53cbf87c0af5f57729ee95a0923c6b109be9061be4d9bfee05175403028302f4649b6fcd8ac284e0e792bcaeeca7de41bab46f2367084d95007ac243ad25e1be4d5cad7f68ae20b354759f745f6da855060d00d26ccc9efd6d95498e59caacdc725cf533cfdb531f8f6b0a5c8e96a6e118c7995f43c4ea18d41fa7a298c8dd8a2ff01c0f31d2ef32bf3911c5c5522cb80fa2c266bebd2e22c580419228346e3e425f831c60ac9e8b8537f30fe2b5653e0309e9bcd8075c3ec12cb2829a7edfd2d6e3104563903ab60df05b1db8c037449d93c5fbf27d36c0c3d8c2b9510bf89df6680e332a23146431f42b01b1b039b9c0713c89980d28809dec40dec9ee39742aceec481fc5eb52798880bba6afd36eaafd24732afd1d8aafc324ccdf00aeed402044592156a9d712f03d4379e3a8b31a11a38f2647eb9bd16ae7f8d8592703ebcfe1f93142500fbcc85e6e2634e702fe5b6007e7ae554dd88f83af8fb6041ae8b20a681bc9f4a9db78f1ad04ccf60bdc27f83adeaa476cb90d41c842f114ab3708e94ed6450b593a7c0d817739ccdbb5d37282cbc4b3608b66fbb4c0d9e7b2e4106d729cefb4b64a89efba27bacda1df09aa6593ab7034ad06c1382a406ed802c2e021e180642a0719a26c609d9bb42d5998b8259a0511faa52fd37af9dcd93ae2ba2c22105bc5bf2ce2c2889b7d4f19a9e2bd6e8567564f4ba0cbd237665e8ba90606fc9786365918ff863d3962454c51afa9220874f9674c59877bed9b087469c0175dc249160730170db0e6a732762a547870bb4578617f1ef2db224e0ede99ea226c6a8036e8d66264143f35ebfa92a4bfd0af88b08d2f7638b0d5ca7174fa64b929999e93c34e4359b0319fc16414969256c1edb57010abc671e3f19a38e6b56aa0c7265a76022b8eb8ebeaec5f04b4b67aded448a0a69f80ce0db9cc59726983184f413bbb94ea9eeaea89c069281dbd874a83b2289430f7f79f582c0aa8636909d05f0d3e38cbe7bb791e99bf793e80d379229c838dda22cc6d4842adcf9dee7b0dd58f786dadc1338e3cd8da45ab5ad9f4af96c7746a5ee90f4319408a7be38325ba9693780dceb569a39c65d6b8c994b2d5f11a83550edcdc129cd9f75431802295a8da43b29067bd6474bb22d65fa65653802834024c362b3a4ca42516ecb149c08e2869bd75ad808f6b24ce2b6ee1da90dfcd2da22f7073844e8620e1f93fcf465a8b9dab1aaac568cdd41241a004253a2cef8fa69ff0f2d7cd0238e9dd1c99f8dd74c2b2fd578f722145bf1507f44bfca596c0620396f42ab80432b0d8de3835948a1588765c95a6c6f9cb908373e354ab3d4963ea36a82bf52220db4e9c50b0d1c345cd0ea067e89d739535b76ec9139d285f79fe6da1e804c889246e3d45859ff9ec33bff8834e7323390ecdee453178c11f42da916203af80a0ea956a232f017986ae36df462f74d13b278012bb70d4b9b46ee2e5b8608e5dd3fc49cab82cc89db1b1580d8bba3f6ecbf3fc1a1e2bd099c086f7351bdfb2a85560cd35c1153aba46ef27dd7e323c3209a85eed6f3e410d214193ff3e0a5f458992b01562a9cd236676868d62c9a1cae178d40f0493328a931dbacf46ad783986326eeb004add0595a827591cd969fa9247df0724e1ab1f6590d2c855177dc77a9165950ad21036a262e83608c6b13452ac19e965aacc2610bb1d90977d3f0701770044fe5833423d07ebe80f811e106c7eef284e2d336725fb566d241daebcaea2fc4cc5e56a96e9a29996d3d34f5a4071d1dac34d1ea712d07e91ba05f6fbeb3ae0e759bbe5e9847e40a7ef44011795efadda38c61f43f90e2b77f60308fa6cf89dc41808604d6fce7c81c3b3838ec1a2a202b156317c1529af15ca2f3031b03b5338298181346391ab941002e0c63488283ec323a778c1f0b97fdba022af40784e62949e66fa6eba1b0c0cd0d5ecdc7ac2bfa64bd60f5fc2e649e5e4410f910832654b1708dfa210018bb42d263bfa8cedab338a7e2d8b5ead0a2d4b1ee75632bef89bb5a4a64a307cbddcfff2b121256f9f9044e4b4e04c2bcf862f97a563d927f860dbd91accb40c6b8503fc21d5f1e806f7be2c8abf4b8bd5aff0dfcd2d59f995de78ffebddacfb0767b2b74a64e85af5c994ea1b8da6a5f3b25ecb02c9a8d02cb43b11e9f3edf3fe2d1f29e45a5e1db692adf02c4313099786647f86e663514ae2d7b8d564af1d6fcc4649ce0864a8d604f53ceae9fd097d404bd2cacb0db28df304dbaccae3259a0d8834db9f99e1e6103fa6a530aca3a29d334a57514072151d62af063873fa0a73c5177f73d4439c1c59181895f85d8da8a9885bfd0359a557b8bb8c121c98173a16b2eb0ab1c20fc33ac61c90e6a111295d913dd1a51045d8916bbc362dc4215802a3185607da0e6e91a6dcc0c13b71244b78cc426562ad845e76b4e8cca9f2d444193826ca2cab8dff70e85a059ba6e4dbdff2fddc30d4fee5a458c5c5f151e8389be8ecbeb8b2a5e25f46098989550bf0b1c8132592567366f27db34e6a11dce68fabb0324bce624e054dec0a144101c24f6b17d1a95d347fce8379fbc493e957c8443cd0e9b1cc8e28e44b1b2f3ae793837daee4064ff13b4a30299f5ae54d26e9e9385df93f3bafe548befb5457d129d4d1873f216656886b74c73cc52a76a4f238a83290f7c329578e80bbfb4d7f19135c1f97eda27b46fa1ca02340e0b3443f44c25a500e89ceb49cc0236576fb39f397223b9061f731d9d39b40e0b4e4e5123301439e589432c263c72163c841edaea4a1d74d74466949fa99764811448ebcd1f352836bc14e657480837f139234482d6c51abca9632365a532dcacb0b5749f7734944dc0c7a850caf3541744364e1ae2a810b092ef9fe87c1463dbcc331b6a4bc01233f5d90747d272e0fa3c16e92f466c3e73d78ecd344a979f131932eff363d1f741a17bdc9b98adbd14da94dd4e6f2a5782863da58d8833ee29ef3ef038899aec8b6a3f11e45363c5263888a465a145fd05881622586f40ee78b084808307c3218537f70b66a98b3f16875cb2262bbacf8e15359202fb49fd1f8a060fba0b608cbd7384a7a1f143d01542bee6955579f4c0d18e995b3f69b0d1240c6859d0e3d054e87623836d6d0f3997c4bb331267317832ad8479d8d1461c8f1bcaba5ae0f3d2950cbb706a70467ecb422099f33ab378f9c504b968f3fba52851cced9a865a7ce99a0c3e8d4198663162b165780a0107551cacfe000e03d427c6a73763f035f2b131cb49885f5638ad27940223bab57b2861755444356e77af13ab2b700394dea5c41406da03807006c641666413d84bc4246e4c350d15b367da40ab1e4f0d1285188cc826c47a68a179b6e1cfb388b3d85945291b6b829f4272b476dec4e8ca7957de74a10b9cbc9a0d8215ab10ede8931664f45a539967ce933f5022cbadbdaa1e320acadcb0109d34268bfca9c673acfad1c84bb36989be690f89b8066266a23930034e5e2d036861f3de28cf04c80a1b8e351e184026eea735961c946d3aed5ae82e73f0ba213ea162b88dd241b7c7497494b44646b2d90e5244e34d3960b7584238a56204c72bf2f299a928ad6752cf93c778b8d4a054611d2cbbb66569458ed8f6586b5e002f552299c86151ea6de8a06a1d4eec0086095b76216628e1fe409756ec7da143321cc093e531747f8488aee32903d919f303350aff931f9d293d0ef804db714404aa475d518e6a0f54240311730eef3cec07117827c81371f39f3a86f695ffb1735fb2838202f1060b5f3fa629a0cdb8b1f2ff2b16f21b6d0d947683d713b63a680536bab671a99375432422a19568caad2563fa7331ef226547e43834692c9a515d214a32c8e91b8c083c44ffab03ed03c5172badd8b641c68e2e62182adb705bf1b2125d0031906a0d2d0ecdb8481e4418671471f42c852d889f38b3d8c24ab006cec27ef9db052c1cd741331d186720e5f1ce14143a6d63563ebef5a87e8c6f21c23a11d1b4cdb7e7aaa8f41949ff04c256c59823606c9484bbf372f44309fb648ab5a502f3fd9b11ae9e991a0344ad4968dec3a0a393476d862f08fa045030b399688dd642cd277f70d122c52492be37f39fd6a085796f42292ac7c88688949d36b423f0c45dfb74f8a6dd606f6fb3a6dc3ebe75e6587cc0f36b8f3714cc4d14af1497f5fdd19a3067cfb2df50fd3b56dd10e87b507bf3024e41c3cd6743ee1b8cfa4c38ed11764898176e8db01dc9d452c4af034b9bd90858fa2872373692fb200a4425c57be39d9d44ba4930805bf19eb17ae453579436e47847a2c648c818cf13ad9771683430f09efc19c268a9928335c90800c343121f7a7964b06c9401d8f7fae8541356fdb77a4c866f8c341a521d9c3df4cc1d7ad7fd9243121e1935837f0c3d303d8f6f89b2021ea44c5343ec814725c0057d43f4ea061587d3d903f03cd564a1ec103c55dcab409771a58186fb0d4b75e8d2ddb662b856a391d86c54d57612336c5b81d613887272407b6cb8d613210dbb216b7934b70a6d1b7a28b519cf97492533e56986f4358a66447df57590b341e89ee10b83b0e233d99ffc3fcabd84a6aa44653714191c07edb9302d78377e4c622f8bf48be770130e6cbd04d2b25a6c409586d4009cabc11c24c20106e657a185a0a1bbc067d8751b599a8c8830db674a50df566cc014db224b21243a3627970406c2653b0c42920e9893d5a8af7d89258358395eb54e9cfc223b27ab6bfd460473fde39aaed4dd1055e550bde84019a10656a592ebc09dcc453f77ad9ec625543d126bf91190afd4ff21bb27b216ab5ae7d75ae4ef250ab262fb8ccc5ca579a03914530528c9a76fb66bc41e56c0b8d868f0b58571f532c2512efc0906d9491135b5bed1ef0f11579b1a3267157160b687b4533ad8ad5ee1ff70beb867b4f99310d7d60e75c6233312afc8ee6f9ad796cc9ab53a1d40e763316833e56adbc8892940ba37799e3690741791a1c85074885aeac96ef06b1e7f0542eaa85bcbac57e3a7c568cb4980d5bd2f15f2105823fe360e1d42e302918c483113741a9af27b8be5670fea1321d6d29001307b66429f56f81ff0ac03afe1860b4f1c395c16ce2a4eaced98a233d953a7d7d30ab3b3583022640eb2f9882064bd99a46daa060af209b06e38ef3632530d0eec4050487788206fa1ab51abc97c517706e70895dcb028aec413fee8b9298776c160d063a3ad64e64f15f836deccdc6818a69745e05c9063a0c568fdeec344036ee0cb41d215f7ef8c225094b5bfea26a554c3b307f883722058e74c26047ac313ab05a619f733c4ebde53618f7e97a333089a2cea541943a805b60562b4c1949197e92a22d8aa52f44488f8b02e10c37ebc2043835f46b5cb01db934ce7e7222d8af5c3d9f97063a47792c8f4760d6bb87ea6444db2c06a979176c805e2cf4eaed781b9cb91bc01f468aacf1ae35fc3720cdc35ddbe32fed36e974c7e2ffd350ac3b1b56d564c9151cc310f7fb84078e8ad627c452c5f237f213914accb7eac2e5f28616a0f77dcf524cfca415b30498e582bf76dd67b13e932b4084547c3969b3503f4ad85904cbf6ccef3b5ab30733c9daba1bf38d3b7a97a6990cd699e1147ac5b273c9a8cf2716232e480e2e6fafd0c80b61af16b492eab4f57c8fa2ba9ddf9b07d7eb9c9e087fdd3c30975d1072aaefd5eb69ae962d3e80eecae0dd2d7511380912f26ad28798eebd4c568c2e65f498ffc395768f842aa8ad0fced5670113e0cd76001316302527eb52a5c6d1d59691a998081f3308aea31ccb0f66a6f5343d869dad1163aa6cbd306a8f87e4e27a00786478f8878371e503ed79b14b0e992cd0484a923630a5e6736fe0061327b3fd98c11c8736142fd836c2026421229c6bb8d3b16b53b648c5efc9634bc72303bff2de9c17da25a9347d3e773a04e9f74781117d83692166473469fcfc02230843cd00512f6c0b3f941e6eeb6aa242fdd2422ebaf310bc12f663a5152bf66049de3391fb195555deae16b91e4e7dcd3a8a4ef23182c53c54462f2e2238f3190437859883410fde92a178c34941eb0bbe212b5311e32265ed8116150bde31f7ec9922e97e6bff31f7579a05c8dc7d8104a1959978481615b226a9e20db3c05dcae121adda89fbbaf380461f2d062c306495ed935d99dfa34ea3ee140d1cbd68d7a4137ea8feaf254cda99989e8ec9da24873fde4e8555b24d0d3a430b6f53bb30796f7bebaa76378832a205d359e3ecfb4ee4ea9812f0ac720b245623e804c36cdf4beace478751afefc6344a877a298c8ca0e80f5bc0626005215e3f3c18b9146b15527435a9f583f0dd3602ae5d02c93a74aac694ae354105153444d5d0127c0c0f90124d98de154e46d1406903507b775993fcb110254f9c4614563a18b951406fcf338e00689bbf1470bf847b14e9cba0a2b2ceda54223af9185c41de2cd88542dcbe2e5e31449a8260cfb0303834dc515b35045a653ec700c89cc7861ad0339912a7372ac9dadb3a42466e6f90b8af6acbab8a86f46417b6db454f255555220461611a412d3ffbb877d717edd73415a6c3f929f1656bb06bc034a48838389e15a8007f449e1c4d89843be0c92af2d2f80ec8d878578d78501002641a3a3a69e34916b62b58d44c059306a54079fac0f32563256e94ff1feed84e642cb1cc147c18dd29a2825c940f2abdc9674d968602caf62d808a7bd0f666160f3e0b7513d3cc16f668d0b17d1f619ec48bdcc73b7e3932b2072d50ccb305c5ee1f29009462f23560bea58433366d05111e6039880ef872af63d98ef88b4f568a8ffb25f2c0b0d0ab9618f926307a10d66cae0fc6779cd6d2cb8b81ab671b36f4a50609305330f209205bd25c7ca8f7d4abb6df51350e9b3094d0a4d7ef8d0ed5c39740b2023cc46a1bd21d23fd5b92b1d9f8bcec3522eb22ed41e5cf7eb7d13e1da424745369a576e8b7fe82863c96ada7421fcb59afaac1f845744e4e8bdf5bc12276ec76cf86159f081f6c9f2278b3efc3aa77ead96a3661a627cff12a6e3f264942907ef3f497d9b9b6fe85ee2790b898ac15f98b1661824862ee67cb928f98a936ba612c3c81e5f829ac10756abfac3ae7dba584a181adddc866d1b5346888201b820dafdd0af621f4a6ac8480d470681076bba50f1e327c8776432ca3e5d6c42179d27abd5073e6aa7e525a5e4492ff6ba709c5a5e76023e5f94762ae10bb2b8fce0f3a801ebab43dd8e122410c9562b838d788fffa0e77f9c83f0928132a503680148753f05f047baa3669dbd7d30c5c1e08b2b2d376ec7df7fbeb9da764736f511c100bb85e2234ec039aea81c3f7d0d3d94508cfbbd63547f21a407161b1459cdb0d42c3de212c886d3222148c709887f3e99dd9f7064e72ddf621bebfa9161064e90b9ebdec699b5684e45a641d08e453b9baa6d0a69b79c1668d30a70f2a4ab584bfe6109d290eaf5735dd1a8f265861954efad4e47eff783352a7711460683bcc8c8c7d8f9346884919824e4dc6b57d68c58d6e1ee182f1dd8626b4799817b6dd18425c72fa04c60e1a7730962e449de074e5e78888540293378187590aa77479b948667b2c68168b258096f947c0d0ee0278ca15afc1f2a059928a7ff34d171945864e7a6f5e7317e253be3c28ba7fde08e3981858060242082e1caf91dbfc7d022d5de39ffa7101424fc48f20d8e962c31623ec54ec54f02502f89ecc527fe6274832602b9b403ffe24b75999647564763c2a644859407ad0269a835b2814e804a8d76245259385e100afd8321e272bf134bfabb1da606df98e1c695f8f72ae521925c9a5fcaf4039c8b3f63dcb82ae3352aebf7ac52bbedcefe9b8c21be3a439a113110199989468b86d366f2f90434317a245f9b4615ca5878c73a8e190f7a56c6e7989a34c1c20ff4f8fbaa210878c446ce684a703ae926a03f39c0fd4712aa71aa2cb4414833460d9e40dc9f7725011e071d49c5c4dd5df81b0c81e84c27a6b05c4fc5488f60bd89e80d8e85c0c6042bc8e4e45aeb45093aacecb50ca2c406557ea0c6470c2948bd857cd29b1c0a97d6f7a631c9c331921383f461426fb48d101f10a78bed6ab88859f6007744d1c163d99306b06ba9a2434d461589671a9534d5715160c20857e235addbc113247324f314e74f6eb52954815f1356cbdb9426dcd66a3f04642c325110d814bd6302f462971d7c883b665fe01e99e24ae5cdf9e6fdf253652ecbbd19b2c26a4f8bb19c60c6b108ae663f89a1bbbef98f6504d47c1cf4554d543a813a1ecdb86ff686c2b61f08abca68eed858a913cfefa9835395a23d5da62a1679dfd1c198af4415aabed638f82c62bbb8a0bed579a34bfd9d7e320269bf4cced496baab420da2ac2312793126911dc196d0c99b700ee2acc6827a84d010ef8eb2656542727ffd4ceee548b71200520998cd436c3c5da8bac3cb5168750982930198ad7ccf71737ac1735e3b8e81f44985deccaade5d7f09acab927abf06e132731cac1db18364a5a2b687bbaac518824de431e61f26c56056631b8521144fc9d96a3e70f9433549a0c1f1224292456c0ca29e4032f738876558302d42bde9c4c3b9fd296be36e943989404d80414068402dfc24161d12d8a0d567b5ff4d1dafe1265d7afbf6d439bbdf9ad458350febf08a5715bab33895cd12de4311a044f5e89682d052b250354c1e286f14479cd36857a5613a193e67006eb2a3e42a6c2855d11c84bf8c3a7637655440d7a20852570800dea26e66e8ca4f684089e3ae029f195b06a2afbdc46599288929239dfb92deeb5b673d63869f77c8ba9e4a9341999c868cc6a2a7b12768bc7fc48605e54e5d98ddbeac70bdb225d1d513268f39f06103b3ca2f6443b2c25a75c2b628761ae3a0aa03dbe241b45c3d519888c14b4b52ae9fad0021cb2e314f7c4ee38a50fc12dade3781ec900128325daf51396e3941de422dc2d1e5134865d4d11f3ffeb3b525453c083207d178e437fc2800b0c24b1cc7497765acae82509f4538842ec56390c07a454715a1f1c5068b2b660926aaf94830bd3dc6a67cdedd61ae8db10013e518fdb99fd1a25ba230b05ff2815728558deeb726d9fce9916066e690bfe48eb75aeb1b635037324924b27bd2a0803f5164f707bf631a5b0025b4935e0b981b6d7c48137687a490b5528e97d0af8952abdec34bada76649eca887fd4e0a4b593b881901d4c8fddcf51338738b91db0c219c643f21de0924a30e2cb18ed67483e42bb41c731728312c589415e6b1274a0c06eaaf18d8ae01235a02782e019bd17c9989e24196fe3bf5a9310f204d0dcd5fa930d44fb45a2b0ccee4450d536b144ac4796ff16aaeb2a247db6fea3e6abad441b363cf4521ed852368d4fa1a2c638d81441211251c7fd15100f67759edffba7ef115d535839eb5a355956d159ce258a3616c2da8ba42ec0fabb4ee408cad172a2190ca54402a0f740c47e8a7e4172f1446012bdfdd9c3f16188673a48f2a09e42c98967c26ff2f0db44a8cd5240c14809dd0eb6c42a4aae6310e1dc596bae6cdfaa16718a3b8ac5e7a19da13cda9eee6d480a356da60902dcfb744aca3dd49ba8805122ddd154af22e3829fc4ec934aeeb5c2e63c5b35c6be9bca01bd1c19fff51d2e575353af5fa5f7ec6fcaf11db9db2aca89b4d717bd8291a86400fe4deeb05ca754fb8cddd815413f1f0bebe2097aac69bd7cae30aa9242953594d789722d5e558585b6c930388446cbb89b711ebf879155a8b16c59a3c3c1c6d3e810097cc83dafbaff490839f21b7e782d7991c9e5f1eb03a4d881c65ea60137bf29cb11f4e050a6b1d0089b247cac05b173b1908b290076c10856db99c043178480ac4c32617124166bc03a1b73f46277c31bf1cea0a36734295e5fd43137a165812eb29925c945b26e931685b8f79b92c23a47356ea607ff7edda0b82d969183601787934ac2c1f4a13076e99bf6326976be84798ea3ab88e3060f99e38b7617a185e2b44d2a0499590a816eaafb34b511e354b668abe3c4d216df8997d406cdf81a2c2962a19de1b7bfb0ff0c6dc44f517856d6bc76631e79618ebc4d447b065d40d6391d5f04eeab18d3b4bbda227731ce71eadf1615c98eb610ad96113cadd0cad085ab33b89f27a52bbde9f76b02a53b5df55fdd92adbcd7e11adfaff0c56bc5c7aa0fb55034713f1f0a79791010f61b5a887cb37483bb4b14accffe08136f90f7647fd709a7c3a4acc75183438e1a99401907cb9a561ddc8d8e6c29cc22a64ad8ddac801926cc661605b61b1310fdf1c76f0dc05a90a016dd7ea42d16c043fb81d9f596349c788e5a637212e45c916020587b927cb364cceba73c652f0284527b0ba8658e030dec41d0adae82b11c75514c81cf2258d7d336deda7d73c21d65abad1874a9fb4226251977de53296f660dab44aa3a33b1fd5664bee34c78a5858711e921d5c7e685b15b1489801245a16d4d8629909931124b84b83e199f69a22d02d6d58d1f17d8df417b5d8248c21010b837b4fc7318bcfe9ba390eb4237491a010d6fcefbbb9b627fc5231039d0904fe8463ee735a06d4d9eb26ba13a6efd513c45e37fb57bc9da4d29253279467e6c67135b035f64572605d0eda9d08b35ba923efce7d3beba08f5495ba664c380ae55c784e982a6f47c5a913e8c30c8abb9c2f89532f7fa525fa0905ee375ebcfc588afc5fbe3c237fa9d64bbc35e76cb7f5bb68681d171206818374974f453ecf0d5f994986a29b72cb7a53e68b7eb5a63e0d001684a0b126ffaca13e3b80e63fb4a40f221e646b84059bca4d6bed116f65884a3cc3158ba2f3122c4dd82a4e8e4c9aa45a3753fea01e0e54f8cb93cd04ba78f6457b817bba6b8342c6bfde24f3859e22bbf0492145e2bf094551fe590a03acf36942ff4f425554749ab802ec96a7a7394aec2c15917abee56196c1a6edacc58252a8826901a0ceef8d72b13de6664a1c48d9cc701030d731da131d88f8aa5853ce9f063370f837313f8d84a16b25ff04b965d621bb41abec4e87f74ec8e27677acb1ae9f4778f1b66a532545c1a99cf3ef9a690b58a2f6289f528f34b821a0e565a5a7c1752d2c0173b612bb54bbab05ba733b4f886fdcc7881562a847f09a27357a4c09da3000d162a48f4af15b2b323b545aed5df16cc0cfbd5f69b5e01c8d2506479771dcca203e7702ae6c2dd9d307621438266da5fc3a2c10f535171d528eae93ba42a114247ccc59ad173cd12fef14bbf6deb237c07bde39eb45bed54c44b36c3c66c8857c212088d5d0384e6c18fb86e716c264a8bdfea541ddb04039a24098eb469c738b48cccb723059bb29e873c9730585fdd3df68be3c14dfd9f5db18c52001787ac9742149d31985f435ea558507e4e931d4712f5b46a0ac78fdc93767b996cd4996bb4690af21873eac4284b4fbb463273cf942fe23d15599bf289a044adc35929419208af8637e3af752e1c9b3d1a5bfb948df2bf6b992ade8e932a8cb38913825d549d749fbe5a28b49e4eeed27517868150d153da59f6cdf34288c843749fd64bb8c9c9b61b0c03a1fb0e60f3f44c553f876111c03058adb974c617d8034d506103dd50f644f72f2805aeef0dc6f68af61fa892ee85828bb52c9b37bcbbaa6a457435429148ca40cf4e428f985486e1642efe8d68c210ce20e786ffad0518724d978b00999adfc162beb5bd060c622d9e6fdfb0218aa24b309f20f9739d1dc54fc3bb5e55bf3216f567ca5133422d81c4e967af6bd670a4feba5e8a538c2911654cf49426d0b07a92ebf13c0b0a76978b717cde0d13a75fdabf80f5f5abb61682d83260e24ea4eb63647136c484af383bf0d9adb67501f580aeee1bbd4b8f761f4f9c7e33b7f7bba22a683746e8960db1dd8df2380590d840728b1c58920556112fbe52141d72de69e49418dbe7be3f341cc962448eededff2a29c1f6f5ef690fd97ea94ae6c063fec4f8dc027506cc26df9da4af3c9b65721d85f8784057e76564bd2acbff03fd0b11c9504a71047041e6592cdc0038565d210c701770c900a9ffeccabd51d59c2db9581c75825342f5e9ac8a41e5d5dcfe9e0eaf02e2b427a95050b2ec7be4c16b9f14b6a22abfd377de2f7698bc3bec523c5c1e10427ca1f0914863be76cf932ecb665666e1a5df8846c84682d8a61aca942e1cafeda7ea330e162e8869a64569b6f4f1c0ad6893629810917385122673b3d22fa188fab59dd9622b489ed7ca7dd89b09132f4f03955ee9a1547ecdfa76b46fc05888f43bd5ca05226033355cb361b8ce936e37e4ac660770eddfe47795cd6ca771f96d9694e928a8e9563b3b1a32b080322095ae3fe9bc59b4b48ba5f0bba23aa52fa20a2e901cadf961eab2b5566b181558fce9415682396d4f4817413584763cbfa453621d2e43d4facad254416a2ed05862ee665a9184cc9a622cd37a18fc56bf6367e4db55f91bb65ce3b232946125996392e266ce8cd05036482b7ae73f35eef2abd7bc7c200b0f3633934908e4c311a898c24c9b6f0050816cbc6d3236e3e0ec5a25247c9e52766c7af7a39d170ad03e40752e534cfb3e2834b36a5e44b10f3d2889fdf5e52d22341a8161fb4bb2cca9dbce0e3a0025836042396e500aaf37c286710b4ca800447438d68b4061dc4484777a86b0af317318af4b53c563fa51ccc2e96a5202cbe875b50346c971220b297cc3fe30223226c05d1d2e008bc543452734feb5dc6d90416374bc5a8118c40f5a4b85948625b3713f5cc40d331d261e6a80f1b13ca2a8c626cf4ad76267c38872f16da5d45bda3ec20e1cb50fb462da0df0278004820880deb5224e8c5229785be4b5c37c4d9da9edbcbb1bcc7fbf483a6da76b6c58c21f3956cf1af677eca86d6b4a652035286000fc1f986acdc0ea61ac29737e5c03a455a98b8a6c0e81ee094986e5b9bb5228ee700148c8e985951b11b67edd9ee2ddeb93a968b398973a802f34db461ff91ae5e270fa9b1a95c3af30af79d21fbccf72263efa9f66a4f1c8736de8dfba69e1986b64097bfb3da141d91f6bc123c0d8b6ac0e4745bcc5e4ff2c9f3199ce02a537ef01b63cbc8ec150f5734f9a6cfeca13769fb66702bdf06d73838060bd905b2dd3a3e567187412555818dd79902901d08559b4220cd5b552c6690376d85862b8421a9f5a93d61300d49de10f06e5aedfceec5aaf34a6053b2964c0a0e0139b9cd488a1f73b7ffc7b0405510f8de06926afe2e734368f536256502c9b07b3232c0b3f23ad4427936202730709bce6a186512ab39d9473ca17d52011f3829390296e18e95505f968730c7cbb7df05fe9e937d6f247f45b8a3df253d88a9c6e5d1a09ae8ba1674b79b291075ac509c03452010f941fb266f7e62fd527c79c9ecfdc661da1c4473e058a4be2a904c244507c670748bc8a4b64234193b86e54815d9bdb1c7591c298fa10a875dedfb1e026c1295831878773a2e8b894640aa36117e6bed1727aef225f469160a5880425716189480c72c2a95d6623a81268337716b4010ced4af5ede11e48a31d8968f14505561097d0bb11bda2065fb90aa8cf36c6e024ac46410b3fcd54937d4741ce878a337257e7ceeb3567cf11f8cd082256361532f6696cd7081be18d6844c78dd0bf9899c740afec3209dc09ec9e4f0fa9b0e0d46735254a5a2092aa2b1df65b31e2c9040b0645f8a0beb93c0462659f409f1b3106c80bc8e84179467ef838c7562081e2c9a5a887ee755c13fe2a4e748ee02f3dbc7f2c97125722eb4d1912e3994930a0bfaad985d03a329812e97fb5a9594c71a1b451f61207cacdc78537ef75a8e956ceb45d60de2d98edfa314b7485a3950c92a998b43e7b521f7af4c67c8150f4c4c88074456deee0d55ee9fe3d7aff1b4280f2ac344583d15cb29f17dfb39c08986c22f289835e2d397cd1b0ea4c74d543e391045c56beb9489cefb1a0659433e8d6272f11a5a62debba883ed91285ac45f1893fd9d776d7b8fdc6832766d5f9161e264b4f3294eaee74d3adb22a84342d0feb6cd799acff0f024e20fc151b602ca4f7f61c7457ca002513ffe696d711d8f29d6f9f5b0fd357ecaf2ee9dc4f7d139acc2e9d50c611b292361a3a59f560319adc3880f149bc0bb978675a378c2eba4ddd9b8da6b06ccd36bdaa15a9df6912fa02eb5e26ab097183ef5832b5c4881d614f7a565cb21ef904d7782ae2ce514d7ecf3d941fc8cbc2c32ad073e0bf5e8d3f6890b68dd3fa574862ff28ba859819517b76c775540027ac151ab7e06572c05e4a252562c3956a121d8ff9ec927786144e3ff89e17f36c13e529dec6a8caaa327eb1ad8f5f85d362185e35088964924641e9f7215d5fc1e48205656cc5004a96e460a0c249c671a885ffd403a5bde07de0f3a7bf33827848a6c4041d82d908f31f0e5138b8a43044469b40d8fa7a934229791795c2bd6d6c554ba1abe516dbeced67f8c36af6f28dcaf0fb721d1722e2ca545df672211922fdd59484bf1a32f5a5892b1fb4a1a04c920aa585d169e8fe172557cf30e085c33bf1e7cd79a88b1b4805ac5f092c66fada64c7c6d295f6ac12c8e23a49144dca5d11b0bcc10e11d4ef900a64ffe03c4118e1ebe73ac958618bb09dde13e8403388428613cbd0044b6cbd843a68277ed3f660f36d27bdda2e200fa55c4edc742325d7f1a58605e8fffa6021a8d008ea6752ab1e48ce6290a6e411b46e61daa32370841818308ca3e2bd6db030b0baa361134f633011fa5cc38070aa9d3447612cb6c2e29d9990aad2954a06961206deb7b5820eccb49ab810dee5f199243b8603bf878729f2de6e9e368d867e981649d692906e7a63ce03df67d5b93cdffaf75bd14e55674dc187b608d85a8dde6b237dbac5b564aef5713771acaa68ebbf5f1940fede5089e52d26bf0582358a675803601001f0a743f6ca6e908329dcc75ec000306d662db931cd948b031edd54db90117282f325a5434e0456a65b0b1fe01dace1009ab7421d4eea611a66b179fa61e5f2d3b66933a0f410aeb65fa3251b7f259e1e8603d36b6262a0aa92305e3d050d6e6393acdaf78a04d20c60fa13153501a7e139748074df20c944351e4612dae00c88b06051b9242a2edf6c9b377379c0a4f02d728222ea4b041587a97297aa26d845ca2679ea0c8e806d2033810047605829f50118a29fcf4816e46c7f53018c4f044dd5542d8a214a7a1971e05fab5bcd481e0b749d07d0cae60be4d22b3e4d315a6d33aec5859996fb4a014b1756e7e605925f24b602fc8718c9bf2fe22a9157da4476e388d9870c81ce843099bb9d4ba2357e1ebc00246a017f7f7e3141ef24e77b57db417ed2812d5ad0c81a7366c7cd5304f86978d3c79276442b492b740e3d7a5eed55a9a7028e5f8c801a6c36af4ee843dcf9956e54fe11baf1d1548b06d18edc22fabe762a329cc9e51faabf760f5585aa7115fd6d55a4263ad9458fba484232b4d9f0a513d222209021e30e73b38876814e88c03897c2b638e7927ac70b0077b29179483b95b8d463943dfad06d5ce899c704fb7cab61985aa2a2906cbfd0232372325195daf8c657c49f33493be2a4eed12cd916291f0ff2c4c47faae91b9d3edbde5357d5070f485268187a2618498b23a6c5f23214bca84db1d9f610427820b8810c9ab4004519be77d42e8c771aa51026b75e01c9f1aaa723c198f1f023088ac23f64506ce56dd51a6400c955ab475ab17c0d7eaba4aec082ce07d0c7aab6796e0dd892438520abfec56c0b97d0f3cf583c1398dd1af2b26b087fd94a9a9ffd31c0562aeacdc88f77a5a244b9a18a9b0097d10756c4935ea17ec2c6f5d4bd0fe96d84332bde6291a36db012483dde603ebedc47bbe6c0a226d4e3da35dd2484415e4f4da6d7ebbe05203ce36c8898d799fd7ae290f0db36d41490998ca6d77a675a7d93d22fb583dc6d3cd3123efda5b2b40975bad38f054337c71f73a2840a20ea5676ae5124e473843a0437d465e8f7f1a53d4549be80ea424bb782f7aaad98260a4c0a0a27f88b48a58abbc2e44dd9e8e08f716195fa6e1c12e4fda69595fa269657bb04903a2bf57d50ac5b56f6623d90cc8aacf3fd47e89415e025970dfb80fd9403693875fff212ac54b0ac4fe431474baae8e99f6a58eb8900dd3cc1e7a68149204e1d03fb8651c540c72c64f6f02de328692ddc6a2279b0b58519a7eebb7d0506d5d519f02d276a806f5c92b5949da37bec068a2d449b88b78c6e8454052543540afaf51f90eda25e5ba175a7b68de58b5fe1e2feafd67131a725ecce3114364d7e2185e85b73be09cfd7731e3f1f1747837f77dc7f32e871ab84bba7eb4caffbb5cbb1c9ffef9e3986f5d61f09a7d1329c31181e5c743500216b787c1bbaf2ee5cd090b1646ff5be6bc458d0e3ba671df6fe3ec168795e27b5c8c9624b907269184b6a7e19510f2eab7cbe8e872ca44e864b4e679c43784557c802bfe765af7379c55f38c2c0f1b2479ebf48464a1e8d1d983a9950a3acdbe837315a6099c3ab02afccccd3c70dc2ce07909acc6a3dfa6cbcece590237d87013d442b1e46797c41a24f2639ca3f72c19e6a4c6069e7644b5bf2128f6520a87e76d2a950cac1022f24ab1f9f7d1fb29ae7027281ffa42cfdb20c90e2f5e0bc37cf0b7dbfc5677f90b66ce31cb8fc6aed47b2fd9a2f30498b4ea71a055dd3c85dd33f8ac87a590492221852e737f71ab74f089fae190c41bc71133af805dab41925048f96f6d9bcf6616396a44e3de23508c9661916748de6dce7ba3d06a04319d4291691d7295508ec0a0b9a7c623f62652f0d323ea19285a6a397094b6c7248598565149eb8e4d997d2caeaac41de1e0aee209c2d1be644f648023770b80a04e572d2780f18a306e9567b70cd2337484502ebdcd7c08a3a4004b48870a675990a64822163b153e85647befe790c504e9895d1f3538db5abb147b7f85ac496c02d2c82180389946c1504a523fac20a9fee60ec9f5afc0de5480103c37e5be51bdb2dac8fdc9938e29f01d5225431f6f8dd69638279f7ea4d931f503483aac138ac289451c325ee20bef22bb0eceff05e3b4d1afcb7d0806c0cc3709e60700d29df49ce4b2d32f7568158a5a5b60b00b3767005230a16c0ea78d64c3da0923476b18ca99718486595291480e5259977b2ab63fd5a093339a1c5f410305fad4b3db5cfa14637de7545009df16ef416af4c301b3f6e04b732094933ddeb2576d8a094d94a44cc836085277d3ae203ae3cc096f3d94f173900a3f0638a820961de896727664c294256f3ec3d94a0bd08ce93d8dfc4c09442c8cab7d92948a80848f14f869afa23511da74a7d3a32c4a206eec0710e0a5ba5a66be2f76ca25bdfcdb881d9cb999695e1e8a2789c561e1fced26434d826388863c5993aea32972e87e134bf074e2cbc09a47196e223cefcae702d7cc7c03ed7c08649cdb5bec7d3df86ef4556a26b3323740ce64b0ba5a2c407ebc73b21116e8073a8674d8a323baba9d9ec621e0c25a53510a6264cd38e002efcd66b20f5596ce069208835757dc73c37e82b584e290e60fbfdb3867f9e3931cb0a2a09c91ce4db50e2f62989e3cb20ada0c16dbd1075501d3e9ab67989019052fb2ee34f95f6710259d05d16ab4e2ef34fb665b57ea202c8347250bc2d161fdb923f2d616334ceacbd573218e1d50fd2339c25d231813e9f126ec4f67140c1d67f072bae8ef227a74e40e8e044ada345521e89ae50ef52905f8d5d8ffa7ce46d77581df1b2b669adcbac9d905350cefe5c9bca004db794c956d391903209b2e7e07d1cb5c0b628e2087f1df77498c269bcd5a0974b8065a15738de848f7a79023395302a57842eb978cdb0d82bcd6430e3fea8aa7d216376ef4ccade37ccee147fe794fee98a25f85020e837968d9277f4a4cae001db8c09399ccc27b06deebf9f16377e899dc4b33e2b1f9dbf8189c2191986e4c0d2068ea68b3305b8add208e0eafb9d29dffda26e358e310e1140ee3b9c62d12def6cb89c0a2a3d32cc799cbc1257c61aa1196c7c03c999f3e26ebe61b209a08198800db913ef9e2bc0f8005240bb53fed73d46ff8a5e67a6c3d28fe22b6de72c22b59cb73b75f3836ebf7e2618cea63128b375e2cc0b724fc1d4af9246e95a7f4ccf4da25bbc80518191fb5ca6be699de2b2617ca77da9d8e273f2b701f1c2311d73a23073f0d93c2afd5cf5e9c840fe7d9049d63a5ac45f943b72b90ac954ab3372cf6f39217f143e2088cf09d5d83124b435bb48d8cfb620f38587fd11882086f295fe72013c221a51213d5cb8dae70cf9fc5376aaac8d476d78f82a5d909c7d111c53df8ea9c1011d0ab577467accba834ba04d79b47f4ec5c195841e7146150b9a3098c0b7b4a516adbfc50e7b042dcf93134060bf8d98a1dd246201173bbc800c3be0478750b2dd842d3d8ff4b3ca1d652aa451b2dcc30686d1605bb3cc77bd1c06f21697bcb03f8665af04ad84597078ed72c42a726120b09cbfa64affc052479d13d245a6795b1418d8a0ed52556b01f17caeedd2e2d9b7be0281544b9ecee4aa2305ca1075aa8eb1bb2ba6e87b5045ce8590a1ac4009df43186f0ac443f6ac6bedea09c18c1f63e2da8aea4a014eeb3b3fd6f548a4d8c64f9153efaea7229574a2615ae34ea0d79841e2fd9f07414c625ecb1ddcd42d4158112c6865dc6fd2b807272d87fa560ef54fadd34942475c6d010fb2f5f0607517241c03e692454a5176651a0c952c089b6d6f2621abed764c02231dbe6165e0c055c39167c5505f874a723d53f2c945ec06a898fa04167ff3c6eec9236405d4184b4bda012a753fcdb188b746775c86f39735342f03123b3b4ac31a9e18fb181df2083e0e73df1bf213f0682e9e28627a20497f4cd148d5aace3f82ecbf3f305d079ef0cb88f15e89533d7508e0b9e6413a907525dbec29bbea36a20f639344337c116bcfa3d42b0796b840714a5856b822a74f06c9c3fed39500c8082ff0039177bb4d4e7d8a75960da5210d82fb33e9539cd09c495569d5bd8b507430e2f6e074649a2620f0e010c7329f7a66605f20139eef0150caece07db1ae3ff20bfbb964ab4d42bea2ce0de404e0d78997b3dd5239f18119402f8df7fc8991bed64cab1328eea0e375aeb9831419c28bc835a7ea64727a58168889664b78c99cf267ed3487a6921a481ff4dc3f07ef5b0ab8c1d8febbadbbe5908e56e84af31b3ccb3271d13de6c7f050774d1a0385efa4dc4966cf63e79049dcbb7ad589f0d4b64b370509e836bcb3ae4c585ac8f61478ea97806c5193de6f4040ba085824f0ba2dc7d2f207712ad1861a32305ed1fca221dcccc2cd974dfba8d38dc0c29353ae1b5342bc4b42dda0c04d1c180fb3dfe5728dad470ad1f902195a953393e85655b6442d111fd361a6dc07db353613c2ec84a684ec840a9b7ce9fbe6c4c58551a5bd5c334f67b23e300fa578e5b9d9223b64396a04808be47fc15190b508ac8b54eccacb256ea3e492b6348c830956d23a5ee0554144927ba74f6f22f11986e61a103a829da4e7c4519d14dea09d7ca4c643158234db618cb10c5dec49b20bb535440ce51a118127165242d6172f32895e71ffa009092b98691a172b1349e8fae31151c59d9b97842bbb73428db189ec61d96de1f1bf200f9c5a02f24e03c088965fe46ce3637d15ef4d4edea56c1ddf35014bcafd6f5639051670960da04834c85771b21fd0bec7569bbb98be165fa7c48141b284f1ebef4561aa1efd46ae1ce95b9a8cd2dba912e8ba4c9077867ad916aa03dd23426226d4de72418eb7d2e6c61942c76e4fd45252fe43c869584f598419975cec81d6a1d3a1586474cf17ff5afda6324e59612ec4891162daa9f8062280d99bf688b2fe0062c0c83ffefc7041ebda35a37d072c04dda9e0829347fc6c37d9a7a79b55d4321a426fa29669dd923d20727350b065621313545b81b895b0c33c79668cc8d77ec00e2ae48f85bbdffef5927b33c6f15c0bb8d8f835810d156cd8c3a81537e0a8a8046e3ad56e681b80d20bbc6129647072518713dc2ebfba61ed9ad88075b374b088a09296b0357735761b9b77a25b706335dafd6e9f418afad82010c47d266358436ed7a50bf5c135e4bbc77249136be35b66899e7796c84394a14c29e6a3a4e31db922d8ad68589a931893123f3dd02d85a1b1eb5967384913d17736b5938c9844295d30e7d126a45daf7fe40e93f686267f7d123863eb31349ea524af20cf814dfa2ccd46da459ea4db0ec8a4cd7d187988f276d486848ae9016cdf419e989500092de9b78bd1cfcce0c4ee61c72fd3f8085c55836716bd8aa286fff1eac1ed519cbec9cae375f78e57bf6fe5e2c9e157598bdcd0ac0c5864cf6a36706032e3d02953665afd56d3ad55121963deb0e401830d5892bfc0419c545d982928043987764aa73feed73ab22060401b2bcbb4bd4bcdd41462efd48f389c43659cf0ecff1635fa164c073db57431293f8d790361118d524540a2b5f56e09c28fb12ff8532a2a56e4f5a4f4cfa677cd880b372abcb5b110efd0464a1ca3ae153731f2613cd80c0875a6245b61f35c77588d71e0d924bd961027e87582040249a00cf3482040262899bedc7e672bfa293676f64f5ff43e62877f646717733b8dd223d532910d5cd84ec1a338e6f1e64195dc83edb5bfea213f4bba0e6905de7bbffc743d654df1c9f306415dc4eb97782a64e49067e1ad22165cac46daf14aff3a4a01612f527030b8c06b0f74e203e12bfc6f73f53e8ec5f6d53b0fb8806c1d70e1506e7949c0dd60a188e1ee2b681f4a536b108485bd5c39b27ef9d6ea0f4426ee63c38a489c5adbec274878e55e33489108e31dedde1ad90a4134b77734f363b42746b8be05202416f17387335fd5c25c4f60a72c229c1d4d6fe9ffac33504d49c302369d8bd83afe7a6b2735136f076125e09c5d2a42b91028fa0688b90a9b27c7d72853da50c149a0f72f165b8274c30a32de8635d0bc8b82e2c125518599d2c670f8cff21c8720a5e68efe3a13d6a12f62b97fe000ff6fbd2daa5ee79df426ebee379efbf718a5e2c4f9481c0f42d9cf6d28284c75c50388691eb8c4831cdf1cdf2eb09f98aa3a8b9db8492959156b1bce5a4e848082a0c011ce69f4f9462a10a01df69a5988dac8d1f6273c8f86dfe8c74a1448e3dfde015c5e7c05c8de487b18bb0b83035fd4c38b7f85c966e4ed97dc090673c657b4e84f89bef4bc703d2dd1b5cff4a58beb5ee577547d6da46ea087490829c2a0e89775dd2f5a220beb9603b5ccbe5732c614aa185d624558f657c518141061a9f409a9181dd477ed19b9ecc2244c489929345de6b5c050379b07e8bc669e4b11b881ee3d2dce726a5998a2a1142d96ea05a76e054b3de1a6a87abf3b1523d33e9092e1d7267f3ed6af50b91d3a4a4eac72960cafcccf2a498d468fb2c8eff881094d554fde991626cc05f28d0e421a0584cd6c72d8204450211ace40b5534deb989248b7d89e0b01f66aa7f9ddb84c9a656d9842cccc6e2a5b16200af395502b81c0e93f262ed6b86d366c569b2dac264ae464da92389e59137d8be8d4918ed32e8faa69aaf8268bed54c683e007c3acbdf2769a456379e94885c718908e01d5aa33fa1cb06750cd039e71fe220cf6a51b3f71349a0b5601ac79aaab065033f1cf01abcb5ae87ef6f40cdc5082708b43b4dcf02a54b585d01968af9c06cf5ebfd6bceb1d233e68de75e14e9d30de58758f96896a5bd24b18d218ee103827b0af05ac98b8bdcd2098a02cd594e8f1e67ded4fde1654d87d509d62118f3a1c5e0bf6172de01c7d89f3c26593d99d1e847226332c6885fe60953953440371ecdc132c44e4977b2f670b03b41fc310b931cbbe51c7a4424897940d50327905c504fb159efa278bdf0a4c88391ab182281c7c8b2b2b3113f7ee19fd37b85758686591c4190d123e7dd3b46de632220d4cee01ca4f16d973c20e2ddd497899cb21958ffb75019ac32f38e362216579839385816376b6c8cb37fd64c915225392c902f2196a0112f3a277cc480aa2bd22f305624dfbdf22744749888080f5c0f1103fcf3382354a9de32665eafa95f72fa4ce1c938368c310fd9946b24be5fc1b1048e1c9f2ec1f036292f649e4094c8046412bc2b5e97cbba1e8355011b52297e33b82a1a4e2888a27a19a43923da3f1c288017cf8ffc53b1256a860f092e66a7a76c31ea1157c8108c16ded0b7cbd9078637a5898b9bfe1806b55e962d7f36f5730776ecbd405ea9230c504918a760371428e431f4ce72c2333ce151294f73d3ef1e0e813dba2a283307860a73f5c5c1eacba9368dd2ef6822b57e64f954b060d8f4776eb5f0b64350370607c25564bc045c0c53a12aecd4f7eb4e9e8b26aefc3f71dca52b7e5f9a6cf5902159b8bdaa22dc84772880131a3bb23fd74a306073c31d51671d2f5a5efdb268cac169c23a903d38a30049f6493aebd878d800b72b4bfac015a45a9e78ce83e15e0095704bed52091ab77cb9b9b04a596c67aa91c0cc4190044dab036de58b164c3b44f94608cbe789282ea80148bdc6c51b13c777ace88e27812fa9f257eb2911c1f3ed175fa6cc89acd112ee177019ff24eed27f5031feb27596f3929510d7531bb9671f23c5c2366a64f70a3fb9e1b0756bf08ca932ada698185532a564cee121e8f0d9db5e60b77fb688ec5b11cf028a26ae32353438fc34005c9c0eba16703fe491e4774a6acb3da1116e724c57c00ecb603b5ba4e0a3c02bf2b5de910a225499c5c89cbe295140bc493d9eda8eb9dcc40c0c2c12d264dfd4919669c379e6f680f0d9f62f2d667994e1da93edc2ccd48c56205cb6a45bed25fb1aedbc27fc4bd02ce5775a497637959cf3d2b6adf4e47ab63ea831589fe52e861a2d521bbcf0ccd6eb309477f72a190fc35e7f610d2d6635da708b182b7e9b18feb88fdbab3b94e3912b8a1ec30f12a9755d6d3ff290b3aa08a194818f08267a7c79e7f880338593c72ca6c7d67adc9d61002f4446b635bf820b0fb98fe99fe81d71784d8a7f9ec03e18cc0d2aae4f3494e99aa864fa7de2af9855743561b6d61fa119a7a919a340079e3ee18212cd6c67159147a2a08fe19db95dc8e4e021b8a523b67c1a6015f33b23e93905eff0799e234da84f9cfb18456465f6739febb8d3599ac9334030bf583b03eedbb621fafd6db132f138cd55cf7c555ae952de36de4391f7a0bda3aa535f5c30aadd1c7907f658446e1138bafcf5c9a816250450c215cadaaa10ade1c712979a90a6647606d1d0bd744c43f655cf5d03d7b7684bd8c43da32874e4fe881800ac294090758bd7c33a6423183f8b55dfff68647602aa3f8d55bc683ec1c24a9e557e72f3e57fb7229f314728c1ef6bdeeaddc35b97babda47d1ac64a90f9fd3ae9dba95e8fecc2bbc4353275da2e27460ff1060aa77ccdb5e3964f261b941e7b52e67604e3c134f187867c2449b5e8a0a9b4c0894c220352deb7de09f8884d2043a8573a1af9255f2d3b1a1ad680398bbac5203aa0337c217d9d7c0c42705ecb00162e83480a6412d24510b35142552a9462cc413789b463ed945e7cc2e9e8e1a01cd11095f9a919e8ae35c25b11e0f6461b605b9b0f2cbe7048c9717d58f12c4aed8f28c0ec1817c0a8ef3b019d17094987bd725847e3e1bb3bdd763e0ee9588c394c54b260f779c889ce37ef976521fc91071479b1f48b12c53b28c464f871aa4171195b1d39f3c3daa1f5935c9f0b9d295c9151edb97f7327beadc87924cfac6412c9ef71f43bcbac6090defccb65404cbec9e3eb372f4c6c2ab3fb30d5b229db29f42dd66d2d229f37c1cc5ac764a2d74182931492caf0a7734aab8629c72914cc784ade9c45880cbd6af4ac342cf7c626c6e4de66b940e2c58d37c780552be548f601cefd8c1898f828039a3c1fbda1199c10392a25d156da6c11eae689816b8c88e207388e6dbc70a8ddc247ba6e857e07a15795d03e834bbec0695d46fbec77d4fbeed2a1abe63c744ca7ff2e85e4f613654479e35c9b11d81c200522228aec9fd145a8f5ce67973a1885ddd16f7cfbaf9f74ae724497617647c4e5b64538816aba1fbe0cd729d57a2363d263315a97e92e17d7faeb09c6f39e7b0e99f79189f84b90425097b29fad5184211b6d417b26d89606b48da95c75652079695b268d2ac5690cd1d8946efb2b2c6304d54330335ba7f9874e48061fd4c6b27487ed6b1a396986397876aaf370e0b224fbad1c576e55293a0dd71d2069783c2e00aa05b1bb4c6e306dc44d8936ae21107f01621d19de9808f7a8c25eb1a3afe5b91d87e4993d7ebc9f23196062fc48090b353b7c68fd6d943bc50a407703bfe45050238788d397d4a2455dee9c953732aec28dc42ed9c82c6f79231d1ae4a795ea7e289d7ce2af5dc76fbbc791c8feda19bfe2d68fc760202b62c07453563d549d2587510d6b8ba25bd171d3f589d0bc820891b734ae794e8a13b7a1f90df485ee4067dacc48ecac4e7c22df013f1a8cf1f57f5ff3b1e30522d61928176bd56fc490970917ed1c909ed570628df2a99da10cd5d72b1f0fc962621a0da47da8a0aab7754e1fb5ed05c03dd48926d7c7c80b0d2e784b87194cbd8a240928f1b693aa03b8f57c46bd432710e70e2c442c643237b1baaea2a814d00d2d91a7ca4e39a625e54390a731a68edd84fc43853baeaea40b828058107b7dd1b0186c39f438c67aa6ce3cb03d80af9b0750f4b4adc2d05de18c4530c55305e15251df93841cc441862dcd6019aff21d932744660c5160e77a065e83861cc304e0195eb0a221e4f43c9d55991026672a8388e4fc0ba4cd3933cc336d86bc5660e07655ff41b69ad6d4236d9846c42f6de72ef280c810c220c31324fa76ebd9aa7267c3026dcc122e06928b184ccaf8483cbb004031f5f9aa589a78d9aa69efe5c4a4b784026bf2c61e04bf45c9e202e51cc7159f6ca7408670962b8c93bdc579afe0eb7d2349dcbf4134f1807972986ef6519be68ee3d56487f40e9bd242d3f4dab7dd5d76ff3729b360c0ab7d34af25a73f1f4539ecbf513ae56118dbb3ebcf5d72bf2d5347532b95aefe2d6afd0e680af9546554a5c96d84673315ad8906bbdd35cec0d95dc14775ceeb4ac71796e369ece139a27475babec64b21aaeb4163fc98222f96921bf2a78fcc8aa8a15e8e49be9b15bec36bbc54e2becb63ac54e5d5c171e6e0773e9a2ef3089d953cfecb95c1dc3258b29f6923d3c86bd244f3deb4af24364eb52b22e16cf40b92e3c5c98189861a8570c044ac9858b7b49d56bced2ed1e5edcc13c8356af4eb22e1797aaea15adaa1bfa0d81b61899a9e81de8f7b5dae62fa8744f3d74cf65ed205cba180797352c02fd55a097aa530f75a5eac4ba80f06b6efaec7c516b716479ca35e57abd42c12ccbb0cc6216bbf4c2e8b3f5ee4596b7248661988fb5d7ac8bbdac0f6ed744728c97163022bd8261913dc21ec370296b22bd52c276ba480897308c83cbd8318c75954eafc0bc85d48b9d62a799adac8dcdf2a32c7f0591e5eb2b00b29b5df63eb398cd81ddda5718cd6c86ddaba65c76a39d7160996699bedcb93b41f698619e71f87a5997120e2e5b0edbb063f4f615a3dbbbc3a54a1947d9535ccab0216cae7a3d18f27686ba073d5eeb15987bd94743b4edc840bfa10de6ab3abd1bbda80add2f01f3c5f61568ebaa67b72c0e7ba30a160cc9af0df955b1029e5c0570bd5e295db9b319523762ee9cc8300b51ad4a082126d6b46aece2ee04b9c27493719a32629d133562993d6631bdb68e569b1c7d7277651d32ae0e415c86fa52baa927cf578a8a2c934e54993ed1d03d68c2d4efabbc26f5689c4cd3b3e9d92b69e7482dbd1c438254f123cb09d0675be42c03d9ad353139891e5a31851e195eabe2899cfcb8905f152cc02203a07200c0b873f10301044acac989c951ac8b09e92626a49289c9b98c7292094ae9a484e2830f25984b3ea09c9c9c9c3cfee424a50a71411b849be5eb30eceb920b17309764d9276b71c069badd5e36b1373293b77473d6c2d7a357469d4df023997cfa8c1926f6d6fe3ae99a7521e192c538b86c6f5f73d6c549af76ab4eda5c6cafb9ead71deeb59548bffe9abb48e772e92ef06bcee21209e3e07229466693cf7830e0574c706909994dbe23cb269ded4db64713ccd9224617bd0ae09a74228934e9500aa31ea2a85b1fdc4e5e9129ea595cd12bf10a694462f168bc4c1d545282bb92bbb0afa760ecb353973b99c501755ec6ec0dfbeccf4e16275619177c342c106ed735f4526f6b67eed5917e7218d24d1e8dd2a977148f06caa95714fb9393b6d206f3b5394c6e4d6e5ffb226df628dbcbf62dbd04cca4778f5e19e1cec547a7a001ea1097bd016c11a3d718177c34de6955025df88484213d066693bbc0f009ea6dd32b247c823b928f5e31c130a49b9cfab53828c984e5828f461130a3c7c00c9f88406ed73c3245f58f5ee9b4d7afc06887a79e591cf48676db822f4eac4ea713a6cd59dcd9bf4723fb14449e7cc8d3284fb78f05f64415ea13ee2cd62123d73ffb835bef82a294ca1564eaa22d0666c9a37bc8153c15ea30c8d443b8a335c8d441b8bb328a4cfde28e443ddb248f0783c258ffe89b8afb474fffc8cff4f6e449dd7a45611c5cce375314a518d2138899007fe2ccc413b7ae696ee7854e4accc9fd58261c96fb3e44c79d2bfee40927b2409f56e977b467706870e80e0a724773d740dc3dac0fee23b28591eef1e490dc9736d246da70cdc5993cf108b182487e39be66f5c5e35a7a07fcc9a5fed6180797e52345c15087b4fb450aa69b6fba7522808798a37037e11d1806be1f63505fae91024f06e5674514b670616266660605f9816470fbeffd253cd0c9340e2ca14d7d1990b73bf9798a58340b4aa3d4502286be129229eaf227c8d6bef63c0694d862de4da73a8a9aa6074c9b63cb13772947511425539e290c7d842f6230cfed656bd3c165ac12d183919c921f113d500124bffcf2a47eeb8d5152a0b8d6a91cd66128dc71d97a9401ce648bc0c2bad81ed89bdb512ec75e8155c688d1a7f40af559ea5fa57efd73b5a1cc9458dde2141edc521145c04c71a94f658679badcb08d5ed3e3af367a34ac95924a296f79e015191ac9f07256118388f2aa88414f8e435c34b2dcf91898e5b95ee9ac17bd122f638847833efe008f46f5f85a6d3bb26c6d3487fc243f4d6f693a65f230c79ee09b98cc05ed0da438529a72c7ba4da594542d752b6d60fbc87737ee6c8e6a5f4c3efdd6481f2fcff78404adb564043a168a53cb3441f53c2581903a297d3445c23698b8eb7c9daa2e4039e8269e1486b94e5f323a82626983185ca2a7604e66559ae8881bf3fda6a648dd64b3f6a5f4be4ad4610ecdb0e7fa803b120aeeae0bdc5149613b0f3395e6219c996609f75d9c609c553b17bdba9b659a7042d6481ffd4902c95d7d4cc3c43b91fbaaa72e7dc01af314963f7217b323e60e4eeaf5fa843b6993eb637afaebe9fa147361987efc749feea151457e3ad5c1ee8e786ed2078c514fdaec5ba2c9f6f2ddba976b9aabf225b8a323dc5d12e90fe18eb3ac8b59bf18663e7bdf06b046a55d8cec7a66fbb6de63c92c0b97b0dfd7c399c8f2c3e50f18890ee26cef7e7f0c7b4e2910f807fca24abfc6c86c1d7431c8e6c6cc6cbd8b99397bbdbd655facc364b88395cd7165ebb0a765f7e48a4476695d2be58b99d24e0c7b3bf7b1b44415f9de5b998eb0b7e6c436d8a49be191f6b9568f0d608d1a296d7275511bb7bd684e56a4a7020f2fbd7aa583b1b93c7b729deab651d1baccad8379567bea32d9564aca48634729e51451dcf8e92f1164735f7f5c74103e8048240e6ef00288246526d3c8cf0a2b10c9555e72528f7a5b3c35a79c53da993b1f8dee8a548ee9717a8cd4b4c517cd4125e2bbd2fbc338b8fcde74dde196e2db4af15d7ce4b2cc312fde2b055f3735b1d71c1ada27bfecf36e36e478da2c5007fac018ed0275a08e0fac015f8c6845ee18638c3a32aaf058641672ffe1f760ece07650677a4f7bb93c3f411fd28dd047d6e81e309f881e9264eaf2e28e66b8bb18f681447a58bfbac71bb8e739a1cf538914c236bc0eca21c737863a0f46bcddc19d5ee76bac93813a3a2e1d5c96599618fac44ec2173358b5a0be940ef6ad2a644013afab358bd5c99d8c1c6feed717cff44d7170cd457c494b9778ed64e428c3861114e0800e2678d4fcc0a142a78811bb4d112d8ee98d3b9cb9e6b4ebcead73bf185dff0459363c6292320649f2bb7907ccd344518be3d49c60b44770b87bf1e00ae65ff48ac5d187531532e8f123536fda1b37e7e84f3be4a4a8cb89a2e20f79da17203285770091e5a7a5b61730c7474b8ae2762999f472f30ef89325ecc972824ff6b451719aa8384d700f2f700f99a28aa0de9f5a22a5804cedcb023285772c20cb47d8129b5804fde2f1e7fa89155a1794e63a46d27b9e3a751289c638b5105c291d8dd03e3e3e3362d45e35353f3b395fa03fd60e4fa63c8ff25473a87eba4a58abadf6aa18a5d6e50a6e57d5e49f0aa4bd45a283444df1b0706626e6ea0b8fa5f2500a219d52784f9049a8c24e951b35618fe61ad2d8b0b1419b9af910a8a6a69243f553a719a50d4813a0009f1d24f8ecd857a3caa94248c0a58dad46083dd3734ef989faf1f19964a4e4e9bcd4ca57f665f6cca9e4ad68a4878767cafbaa6bf2b17e2a1ed8dd9cce0950001422845a77878a442a9eaa0bb95f67bd2eeb227f4d6b27070ef046c69f095fd35293b5cfc2a6b49180194c3e35dbacf2e413e3a78cf392575273ca93094f0a3907c6a013097506b93f2560a3ee1422e9b4a6292355c5c75189b4a937b5a68644ea1f362d65e7c49923e5c43a9f1e233c3b3a422a0d72e8142555d59a922b3ee1464b599758a975dd449b6893838343e95673658be83c4d3e95755971264992581369228d556d76d1adea6923467e62fb34e7f3aabdb22b6e30cf4ddec6229e7c1e8c2963749b71eb2b9ae7c7e4f308d0c7ae7bc916dccedaa19bcc549523711aa7755a08143b51073307353538b85da477766c05ed058922c8c78577ce570dfedc39a313ae8c4fb8d46bc945b7ced1daf8b8d6655e161b5d14dee0b60d6e67fd64eba7573a6b273f1a6f8ab606b781f44ddfc037c147e3b94c9788ad8f0b5fb579d2898b08253545a813851085ec34474119a584b0a39c0f76c4269629b8f371c649d91042c99a3be70c599e02dd011dbdd2c92d72f77a8208c9ddf3915b8a853f1e0c68c5954fe995575f64814fa55f75f724034f05fe084412a1dcc2902243727d1bb8cf0a1714690191fcb6c8cf8a278ae49a75b44eb95da7f84a7bbb0948c445f394a7433ad14f5807a944318e99e9299ec9d3a57579d65f5eb670a91e0647993c6dddd57531d64645994a0618437ec23047dec0c74f7e55d4d06419f95521032319cabea8146e6743be2d6479d99736f2cb2e5ac20861449151783cfd04f8e935f54db8fb40ee4a930e529e2d89a04eefa9ede2e0d2d23cfde8d3569a177d9a9f99fa9d2f499699be34611c3353a730131513cdd18f3651bd7ebd86de3d260a7750647354ea21fb52bbc745815c289d0a5feb1d8d4623eb55a3d1fcbd73546118d1ad3ba99353f804779d45ef1a0c5398a246d67158d647d79e13b31bd3a95387a3eebe255eeadae8750bd917780a64738c7e824df3da97e93033c795a7774eccf0c4124fd447a199aded65114551141ec93431e7bb07f5d93f72a78d36987b273225ebebd1a87de44e9b53a58dae89a6f698ce548c318af07cbc714f691f6d134565ead6c5daabaa3d7eced11c4d5cba9fd026b2744e0eb4b9f6b9855eadced1ded11864a1374d0c600dadaa154674ecd33b1da4678f101d7b4b6397b0aa3555422ddb3a999c3d5a97ec3554494ca43db43d4c033ddb2cde4ab92b4d6e845d669e3ec9ed36177af61adaeab38dba0beb63fe3a6251200cbbf7e2693461f605747bd92beffa7535cd75866bbab52e93f65ab5d047f78eeefc1dbd258ea68736983a1a8da687460f4df724f4d15b7a3a19d5918b50bd8bebc8bdefe634e7bc1886be7ece3a7d443fe152fdd5a6e99f6e170a4da367f7a00db32f2e3e599be3ea60be9d1359e24e54d14a9a8672af8aa23dee68b784bb1b77b266591fb4d249a689d1e857cff4d1f593bbec6e30a13b91276dca7e7ff5c01ab3bb7c72978de67524bb5dcc0877d7919c7d74fa111ebd1b510c333df4d1bc48efba4746e948bb11fa34daee3637995f4378be07c6c87eb2616f8920934d0365b16454329a7d956cd97506d0b3098b9ee920e58961de91449f2525b8741f7ae603da903ac6ce999ee9785be4f9d1b51006d9dc4e07091be1d0740d77dd2367efa0cde8f1d719a687b0d128c35e5917ac8a66be25c8a25779e92065d13391e8827ed129f2c8d39f7ca75ead4fbfce006b5c47ae75a196c22b133d3bb6b575c15e45a3d717daeed6913e90e7f6f2f2e86d8db0ac8ff0bdf5fa6747a3bfbc3cc2a5d06146a71e1a9dfa0853a797c9a2197a4bcc2edadedc749032085f678031b2dfadbb72966dd7b1cdd6ad8a16c8e65297779960740187c0a1a847f9206cf85cde903bcd937a25be3b9c2d3bc9e31e03848087c7bddcc52cdfb979e4973223176a356bd543da092d04e6b413860ce9214f5e12f6e041eda964a858bc4a86577b6a0f1bf0a342cc15eba0e3ba92b8789031c209348405a8d608f76515be223b384078ccf4603144888d0f243f3c4582e0d0f038d2a333e4874d122457f0c878f1603ca9c5f411a90b4f9120389246f238d2a33324fe883649905cc19313c4e708111df8638b2457e45784db7888775b84fb1e8cc733670c91df25848d8768eebd6debe40bae51461931190fc67b85d38b4d4dac74636adc397151a1aba0224b214c9011875a6b639a18e73c35a794526229ab18adb774d7545635b75733e9a4a8535bf78031e49ba66340d1192735a7d97f97a9e0cca9f58aefb940889968eeed5c47ae335c3d4d739da169ae23d7912a48254585d3d2951430067c44c0c738377a5305895590e63a7677e34f2d2a5cc2bd4bb8fdee5ecd419adce968a904da5c0aea8b5e5102be2b75e36bce127ccb4f19037dea6b1af3111661fe7589fe85dae01edabe3c5c5a42e6f71d597ef8d6212e2d2133fc8e4c264bbc84cdd187788958378b620ac34c3130cf18981b5b106e3192e20b4490516b2a9b3cfb26cf772792ba32f2b4c99f5ce3057d1ecbf554e65f92943cdf0b09b1803df088a681e8e9e54ccf776be6e3160de1218453d3cc4fc923cff92a266995d9b357a6bf89d4d35fa5d78b2c6f8a3f11972292e6e69b26ce8ae34f7336cf5f482ef578fb58e24f549934e4a70c42cee489bb519eb369a0ca3c8974ef4f9e9fdec9a09111e77cdcde34b046fc7ccbe0b1609fef17bc95eab3af7799490744ee9a263e8e3ab6514f857adcec46fdda32f5b6d4464d9f2aeb12699ca818270fd59791b802132fdfe9f568d098d367073798bbbbd86f4c278447a8b2c6aeff5aaec427ff2e84f00e3345caf89923beeb537c4171e1cbc55a73f2c1983bb2dcbf3a76a32092600db885db5d59d2e82c7fb599978059ca9bd755f24446fae6cb12c7f385341a6eb188e718893023b5750ff67cd5126969e20cca50100ea13e9a392324e7e4e8d3b393e426bf09c4b855b98ae89c115917298fd06306d09cd128991392427acc20afcc1981ac8b8c50c82cf6945ceb227b0a3f708826b275b2def98183b4ad438a3f58920c7b80c4a321af9f938637d6ba481c241e0df8ee71216750b813cb7a5392315e510998fb2f2519e29741e1962a2c6ef2d1be54598362c890273c411e098546239089a689b49b985c268f462727241209242a199968599665269a89563212e100074e68020884615708e9e4fac9c85a6bad1d69a4d1356d04aa234d1b8d1effa3825c81742c900e69341abd4434d21e04132e14958c469aa6699a68242a196959966559763513ed26265ac948242a198d344dd334d1c805e94454e2e24454322281402412084422814024d2487bc968a469a19115100ea3fec1e7beb325bc4c096f08f7c578df729091c5902c863ce6972c7888f48a4c16441a06497202f2aba24718ea65ab7511c98248163c537cc96267da5eb2e0e971a73f2bb2d8c9cfbebc6451a4b9c713e369164462af44969456e95371a743bb2362a8c59db0c6852c095912eea4427ddccd4422943992a110a8e7d140c92f0332197491e832b962204db350e78e2c14f11504d240a2516814bad90d9598fc30b1d0463427aec1255958a35d191246577684922bcbc98c40229db8289d685911b2295c5c5990d20fa25922c25a4da864833451257e6471881eba665d4225224c2d9c692ecef8f0c335b79a9fc8d54cee301d508d1080a8aa0cc40e7000db0ffc008078412d282ac323f1a1cdc60cd1d68096146b049e3e91a5e4f1708b47a35778309e5689c7786c0b6e10971b82b05c100f06c9e2007ddec41611842d4274d0eb766544b8f11a4faf602c128542a15008240a02240acd1036b911c2886471843eba897519853025591710d67886000000884433f4676f4c3984df8331432fa2136e08040021402290289382b3500421841001080037a992a9930de1c277d80b159392918a26525141c1e645a16b18f42242f8522c604f3979def0e04c39263fa2fec10e93c69a69f91e8d9c4763a6bbbbbbfb9982b25a70be0c875a554f1ecdd13c4cf108e1be8a4e9a4c6b624fad96ace8fb11045b64afbcd78dc9cef62a625e92ca96bac15c6dd2feb8afe5c1809ff0d1b86ab5b6968d085804740084c08301cf45961c4f05c2c307860c3f51f88a90e92266c3699ae634bd6d3ea664aae78a839c93f6e55f9299f8447d91650aea95da60dea6984e6d4adc90b9a17c85df53214196d50d2aa9c500cd143b6664182ecb1051ed90d55930c58e193926120016113b894394a7d75aa7ebeaaabbad89516ced8d986128ec5ed4144f5828e2f41ed7f1b39a7e43ced7dd47a86f029442eb52b13caac44c14edcd53d7e2a04e4f591c1b688d848203883dec610f70522a69ae38c08622e8ec5a1cb12f0f31a5a0156da14ceb82b7ba655de20e2edca8c41d75f90963ede864a6955906bae2e35e7d1c3c8d2c190a7c03d1f544cd49ce23306962656c684d84c0289c615de9589fa6e91185545117d27baa1625d5891e87f5e995c561823c3f4daba29375a173966e548fafb016f11252e6172f719820cbb07919c864b3bc939738e20d09aab9fd9767c34c088b54f2c12b4f30b8c974c8127435a735f7b498d1dcb3314327cb78d1dc4b399c42edee96b2aa8d0108638c31c2ae664ee294e63a1d2fa669d2b73445494924ca28a920753020a92089444924c628a97c1f99d605be3b6a2129d9518baaabc886e813d950452da49caacfadbaf50a454a29d30d8b70bb3e923b1df38775b1f1c3c60f1b39b061d33d367260e3878d1ff792b16046856a83dceee9b8b4e0e41883cc774b848bdb477344b83337aec9568adb758fdce9785b6419e310ba47d3340f0a34d75608b7717c532059529c2c317ed13805e7c2772919de377ecdc197fb8da18d15c2ed604e7e134e19604185102ca810f26016f5757d5debdb200aee8b4f4a88bb263028832b727c2442457e590a3af987fcac90c24d8e8139be9b26eb153c972988717099c232bf0703e20ebea7c48e2c2f21f3f525a8a480353ae8a22757ef74bc1eabaaa85b170592e39459467929ff36f8f8289066795d49016bdc5441f27b8f3c1a7401e401bdf28023f16820f148da51b8d7bdc86fc6109d0d222c17ca98c7d31291e0401214773aa635dceee63b55d79aeb99a74f1c73c4b7f624fbc6443d6e5a35b5dc797ee6862fbbc18daf70a7b5c4251c339372be9706271d4b3debef5aafbcb8b571cd51a7283b06f972dfda5eb662107df4fb0aaf2602986d18483779761d5716cd2c7a8a68bb9ac31edab4e6b067db6d0ebb267ae8d7f6f2b2f64a59966559b8d37135a16dda47a351e8d3ba847049d3ae8d4696a6ddda90b5d7b4d0d639a1956c2fdb925bd64bec45b7367b91f5d13659176b5917bd6c5934975816954b4aec479b75d156729bc3b0dfede596c692b094a5282b5acb52ea9d8ed753ef66af6dd9a1c54e5d52d4ed3d758d74b5df8340a092c3d8d1ed4b8e5d265bd7b60ee6982c7ac936b2b42df46745da269345a17beb822e3dbdda426b316d4e06e66a511645518a9e528a290c032b122c304081e6a6a9be8e5e1b8f2922e469ea948a71fa682ec2ee4b0c778ac0189f457129bcf0d54a79279c26b8d3dc04893c18f1f036d77cdbd8c00dd64c8f505c999acc0289980e6d6aac0ba46c646a884cbde8523285329da23ac608a57c3a195aaa4eb0486f214306771291c9264f449a9bbec5edde815e79f907743c9e2462de919922b9833448201159201122d95a7191e895f71a30dd8807fc556861fa429eb2c8d32986441e8ce9447a069ba2379693bf3f08fabd17824007dd8baf936edb136d4abbc2a617dd44afaf4ed783105e0729831e41106619e8b5d69ee6322a6f9d13b993c931c3d87bcbb0675b1fcbb24a065bc46be918e5bbef468c09cbdea01986baeebdcbad9d88d2ad6201029ddaee15c9dbd0479fd7c9c6e3e42c381127788ad1a8f6a85f73da6462864c4c36eba1adbe52947509fd418803ad8b09fc757aead37f37486d5757438bf4bbc16c85def7a0eb2065ebd3c53866bebf98895fd688972b2eddc3c057bfb0faf5d0d6dd7991c00baab57f0fb78657890b7ffba092c36d74d0a655eb2df19ad6a5be641b410d5eb85b7bed6d07952f275c400daaf5be37f8dba00d3b688b2ef6d0ba28619fbd5e17b42ff2d8a17db1cf1eda9e062f28a6866d28dbb45e788594d2834e5d267743d80d61b7f6054ae12735ad4fb2a82fe5aa1826abedbe6ced75c15f5b1132c38ae52b8bb2b9f49455c9b84d1bbdc17df4a9029021b9c649b58fdb34cddd54d5bba68137cdc9faab6eda95e56f9db6db3d9a7b4da3833b43c69a49c2e0d1a89787b0c63e71a94f5beb01c6907380359d8707433ecbc1bd09026bd4449b5ee95fddc5d2345145f680018c01ac412f0f697aa5da2d4848584a2edf00239a6574496a965873293aa7e11f19be634dfc49a4ae4d53298d3535d9051445e8220c272cc30202419221a464aeb126da642971b22cb9a207c6e83a08b9811073406d55a1ae50eac60beb214da6b864ed6dadb8c6eed8cf1651fdfa7bbd8285e8056fe8d4ba6011c209fa0051630408ecd0ba84e8759bb39f6f6c7bb9b29488ba887089c20e3b1da44c4d269aab97d68807133fbd31288a1bbfc5ae487abb88c4e108cdf5d56e30f6d5626a775099a272759136dad3adbe255a990ced8d4a865798ddeb99dd40a70f6dd45b227cb5d6055eb0a5e3b3eb20e576695c8a18c764a2b9ecb2b9cc8546dce9b8b22d3291ede186bdf634075d2ade4165db39912b8cb5620163c008df2e4a5887f6a57ab16e6db4b96a2335276fbd00f1a35d90f917de1d5428a1b091982572e3945056014f2c2f43488c1cb10723bea5ed143a2cc7979765733266a22d723b2d4b2dce1883c6c2ed27bb8790e1e0d2688ddc7945a6625b30dcecfdccfabca497f5685d3afbbcaedbad93c9b6efbd7f79f9e212e830f7fd8bdf41b72e93a9184c2657d875eab25bafbc0b439bfa6e51eb425154f54744e85448be923279da607e1cf5678f8879a23c9e8947b5456e3ca9be940c07577ee6402cb4c8355e8f9b6f7b44cc11d3e6a270dbc883f19a28c93f22a83fdccdc8ef32a68c877f8027aa7c160bef59f1021ae4a7013a23350d885a6fe56e7248dcbd85efbd0f74908b78ef756fbd3e8ce7d6575fe6825baf3a2fac46d06daeb25ead11ee7d91a9f5a51e242919a71e3c9638331de1e4dd0de2cc4416188448963fc11d090299692091264b08a405f73a559dce78341e0b7c2a27af0a02a2a24fde4d43ac1e087149a44f87708f90e585783735214b3915c957287163cb1773cd9d3ce5f56da00c17510f3a08d72ac4d6c17c62e194e64e2ed8d7c9ebdda69b29a3b9d5e9ed09ae1e9fb2bd2c4137658319ce44d9238ff48a8f1c82c92b241540727c8d553dc915946b95eb0f97f9b14c37dc7bb7d64a41afaf401c5a971fcec01a29978729802a782b425c72ef288bcabb4b23a39e4a8d8fab4fd9de8b519f6df52af55cad105421b420fcaef5ecd5d6554fb1bebdbe62d90d804a00ded24208017a0aee60be4f88ccb2ac1cdb33dc815e0f033ace528278a5aea08c9804b1a504405e65eb24ad225f63bdb5d1e6ea610ac40902814020420869164ea788bc028b5ef1e144b2dcc93c591ac9f242482a24155248b60366d09790b97e47962b06c0bbe9667bc54bc00cfab345808ebb98e550d12bd6254e64a25740b84b39e8f2150413c4636016e229183e7185d86410d025853417bae41049854bf6c4f5e1f658660511a233edf48a0f928a3c24cb894896071d3e713b89f302c230a0e3c3c89ce66490e6e4df9c70b24cb9101bb7b516ad227132e95d9cc943a01048054e0c027754a660088405d77a9554f44acae5c94eadd7eb9aa926aac8d3143cdd4c3537c31d95bf90007179bcc5c0bce198ad5eefa69be9e6d10032e1f40a10979f82f48a45330a0a29a3fc3d946f52881cd29cac37374060494573f2f6ef241543a8bfe9958639e2ebe5cd0464c279341e8ef8fa6a0998abb7441f3694adbb77eba496bbe9463b91546449da4cb69b9b2c3fda94a0a82894446479d12af205073a405d5e474bb3d01936fefac510f2d50c5b18dbbe556a9eeb52aa4d36376de1233f6a93b2b94767523a0036a8ef665824fff041ca1f5a54010743204af7441f6ba3163d91eecc51439f4e8a3edacbb2a1e8249312eca24aa609da3426a936987a27b27401fbd5f4a62eaa7621add74b1f2e2b1fa216b9e525ee531d572731c530f296c8c886523d4de26640fc1a6974aaaaa8057de8b22f3ebc2b7d12349ffc35cb09103f6014dc513a5913ee60d532f940514af8cabae787655954a609277aa24f4c92bbf91898ea4ee496d6a30fac214fe34feee614b5c8f4d392518b3cad4f1386e95753ac5a5a15cbe80363ccbbd8ecc9d67d5edc5112eee835c1ddc51d8984bbe38e13e18e0355a06a5118eaf23da71647ea11dce9b8aa45310cd5bd5a94ba048170e97af6f9962422cbf18d2a31fe71a300c0f0e698c6d89ff258864136957d9187a9a83cbc89bf31b201d69036c370d74732bc219162d53d9475b1d445558be2a05e519f147555b7e8d4f591dc7fa4c886a8d23329a5d3b3e400288aea32b9b798992b1cd90063ccb744aa4586b6f1bb518b3cb7249a6ba2b978383393883fef47664b411582e0e4fe4920f9d76284a4ded246e07e3b2fcf4de1d72a2f9ab352b8dddbc9f26f0f5926a1459637a20136d060a306a7614b2b5f91686efe01cd1921bbbbbbf1079a9b72821ff8e94073b37b487cf4caa431f34c34b10367e6218f667944cc9a3c6de0ca6484119346160e5223982bc873e2980763de0ab73f1d62d99d2113cdc520813713a4a4c8c9d3f41c31d0dcf42cf294863c4d73c853059eca4481076382407a65e2d12b2f0fd2f44a8f5e29517fb97b4460cd74e8a3591e1113e491a713c9c38fdc419c3c9d89e94d4c5b039a9b0e2dfc61adb8dd8934a0571efc44a27f64812b782ad361406b902718459e4e4d90c78331bda5b3b5c28d6f1e3067087dbd62d169d2cda298758be292252d6a9d520a2deb16a5b6bb638c317ecaebaaf1b2b23559d99c55ff268aa2aeebfacbcbd7f578c55bbb5932d9da745cb9c2951430c604244f6f89d40f6833b74832e7ec39e79c344f3823ce9e3dbbe79c9f73ce39dfcd7830e62d912ba7da1796d1dc9c55e8f99732631470e60597d29c9c8f7922204b2e9c004f467673e357e43190815e29cd73a003314dc0cb9f5fe2a0c686566a87dbd12c6964991155e429bd12c2f75ef7824616043c15f929dc2bc41953b8f1bd3d19cdbd78d1135fe0052cba50862a658cb96734273f4496335a450e6177eefcd4805e7979193ea04b41a2272f6e8b6a5f2251275744efea53eaf6a2be4ba9e75ef44aedec969292634aaf88a0c5b1802ce2ea5f7d4bc7c07c6fc51341f2bc42a0d7277ee47bc43de82d5d53600d25608ea99df2684898734aaf28d139a6b328e5d188393e88b722aa9ff6a554f10d58ba21facc32db1b17b4399e4e161d04023d9d0cea20e81046e819c9b52fb34e17685ba2334809d09588a119be18a1c790720edd1c1984e1e342f7d4e28819f4da0fc696d88e9841f83d18216c4473f142a25762eeee8db81b12303ffb80e6ae76dfdddef59a0512314f5f0c9cf56e4c48315cab4bc993457b7cd5361eda597022343cc57de87356b366675edb4a13938878ad428132ccf89447e385f0d55c49f45712e16a1e04c21dd4c9d4755c39445935dc17f1b7a6702f729431448e336cf40ae811c3b05028f4979743b8243a0c06457143785ef436d076b72e26945d26dfed614358dcc19c5cc9646abd1823f52e2547aa9ad394f35114a84735b891524aa94280fc8e80fcbebd159972df911eb10f78067e51a593915fe3f76074004079c76514dc3751256eaf46638804c688db041e17ffe3d5beb01f3ac841f7cd7481a78204d64002c6888f6f10a2861c5f861c2540871c6f95683024c2b6088bdbe6c53cbda5219247637aacf085e1e0caad813c9b2b7acf3b3b537adc3737b8d52711a6520918da3a993bb82151026e37251bd4a2b9786deb622466839b6bcf676dd007fedcebfec6d15b3b099d74935275f1d3387dd3406207c9b1aa24e50099182902994cf10880c88d4ba2bea893c832096c8a6e5ea294ab4b5ce15245bda24e5bb475d4add069375d55f75685aa1879bd314ce814c3b8784b79e2e2d64b9bc551df6f7bc30596cd9de05b13135b72ad966c9d1359939a3629ed3d4bb4db53da5bdac7c4ac75b2471a1edd8ede9bace6e1b59f7dfb7950cf066136b8251c304f87a1435cba515fdde9b7fede57a2fa7b5f753727917d388a0a45095d6e1d766aaabfbfb8ab2e9a7007e9a65d6e14a54eb5ce99e8d3342f73e8afb950488461aad70adf5b37779792ad63d62beb62af5a31fcf1d9c1854fa28978263a7824471ea8436407ce3c1a4568582411b18328c8f1b005394228728438c85127c6215b20896f40af74d4885e994e91882c401ce51df521e2287dc0140ff1626219cda5e494e660f79c3401d230a35766afcc98743aa5550eb72f65a4604f86544e3851dd13bc31bef8705f1e53480c699a83357d00f81e3e6e07618c315ed11ca4018f2245a822ad024fe12e36f1855ba22e93a9e914fd4431a402c31c0a431c38038bcce07690a68896214d64b1d12af090523792483fc7c9681b4d74749a648c119770c858ba4165180a7fa003b971065ae65b03696860210d3683dbd980b7d18007502003bdf2f2c4323af0814ee25948536303718690d1f111e21898fb1814b7bb32bc9ae5118192f202f65c3df50971fb13caeb13471e4fe5e59717bce0a9bcdc652f2ed8e2a9bc3ce16e7e9226398220778c71638144c45f26b9bf83a8932509070707070a9a77b56d1bfa1355e429b4813f36d006fefcfc501774818dd354cc4e72697336c86d1c1ccbb258b8b0933444c063e9244f45dea56f841f196be0ccf03090b870afd078782cd0a64f1e4b1b892af23288c0fde03a20d1e0be20ab20cb2d4b952c0990c44864691c1c23384670707a903304213af0274977646923462e097791e6789abbc248648938883d18c28d47c8f28d8d7492fe49d22b1ded22bd02299c73ceb70ff9ea90e56507793098846234dd03f2f0d821cb24dd4bd24972f60348102804ea34dcc95e6d126612c0dc3891858483d33859be92224b27892af29492b23c723b9205e21eee4d1259449734d4499264a9021fdab667292067ee067f401bf8b305fce91524d0de059da0b4765a97aaa29452fac6fd0c6edd65b72e26db67dbc3ac4cb69b8e2b5f14489d6e6dd3ba541346692e0a17622ad1703b455e4dca4195ff63a16f9a8ce4ae7b27b2d0ee91cd43e9bd24d2cf71547294823a5c9d9611f294bb324833aec3ede48ee3c16470bbe893236a13172728e7b8e8d33528b89351c2dde339c13e6fc705ee8ebba743d27037a3717745d887a3a6c9d3042353e891c76a702410ca43f14c3c3c9125527a6f7d5802913832484d64e9233c15f9264ca1af90e5273cb19adbc99b9b5ee9a804022980019f0c58977f00f742c61033ae972fbb52bafe729d2292b8859ca134b246daec3c1a1616494852995022bd225faf5e7994475b9b357b621b24b2c1213f2ef60e0ec952a739793bdc50f3b064703bb89329d0dc94873ba2fff04e860fef3894773f794772f19dae91f103ee6474b1a6e38e82bb9fe08e745de0eed6bcc7126b5a455e147d4051dcae892c92deee525c7373f372177d6a769a93bf892c92e7ca939f604944ee14694ef268d666d3703ba9e323752411b903fab4af3950f7658f2ed674fd06f9a3577cb4883f11494c12b798a197279797363bf1cfda79d6ceb3ac6dd4350f86bcb5c27dcd9570f7b0e048b87b57d43cfa883f80f4cab35ef2f74a6ee1be40bc847417dbc956a2fef2b3a423f2fd864723dea2db7c9daccbfc34554128a55e9e4c3e3f6f627d6ed3adadc28131e6a9695a5590c9a24e858da5f358d789b66e00593e240fda3a2973660d69164904d6d89ccb1de4d140e00ef298fe60be3698d31cade01fb41102337c47e54fa9014053a91d6e8ca7124f630c6b86db97d9abebfa555515fdb5bdebb1dee4a36b5b07ba5672ddc4c4c5b19fbce4c2e4264f3111897eb2dde6442f79e826076d2f2f97bc46eb6282dfbd4c9a2829b946b85432fae8ba30288a2bff9a33793419fd2a29799665d94b4a4c4a4c48a45fd79f35218db6eca3eb2626d9757d74932cfb75917e5d2d71079549a45176d2cb9a6c4e746ceb6e16d1e6442dad55d7abaccaaa0e2557bf3a66576655a21ada3268efabcbec15e8d5cdaaaae45528749148646262f297974d70897418936737c1af39936727fd5e265f5b77e5eb255b0773c9471b69db3a9a2fedcf8e2e93475ae857486485300459bf1bc8e666c7b2ceae0cd3e65ac65ed5abb774876259d5e5836219b675f515befa51bf951583e89db67525af1505dd64a49d5ed28b3638041269ceba89756d1b5df492aa3a7ccd89aed12cabb20c97b4ec5955490b8ae28af0455927932f868d304c341289b0d02b5128c39e65d54555f54c8461afaa9048f4aa6a893ba81ccab08bb6ead986bd90759005739ab32e93af0ada2362c6905aa7dbcbd5b2f06b501437763c2543b52a659fb8d56b955bec4d08d8ed56a7f76c91598539e7ac1e6dac142f937fd4cbe4c6160b5d03e91c208dd32cd8ad1fcd5936cd5942a0391116f5485ba531655d321ddc863a9d63592bd6ed656bbd6bf068d85b6f1bc01af5d6abedd9b2b69e018c6175cfd61b37140f86f52c07d7fa912deb28b086656957adb1c65b18a675a8375401e7487dbd22e7843deeec5e736f9626c64c4c3db70fe820f5b4b9af344def99e7f492b49d98884bb89e3db3b716f6b02c6c73d46c5df6e565f9f75eb6d2c55eaf35abb55698f9aa5ab32c56eb2d0d5d006bd4470bba9db087c535eb2c862ec02d6d71691efba5ac5bdcddb06e6f6fb16ae32976fb72ddd60bbb115f8ff852d8bae8906c66d6de5a8cc934611fad78486373478f592bbbc50e69600deb58076b7247a345b1d3cc823d6c4718fbfa98c57afb2d6e99ccd966ed67c5167d056fad35a35e551965dfd2192e51c74e7f23cbf1b5a7d93b1def64c63eed4b761858657fb4bf327b0c9b999a32d59520d7d778590b537f658baf5a6f3799a9fa2cebd005b0c6853d72c5f0b3f3147b7db864c4cbd85f5ec6b0c767d8e3b12893adcd36cc5eb893991eba00c698b0c4548444be0a0bea4172cde25f4a1779f294bd5e577c0ffb8b90263794396a7e997da12bdd93a20ad22bef51364f75d1863d6ed5eb46757cd8a2de297a53e1bc53959027edab8cb7e4ad9c48c158b69202d6a01e9f15bdf8dea32a75ea1d512d0a97ece1abd6692bde23ee6ebcc71cef117655900c31fb221fed836f9ec81273ded58de461281cad88c0732171cc79b813c1ca48c331c7c2c29ad94ed9c618238e97f1f2c9ee0439e65709c95d75181f7588036bbc435ce5e4aea2a8bf57f1b1ab8290e0a9f423f0589288483c1aa24b0c825047252186399c6995a68fdb56c5186f69f50a07c688afec0b7d7db53deca1cd3aedae7c37da3a24782cade94496a8d3563c9668051659f6702665773d2acb7089dec22277cd0367a2158f053ef154ba79e46da8abd371611b120f86f5695fa8c354b883d2e6b8ac77049e8ac5932d2c7b5e25057659f6da66a653a601ae7da8f48c95d5552c19a211000000001314402030140c070463b158382a9765397b14800c9bae526c509b66498e53c81863900120300000020000c1244800b5aff221b79000fb1315ba51b9b2cddfa045fecc9eb7daa0bcd30545994d6b81def239441d8853d9a1f557714ff8a3747403740da96f299a327661b427344e438f631fd7adb24bcdd6b3391534ef69def83131b9d11059809991b081022d039433b28717f4b8eb469830018f1c1b2511ee1fd11e73895d2314b6becb5a49dc237c88f7a1732f73db6161185847d4b94f1059f3d3c05a3835895ba4a92da1bdd68d5f6ba40702e7e24165efd89ec31c969d3c9be5cc8876a28aaab5d1974ebf05ab799a5e524615fc90524aaf12e99b4e4da114c7d4a85b7fd37b80fa4d036de13b6ed4033ecff504c59da3a891c4059de49b5bb98a8a88b0568e25f21b9ee2ae50ea1b1ec1426b4f69256d6002bfb419b0de702d27f1ea05544b2c4ff7bb9ae9084818307f9d8209c17033bdedc5e9a9c7ad8d99c487128cb4b7387982756c801451253ebaea3585f2846543af415fd6bb92561ae201bd10529a7a7838673cd6f53f983f7251209ac5d886cc85240077d0b76cfbdee27429730d582356168533a170bb5d36471d43236cfda9d55437299231813ea4beaca8b0e21d111c37011c11982ba2591c6936cb5d48391f092c5287dad64709f6a57aa4ad169c8283551f5af1b4f81cc90bb085aac5539baf380227ec1abe808b2c801d16e4d4fc390302293af69b39e4f2def0b3de389603b9332612f2a51c52df7fc0ce724fdac5b067488bb5c3e8a3c130206180ed4e4b8337ac52f4b542a01fb378354cff0a9cdf1dc181c9a9b7317fdd3502cc0ae5c93910cf41241222fd7e577e5655aa4dbd4accae7a899ca489d3ec80e102da05deb54421410e6f0d1fcc68fe87405ed5a62d9d1dfd6317c5902697077fdea865e9e938678862c482ee2735cb55826d348f7e9c6b56338ef78eee735bbe16e2b103f4cad79c14b83112a778aee2e55764ffb6d081fb641ab92939f6c4bc25bc6495aa1fbee59e81ea3bb720098114c121460bdd9867601219a791aa8b82e07a6d9f8230f0a22700ee0777fac4733608aea3b2b4bcbfadc0e2d9f1d5427887a56f5660934e55e965247fdbc8076e50a06913f939adc0a782a27c105e20fa21e09adface39863de7228227d4ab399d14148ad0558315c79f00af3abba4d18ebf8bdfaf8c4f66cc35e2aec95f531297fe61ecf2b6e51623f89cdcd42b06eacb9dcca6e62e97fadf703aeb38f8bd1c2bd043c4b2bc3e8e476afea18953a2e1923f9d3c60ca95eb29b446a00aa1478639491ed9796a6f40ab97f08bc26749412083be65a48de879f175baa7c8d987350353809adb7a180732ae74e907a44be9cabb1a6f07eac20270e63c4876f3bd3bfb60ebb8870a153facf76bae1edad40388f0ee10c08879d75410063c17774d7c9e4074dc96106d378a42fd2555e413e0827d67ae890db6cabf9d3430cf481abb2124ee4d4e7194e789735c98946f5287eb7a36cd1d3437aa124cf09c3690822cabcf7d1eaef8fd653043285d20187443ab113680090633f5f155ed5017561fa0aad8db34512b2fdf5a1a7a5a0157058437dd979230b93e57eff8f0515c437f040feb9bec366f8d3bb29adb03bd3852c9d1a808b947421f32b32282044b8c8aa0ee434b3c18011e92e240f79e41e7f7a3cd1992da8cdc7adf217cd671c37d01700e5f09e97923ce1df1e281149091b21dcea344f68dabdce855fe30e96966f1ce94461325bc8b311b842f866d30cafb8ce6fba0fad84c0a2dccab8744ac00d06d1ee02fbd38b43162a4fc58265c9ebabb54e8fb98f9472ebed0128f8abd0fa15259ebac26509b520812747cab31a07d437d26a86d82b5a8810e6c83a0facafccd5dddfa4a4a24885af7d6c30e897d5f47834facec1dc22f6ed0f92a65229b75ebe3eee34d610df7da8a1e7a0ceaf49e6f8f427ecf3385d8b0fa8615dedb5d1117438c7f1edd7ab0e34172f44293e85518e56ac88894029b73275e0df7aac58d0d285684f6d593e4debcfb7553c2139adbf516d0d608291fa3e570539e67a2d40a49dfcffb7481ce67e9b9739a8f708994aeed94222824f5fc50d965468794fe09658a086852cef4bc53fd6af89d81d8564d794b64fb1d18ffb88fcd40157b32c1c9db45dd71c1074104ff3ebb3847a1dc6b792919d1fad142819575928dcef261cbe78c8e7e0f1418ed3ea7411caf6f1312a29e1b6e6c7c1bfb3f772a0196f2ab8876f282000562dbb37db083d169536dee71ff682cc7850fc70fa7717367c25226fa600665ca7e99f147faf35659ceee8fe2f4938e7d9ddc957cda663ce198b543a55b74c7dad8194157bdd680b69a9dbc6e5d8ca7931165a6c8fdda192fbebb03e472a2dd3b444a9823cd4387d6a42e0d5a7d44aed54195362e9bf5f7d6b880f740994f10c3dc265c23adb33f30ca386ab90b2f7f430caaaf12a1959ae0bfe1743d0b0fb27747e147682346994e2bab55213b9bbaea1f336dc10ba0414b64353d37bd48f7ac1e865147cc7a1c5a86bac41fdd08f87704b08ffadf7dbc4594dcaf1703873c2cb817a706bb14efb8017e4f13bdee2e2d71012c0b104354b5e32fa2cdf8db5aa327713f6cf6e962982d808629a69bba07ce63a15c5ad097794df0b94358a49f69c1e0e7011aeecc4c47a6a59ec81127d7284cc7b321f2f5d632efe763815e77b1073d1f160c04daa0f478c3b56538c6c1460a5d027fc55d95f558d70b009064540d62284703379245b353c276f3f055e0cbfc5fa8ce22fd5cc740a9da3760f8929c95aad1d17369901d274868a1449677f4ba56c566db6e2cc45a957e98242db5129c20cd509796da0e4b785418544dbe6f179b3e2116867a241c67b5a46930d38200a8167abd625bc7226ddfd3b4b14f9a4086eee36358ed78a9ee44d31ceda216626e8fbadd0467a928b383a5c45203519637d1cf7db6eae20708ebe6ab9d19362dede563f9a68a007c605078481b26a6f120d0e9573d55ab39fabf4da9cbd4d5fd9f196c43a40d216197cb12b0c4b1e01010732eba06238ede36b20fd94aa161e0377fc1b9e6609a1a59d448a2de555dcba680f40b2c9c00670d9aec07826ee141fa4f74f602b7c850786c6d6b0d36b249126ffb4162127617a10c37ca411aef1c46dfc6a3a0ef247698279227c2f2ff56f6fd09f7bf7511062a5346288286494d20ab5eda405436b5bc41f7f5b88b1a12d673b281f8e5fb51d260d4312b692ae6e70a6009326978cc69afa77d420d22f3a796b2144bb2a2d17443ace86b58d3d7a6a3f6ff03663c01ae8c01288b083d7f3405acd41e3567dc8659049d569657c7a73d1c2b525db8854b91df59f7d9482aad4a0a273d3080c686148be174cf7a18baa73360e927346d0a7413937054cb415b4c0e7f7f1dc2ab459be09f1a61f5a00fdf7c39f1990dd81a9e94e7f2b8b351b810798c1af0706b972aff8ab705394019a50c829a621d0a13020b989c64f9174ffe02309cec18a9f7de675cafa003f38cc5f6c6cacfbf3b429dbe3fe44b9e0f89c6aee4d04e11c2b891a5e48c02d850d404cc4b1e0aa6cb5c79cbac5635f8e7e898da4e40a85035d818e4057507dd10049e77372a159616a99991a0c566bef8701df8665234c48135c799b14009d1de10fd00ac0deab32ef815b909ec42cf3391e503f4fcb28d4bb82cf98c4c305e2198903c29f9764505b62ceb186f39361999c36f7479afb0d1366701cc9f4efd0aa35380417ecec931cd0d05f04dc59d09179860cfe2a4ecdd4de2795fcbc414bc28255fd7382ea68fb6d9ef32e3f8fda27048d29c9aebd8a96ddda49d15f6e6a16ce84a6a2e0c6687099a02fe5f53d7db5d8e70749c62256d9d1509e630e2200e87e20b2242dd375cfa1b2884e8874d2d300c13977bebff486ffb3d376bd39a678e6908780ee894e54c40457d3be4c2e3f3d7589d36b8bd90c66e9aa28428e88032b536b01ff4991d8f455562e468ab544243e4059d0fce3ce912fde4ce96f5c5d86be74b400f352cccd2bda34b98d902656225dcca0bf1215d9c4f3a04ee07a102f79607d894c15b520cf94bc20539e30a3139618f0b2ae991944eac33555806ace8815ef2d4942408a0c7dbac667f55464e94d029552666aca6cd78a4f2745f8995e4d7df39c554a4fea3f122b90a8145f134d82e0e426048f7601e5b814318627260aa7e492452584904659a035db933fab03307922c5850f9c3e3f80153ca2f07c105562f1fd9110cf1997e582d894c2256a9d9573bb4489a8474aa41e3693cf1e0a822bef4cf65b11f5a4a8029ba02c0c42a9fbd30b18c701bb695b6c49108a529e83d7adcc984efde72b148bbf9d0d410ac3815c67bb7235279b39263192ec419cd0d1d21dba8ca77dec960941ecec3a73ca78f7d921e2742324299e42e36145272d73f3daaa3b32cb64dc73e7e11ae0724c36444a7f3593f90f57394155ae50cc75c7b3be2cd2b77698d70bcf480d476ff5addbbb62d8c692effff0e839ccff56b39b1f2f3e42c07ef091973e32ad8e576dd62bc5db188246c49dc4e225f8e9b3444496521eacf492bca814b856a092022adc4b357dea27f3b509ef706195aaeafb674f316201592169d15b7e34b6b7dcd3624c4d2a2f3aaa280cf6bc62fc4b625d592e1cbc0e045ea972bcf577e61a54fe508746ac4db594b63ea1479d9213704067771a46c000bf73ca439b138c89462e4b71e60b465863e5a830f987a2f4c8148a729b447fcb0970378090653ee0da33ea42579bb094508ae023b4a1bef594f80a4664d9f8192c8caba682de15f9054085526f475017e0744235633ed6427a1acb49617d864f754ce006a5f3d9b886a969f0dab7c9a0e25c26e52ed01789c521e4a8484c7ac187ab77830d93b37ba7775fe4901f955a189d6d12acc6d774d8a62c32825300638efa3ca2745e7253a6c958a6e528f3e1d2d6d07b7e09a8d6010f8d2c2fbd6f74df3e975e939d13a966f3b4f2a947fed907495985a8bead785312a1639d7d72c4f6bea24990a8c8cca9bbe213d0078453fc6cba19eb9d56383a29842b2887f13adc50f1f070c548156792d40befa3f9b0d03c9e01f14a3ee54832f64f2ea07553fdc2391ef2e11db2a984224cd6d72a96322b39f256f86f5e41cefa96899930cc9b4a5d0a0c3dd51d17a4f0decd6592bb2c56dd4549e6d015accaf663def3da3a096334456d8a55565e8e88af26336c13556b3317d3f3c403744c0622b34cb32e6f0e326a3c900c0341264e47774bb1ecc90abd8d095d0aeaf2959e1d3c102e14ae57c76f3463f39ea8d24ae6a4c0fef2a4976dbf43d4bef935ee62ec91a6e3ecbb0341b0798e700907b18486811672b4731e67b841cfcfd40d657254f9870f8025dc6234ac6ea919f1a0b98f3e91ee81da4b21ad806b8e516bd36c71caf57c147dfc68118e63e75881f3116f2b16a8a04a688245dd4ce602d57a8e1fece5300a88ed5c7bfdef5827e01c1538c652d684fa8a62490897e5a06c3eef44b981423189de5103577ce10c5fbaf024526d2ec86303f3bb347277b133311cb3f4a3b88fefb48bcb1adf7d56d3c266d9c9f2472dcbfeab72476372eb39d94ff204c7b00c20cf62295cb247f0780f3f0c191c699e27ad98bd6ad7d902d61c017ffeddc7809eec2f7e80c3798daa49a98109b9967c5f98d2877904a8bc4f2e7b6402f80b67493838050b51f4c1604b64ad9544b0d8363a2634fa1c225f56330f6b3814e04ea164e1584f93885a37252241118da29b510fdaa614d122da442385e61eae903d63fe5983233814a91ab9a99446d156724996ee2bfbb91c85bbe8869a463b02bef01565d2d1fca5d87ae23939bb532473c16fb7f8150a32202f5ee2eb015168f0249ed84b7a65506e2fa3dc4c0e81ef4cd4becd4a616a6c2312f5213e91dbdfb35344c5d9c7435cab45193fd499fa6f5e31ab83d00ba5bc58aae10cd0715ea6110af6f84d249795a187a95dcbff80daa1749383b310e6c1ee068247a9a2e2c321a81596a2b99a0c6296c9c9b86525394313a38ba1aacfbfe75b48727060e14985187ba0242012d0c22c9b7508194a8c04e825ec9734f62816d4c2d3836f085b9a4d6bb97f7af0ec2a85041948a5bfd2bebb5a1a5339ce729ed0965d2ff1598f3e1e533b95266c4655613c4e21abd7bb0ac82ddc8b4d58331c10c31c8726a981eb3d30f4e28e9863814f42bcdb1666cfa6729db5206317db924f669482766561ad27259112aeb6ba8970fd52fee40208afed5fca1e679942c532456e1aac12a242b3f56f55b592fd569fb384291a0b4ff0d8682e2d9caa8d46386f0ffa8a30aa9541380801f27f5b60246c574b1ca170dd2ea886bfe473ad6e055d09bb62ff5850410e7b231aeea855da2aa8a41b79ff88ecc025902d5298ddeb2a84f2caa44f7fce1912de93750c51c3751f352a5034d253f986699495c1fd794bf0c8be082132943c1896959f231804762f5559b336de265e0370c719cd9ede74524f81dcb8b113a10e29df401290276c786cd4cc09d5d7e51492a054b087d25001c13bdc4bf88100c13d9221e2551ce580e9ed18cebd617aff59fe07eb683a72bfb8d716e84a66a252807fc2c67a452ab3452569a9bd95012a5f94f7e24bb6fa5e83a53713ec4dd8f9b50865730b71fe236aa94f6bd2d34a8c97f4ba56ca4bd803cfac2a9f0953420e4fe2eb6862e041b5540592d9200a09f5e320e9a6ddbc34585810912d0dccc79697064241a9d960d88a941075580053b89728f0e1e893f31b71b12da846bae282b62ca40f9dc61598b2ee2c32dd7708064ab0ac6941528e99a36c3431c5988949973599e47c4988655f5ec961646e9933af5bc9490d159f90a0fb61fd81c8eb8b4771298592e20f3af206aab923a862a3d9570344d21e271588984019e7eff9a8d581442f954c4770eac33e2e251f0c6c8e10662837feffc8245cb11920f7629718d6b985651616e9efbf30c5130bfd0111922889ae233631b11014f1206705d7a93c0f14994f68a82a14e93528350f01189a024391c97ed78222a2300482499a916a2812cc234863a467f923e046446067cf1f31f120a1d546a834a7c360e53fe5c9f0c8d712064860bfaefb7f02a0f3026bb45e4fe73c893c702c86e4bb6a3a5420af1f11c27b43090bf5701810f514eb6ac78165854181f0f1dd3ee0b53263ac31b5dc50f3653eea8df19476688f15f9603612a92d9e098aeca8a5ea8142336fd2b8252d6c2404ab3888500722117d23f50d6231f6876d6b6f2a26eb6b4e58c08877ef647d11be216c15b021e5e33f28a7e5660dbdba11ab3850b0393fce875a0a6ac79fcb21c7451d94e35bdbcbf4d778a80e9d7f51e6b18ebb9e70a454b3b0a26415f1184d67df86be84e68f27e5688b75b5d5748229b4cce523b09deda1b00362eb65298b03a99b60f58483d025c8a5a721dd9a41cd5a248b9d42bfd72202d4012b8b395264d765dae581d182b8e199e48f139174088bea5a1deabd1713464be68240dfdbd662251e2d264b29358c20f646c61fd86ec06d824c2271fb0318f10a27dcd97a9b0e2d3a04c795ad3e0d8e6e9f37a393880d7d3fece448d02d8defc51d8525032931754eca9756bfa267700d8538113b11dd8d704a24225f29ceda521abd31d06bc34e8bf6373d3d5c7b59b0835b099830ad6a61ee3a4fd5cbb92a2f66bc8b30cd40c89cd434e833d104c6daf9df3d67a84800800bbf46a75862ae4b13e0323358e492ec085b914a2fbff3d28e98d339a616f258f9efdc8068be066360848fb02be144fff1197f7ed3a7fc8d9311913aeb9dd4954519adb2300ce2ef744ba0528ec3948f1336df9121292b85cd95fa5a6f990b6a690d3c3bad16359cf77e4329e2fc89054ac03faf94ec4f69cd549606e09660c23f92a2cbf2bb2bd46dc13dc99f772eef219bd41c24d50be0706724fe20cd1e1c26226fe3460bf41cc057c782bc89f3e5a9b74202c9842638882dfd5ff8248d1c2071ff8fc52d22405c1fd91d99e4f1ec0170a1bd4479c560c8ed684a345fb8b5ccbe461252190c362936999eda71772497bce26205def90fafa4411d057e6039216630caa963a7196a1746b59e73b91e0f328c592ecac14cc38d466dd97792a5ae03060b5e26050abab52df9863e1f24d8914447b71c39a8a42a38241dcefa154e69ef201ebec2e2df37143a528bbe324e5b2d4687b2b6da4b7c898baebf42e71e3e645e280bc84080b5f0641518f7f97e89ebe074be229625d596d321cf0cad8e358a1ae130e0d56453b8beccee1a8f4c5c5abe542b18e6c5e58abe3e6eb7188c54ce02afd9092bb2a22d2419e0eba9df7e0ac2ac8a7d6144e62b2f28a4083b6d4bad4134ca50e725c1d82d288d15ae044c41c49a71c6f4e68175a0fcfd41f8f4a0d7f6fd64276719970644709808a528d1bad143be33482922ad7d31345f76290038fbaaf54aa8ad795ceab8df11070a063b79012c831837f4e1b969b685d8d88e440211c679a264df692cf4959ac96ccd1fb976b009cb472a13a8f7b853d16a4adb06d195a6e60dbc9dafb4a103fdbb06a4ff4baaa193046aca8f69f3efe19be810d08bc6b83c11087954475d0e38e2f9829566072c3e69d3347ac3e4f25310d88b9072a9c48278834e70901fc7a082f5b5e0f09a3f85a3253603a7d10011aa11fc30d5293c4d57fe56992342a2e66eb60346f2d7f6c4d18dd8cc6d7683aee6473a3f0f9ea8e6fd1f02391f823c5f045cdb20cc6dff0ea2269544d9dcad8e76794c57a5f87e610bfc3bd22b07d7f94f00786c1cc6c92d001855989b831bbf7fe5d189686f6ae52ae67f91f8f87bad86f978fc5278a060df3c0948a2febe4639dea548d8eced34292bead3d74a7348132d6604b9b6f68546f35e1977eb2e45ce609a0a25db364f2350db7632f7dee01bca235b6e44e27072cc66853c6969638e0cf958e66307c6636ec5a2c1ce37a0ce35c79e2204cb1ace371115124e8249aa228173477f44be82abaa6862ad982f5b7a6d87948fdb67376105d981e22644c57822cd9801eb644bbf581b3163688052b72550b121e3b6134234f3dbe69620b4fb9e2a1bb2d1ae85d4097a4386bc884e70190a4ad97fc47b8bfbfddbfd5d629e05b49f06a52876530a7aad3753c3bab87afa23cc85c21f94aa60e0cb25f220ff00a576e341df2d1917dec00aa8553fef603f1c1dd24aef491b932b6df84d784abeada098583e7b2ccc8d400408240b3fd58f4dabb56c648a5c3cef3019ccab07ee1930a7db4dc97e1845097bafffd58b9d22fa9ddcb9b704214fb7362132f3d094ddf959a159be08c1ef279465ca2f56fd7f2a23216346f91b8b0230a35cd75f8c694174e416054d2919350bff89ebcd1b67fcfcb7f821034eff4b839e85cefd86d1b995115eb8f782cdac6390cf3e284587ae3ac91b46843e51c7e32bcb98c6f3e6a68f53a2299ace4ac5a8f89ad3c8e9dd8f970763114fd0e61318c81517d4c7fbfcdb95d9eecc89792afcfa718ab46e947013247966188295370551c85aeb2ad091495c54fb4a341d45e4317650d498468407a5e1199088a057eac11f0f76efaff375e166833e0933de0cb6e978b7d55a51e4e57afe9a7df7330a170e30554c9bf2d36ed12191fe73e3a310c0cdeb3a47d940471cb04c563097bcfa93db221a7660f0233a8123e68b1b66df074bf566871ee0365bcc68ed170cccd943dea019fea530580e8eb98822fd28fee056b70b56b65b1282846a4f77a3c0ffdf97f2f20a6b72f870d6dc38b6692752c15dbee1776c39f804d74356cb4137fc65e16fd6bac017dd7667c9a10eb2d088d06f0e03a989e21b31bcdf30fa1b6e7de5487f30c45a28ff32b26c7307f6755ea7b5af20f4643dcce820c47e3c512350aa0b59a3918d2d842706078aa1f896971bcdb8addc668199029d26a543144d03d1fd65b49308b5b3ce0a0c167560a198682d5ae25f34554aa6f12f0595b363a34b1eb8563f6f535802b135908617c242eebb50b8cbc2cc6813c4f104b7c37e7ff34048304370ab13d30e8fe19a28bac5549f6e2931e9a3f8d442799d00ae94af7c6e3600cf35ac06d9fa50b2c4b7d4ef88514acdd8ef7200b2c0a91e05120ae8ec53b1d9d6636594205bff6f84ed927768352daf0fd9bd6e83e720e0cfd1cd73178f179bdc6a02042fb120ab33688bae58d6e380113f3cb6b21fabf2526460defd9c03c5c7a219055e1e4ca471c41710691872fbfcac1f50c8a1fe7d7dec17d66c33bd0bccc314a0b4e9a2631885a1f3df67dcba0f0e28300d7fb7b1f989221ef1a9d8b21b6cd08e1e1d6b4efb6600cfc46c87f3e12471f51a0f96afb200d41a441590afbd72d1e9e677df236ab6c112021ce5d0bbb529416bc1e3bb7d7d411ea98ae647a4b48e866f240673bd616b752bb3ba611878b4507b0959c2be4327dda8faf21e5f3bd10de804b518bc7ba1067bfc88aab2189e50a876a83f311e08e2948ba7f5055816cee44979616570b0acbb3aee9d45b91fd0928ff3a4b4761d71062e64826bd7337ab9c00fd1af0a30be04bf35a730cc076dc075f4bb25e68d28ccacf0f7b03d208162a1fca8d4722c8020492c4d403aad2a693384d438595dcaf405059f41348d722bff9a4be0c9e7f53b6fc9193312dc568c5c27e78d6bb0123329fe562b34e1bdd1e6a05ee1d976c14591336c4acf9e6e246268053441205bdea11090685ec2afaaddce46262d9c3f3f02dddb7402dc74d42fa25756738ee0fb1dd503e16267ab574833cd5014ec8deb322d0af6aefe3840f9ae81cf2d87adab820580e266c32ad6df2b966bc06954a0e62936974e6c5dd85d8b431f5208370c92c37fdad9fb78e891a14cd218e7ecc7d01601855464aaacd68d91700ccd2dc8be2e21ce6520bc8f219974cafc642041a63cfeed5fa331154e24a0413e67138017b31f4979565e63c852b7b6721d724c405f78e1f6b9dffba93f3de845596ff5c2b4241522dc592da4175999446ca2fc1d07781df2c2b01449540d2bb16d4375fbd5c98d8590909b872bc0ee18f50283a763b0d26944a5ef14087d37a1cbce9a914c2b35a5eaa2d5e129ce5a606041779a241e36ac0925b7c2e85f1c5eac5cc2326bfe3a514781feb269bb905f5bf766e7737b7579e160f3595ff9b9bbddb0fdf69d2c5b63f0de6263f0547bc288feee890cd0dcc3554286807ffa27f9aaddee0e0607e189951dc5017d6b4290cd44b4d87c470beaf52e8fc1aa7a226072fe0259db9942a90f0b691802a518d6109202300a002f40a1f66530dcceb9ab4ed4798ab94658fba2206f1468cc07cbdf075c9e62af29306acc39a83e844c61428d49c69228f9f052312967b7968751ff3f9f4aec3651353a0163dcf28746c7d6b0abbdf96edc932941329dc71b4936a37534ddcba36408878133a6da6ec8939c08a158fa505da4b4e5d5952368a9b4d1328cf81b040a4e8c01267def160579053da33eef8a8589516c5b90f24033c349b6ca3607009a12e63f94de3d97b39ffe77d01382703e303fdb687908e747906c9d968f8ce8890a5c0b9edac2dda1741bdd1bd27403e1cac94ddb64eff7070b8e0537e226058f60f92c0b23dc6f8b40d9b10584bc44a6928fd312cfa208998dc1361a7ce99919ef210351f21e186aed994347627fe573a15b6f7dd48a6cce38944c75f3d53dc2f1ff2e56ef36f4fe6d3c214f8abdaca68be78257fd3a87c8bbca13429ad7d77ac09e3ea6e9aaf23f3d9ad02f0328246983b93aa0a4a7ba91fe82861b7978e49d823e48bf063005b4eb81a24a8fec76aad56b18b4344073bb6fae7d96010922e2a1519b29ecff9b531f5310eb6b396c3e53e1245494981cb9f5ce2fcce77d12a134fcdaf5ec3fb1818732e77ea8e4bda4be8a63442e50839b2e91cd5c432755eda3b4e9a3c0e2159b0ee9be60203dc6d80f05807fc2189d9b25aa3eb20368ade9161deeca609928a0878599a66ba10ee1c82f476f47ea278d67c6153c126a640c53e2b0dc59e3c19914e0397b2b54c65f72345aa2f18572e7184d65248f49376fc1b48e3bce390ed455da1ad06888bcd1cb7bcac6f9f367eaa00ef6891470c43255766a7a6dda124a6d7c4edad5117cb3b070ed9213a55da93f85b03eff0040649e7b9c5aeb65fbeda528252bd31a41891a99f5915291050b59ecd234c2c4a860f1f459f10095c8866e1754f69050c327fb4589c00507ef8765e87393ee57d4298e005fff5dd473866b2111f194f3143b688095a1397acc2f96e8460f86ae96179caf1073bd0d239e19a41d533710c920ef4164feefa168e9c19df6795a4564b0d532b423f5dd16b7eb61588a7480fea0f6f212e04fe8053728567547d011eb145863a934c31d7c069ee286e3f1581abba4aa6fd95f72c5c81792ff90627d1fc4dbadf623e80350c06b0b138ac5ad4f88ca8599b04c65acf7e8b3b0791092eb93b9685847a2d7bb2e5327236e3b869e4df5bcb3d76ba63c3a44223a779e7937ecd7ab974e07a8a3f381844536ba91e85fd14bff200a9bbdd5914417aa3c22e5777ea5000724298c3a4e2937a6c0e1e443350b786f09d91bacb247900f651c3d7be974ec4e757ec449b047beca1dce60f8551ee8c2a594b1277969a488bed1466cba20e8283d618b1b1ef5885d3cc2e72cbf0e393d4117781ce8611d1adc8aaf15f841dd284c4182b2263b598754ba30ad3826dceac537f02669e25afd70847296ac3d79209f4b4f135abbd4c1f4ac9ed4801e9b2647b4bcc1b0c23d90d41d30207d704ca9da15ecb90fba069e677165b4822e9a6f8e53c730693ec4b83491c8628f78ef84f8405b36d9a9f1354fccd82b12a5d66bc27ce300af332135fa420d86f8b02980c88c2192048a94470300300223b3c4478d7c68e4eb2678b99c0fe8b233404a9aea84976926c417e0a55c3bdd8812a53261c261d9bd410207475fb9ee5a745768ab32234957440b7a23a4784d5c300d09845d27ccf7d63e2340bf14bf5580b32f06bc98cf1b06be0762fb8e2effcdb94be17a6f0df70fdac6ac15e5cf116605fe407a4210eea9dfb313a4f5ec84e35f795bf2067d029feb44796fa298bbd4ccff932aca8ef63f74d1114f919b550b713e11012e578d2d551182ea02f9d531d0a75f7068881c1a8e0f68ae841abcdecf6225e7cde2d565312cdb926459aee06f963e66230e376e991663b354360f0b73fba4e7ac5507a54b8d03c117189b4f100926a1459a9fe8ff537e480274f769cc6e91c699093f3e57d55583b1120d66e7678de4a1c4f0d1a623ce7020559acabf583df422db2005b7899c80e589e1b5c8acdd38ae90ec8cd864cb8275a001fe4f0581051fa5eda2ac7a5c27f0b13c0639f3c13ed7e01134588efa49c64ea2b5962d56f04fb5a8d376b9de831ca297e778c3477d3281a6a2d968fe85449631401e04710ec4211cf0d6c9314586bee9ace8b195e86b197ded4ca22dbe678194dc8200e9e90aab3853bf93f1d82ac34d2acc64005663d261900fce8345d817290321b6b69fc911791f9b75369f418ccad0391f756fecceccdb8546ddd07b3da45d634efffb15a79887dda85b61a92a8b7d31e48c3a24c551367c83de8691aa626f75c0821c0a51e7dce91512cae90f55fbc07a084541e6c2d9244ec2a04db1f87d04e1e9626f1a1643f61c9624743b6ea2404332bbccd3bd5181ac0405af9791bd8454a45eedc8062f47d53c43432ed44fb04f95d4140ad78ed4ef6691b46c96a6897430b0219dabbcca3522b0d651b34578da4867d327fd4fffa6bda30350b394bd7318075377ccbb85ea795362b4682baa59493125caf0e4b30444ab2a9ee900779d14583d2afa0c39ee95cec03b87b3a3ed7b51d8f7888b94fc11513f171e1e0fdcb026da852fac5a2c4d12d088743cb473d8cd99182a96aaeabf18274ea5ac94f339f4f241406fecb496127f4f781ee5ed94061b167ecbaef10f95407b3094f87422400e442f8f1ff4ddbf81952c80a61439ec83f0ee7ca37090f43ec076ce819167637cb2450feabb704a62ed45d1cf2d1dbd11ef55c8c89508791ee5804afef460a6f6174e922e715204c83755e07bb8e1f4ae6a7d9fa9681f6213cc3731ac47bff8df3adac67673f95a91f7033cf4030fa6324d25a4c65bd2f91aa9971e4cf5026cc5ee96b1fb0b71a5eb6ab0e158f30421579fa6a0188adaaa47e19172e0055ef33d9d65e70ce8bcc7ea53ca49bcf523bf0cbe443df12e4379f27f757fa055f771291118e845cb9f85e3cf1e2b5d618e6c2a9de1c5889e910d0b20422f4c54b606b716bd8f545530ae42eab8eede18c4b902ebb4884e0287629680104404d846ae7c9ec897badc2148562b6f38fc503e9b3800a7ca7f72202f4bc9b995e02862266cbc9789c8c2c3df7b18b03b11538f07ca29566f3e9c411d6fc4e448407e7cea93e7bc2c7302141ce4bfe03f61ff063b5a4093ef56dbe1d3db803d4fe7966bf23c55d6eb2cc889a666560ede5df0c85a633d540b26ff0024557fd97928d2a838a7fe0c208c9a167338bca621e29ec94b81bdea6505c130ffe6478f1e961913ce0b4f60b99952505a6f0592413628cf58a4e204fef85e2e2983d5120311efa61582a9bda34e3971469460c32718cc6c879d4e8e8f3c12412b68663c0faf42a8e5983dac7ef6bfa8b589eae1955a669f9e85c00237692c9c198143e2d4205921e4b6f25f88cdd6eb42c0d9dc120c75b1aeed5048a5adf04e132f1b712f093887aa9c509489a1239909ca39959b8241d8138502cc8501f063c42443856d07515447196b84673d97ecf0f7c3a46bbb0342dba3cc755c7d91fa721c0d52b1562e6d3a9a433571c75551d794163c9cc811495c508cbbf029b0400a4ebd0699b0a2f5b7fb5ddd1846c15a949dc09db494393977842cdba3528af48d8d516a6e2ae31f2ed0f4c363f0e3bcf810b188f1cd6d786c711ec15f359d0451de79d0828c0d72fe639c9d5076d692b36d3cbacab204d39b3cedc95207da13c41891400e1596bf6680080c08ebcecd6dba65887c780a43e14f73666b47974aa78840055c410cc5e0404ec1a491cdbc056d4576e6d5ec2e5d5a936b4e5edc54d17ce9b1126cb2e660b5fd7989c0342034fe5cdcaadc7a700d1a17c126fb884418a62cc3ef0457c66f55cb78be99dcfa85fb2f607359837ec05b9b9041d6badc038abec51a3c8eea636e1c7c49f8fc1b3167eba483a97294649051b26917076ad10e1438bec577e577a36b5621c7ad606a9db42f7a7ab2142505875daa430c62aa18eabcd5ff6c8feb8374b9fbcbac8c2e880c96bd85f42348ea47a340ff0fb48f5a9f08210fc3a2d28317122d4675f99eae9a5700dba91d595048c5e72f70f2fc6b9369404b7ccb99c0256a6c1f5a01cc4ebeadb4dd25a5d380f398824024666a098745cb019e9140b7ef6907037e65f09b68621b0db3390406544407bb88728f31270d33a9673b2ab589f3f123270a6ea4d21b0446f252cdf81633e011a9b8d66f40ac8fae2abe7ac9aa0d5009a352cdb3c42eb9636f93f86e67531201e32eb00329add1e4d40121c8175954ea0d8c5dca03eb98872e67e438b4acf3491c876c39df622bc59b73fad563b9f83e4335b480323640d04052af341a8efb7682eed6ec750df956086a67cef0c16748d90499744d9459b3871adbb042a186a64abe97f4d87d0d47a1e1a08a16158752489040d901f284243da8d7cab96dd9559c9c76ce14651cb3f3be402e8e294dc36593356ba23a517071af04d0b57dc07ee2cc043223e067717a414f44bed54408f5ff1d43cafd3a93bf4ee0ae6483a14add40f3d830982c92a32b856a765d1ce37ab4bcb4e6094643ebfec7eca9059542f45c5acf8d607d0c7f00b84b49ddf765d02ae20d025f4783412eca396dc70290348b6d0cf494cd65273aa7890d4a587aed12ade34d4c0a13f9567424f29483cf3ef3cdfecfdeec6f90ec4e310eeb8eb25df1dad9ea0b40623c50c1357997591bdf42e52d957a24e5f446d2c3b21a6b4acccaa48a8b8cbe1265048ff6540b01cbb70bcc9f1bbc9087dcae68a2cdd0ee55d8207c65daec58923997f18ece57e9a7b5c5b6c5353db929e1a11944fc169e0930e15725efeee1875ffd862af390653f71b67c1e4c3bfdba055bb2df6a50a69703059989dcc108e9e14dc37cbc5a8904e94841db4ba5e64754d7cee67fc9fe02bcce134f08fe7cd806cf6a8d850f5292ef570b3b3ce37b7c76de84391ac3fe55ca260273703b11d8abe7b78186e8ae5ec778f65c12da40e8eac580a70d83e6a3b0817d9710daeba299cc4de255086c4a0898645b347b05ccbff9ec111cbceea523f3c098ccde3807df84daab9789bf85386e9933ef04a20cc79c2212d98f4ab0e5822102cc62195439514afa020045dd9bab4e89279472f240119d601e885ada824ea192725fbc78d325c82b15710cd903919850554b68174b3b8469d02eb1e5c65342e9cefe0c15c3b51436b2bfb9cca56594f78d7ed5bb0d2e272d21c529bcce613e1199c8ff6300615268e883f3b5ad879fd09f5886b97516e048d1fa4cd54d7e668709bcef06baa4b47a26b6b025b46a8e914b901c8c2c1296a8121f6bcea1631b3e724fdce92f53c054ed15e31ea29edb2b1821a3ecf4eec9ae45424d14bb4f7a4294ee7673036f086f15aa20f4151559766195dfc26ef3743ecc8d6b97910ab056c73ec37454df9acf15f104c0f47c85b1351e54041db97e0c31374694ddf5a88accff9e9b475140a88d9f5bb6a825e6573f56dbe7574250db6c3d9f2c5efd651883f21024beda4cb4330ded857a891ab008ae2b238eb59d4893217e4180fdce196f439fc53e56bc5d4453417deb2c0d89aaddc47aba000469dbef4be4a036a3967394c60713fdd2bc5b03cceda2c8d071792c2fefd11d63d35a2dd66c5fc3859b6984724d471e4c33850a814955a8b0a6ebc1df4690cd1e68431f808bde1eb2bc8776028c4484158439053cc6113c68355fb8f409d30528971ecaa0064c87028e8b8974c73e46aa68e9b04258865905af74ffc998a39160acf68effff4ee0714945d8f9de31b80a49860a87303b0e512ff01bbb2cca2c90981c51a9d52ed7e091e9e049e2fab3671a0be428a69e53eab57c5501f288e36a347fc3f06c89b179a741e59919cbf0574a8017f825fe050489f6aea012fdeb4c3484fe455d4d056a8bf34e03f30b866032e250f3a8ed6a060415b172d84cb29c964442963c31b3e242c520a792f95ab218b4c9acc13484b9a2062685bdee7520c79e9c3115a479b742c6fb6b6cb088c74784c7ab1457fbd753c0ca1220c4712494adb4d1804c5dae3e49c9023885ef263090b4a8c11688e00d1fc63f083f2d1089964bc4b164cc6d9b79568fa4d6ae2f4714a5521680e27ef0c4bf0ae5f7c8daa1ad39e24a6c065e021d166ba05b1b20535374b20f5c611d6c04b1e7b9d71caf09076d0117480ed377b86d92e992183e1ad81a99b65ed4c190e7f9df647f34c83c1990d7263117f2a44cd64000414623985b0b2d15846f1488a33ba0daf5a941403802d0d3624b105ce30b7f346af5e53c7a7b826c167a4a38ff3ddca79027619d20e2a7f871b9c4a042dc529981040a39cc1a65ba1db8b620466e863d6cfdd6b3060c7781455dc9a1aa16370e41912ea43db1ed519e35207a2f8b3e27abed020a300087230e2f1b4048a593bf8d0066212b5836ced6d56292d3017f46f2c44c1693fce19ab69046dd964b0d2f0f24f5164325d9c145a2285c7f07e80615a579fb86a996d64b6ac8ec544c5cd8094dbe72c2d548503c2a5df80d94f2fe821716a18f3a471e63364a4e40f7e0eaf70912af81eaa9d7797f8ad34c81daa4f0374b1989e895962ce9c4e004c9cd9dbd068a41e50c4f3f349097fec249cb1f04bd060245d4eade4fb4c0584482a214a38c8e99eef99a793417934854cde716f875a2df6b20460d20a9a871358058822db19e1fd74c9bdf4667ea2836b483c06ac2ab7a0d10f79850cda9e9d3e0352064558d14ac821304f18b8f9f16c1eefb05b4b4976b7dc01ff51bfbd724c0e2a115806e9136832ec64767a958b101838a0a3c2692bfbb6afa12488556b2015876b28ab55b663f89a7a0731e12b28138dd2f50a275abe153caf4abc950c8a7c5f4c4a506aed02640b736c3874125dc39ed4d31dcc0b84bb947c3e506d7f40d78051ac529047d5771919e277d8d0f391d6f086c208257d923cf43ccfd89d05aa5044e9de9a1334e36c1f161e71a947f776baa2964034051012f30a61804e6afbaae2fda68a8b627d239e1e34e81c375e0e5d0badd10b79b50c01fa1d81da65932ff651536e58d86653795d2957601230fda9a64a36b10582acd82d9607bce4d0607e2cf773c71f9e537b049f88e0c946942f9bd3207c96be9d0a05e053a62966b59f27bbf716063cd0e28965d0873d503eaac70f9e0915ebbcbcb852ddd1823f2a67453298e80265a7e1ab4c936b1c9e2ca87ec1b58d1da0eccefa4a3c176e134bc0603d6e2ec3580f315b703128133ecd39b7740a8343015070637d37f9b3345df12d7cad114de6b76dd182a5dcfec9da01ce2737ff8559bd6b3a7d6da5cd520aa034d4898848c0957ced6a0ea33794436925e7c71665771c1e9310997fc5d4348787cae234442c707775fb64bf78f735e7a0477f82d96372fc0e5d8ce04975924f6d05aee980a8bc383b31f551816d6d5a3790f732656e93299af92cc9f608310030f072ab027548116e4a92c5a88830caec966095742aed0249a40e5dc7f73e5c1b752ac6b8d664b0c03590ef398eb6553af67dcb8f71ce852df0e55ede5e4bdd8da169c70751da50e5a22d52fbcd570e0b22504c6795a0ee211f6d780fbea2635181fb5d8cb71af5ddef8c26a9c2890a4a5c55f6bf322072444a35f09777b2f8912cbe6de0f8cec0bf4a5d12a571778fc591dc7aaca757c37015c20e1558e0ef16cd16a536cbb440bfb81ea63848dc67d74ee0862ba93b292d3839179d676af053886372ead8d0c10ef15313340310c83167c80fc846f9b677a7f4798377132a7443c4b1ebe4531ae61eb0a8f807932b7d88c70b01d088a439f69e2f898b0d3640042c7fe75050a29f8ab021161c65f8c139d5926d3818cd322c7d4421652f45a87d418e13a1cd5b8b4e32a9f633056aac1810de39bb702344ce61525dab67f33966a707be62ff78e9582d1dead72ccf4ea9ad8fe7f546aecb17dbc03d28ec7caec6d989e6122ea06e9ed6ca95aa3d84438de45158348090b59b552324fa99917336465d25e78ccdab5db0e0834f8e120c34aa9ff917df48b7bd6947ce748d86d41ea14cb4e49868b1ee448c2bf6abbdb6a8da3530c7bfb7a955d2feae6ea59d6c45e2bcc4d5fd4c5845180ae0415b3547d60aeeba1fdaa4380647d4ddc33054a9521562b5b0a0498ad8a23e535914e56b6a2f259e5ca53e42b699143a724a885f132e3ee0a7d8a2a2b01585b74d50da415c960b625a3f0584b60e8caa9dab099e1ba00d3b0a36e348a3cb592500c0118b470f6e3b36a27cc6cb52b1efa4e87e0e5151188649790b04ba112d9cbd7ce38e2069d894110a9cd242b7574850fee71d0a64d251febefed08da0a5ef05c350bf633b520c7850193adc126ffbf14a58a3b8875282025a5b8b783841a461e3f65a90a735af632c7050d7a7aa8c252ca2d646fd02254fc0c5f8d12ba4c38394fbdc395d8653ffe4ecb1614c64065f3c738a2fa402c1939f45434218f245bc0333a6a9ed72ac21c659edcdd380a643092ac6344d0d10aa2460f7784f7c81001d3dad8b8eff535fa305acdba969a5f9b9fa46f09c3767b6e99160837ca3e65abb7251b4e0bb13665216209f5c3050063fb9746579b69a3d33e7cd61111434f616af2b239ebbdebd0015196320db080a0f24c1b1e9c21cc4821211c4e8008b977551ee8e6d45e930844e2feb9a1642d6808123a85de80b4c182b61f07d80e7b62c6b251417808686ebcd65ebd3a21d1eaba7b1a5ef0c1a9d53daf9f0d5f051be5c89e23f9e3f876b26498433f52d24345ab21631719412bfc4d398493eecbc2d559a93fb529b7048b32763098bf9da0da28fcadbc58354a4d4f7ef4016397870ce89b686e131f31f73a663dddcd8daa99b1135dbfd9fbf9325cc878e5f3eb3c4cba79dc402a75f79a7ea6084b70dd08a9591427b8f6795203b530db5d36a7aa899dde432717b979757587135c9d060c94ea359494c8872a4f7fdd42f61d424c23e6a1a70836e893c6106f8caf282636d5512d5f0f50a7884d356a9110552bab0e7cbb7f13edddc60909264258bbc80e1fee9a07a53b2f5e505fb62768f7ad777f3dcf29754c8e8f16e406fc27e8f546a3570a021178705497a7daf0acdb5a97192b66b025d6615e99f76ef099dafb07bcef84ca10bf18a0fa80d59e3f861cf42e30fdf87a5fb1615ec753128e3bd2251996f891e0e1938c52de8ad121c6e0b0b162f4912217fc3c0dda41b6049cb4c77d6f27e621b1363d3070cf19cf76d2993da51c417e53ab025ac769bdee58e0937f17132ba0c8ffed736ad53f4e3147caf00614fd1ad4b316d38d27d4b24c828b8461e924c031e2c50e8fc46ac22c9511b9b0a25a3298a2d1c038dabc23b0ad36ccf220ec68afc7f1942c8b15d9a329b049201b8a10901c03ddd3a01bc8942ae717895c9a632c202987c271b41518c6bf58aa7d293f71865608b97cb3348b123b7635307b73284a46d5f1bbd2767da964632c69d109aa98e520a420c2030767e2b0149c2733dd32108c555bd7e9959dc360da380085968e22455a98829b3a42eb08789075358a8e9a204e3555f2b08070e5db6a993a7082ea68114db1a6692b2f07605cf1a8c7302e040e39897427f0045d20ff4163763174278a8fd7d48b5554d444b358933b1fcd19721995d9c868caeddf972db8892d0ac40e42bd3b1c4055a91d378882de3148dc0337dab6cd5e7033ec0015fb322ba34ba400f2b28bdfc44ee77c67b617c8e80fbf50aaee90100b1a23d8e71fb5991b890b499e969521467710c27c1b566804070732b87ed6e72b18a114498551388581b62995a2989699b26087ebdae73406296929655214a710b76583bdd48fd7e70d5b660accaf2140be6d9692037d577e27dc49ac32aaff288b20d258815274bc41d76f0562169e9f69155b003d395c44e937de1208af64753e0e62329aa6663228a3a45dded975a180d78e64663c4a43176630cf05bed1b41a3bd67567c5de3cdaae5e42a4fdb1b6e3c2747d437a8381bd0c62afe053f5fe133f14b557b2e81dfc5d0aafbce68d1104f92e56674d9f227c5b45d5ff6abf57a731e44fb960a18b35b139e87b6e7583316ec6ff0064d81e395e833a3d61d14dc15bf70b197ae1a39e47d5d3892bea389b1a46472fb13416f906f22cf11d9c49c2a9858b678cbe7637df3998b2b3c5b3ff0a55c141e2e818817999c5057aca609ff426807322ed5a125165bda722716444ef0b8dbcdb9b18bf79dc6ee5f2bf9b78a99e7de84986b533a1f38186c16258ea818561f667590583925cd85614c83f5a78109d650f1917096b3d163a634a67c7e1a1301b9d8b4ad5445b815936b94364d459951fbe1a73d7c1db035dd1ae0223234254da1bcc1f680f95c57b60c5bf11638cdeea307101f633d8614981b09b3458ece96b497d1880883768af286e2f753e951c5e5c8e3c1bae1e34c49875f9a44d422c96d237ec4c082b6cb9043510c9e45caf686d315f7b01e4dc8af39a59961f6b9c8aad40465b94f02530b7391369c615c9264c94514a43d55c304453c61c566851a84033fb37ee12fd670c390d395c5c52515381443a45b8fc9c5e6520644bb7825e8808958b29d5c660013c02a0d98bb524724dad4543c7bb9474fe5e780d28f8e22d63ee5a29b8ad6622e768a9d251a0ba56842bb959d7ad8d1eeb94aad44b2f28e4de14adb6820d365e0c05ac61df8be2aec6a0198b56de4d5aa65f1b75fd4e0f99d0e3fb858d9ad8c1f51070890d601060f973a04558d8a55391dde3237c021849420e764fc44a85208c3c3e1d9fe360d420492cf8331baa589a65fb97cdc8e657fb055582e09d4b79f8f5061517a521937a2a8f720a557b9dde0cf2650205a76b693104efab544f9867bc18b36616fd6afb20b869986cbcd2a32eb4ba0e30d4e94d683cebaa80d1440e25f23b1fa51eb9c946c54fcbf4ecf0ab9533c544339f27d13e3a0751c91eab087b09083e546794679d8a1a1557178983bb1dfb7e2d08428d4c4555b325f13a78b205f930f52ac25474defe830ffbcba7a2eda6f037b4234103a875e1b804b31e23750191a3ace7c1617197c9b6d9d88f3decc9d1fbee35542388061aacbddea228a731c1ae00fc7775756f519b87652c0710dda46aa8d63292b5151a6d9de9b1501e3b7b96cc58cf874651cc1023e9b97c23130ec51c3131be14213d2c759fc715a27b281ebbfde9ed0bbdac19a10f02e3ed5ce52938a1abdb2de12668a1fac534230751450ef5a3f195849002d14307d0e326477bf8248c09a0679e97e6bf2ca86d8ed24f64d03ad9051e3d21f22e9850ae10721d7b0434477dbb8a6ed63631492bb03c0904ddfba80aa8d5c75f638e40491445e66a8eaacf504edf47b58de15d2c62456878d10b63fb8f3fa390377e67b7c94d12e48b6fcb0be9c24826e8ab10532d39bee9b4c008089987de481a165fa8df9894d828fd633e5b5389f793fdb4b08723dee5c3405abf878753c51feaa4f5550e1e0e2542d4cfafa4b159db6053347343fa57f031f4fd19e5129e18ca1246485a4c0007cc8cb1d5f0825115707b364823d7e54610e25e1eff07769e002d8d4e3eedb34ab497bd3e4e4c7d4894570805e75fb98aaed00873526b2c33af88e0d5fa39aa26bf63cb597774fa0ff46389afd9c49c8b4bc111cd0bfefce791d94325e255f31e456685acc051649e35e1116409163bfff7bb084a2b5ab835af12bf6a8f6e3735261e3aefe8c4146e0f65fffe050393e58ea30f157ae9bc973d2631934a409144862b587c547fa73fe2c9d15b2b902b532db7335f3e56a00cdaad3b39f7190fa6d21bdd05a64f49786c238554ca51038bd67cb2653384e9eead82cc43846ec66b65bc78f72350f2528c03cbbd45ed11438134342cf384168cb28fe9cd1b9407062f526b87910677a3fb63306210f378db1f07b879915f072526b6930022305bdbdf6b011b18ad8d510c1424efde2a6b5f9b23acfec05960366dc164fea1b9bdf8abcaedac46a4eea146878d2a2a90769336f6046a8a2c0add69fabcc22658d8b73c6055631f72c9b8f8ce0aad9aa714c89757df70e984030e3e60d9bda3c4f14c1c84f8072272ef94f8b085bd2293edc69e4d9b649a15e3b4156424db19cab9dfc8532f94feadeadbd466da62ee003e7bff9095204baba5ca6430357f8ad08cdb06c268d8c29467b13eef5d2506d231faec44651cfbb728420e54d7bf431a8fad1920e4cee9f9631fe7c441b5a605c8f42f0af8f7686d06502c25220d9f58854f070de20b9a5318ed0bdeb6950afa67325bb7a1c9d103e966d1adb0709fd18d929b622cc948ead87764b3bd705b27fb0f5bff3acaaf642f541f0f7ff20f86c925bdf2c2fa1a3450d0dd4ae1bdba17966e3f3b581a9e1ba19f490ab88669670ec4a62466c01da37b90367a33c56e7fdbeba8dff5a1de0ceb55b11b5dec8af711dc28bf71c40ba9a4659fde3ef4ce376e0c89de783e31a5807f280e29f5728b2f87dc5b9ecce3e54e1c4d6c533df220b6e1e15904b8cdca5b486be2bea2162c261974612aa46ea0716350d18f5371bdd243a76d0e95b50dbe89561c8f8f3eb5f4bd8098c2cfb65c731c0cc86698243b0c178b09c6bcb6b51ab14283ad6990050db1a001d668c01a8d58a2116b34c682c658d1102b1a638d06ac51fbaae6eb26534d151d5d785cc9cc022561400423a2d108a54ea6ec2d339ddcf818d39e05f8336f99df6becd8091c88e6469c451ab044832897e24ce298491c318143103da7714d364d498b356695064492ce26f27d127554cb6a5db8aed06dde44b0f2d4d4318c4122b49bda2beadd59b306c6ae0765cb9df0122b23320a702efac3f744c0c980ff2579aa01fd9e5ad5a6832d4f741227e12f4a6a55ff55c48688f036765e220b87ac5fe0577085598bc5cfb77acf000c2c3a5167993d69d3062d503351f647cf3a2a8a054b8722ea77edc94851d7038af9b34cd2cb292831a1a3acc5afb5e94b73579f74b88ec2b1d8a22dd0e09b69daae4866328965fcd72a648c5201acf074be7410e171d3a969e0cc29718e6e6d8df5c979476d92392cfb0ccd1cc4805f3a52911514cf383981134671928436d4cd2f7070d156462e5dddd3e78b9717cb05ccc384eaccae69686537936c9147d711626c689dc8050f3f867b72972c9dad5d604ce09047681303fd4e57c13c3405a060fe597666300f41b770413fb391b6043a8580703b8645d1d02fb0d55821ca5146b7033032af6ea1a466efe2f292befd89359e13745add7c792c1f3b7a5bd1a8ca9d8241b0b849758166c6fbedbc58b2c4aec2ebe2acb47cab9c0540b901fea0020ceb187f4b1ee447df61ac63177d1a96ee37bb517e63f24872f6fdec23f8377e536f461f9b52e11f1af1d62b621bfd4e86ee1fdd7072138c2f4b928e49222df43b6a3f7065282273c1d55b5ee6de5f01f95af8a28f7d210b19add5392027d01b1075485f371b4bb805a76b5fd1ddbd134cae39187672774ed68c2beb7f2e1b5f732551c08d04956511413725df4757724b020fcba0f2647f57f249c75d588e058187fd94464a92993c61b8c96e4c311ad81d10cd2c4ab0da61d79f0a868795753dece6f3613b4d2136b1dca53be25720c254fceb490b752bed883414faa54d548a1e3e0c57728aea848e6d2cbcf4eecdc2ae671bcc8ce1b858ee9455f55165bac1b4a616de5ddf676322c42ed8e932802fffc0653506efb3af60d759e476c1a0232a1afbdef419f03ba2cd39a0dd9adb78817e21e38bcc43117e40d7000861ae6c8ecd30392c7ea0015f1010ed5ffdb536db62c67ef352752360ffdf17b27025cbc020376a3020a21cf7e59b87110f86c49b7746d06e1a6038141419ce1d8343a3cb421bf1a480331880a86fee033f59a45671f93bde41949321208ce96d77f43f8d7ae55a5917d0ddd3d359f43c447a99d79d73deabb5cf472411b73b630befed6fde033ba77b7a97ddb74ce47255c8a5f9dbb84b6cdb1178eba6e6035300288e3bf8ee4885362bdde656bb0fe0f195c17fa3f28bbe011ca5d4b4d593cdc85d0701ea251bf7d78bba5572a9216c5b8eaecaf11cce1f444ff121674a3d5bd4aeba9e19275f514279fb79bde5210b71e218e10c0bd40fca6229c31ef1bb0ab62314c3bdc196351e8435b66ea35790338e9e6a7792787f633cbc7b2a718b223630d91d6ad858f182a484035d8245b789a60c69c923561792f4331ee6fef78430e78e45a53f0ebf1360a3d68f6d0ae0a9d1dd3ba19df0f1b40406c7cb44dc27d2385a69e38afe7809b9da9042de0e56c4ad0f51ef896be7ce25793075692696fb00a3451e06035cf21c8e1af07f76d7072620e73bfd6510c34c0908b5b147476ae7873744290b86781b2672475e90006ddff74eba420cd701ed78fbc939df0b318b2675728de6af5a8839c30e3d25882e6531f228e43cfe2df8aaaa242213ebf224da6560ef43c8e81bf0943395641fea419f405601667069eaeaf594904db1f8aad934274ba91e3b51513d3e1d572496d05aadab3850683fc7aa40188b498e0b918938b4b3725abc10fe49ef2fb93676455b64f094aad0e2df282b73cfd4241252a5a2cbc286ffb163250cec8fd1b3f35001d760ca8b3705b1ed03393acd6769d3bb2ee80462c7c9ba1b53d929e2a07c261a5460eb5fb914a77c1022f0968c8487f2c632073254ee52665e6aed4455af3c3b855a5586859616e211aefd77acc45e1382f4d622166b7171f0238d3953851164a633d5ad6b66cd3bee1d2677046d99147afb23cbdd7032368ce43f5d96ef6c8c438074cca0b9b3bada5ffd79b8ea00ad8e7ba98ca4e64743c8cf459a7e16f324dfc491c32a8e14eaabdf35bdf8fee2ce625ce9a6a595b4a78cfb666d5e6ca09748d33163cf952a7da4d27af63186532fc2b0cafe41813035404e9a57495ed5d4b45eafa056c18e67ed0a389a282cae583ca36f616e9a84ed5ae5e213a16b07c36b6391c2f2c269ac7c6c2754a8284999492f056327592795202d2735483bceeef953ffcba1f0428ef3d3408fc3760f27ddeb053bc26e3109e29a0dfca1b67e2f32ba1b74c2683ff9ae697ab6e0e2c24417ffb2883c1192cc250b8c332aba04ed1af09c6d34f554b40b57fa201fa53c9c84cdf3218dfb44a455d321bdc4ea18284f227defdc9cc1f5ca010b20f23dacf24e1557141532c62468e94e1187fbda944bce6452e6c6fb883c39db0ea1e8c71db30f90e6b43e12223fb698627c5f46edde673895434f4d084f755b3e4e54c080d654554a57d3718c25696fcdac0c63c1089b10a8b26113acd31f86129f7656563f36168d8d7e6cd816c7a555c6662d0d2d8b57b54a04a8dcb7ac8eaa2f5d11571177e081256a30810b76aa81fb2c809bc370400cc11d1fe69cd1d144fc120648870712691a2e3506ec900ca1cf23ae75ccd5502e443510fb5b82fedc8b15014e769484d91da9995ad5b2650514ac9f09d2afd6d81770203b92e99654c83010821536cc582584436e41b640426c580438915dce8720b8306135ed9a95392457e2dab0e1cf407f880529666122e0a4e6e8be68beb5e9da34c5d8220ad4e61790e020564b2e2f190c6dd0251337e609f9fad17c4b88a0efdae5cbbcc8ea4c70cf1bae3f20784bb310c119d045fdb20510889048ceb2636a22af0df34665b29635f1553792024008b393b5fddc375743a38b49ea65a623d82610dc3f058d0b9d901981bd31a7502a13e5a7833f6ef4387cd4df7b7a62896e6b9d9f014a25fb41e79448974a6840ed006be2c4614555c38325ba22dfa626e60d46d564294f4464cee164ab7e9b419cdcb18ebd0a490106545f2905de19ecd7772968aa80e5d8ad2c748e0d1bb43f18a2e33faf5734c187432ffa11dfe2d00e06ef8e9b0cbf72743349161f184a2bf0744bde5d19c80944d08d8e962580fa3b0a518393d2d3ab4366a29085060a5181b0c362fb189fd8c78703ca77ab5254d143d38dcfbb8b0ad6c2636384d398754cd2aff4b24ee4194d7961b8c31980be3e5579a51b0d1ca184fd50223906d5181f5c117806582c30046efe2fa4b7eab07b47b84974defb1fcfba1600ead5d8aa88008eacf5639851a4ee34d73149bce2380e58fa9bdb35ed7833a99818c7034b9e7ed30b49f87cd0fc062e842cb4c38a80a0607c50138d2354a2d35841e908f38ce5a6a0180c21034079a0f905dc0459b41bff084c73309cce8f334b29b50af5e9c7a2861854274b4a8ea7eab4e48978aa8e463d2ac15f3dd5cc2359f3d8b881f754e4b0e56b86054a5f853920c5bb17ba08d85c0b18a0d798bacd1a6973464a645a910378d570a0675868bb9e73ea5e64bf7f8f438626a769b80a549abfbb4152a51f45c4e0f97c052665767bb94cad19856352ab3ebe6634ae96874e0f59f27cc256c91e7637aece4b94f1751006dcb017d10f555884bf189eb587e541f58a726b7c91561428cc630655ff7be7f814c12cfe5c1c5a99c5f495b855cdafb18df2c7b9cb9878fa560e1b226d41cc30d3f8222952b21af6ab8ca6ef2ba0542be064f0884409cce6f274852e1a979286bb97e036e97b240b62cb0ff7c545f5bf0098f1677aaf6d7a2f532458c5e3fe16a67cefc2b08f3d440bbd699a8785b5f849820672ebab6efbe92aeb5f2321f2aacfee87850ba8c7e17cbccc242facb2a89123efee57b8ebd12c9c4d25681e09770e057d04638d7fffa5f812eaeb27d8af1f10895c51d8801b350b8485c887c86751917133a2710a84053a32d07410d6d3b3cd8c88013ae84058907e72737e12400c57020dde778f0c381c5d947a8e92eeae4ac75e751f93964e2e108d9a61dfd6dc52c1a959818280bf82bb027e9893fdbb5209fdc3173f06f3a20558af597305660dcb8563c778b53a58508b90ab0e16d4f6a0bb3de85ca603ecf284713118416a18532b8499f857a0450cc37289294f9508666e1f38e9c43300eb84f8b245323b9a1068cfc4c55232fa9b74144983057e65c4cf71d18560880a6265c29eccb54fe6387a45ad49f60c266498212c0d16e841cf63e0a55d15d7c988b4f49d4a0c0e5625e30021213c97eca4e4f2e4c36f962370dbbc1d692849fb302cf8a95bc33047dc86006956777b4783629afc55b7e01cca869e0f4fb2e2b601700e747e832b213bed30c14e64041ddad9c282da3fd4a6e314f784e7dc39c3e752d8fb15eeb3fca42a2cd09459b47ee2a181025481f68b4364e278920aa32a2c5cabab8d5f260ee3fc8d997e5daf9f722d68fbe7c8d153f2fb41e1ae2e13a2ff51f7b9ba83271ef4b446390e60d14164fe1c68194606c3f1a7fdd4a45561216acb210f2bd6ae4aab6490fd83dd16dbba6fd349074f2d03da8c24fec3dc5eda776d01886636a629f6a5c51bd4fb876ad69bc04a524658885c587ff1ec33f188b0b0a4c479afff4e5d6c50c1c49169206a4c30ee73783a61e94c964487b7286e05b9aee6f35cb73ec68e00d8c805df4c9f4c25ba9e9b38ba5bd2bdaeaba9febe666c8f768263c8248e35b02c5375b1c632e35cc52d6ed2fa0ff0031c902eba11f5687a918f7aa1f5eae62a110bebb46081e7253dcc55b4b790349ee66df2575a6990841fb039274905203a9d8ff3c91a018040811fa67a4fa902e2fb6e076c2451f672951573307fb4fd538cc5f8a0bbd62fbdc87404a779c57f84f86f06f4d111c4fd3326f6512616003881c076057754d720acfb2f8bf4974dbe1a01b6c39b2caf773a03fac726c396d9e4129fc729c0e0d8693ddb69e75bb9213a48afd1718f56a10deb933508fb7059ca39cd40801f3124aca93bcbfc2390d9e5e857e502b602d3b911f764783c6f7c77b74a945ca1b08043d47a3a49dad7912fede9a598dd7fa5e061759bd52641308e706e3cc18b1c61e82e50c88cdc23ec271e8aec3d8443a5af0f99d3f15a631d0dbebb78756600606a5a8ef000bed8fea0447f73d320ffdfc4e69abc987e653ed962c0b8a6dd5263c6abc3ac80c3309259cb0d87ef67f12db3e0a4582260e0f80aec25a639d5a079af0e7504695bb6c45bc5792b287ba81839c0d15f87cd9dc537d22a96dc7067603c8b56b453ef65f66328adca9d83dfbf5ff2b23bfbd24d0ecc8030b58bed59ed36880393b7e6b820e1993d17d7dc2f53ba5914c3cfeaf51d94744003d98ab1f5d315fb4abbcb41cc46c640a9135e69da0f3cfd8970874a0bd61368a5ee157b731f64e53fe3e65c96b2f1b218d83f8772e60417e7a3ac975045a69bf31e13d3b2b35db7a219b84641d8bb8aa75da318fa0a768d4555d343f06ce0b3d09f9b3bda35d077886140c5a231981e712d4c95624c26a003eeffc710cce8dbc9d8c54f19d5c9a0a61994df49087df825622f82b3f8eeab4a1c7ca6b4a7f2ee991dd601c2483bae92ffb3c96388b3dfd75d8dd2e9d2dcb2fc9b8e863c0e620ac1f583daa995eefcf862f3f7854d37e15955f53705623cd124fabaf1835cdecf772fe580ee7449ee8d39cfa05342a9b4526dd63af5bf5bb5460b576d41bdacdd261968fee3329df0ed07848aceaa7a8ec21b7bba05c33d780d867d2d17ead491ccb93a81799c83e986bf1a4461b7ad055d324dc0eb5eb7d920350c21e82a8702cf9f53c8da690ebac660fd410dd06e679438e3f8feb90c323c9524c0eaba695f08dfcf0d844f3c7f3a6f19abd665d7100a0540764b4030b68af20c763f7d05a466be4787c19a080834739f1bb279e6b24c82448b0cc8e613b579c9b702e26c6417e56cbf003e8055ae127c1ada984c433a4d43675b7223f729b809cf451a5a75c06fb71a633ede657c976987901ec81effdae85bbe1dba43f81571a721de925ff0473713160038777ee9d77dd6c52695c68d27518c3b4ae855ccd67c00371d86f32c1869dd99c7788880bb4dbb59071d15476d06cea9f2fdd530c22a1c6f44f9b3f7c7e080be15a235b632e5efbc3330c4dd0d7c332a2444d663762b802eff8e3238cbd7b67189ed406b1ee65ec41358a2a193086860f22c421cdc9cdb979947e06e3e1ab7fedbede4514597ae09e455c0753cb73b9a5080c2a9d5e743819f51dc9ce83d93b32927140f6f12c47e4b442f86384fc45cc3d595ef093c4e0de93cf20ea888d9ffe643e973d79177450d3423a19ae6d4aa55225d06b9d1f6aaa3397074f93592132f1921399afc498af9f66ec599a9c4e531ef56190bcc53ec53406315ea16485c94a96a46d482db4d218b1e8463cf51ca46718df7920fd973d08c683a354066e8f0412b43b9befd6251386517755e4f8c718753f4d4d2e20e74c54eb61e74fbd8a38fe654f78fda17db737b5ab94afa8f3b633b2481b176cea914d07c1d9eeea375ee88df17c9832aaf37785fad75c536b5a186affcba77265ce32762f4211449a42147f7bc476e1d8bec4e3321a7f863fa1839f42e0651d50dc124cebcb89a5ce57164c36507db82317876e1648f9c79a14840192f55fc58ba27ccf0cc769597df617f4a39c6039170328cb10cf1f24b95c58fe4fe45579a0ca00dd080cee03b21f17d9f444fff33ca9eca0a7762ece509047b3cf3035fc34142cf509a57d16f86a72ed97662f50dcd296fb44163e90bb00eef9518aae2ee6e3f0e27c79dd414619bc3d5e0cfa786ddc34deef518113e7502cc2052162e31bb8ca1af942e487f1fd0b93bb531caffb0ce30ef8c41d3ad419fdfbd08a880f4b489eeb8ab34b3ca6c10e1e89e8a32e74bbcce952c14b72a8286b3e68f01f6313721c105b50ef8451c0819e2823f8b897584ce8840d7cb49fc36b19305d10121b89e15b99e6436481034f0a6c13c49f5e335d2127c2b4a8c032c77e9d746743f049c8b549c241a257de4875e8cbc073c8b5d4f94caad9646a42c20e74fe57b3747c2f90c5b31d09726f69556ad8df8dde3d8dea4bb98dcd754da1eade898f76622e9395851b42c5f90a759443280f345e78d618f033833306ad87d11675c7379d78e78534fe0f253efee38020aef60d929a6421ec86b0cba08fdfb829ce62aa2c6de8b811193573b8555e28c99ac2b56df4831f3a14b39b9c1eab7fc6e854d2f8529157cc8dfa2cdc75dcef8618aaf5d45d67d9f008563af14ed70a828dc5bff3225d8c58aa85acb0e9d6ea6ca8d827953db7ca5115452468eb9c7bdd1db741b8e2a49b9e574f3a5955fef642528c943b4637cafb0df2b4eee09430e06c605d7c80eacaaf14171a43267ddfe294731d93d8e9d92f9170f7299626520b097e501791e3640058b99f68e1c2f1a42917b0c90039da8c2d7af14e098c69e98eb1342d191641e4b6a8c5f6748f566b14439185b6b2573d2eba3b53432004265284296b5cdd69dd5497672d2d55e2de6bf08c5b8b63478600d6300fc7a25ebe204babd62c29a070459383b58c15a7c79581552789ccf482aa2acbaf5d0ab3689b21685326ec86882c8db5a45b53d9715fd27a6a85faf24cc52c02a7b65d628096f3aecd24210eeb12559b084d150b4a2ba5d76f9dd7cd81148468be10c125c7822c62fba9a16e2b76c221a9580e307d8929fbcc85efcf5199ff8e297495f2cde83950df4877c4c92fed8b2548ef6c0fc7852f754f7e8c396a426ee585a018d54db4b1fe5a81fbceefa73271b65cc492980f779dc927d47ea101e6a440ab23a0f5d8d5f75f0840025e7bc6f2dc65309cec0da706401891adaa4550d696bb92eff6c5533fff7fafed4107eb3e3825cc0e7d59fcc40c58eda6454250eafb797f624ab0d2261277a9af32e3bdda85a180372b749f45fde4cecad27733cd3d85ec49233a9314309f3716d8936c0b16601c5e146138c536927692b50e71909449d50f6a078dc85b0141ee8e29f6123c2d8666ce419c1a286387ded9f96af96a6c9a9c387b7ddcefc901226471b68eb631699281000c6367d42a392ee01916509d566390cd8fe6402a4085fc132a3a0c21ce39a183322315cb2e6417f040c25141eda855edc419f2c20919f4665843309003e4ad47d9a43f2ce219f509fcc92ad5b2002c40abbe5d32dbe3153f05ec32793f12c66563241d23f40959ef545b1c9f66ffe7dd11574a9f408538ed6a17fb9763b87e4b6525b5768335b85ef03fffe3d3008a902e284163adb0573c6b1cef999651c33779754aaa222f6ab563431a816c7a9a90938820174338c91ec486de804f78ed4a009eb9f26d32c87dd28af90cb16c3618d8378b616ceac1e77089f95c1ba6daec546f0da0b3465a4716f6855801ec905af3fb74aaad4f48c24a2b88151803e3186b1f386ff166736be92f4655c2978cea6168fd28baaf80d74203b602e0b7a82b3dac51f60c3c0ab8e6053890bbf723fbdfbeb2fa0e3909b6a2e029e4ba85524307eda8e1631b011a4e0a8baeff8a1e057843a86c088c53edac3c5695c147991735135258e888cec7855600b56a97d07170cea4458e231ca5def802875500cfea958ab7a21ddeb8520294defa87d841cebd6692489f867818013d7768828adab58abd4e8e91ac3940158c24328666d13e08622e1bbf8cd40c5315a840b08167da5ac7c32f66bfd0c54777a7e85bc11d557195e08129f329b179eada1f07b7901f34e8adbffd54e60c04628a19431ff1e185d4f9bd1a29d3ae02326b79c0043e48d436d2ddc09b7aaaf4cd494e4dce12b6439b94def3141531faf4026280c820b8875b4331e2c2922822a4cb808eaf70b677bc1351c8c939fcff2af5bbaa09ec4cfcd5c3283027fe5fe60cb3ef7a36b6b10bbd031de8665461f941a2630f7123af76280620080133907590e1df3fdc977d93721bb2d884027e7b105981b958b91bfafe229eec5ae8afb3e1d308b25d4b1118ad66b73a03db6574f1f58d969f37206d7eb7270ed300918fb4dad2524a8228ab25995c90483600eec37e7652862a320ab9a8b3d84f15567af80dfec9c4ba10fba5134651f3e26b30d29105fc6e8658c3e24ca09cd9b6b0bbd5aa26fdc2cb04bbd499e0077852d454876da5c9696cfd459537b51358249a5d7c57cfdb5de7d4622b30106ceb6a8faa7c40ae25341c2a6a520d936f94f5e7f5c1cf039465dda6b128fbc441b5ed0426cd8db68c7ab92439756ca7dd4e81e2d9f2e3e5514bcdc1569a4c69078d6dcc57eb33efcc23f5e00d14fe785ba7682ea37e59c3ccb7f984a1d06705b39e8f60964b6a49454237fd0b31ccafb04b1b4b70177a02f979568a7b3f8c110d43c5eab78a10315ff89dbf99e42a0abe516da8ff65acb58ba5933b5af21743724523a6e32101cedbcdb71dba24ae1573431ba4a71d49dcfa72ec27bc77aa95b16a41e01265fe44089c5afa983f92237fccb279b4102712ce1dd36de2a0f7323fd65a7055b2d691eef7d3f1355301fa33632a08f2cf5523925f2e3ab18fae5fb9930c3cc426b8f7ad4f2ca98acbadb58d0cbeb2e193baa1618ec78e0e7b864bf514d65811f03666fa60ce9585490dcc300c643fe8a62b8dc8e92720ea70c673e7a8d19adfd5f5a5f5473a9aaea851c421d2d7992e0670e4c05a9c1bb2064109f30486600e51ad476137cf659cb3c46e622ec88797c6af0e2c30e14b3c46cc24a6d04724122b53860a245e34acd38183917d7f22ab0ec5dfe282af2aaf2753178b7d308070dccc9ae0a331b36a8951d6d8f840cb6e85366d60988e8b33cfd89400eec9fa29f610b25072be388732c7d3fc6828e6332182a7880e093f834881b08990061f475db5afd9b587e3c74b73f4f86b0317d67d50a0147e02ee4f7b12aa030b2de2496e01da1f0d623acef6e9f447f751fa58df02acf4ee35681008513e1b9628f8890b26173cbf0e611a18762489f34678045bdb51ca8ce8bf90ec1366a6e0d754b2e34790b4490eff3968c138119d139d9859c30bfd4bdfcf7a266406f484d752b9c66c981c5d591d8c919495fc65886077e147fd15a0839158a0ea66d3b4fdf74c2d80af8c3e63289025acec0712e63da8ba73438068ee709ef562a03756c1d16310d149fc44c20858ebf59db8af7d1ffd99ad50faadd37535c5b368e292b5d6d654c858e00a14840b56b232b7262247d99aeccfd529e9e182811bbce683386bdaf51c3e0605e4417b2023465903d15e61522d34ed14e38c2e81ab7cfea9c484adf682e07fc6400716f3f3faa462beb5ac19b707aeb432b5856270ebeecc3f86f5682f1bf1e4abf755a244e49652461bc94ccd0dacd0805ddbaddf5061ae30152668b37119b5ff5988a98ea4c032294946e3a23a6538025f3bef5cffff51f980765e0763e1dde6c78b23f96d45777869d0280ee45fd733c926782ab06408ac28697599c7da1cc9e2e23f106c57201873aa30501cbccbfb6e81a302309eb204da90c91434e3f31b59b7b3d58ef7ea658cc92e49a280a52a4c0c7dd8c362452bed15307798fb33a5558c335f8b3c28c22915c5c473e84bdb95b53f190d684649c0dc79327a8978a3c1f966f2816cda08a3228fb46eee4da81462b44ba26255f8c7018880a7c14b0243ddc4ba4b0b0f99c72134b6fe8d164c385c07938f942f9b0acd8552b218b5b377c4929bf4211df4c710644c4194487a18ef4347e5129de9c12e99e17c918ef70d0306adc84c020f6402353624f7792ce8239cc482208f8377212bcfb0cae7d7760f5e60d29310070439a2c736e9a662c1d54ea935f38446403aecca9a2cdb34a444e8bd424f17bf032a0fb4faa81e8df297de5fb5d552e3c8b40c5558ab6732834d83e1a311b9840b4b6a5331764e0a1a673498190a330afea100f5902d440d46aca61a0a396123a86806d10432385d863c9a75a4b1f9a50d2d271c1148a3144017ebf1d2ffb4b7fc258aa18e6aad872b9023d37052bc6905997722bc6fac27418c5b3b529d243210aafc16960fd7b941321c9f361e9097920d35293cb0d0887e461f2662719f460d2ff18b00847905a07e1f6f3c442379f513249c8388c88571552b26bbee256fd8986dd2c122ce9c08872d14f1b34f403f6737c17ec34ec99be0174f10a9de4455e91f8cae4356680e74c065671806a9b9d44bbd0050dd4016ce3c7dbc1d3857ca35cdf70e6a6dd8ee974e11dc869d2baf82dea31e092df130f3f88ce30cfa9378b4f14d04dfb7bb3aec83c68c862f16be54cedd89c56f401588081d3639d3aa7629419794aa4f0f1ba337ca95456bffe08c6bd68c7c7b3c7fac830551d041e585efba1e87197021bc36d1db8d48cb497e4a296e829b376eb8376c1a77b54e4ad4ff43d96b663e9e3d55bc45eb9055d4175146156c0da117b76b586fde64d476643dd871d8dbb5018532108f5e570eb9a566b7bb773e222a0e43de5b9ec4e4b8a5ddca300352eda71c7e11f9fe3a8f2d1e3fa66fb746930e81c6ce5bebe8b39d7126a744981bb6787ebb5cb266a5ee1258b6e0a7104c7a1ae0dc8eb53f912243f90aa33f06e630c7aadc9d0f7238808cff357d924d25d7bf36e80cecc1637ae9e5d80e79acc30a786dd45c7e1460929606e928f3a897559b6609a6e2235cd2947e0c58de9eb849cc17eb4de5bfae428b668c60181c3f2840bc24cba6651f6f1444230e93ace889a9e19aac2ea321f7029719a0da641b66f68f83f70280e21a2ee7a9b330141aea342bb105a6e91a459e62170de78afd139d78747999801ddd90fe1293bc8a250b75332484f3f9550588362aa21afb242f98532385b27b3ab41fc54aee30e35bb9e9a7c58ec3196cb47eb958a18e8105a23c3c56e1c310a8bcd76d0023f2986c01f26b7a5d2c6f9b025aebef5da69c289750bd19940f34cf6bb1066e409ea0d1aa0a28c0befd11698689bd48666a5994ac765989e6e6bd723667f85ad8c43328bdee488242e5d78082f76de1ab9c043932587deafd9635b0ebdc273d37411a48542c8d4dc6675314d73592f99e8550045a088ef5374f4803e823c2b7e8fc1d5193b50718d475ec85c02538e3007f553b88df7f5c5a273f30847384fcd965ec18fcc0cf88118b61cbd3322f565a64e0d9243799c1b22dff5f794ecf27df0b698a4db0ee2dde841be432a23825a0990ccbb280c785e0cf128207c03a838f7597d563f1c9337c9726273affdcbfe620125d0f4aa1688296c07b444d06fad1e4f0b97fef5a94064aee870fd0f1b43ed8790bad1e3c36fcba07b1f924deae0288113572abe2039c9cd6ee592b7f47f545609bf0ff573c9dccceec93d1bbbfdf99b96d87e8a668ef5e64d422fdcd3b75f945e2a1dce0884d57dd89958edbeaf82b3c4770631f2149c7f191267f91160743d7d8b166274168030c0741f304d38f02f698ef4c3f9d58ceb4c1f975895a88310c4730f9026aa833dd1cd0f5d9fd1233b3d5477fc7a8d6ec128ae6e8922d441c0c9541a5075a2bb25f20a43e1ceb3f58338ab2ad6e5aaf523beabc4bc33c770dc8eed86e3e26ce3737f067846a0adb571203e8609c76259e4bbc4aafa23d807d493eab1fce07906d31464d5f0df4756cea279d710d135e611379e7c8b2c5b0a5a3a38409e21af90797e5a44eb9a571fa4482d828ade47309dfe6da1b66611ac4f2e28f861f39187662c2f6e033d170e91519425fbd1a554ff2ab36e09339ba565587dfe9d46cef37516c9ac41dc54dec9457c6f4520534bb124a9ab99603e046fdf1974964b38668d0156dd639d4f40f7d686818385171241a5d76f01299409a5d518d8c24bb7d474552371a3f18d08d90dbe9f1adfbe5e561966c069c069eee5f7c5b488d238826f79b4fe564a107c8ba86d0108b592e21cc65f0198dbede778917264ae769800e54dfbf2ff5dcc110e92c809c802c739b946830f54249008353b817e24c840755cf9acdb26229c1b6b81cc8d3a11279b038f7036133012778cc575fe79d35672d3de1276a57ffd7bcdcd1122463e1d3d082c5f16f08be0411ba67d25f7f8ad4f5f80269275880420e67dfba4052e79e2324bb172e3cd3c857bcbb793d5e09c70a91e2b50b793be0e10c53857693ae679f62af68b734e4a41c6f7c5374c27f17d7928a29c05a0cf8cbd74bcf760eec0a6109b9bacddc2372666e4e7ea98a2c0df52e165b40332a62ac74b8d4077e3238ed2698a07bea1f238f54c235f3296096640cf0e25f5f4c108c4282284dbbb90d636188d7740488451f5368ae6da7b20200dda6061d85c81b1502b69db8b740fa840968a5af10202352e0ab764ad0dc3c568b01e1509e2b6d859b1e960e3a0b0d3f700582a303c42638d6a346e7825b3e8f24c81fb345bccbaa86069ad4b09f624d6210e68d7805695b415d56140a797145d0efd9cd06d108efd370e5c0edaee5120f9168ae21ee7c64fb29660817c7f8c73cab385fc67fa9000d2ac5e36382bbd6af34323daa37e13d2725d395193f0e6d1cd08d700c345aceb3c915fdf739fc31ee0ecd9ce23228f06f80b2d2b3a537982955c21213db114c6bb4e31df23503c46fb5dd7546e5b2694d0b325c92c2189dc8cf6fa862d6a4a9bad406c645208a3c35932c2f1bc4e408d0072b1856193486f2a97bcbe9ce82e01793fa44aa8af91cbdc03f09379a0fbe4ea0f3f758fc55caeef8867ce236ea86bb87660d3065f50203ed952fd8655e364b680537e8ef54c60153bf964f87ab983c3f605b640f2d848437b8b6623b300dbe318040f458891d99d3d28bf9819f248656117c8879365a4fdf80c5fe06fdbc06fa7e11b84e6648b46ac6274a4af548894606571811c1aa389198120f94619989bbf681cf677503d08db59e7b55235c86f2c48a4ef3a744f3439caecb8cb1168045cd602265b07c7c26a9f432cc3e6266a22b269053dfce48528a3a270438a526ec8464f37048b60bd7d454fc3dcd5b1bf9bea590d9f89b4814440daff9d8513095e215799a645042e520ff0d8b02352491c03193bce8cfc08cd47a994c5fffda39bc728153b20e804c8b389f6ec646d768828136ba0f232290f59c35c0e34d724f6431cb5f7dabc48d24a4af5610353c47cba81e3b0763df6025ace5a0e367ef6ff5460c728b90e89c61ae88aee98966f94446b6bea22122bf166ca8c44e672a3d295a82a1b40914b621c5a4a311782a01426bc1ef04632f194807bdf3b083054f12060b44fb53f9d1e291657da9cc19836b32ffd549847c216370781bb935ba0734874cf7c3f06744f38dd9a5c763577e263d0674dafd9bb19df2831b0ed9f788c39708878146f74d991115898f6a3717577ed129cd637e76527ccf77be04d2b3af524fa30bd8dd2c5be363582e1a4267cc9ab468b56efefe6a325bc30410060ae0a7401fff234ece7e27cda99d3c6183e487bc921ccf08f01f6271b134655272002c0819683d0f4df4d829652c44748ecfbdde8ae49fa47c01780fec7c8f9622f15b244ec0224007b25f9aeb0fbc4fc831c62cc93046dcc5bd8ee2b9254aa36505d0dd6422052afc8c0221fa9d6467447bd187ce64bacff3d3a6872de232babe316cc17254085f31ff8057792b08f0d16f42ad2c409fe932b4d116ace526b9d041b5aec969607b2efe35ceaefdd69692e3ff3e7721b584a16f1e28a37823a8dcb5b0a23f17f6545d9fa6eeeb86885b685aa4c263f81e4596d9e17ddf4bc9ba1350476eab20d40bc729fd4277630b1359117e3116c8a146c694e14b1a56ced0cc54924f8271e94eac3ce17d0dcf6ae51b807a8243838105cc763c3cec5b4669bbfd501d24f648cc2b2f6050dacf0af6f1be45b602525c8ce5c34200889b338cf301b6e19148d5d456eb99f0d101c695cfb0218fc2a0140cd42983af9badd6ec1deb3854f2e06079d525d5c371f2144e0d6ef98b2ce1b3e233ed48474533881831694e9bb176b4e949546bd09146ebcb046c82dd7b1ae74a6a01ba850ef9ed877418c36f47a5490f2237d7bfe3dbf6fde7fa2aaf282475eaa0eba538b8b74edcec806be5da3f8f22ce05744c3d6112929157d359f451caec048b64d704a59367362bd178313855447303467babe705177c1e7a0c5c2702beb6f54643f43b5eee0c0d6c438c9fb209aebb49930b9a4d85a4f3a248f8731d608a1d7444e6ec99ce3a68c091b5891b16d7027d48a76891d5dd675c7e7c94e7b8de00ab2832da0ce8d1d42f1894666bbbe51e538389de17e290a1dca5943627dec2be82f510dbc70f9ffb31046ec334327411ba7e5386284759271dd44d0901248bd400e76c17caa9d1ec4959de1830da9f469314fe2891ec9defb8a7a1cdb7fbb070b2d82c83c39bb1b659030802b5394e464ea6910a2e2de69b0466b2e97a65578fe781d00979a6b3a605f89059c611bc0a1ad2f9f6eac5e51704167876a0996d76c2211a1ccdd68448e60302af2f76a69bea6186a62347aebd08e420061779a45354cb80f0507e7dceedd56dee3750598ecac3858f89c093a7a0129fce52b9661fea290cb8714327a76179050702942867c40ce62baae094018fcdd5d7fee0f4d3f323896531c7ba34363f9ee77a28dd14548ef043f33ad7a7ee67ad4b66742cbbd0418ab8b50c8db69bfd93055430d2173e3529a462aff59e24cc1eed342123db7d1164bc245e0030e6b4155e301b7c48abfb9c4326b3538f6b43bf1a046ed4b893133f704754bf8e5681e998f93150729b35d7e3ef6224c4029ebcfeace7c4c9a1dd924461ca473480b2673008d77045496b061f0503d648d14b1bcae39624f8f122aaf792c4dd6b160999455912af5ab895435fd4728a7001648df9475c7c020c5e20c991c743d8ee9fb0c8888a8cc679d32ad2bf32542583269240a4258bfab4f4a50d64f4c6cf8c0603941d2b328b8343e658cd9b23f0044dc11cee3c087f322cfc90cb0a98af502edc3799dfab434b9ea4cba3dee037cf6d8040e93c79d841489948b6958dbf222f9ffc88b18d995f6e0ea87cd9f080ec3a3be7a280cf3f08b389137734a7e49a45c7553442b15c174188afead0a9d8727e863bfdd49b66d07ea6dcbc17ea4ab8a405dfc9171169bd244b32b4938041f28d200a39718400bf40776ba5644d5f470d6b3f6bd612d6528f9e3026aa2464dd33c0521960109960ecac7304189e300337b32d2c463d40bb114f930ca372524a341153278ffb1b90acd83025022197f9e8e17b19094b919eefe0c41af5c3146244ec6d60a2d5a242f8b12628ba0c57d8aa130fbb070072604f8918981ccbeaf212eb7b7084ebb3de3d6c0b5649b779a5ce94f4ebbde061b982c406a1b031cee955d486bbd6cf9a6d7540fd035186f72c0c80cbd0638228ddc6427fc7d6561bfb712f4a7c74c675945320bf5e75c970bc6c830e86c839958c69a4c810e68419a0dc5b2808deb85a65401c2c187117114e6f791bdfade9358e86494e449c5b11d46e7f2f6cef0fd54b34063e84097e9c4c1cef75192ac4029a6d1cef27a971b163b10d585757d101c956b1392c3a685d9172f4a9b345a677414cae69626b7bdbf8d72c0ece53802507a690c6082fca665c808124455908e005b4f43b808ab36b5551b68acc880db7853ea3971e6ce23765d44e8a15a48400b0841b7d4e3568ba47bb7b235893327084eda983413293584be1c27dbb832dc398f7702f52c957593f82eb3c479a8290d3e9a5d2a74e98da445427c9decd29dab5d0d6084e5127e49137aae1438f2ab6956e84edfc9fb55eed840cfc0f0b23d2edcbd78bebc6b20e0170408ac39f82d5b86c62e48ef681b234fa1c0a37b545afdaba06315f9460ee31e7a967b0053ee46212850b4ae048536d4c2b13ae9b557d0b85e19da2bd16b17b3a707d061036a770a3806a18cb5f6b795dcd05830e05b23fc904a07837ed049361cbf206b2d8d780157a2b263fda05681058607a95e2b4d7f8b7dea2d05499c63b678b387d0e681553cf4e39ec3a7b0df94b09d51d193a49e211fb11a85d87db802bf18ec1e4560e8f2e8f1fdc96656663801f81b6c2b93b1dba124da071c5a7490408bd54293469573a240f4adfa6f5ef02308ebee4aea4cb6d07d980fc25cc1939264d9c78f4ee6f8725a2361607988fba647a6d6ce5d99db5da67af4b2202375b34a4675c7c0c323b00892b380fb505ec0793d8cea4921b8e2418e25b83497a8b90d1f9436ee5c0c65f3d6b82984429729d6739f53325e4e7ce5d4fb0fc88aa913ef04d3040bf84ff5ffd4d430fcc1c12593116b7d950b5ab6876c7596601dc7d13d76b3b4a64c94c1bd680cdfa3dff1bee31de2654a1bb3cb7c6210dcbf1cd0f9c67da6ac5cf93c61fa3ba414a92960bb928a3b79f0ae207a18e2a0dc68e095017bf12f91bdd40c6c770f4a9406861a7c5d6ab0e1f38e46175627d8ea56516b40345c06af559a0d42e84891614b7b12275be8269a1a748a4f8ac394382c167b65ee2277ea766986c3dbc628f5de8981fe15d6835e2fdfe4960087bf1e426dfe70477c713b526ace16999851d6104ee41374c5f9df540442e5247f344bb78ec73394e3825ea02a6c89be734f5cc46fe0589b62d24de060613a99b90452af3aac1486a407f6a86a2674ad506d36a02351c69aeefd5f95735be4d8ab81e39a1a87ee8693b4f60731769d056d7710ee9da8bd5fc07bb680f236d5fb84186fd83227ad67b48aff2ac94059fbfa17bf3afea18adbd84b96532a47a176bd0af7f240c57c2afa359010699c191e22e1085ba4a8353be37640db82fd78ff03dbeda9e154f82c376fd26c816b74f6b4dda5c8641a1734f1edf6d13670a7271635255c8948a014cafc8b70cfa8077cc66c1e60739d8400169c014eab66aa4203b606a695276680604461ae457f70ff7610d5f7c1d8bd805caf1aa76e7fef6fa8ac1f4e9f2e34f95764ab9d80e59935cb83e6698678dfc03e018b7278a418e47a04fa913fb3542020914d07a509d2269a3487d8c522a4c878c0d48ff3ac6069ee3208fa09a422902b83913d0c038e7296acb60166055d4cb2ee67d5a3841b88bcbee7ab1efb821d72b3421a28108908917bcbdd6d4bb9a59449cad80ad70ae60a3abc3a7e27e1ed74285b9ad6b6ad08b715494d9becb6c595b4acd62abfd60ab3c496df9dd46da6b997bce425bfb714b7bcb7f45d57baddd370bc7977fd966ce63ebbfbf8397c4befd9c497bb2109fe3af65b7aceefcfdf4afaa3578736db585a2710e167fb993911601bdcb10a22b888d0da04d8b10a1d206a6d66a9bd41f6a53408106f71b1e82167145dba537f4ae46386f6e3c7ec436ec85adbc3cb6cc0b8f627def68e35b76dbfc5b93db76d1c879fdb4ca8532a06f5dea7fc519febb0d33d545bfbccb1be3a96748f205bbef5e7ac48719e6bb09cfdc38e5518216617c168cb18ec58051162de4b699f7a8b8bd1fa3f3e98b0f456ca6aefdb4affc4e42a697f9db3c21404081793bf85f67f384cf7714b9ae996f44dd266a9a3bbd2ce6cedab69cb9b3ea979db4cf2b7df5ceb4bb7afdf7d98db7458d22907a5e5ac90305299d65c272f4d153a3c9ee586342ea67146dc1037144ff077aeede7c7703accf6ddb57ba6fc9acac9f4f74f9fa6bd29ab689cbefa769fc995b1ee1193b62d3da76d3afc39e557ce0a0ebb9502acc6663a5b1d690bec56adbe9c0b72e838d7b2a06a9b94958b49189693dec2c9d1c1c9d169e1c05a402d8cb342c2b01c916de1e8ecbc88c0745890a5ac3a3b2f2230ce0a1c1d2238393b9c155cac7acb71328e9dad6d7d66dba9729c39559c1530231aa7f118f88cc78086e6877b4c4c4ccc0fefc2365fb6a4be525f0e0672cba918e4d06d72f7820c73bf6e7f9f865b8dfbad4a4e8741361d87a0fb6a698363e32c3738ce92c50e0671d35a87b6fc999cbd9412c759c2ef5e6023ede7388bce8ebfb6221286a6ef0d67ce9e1fc58ea5b5f451075d86cecc6d66861375b4221b0f1cc400e3c21b52a8c3e215f7fd3d70c4d536e28e91308c846c9fba4d9c020a2137db7f9b1c4642a6f779fc675fe9a3fd89e8e2800883460b5b7e18b5f0340211945fbf222228e90ec92347c25cc7070848ca2b53de634f24f6d4b21b0efa53cf5fcac1a9695266d2f1117208c65e6c70deeb9cb3dca952ddfb94d2399feea9dfc11d53a5be70159f2a1e51b6e2113c1c3c4296d72805e5d586a1941f72cbc9051e9fd77526eb6ab799120721bbcd64cd9da93359f7a78e9c2bab751c94380e4af927125749e33494fe722874e420c58cd026b3cfa982c0169d455f624e1a425134d5fcd018a5618f18bbd3e3388fdb30de9dde1e7fdc9c946eafe538382ff76da54f525c9afea5cfc6ea4a9beca7904208c535ac0da54ee8329eac429ea554282946c43b948b1c69b2fc06c5f8e9b97e1d744dd3e1113c70a6e5e12a33b3b1c274491e5d4c0e1d29c6a46a3bd264c9a46be767967ae6ae7ba87ed84210b6e0421c9c524a2b254e0e6552179343992437bcfdac71d76afbb8afc86ea148b952badbdc21dfd82187315653368ff9f7e6ac924131bf711c47728d54422a514fd928af369001c9c17abfb86596d2f58cc150d821873208298848aee4d7228993f26c393893b2fd70b6f6dc564f1907a72379d2376364dc67fc07c865b0e4ea26311272f61a14af7d84b34c0185ce9e930768c6bceacfd2cf973d8ee4e08fb394b4273938915676ca4c1d6799af2d93762875f654a972be376795ea826eb3b30db0e31443aed89b9435ae325fe6a822cf0e634c0a719b1c5799cfa32292e7ce9e3fc790e5469255d38fc6264d6268a8d8918a277a36ecee48c50c74d690fd6760e3028a4161c72980202487b3ac86a83b628bdc7165026166c7297e20b3c30bb45dcad4d60c4d8d74099136ab19251107fd652893b6bfc7c41619e30acec9e18b9d8232b94cc12da5d468dc9266195c43ca1c65ba22a2496b44a7a494d23a658f544e8e83f1c6e58ece910b2a4f25368592bca5b43ead0f437d571d9dd5c3d71ebe1923993d700d12bd9a7ac666ca475d6596ac7ef59baabeeaa3b3a826a5544fafc336be6e3ecafbcceabd455363defb6d23b1d6c29c446d2d49b55ac398fc094975f1243af47df22e74e8db644e7b62424f4edefec8534dc3672c85a2d456129239f27da1dcdf77d8868b9f2ee68fbca595db282a45e7db12cce4e4e48bdbc4c4060132bf8e5417623f18126a4247ded2b72395e4f5c888a523245fffbd3a479e9a9c908c683a475e7faaa731bf8f8efc6b4fd76aab25f9fa234fc351df42879985a63ff2f51b79d55b7bf219d6119b28fd239fd2272a1509c917b789c988c9a3dee447504fc34d4c4850df75ef2d7ce2724a3ad0c473fec9533af18809952637542a950af5269fca6380f2a98f07bdfa56251f370afdec33b74bac8d798b8444734328148c88833526a6e3333566b2522cd5352673a570316f2171561c25e9ccd8bd2499cb09a058106705508ab36285f2a839e2446cc42485f28572a3fcea35a90af228e1dca8b7787572622b09e556f44f9ee4a3b39cd8153d39d1e1fbe4a983272f71895ed1d0674c7e64e48b0e96c89250ee932721513dfd42d56723ee920678de9390446cf226daa483fc41f69f7c263ff2265f90ad2a1979922fe4ba4f7d284d4d1f97530e526fce58d7446c12754dc462352615d3d1fe030b36fa3165080f2929f989e910d5094a26dbaf3f1fa6eadb43b5533f7c5b3da4f52faaafb846cae4ab8967356769d5f367b23857a9f527957ad4db2f85aa2ba020e4abc99cf993d37d8c4f738d2c455c7130c6ecd287f367c7752851528b3aab1a4d958f7293a856fb73da8f0a51aa69108d8559ccf6af4693357f5cc5dfe70f0f0b08124efccb56441680475bd39320c8a6d3c7dc2313e6f499864f2672e852782c41ce827a7729624b9423992421398573e7a77855390757f5e7a7741824852a81837396c0c1e985fce32c40ce2a79d742b0d9720b3b4e01458f37adb57a957a18faa9c73f76fdd44455d41764574f7fddd3121d5da58b57623de78f4c0eeffc992fb6ffe5726a4ebdaf83abf9d9db2c2711391c8cbfaab123aec48f31273a6cde13710dcc861c03c3710d6c94e3ddf27239a542f9158d334a376cfef2040765e77196ed65e9e58f03390bf7f23d48c859bc972f831c141a9281e28a9431b6c3942de7e67dd9735fe925de3ee8c6674f318468c7298060b467ec38c5109abd659cc4d828cbfd5b9695c0413964d3bed6cfde9e94cef8e2476cd15e5efb1f4e0e1e92a7ae75ee882bb36a592471b294a1dd5687110e5b7e26b50a65353f52e98a980d596e8fd9a10daf2197a457e184a21da98801cde5aeb8e20a3bec38a407671f16b37fc72a9e10db5bfcc08f8e6c7bc5d5df6699d543ee473ca4f52f572fc1bd4441b110f4b3bd1a8252aa271680a0c352eb576bad756654c3a93eebd75a697c2be913eaf61ca821d30fa321d7fa19fdc8713b15e61de3574da73bcd7697d7b86b3b4e0397532a6d23fecb07a396ae1dd190bf9524b225cff650f26cd7565218a61ccdfdd8debcf8a16cfd16ef6b5bac48e4feba508c75b846bc5fe47eb3d6daed83c962c9da6db35b11e962ffc26c9f459c7de116dbf7331be3f6598cf7a9a5947ed4620cb758b8c56ce08f18ebd0bc69638a14f527ee52d4b4b9343e3e99b40d47b365510b02240addad6887f37f380c47edbdda6f42d2856e433b9c976e31eda7bb0eb7d89ef7efdf1b9ffb3bafabc8bf917ee1dc36216983fb2f7ddad36fee7c8b48976e8baf3bba6998cacd2249618f782f17afd6abecb5160de7aee9daf2b722dbe33f31b942bab52f611bf76136cdbd76e5dfb9bdbc3a244190adc856aaa1c52ca3f7fec444d0efc1d1ec935be560fc4839ba15912e728b6d9f3a3bba088292254cd8664e7dae9fb7d4976387ceafc304933f878313749589faf0647a697a914ff9e5f432b3606653eec664a5e440fd4c71f0457e148ce9f3c3a0fe0b4d7fca2165c171bbbbe00f51a80ff7e6ac52c510d44a1f6e6f5f7ed1dd7dbed57e037fd0ad69efc3db9ad6b412920eb17fc84dc1e9856d3b89de0f973a6222a68681712260a6e6e44c9e818c42a6ff834618a59b50540205028820aa9659204220360d07dd7e37cbee0ef28d9e9efb52defb975efa7486835ea9d10f8a4aaa1711d99b17538844a0ed39bc4a223176d459b298bdd459021167a935a26445d5863b93673f0890faaadeb3ed07c3fd12bba6a4956f232d499a92255de24476fc5a350de3873f9eeb3849a35e717f4f593a116ca3e46389f625b0784c15f7f8f3699595649325ac83d6127a497428776a6845a552894a29a59452f6c0602b25a50e93187f25a24327b2e326ad94f86595324a19ab943b250e6b5f82bf248cfa17dbc0a94fe376d452e7769ea697e2a7a55f82f6b454e2e897beab79c060fe399cd3f335ee37ed35ee621d3c4abe044d752caea1d97ba72689ecea4b902e3a4e241a99240108373ef0c18d0fa0c099ef6dbf79304396883f2f51d03ba736bf4ca73e4d7b1a73524a8f30c2c1f83c22cf8c983dbf1b925742d03d3320a284492207658dcab7a7c99e24dfc8d7e53c08ce97164bf47bf4d0b43b5f5145bea68bb0a6abababd23818445290abc42092c2fbed989ac68cc369348d28cd96ef724e3d8b2acd64d11da749c2c70fafce4fc1f6bcdf24fd2f891f72dffb94c856c36aa36dafc168443abebd51d8fd5dc3165b2bd99ab74d1f461685fd8c2cdb6b4312867c4d7f46145764d110f7a5930e3317d2a14a4389aa56a7105bb2975f693a96d5f69b9e4330d79e739ad83cb7363fc39fbfb0c5b63a09b9394a4444fec990d4fd9969f7831cfa6b673f5dce2a21f9120d82a8223fd3d4411236d88ce894be420c33afb03edd71f02b4cd594c8cb414977aacd16af8cb3d39e86d7a7434676324ac459e6d574e76bfd4beab7f9f23ea43bd47b4d89382857f7437ab3b3e5d31b67c9d1a144882d767bbbe95052978e7ba9ebda5021f5ab37ae425d5b17841ce71021fc293d5ff3a5cdfdd4d5e9ab63a6e7cb41195bd6d0e25526a6ad93903bf457388b68b509e9cd96f2eb8db3c89c2dbf13429e1f7748615bc696080b31282fbeefaaf7ec37e74904e350d973c8419904ddf2c6c1ca33bff23828ab4d5c916f9361b2ff21b7f6e12c8299b3681e21cd39944a7fbfd0ea92a63007a53669389fc2b48c27d3b4270839a49bc292a09308e51942fed31e6799afcae32cf7e5d79e6a3359f20d5145beacc36522bf60cbb7a181fcf99a39ab54ff95c6596ae4a42ee390c78c26cb951055e46bd794a7894a12392bbeb0743dc8548bb4762b1c74674f77a67dc82b7608646b8f8483d441e9afb822372db6d03dafd8a18c2b537b190ece4ccf8759e1c83ec79723081e64736aeaa0079c65d5c36e25aa113c8e7016134d96576c6f392853a6cf97b3ac4a2f5b449c6555d24380bbf42539e3206c4221b6c823c4956f8783db73dfa6e94e6c29f96bb2eefd57a9eebdf7e5e3325f12867cfba16febb3b5911d5bd3f4c80724c84bca710d5a6222f54082bca45ed10a5b7b8985adfda65f5b7ee9f3d1d9618ff8b34f90fab8e78e944ebdf665a92f4e150d05317b3e8da93d20bea4fe085b7eea6322480ccc86a625b30215c4bc3411e425a3b146238ca83f285ff9d962ca26b3183b7b8f1167e4e2ca06ff55aaec5965719f638b117125fb6e0839e4aecc5e66df01a09db1664c950d4497084818d967cf23b6d8cf666c332290a96496452eec8c5e98cccd8e30999a26e0ec5845135c3b8cb19dd9777ce906b2c36dd712c4c4c4ac60872588898979c1aecfc596499335b1c5944d86ab44a97a57f9b6fcec88a942b3ccf58fa895685a29329d51a9c442cc2db58cb842375f627b20ae501e51e4500611123d60001082e892f247c496ace579cb0067943725c69600d899263b43656df34b94d2cf90a03ca8f7449e20e68ffb2110fa41d8e4888483daffb07163b35bf65dce72df0f6729c18f1db5d60dd7c8b81b7f2ecade31597eb3ea070483b891c359a836b5b9c2217ffed4e108541b667e90edb8c67cb9550e0271bfebe0e4aed6d141a97216df4ea5fc2c4d753bc8a16afb90d24f5649ab54aa10d4a8d8e8e795ea836c950ee536d94e9f6f93ec335c7f8b10907fc2d9a7b7dfe9907ea7df64ce7f4df943d34793f7a69f3026efbde8e9d0f3fe7aeffda6453cb779d97b93a723e020fd1c38fa781fc6cfe12cf912879038bc3fe9d076ddc93f3c9d4ea7150ed59bbc890e553ac8de4e9fefd3d36bf2854a488df33e95c535bc377d23bf6d9ce91bf99310d9fb54a76fee922fee0d73dea7fa8885387d739bbcff4177f7c19cbe7bd5179edefb1ade536c63eed3636c83260d5119bd3b75efbb7b4ea3f38b28e11a3e70d536b8c71fa38bf7271dfaec7ec2246123ee2b39cf33455515257b9b7241ed4529c626839b8181e8b68db87f78db46dc4138d8c51a67e7db54eb7b2d7dbe33492e9d5eee12ccc9c712e1f6a527f95638ea7b9fc4e94b327f2dba5dbfebf6266157dcef77eafb2db13feaabe11f63dcaf1ed7e61ecb989d3ff9847daa9f805d2b76edfb9d4f4564457427ad3dea93d706d7e9f00bb7f73c7ad2618f7deabe30b5f157acc3843ffee983e974e60d217ffbfc75560bc13dfe3b59f185de0763ccd814b661fcf197bed087e01e537183d6ee3899b3cff4e5eefdee67f7d4c1d97d74b0cb626cc91f9e9ec8a79fa68f5f28b7a9f4deb4df753ff3671f7f4e39ef337df7e52f091957baff41b7f7a56fa35d57b18db87de74f5eb1e5172ea1822d63aa80018d631bdefbf65ec335bcd7283efdb6fd46e3ec4e4fc3f3574f30f94fdf7de1e76389158ed37b9f447ed3e3dfbaed37fe14c0629f9e058b08dbf88b57ecfcad7024609f3e01fbf4de97801d71e6ef43ee9386f1efbefb7dbfee6f176fa7ddf774a8dadfbe3adbb8eeb7eebbddd3ea78d3a15ce1c09f1f7b1fe3cae9f4855dd8bde92516a2fbbcc2e13df7618f9466bf11a476d86367ba472a253f8644ae90a28ea02db7dc5b848046c50d88f6fdb96553df9d026a4468d7b6264769e08590eeb007e794eaafd11952293a32e2c5e92491a4208d78502729c0aa67724a970ca3e5c39e2d24d2490ab08a42791f357ed4771fa525118a076b7904abf228e63f9d4ea7ce74eade84d2d2083feaa551a6a62f09d9492349941121927dcdbcc6fac917cc6e9b873a6512491ac92399841ff5fee1ef3a7cea50a6ec9ffd4d26531776af9d3246bdeb55a719106463bdc2dde3ee4ddda9fbeabdc97bd417a2507f7a8bb1f7a8c728eb796fea50dea966f79e7e3b5dd49f3ad49f2eaad3e1cdeee9747a99ef9fee9f9e3b71a89730f8f16f1895fd86439cf1e994b3c9743a3d0aed9e6ebfe9103fea330aa5f39bba3f9d4cdd9b4c9f9aa8b0fb527e14a57ff2bc377959c3e0cfbed33fe8c67afbfa5abd36cb5e35c8f269dcc82169a44b6787901fcea22f3b3836614c9289c213af1dca9a161fc62cb09833a24106d52f62e8c460a2d341a61184b394deff460ee7de335cfa49357e1afe343ce78fb833994c6f236e93e9abe9eb9b74fdd3db9c4fa6fc79d9972061e09deecb0e467a392ae7ac37acaefa068d24647f777777f7d43ec90c06f8d6ba0945eb2e65e65e0a02a4b415719d3be7cfd1f0ee721c9e97fbeef1873baec35873772bb215e9c19c3608102dd334ab050162b5adc8da38354dcb5ed3341c5c6eb361674b7fd2755ed775da4399de9a3ed39f544e3aa4595f1d3fbbe91e3129c5dda49c8300a95b51dd86b6d856c40b026413f24c9b90b70d9936cfd3e11693ad5c37cfe46593a773de9e72dc56642bb215d98a6c45ec91cdf64cd3580e02e4ca38ef168b52ffb8f7da2f5dfc9a6ccdcbd970ba3bc5cced6c32e990ee1c494767c85957d74e75555775ede02f6e8f87a7070ab1a09f29ba4ee3cf3787546b9090906acd9e256973237540642747ee80e374d0515050d051dc5b52928c998374491ad9aa43a9a45f40afd70b68cfdf6a50dcc251d15017ae6bb26ecca43bd225aa729ed415fadc54868c016cf9f34716605a1dc3f756e262523786cb7efcc6dc98ce08d95f664fbf3133c5b527cd8c09ad151d153904b7e4a2b5c2de19f9c6dc981bb3a78b8d4918f3c3ba635c65ba44507efd141041f971b216105562f527deb30a3bb6a7ac353a2a724863ead35d75b8c4a65ae38094346883d32fbd0fed396709234cf7170f397d58bff45bfd30c618cfd7343de99890e3477c1d8c3ee4ee3efd9dd69df6dd97be7edd17d6efee8e5125ecb48f49c3257e407ca9407657dff3381d5ec7357638215ff2e71a3b4c9a09d30309f22244fdad66bff2befb1dbb5b79de7bb576da87f6217e25e61e7202d3c71d26cd049025ae788218d820873ad8e18a17d33711e4c5a49b407dd6dac77c2e5a61cb8ff75bc99729434c8ffa96902f4cc42b5e4eba65f262d22d307d134b3411e4259b4c2693c9647a2766bc987e099396919169cd78c9df025ff2cbb4542ff95bf725bf8c871413a37a61c226c5c4bce49771027c6162de21e625bf13335eb2ee9690272b65075fc8422b8a9927b4f0829ab1828a580ea060069e972037325790e9814f12197e5eae0d9ca0851858a1042fb4e0a5f3921c383a6433bc674650ca0e51f6049d25c68da9623bcc791fe3fc587a6fce5a5dc6a08a3fbcad6d3f6a9ae7bdfb1365f027fc097fc29ff09a4be4773cc77e8cdc973ee47ef3c2897594ded39d97de4b5f4b5fdf72dcd67d520b2b2cacb00a0b2b0c1cba5808df3a0e73a32267f1bf8e9461aa9eff814df0350d067377777777777777afb0d287fe5bb518873fa6311ea118380eda5f553d7db0576be96b2d3d7e8f06eded3f5afaa817685248632c43bc0d17f0ec1f76a4c205aebde5dccd1b075536d5deb57712ce6eee8bbb7be570da64380e854f1ddafbb4c1d168505c81c596ad4281d6a14ae4df65df4defbbed4bdb97b62f6def75bfe1f787f1ccec293ffa5bcc1e7fd3ebfce9431a7d868f7c2accb54b47840ca33d27398d43d34a782fdf1f8575f8cb1c008c43655719076da784ecffddefb8af66309c67ce592ae16e04e3b8b4663fc1edc3e772e975587aa95d7326ba7df8f0f6fc0c14f235aa999cc9c8246d2be32ab6faf8d59bceb22ccbb22ccbb22ccbb22cfb115c234b611ddbcfeea54cf7f3b90f650bc7d4a197fdab9fbffadb47bf7be59ff74d5ffab8f73e25f2a6bfd59e3a85fd2567e1a93d273cc4f6292137a74ddfe4c1377d1057ac500c9fd0f3300e4f2b2177feba2464ff69135bb0e6416c897bde380b9d3cb3c7592af7e253542851eb909067a9f454eec823944a72a724774a72a72477b67d2f95b0165e072fd6e1694e2b2137d661e933c6d17d098683c9ffa3f449502ab4e92a93b5ef45508c1948e0f6c32684c7a86938fd81c39fdddb4783a817e2ca17240cfb34469192621cbc71448bb6b5bf69b54ec1e767db6af46145daf64b18876bbac2c9a86778f13da878c8233be21dbf465685d529f05b500d4f061518b216b6ad55d85b7bea74c6d806224b4615ededf3882dddbf8989c91443cd6a4ad0ddbd0fef76dfc53abadff40816e287dc9de642235a63629470f4a34226dc46630edad782e890abd80f0a69504883320da23cdd11b2f6770b39488392bab759b6a98db3a4a0a4763891a8cc0bfb990eb52f3dae3c275ce9ab47d5c8c1a24af4d59eb8629ffbea14e28a7defab5490306cfdf994b81b5ba41bf6636e2bd36cfb992bb3b19d4e6cb1db7e6d398b36f767553877854d2aa30b0d9230ecf748d92b25e8ceefc3bbdd0f322cb6dc6dbff2c4966c4fa3215518f216b260856db310a9d8f62750f421f7f6612d3a5215e5a12964b4eddb0d3659910649559e3ae47458b77f904cb9d18366274826d9f038d18c0ed0448a2d42620b857ddc53ac03bfb6c242acb86d77b564df4b3eae627fc69010f8a13fa799e8ca1357ecd3afc286d0c1b6d56cc0947e7b4d06614eafb4c77afa6cfb434e6f4b7a08eaed5fef4369f0c27e78e050b010ae61baff21250bb2a657da73d346db4e4f1b7feea6328aca65d00bfbd366b262b88ac3728feae76db6fded05d7d5f78f3efeeae6e41ee27dc8adbdcabeb5f643705bfb618c6d87b6ad451bc67ff2683a3b68dfbef6746b574f9bc1361fc2055b4c093d763fc8324664e4d4f3b432ba48154418b145321157b48ce976e6f398f7ce4b5fcab88dd36b8d904319346e4ec66c15441953630be2139bca1bc8a12ddda56f17006df7c0110e52cf53f24839f83b1c943a66269583487895364847470a2948418ad6d115ac20849490d26cfb5bfc68bf9404caafdebe9c91f6658db398bc7d694bde92bc7d792371648eb3a0de9efee52c44244cf2706f5ffa00c920292463cefab72f896491b3bc3555ecd36c57d2b61fad5d7d8bd5b7b8eff7be5f2972fd202c7efbb4f78f87a7f4eb773fcb50e6af3e6fcd7b73ebe46351f2a91ee5df7bacf557d0b6bffaee9eb16565bf23426e617ffbdf4a3eb9572d1ee535ac63f52dfeaebec56fdea2a4c5a784dc252cbeb9f322c2c347655aae625f6e8e33591e882ab1e5164d1bad5d957c57e350beb857dfddf3c4be897d95fd12fb24f647eca7eca3ec9fbe093483a6d03763dd3787be49643fb35fbf799444633e2ae32af6b78fce38685f7e36e496ef9d1878e6cdb43f715e6cfbf769b866ff12e17fb5bf5787f75e4dbb33c741abe3a0759e6d737cecfdd0adb0afceb08efbee6fdf7d2a1ee2fab594c6c43d2ea87eaa7e66efd97bf6b165cad83289f928ce42e32cab3ff96af2f55d88b3a8bebedb907c1df99afa8afa7afa6afafa5edf61cee32cddd7faeee33f0ee4415edf63ef445ee4ac4973b4eb7425ed6ab36bfd6dcb32167f3f7ffbf1502a3df76d8ff3e7bde9cb7ffa4c8ffa4e9ffa503ff2a59ee41bf99292a73e968899adc9ba37af566ff29dbcea33f9f9c5169f4c143cbc13ffd2e2bb22e41967dda9526badb5560a44b7b0eb7744c8f351eadf16aacf0712288fb10ed5cfe7543f552cbe99a3b3c3c33793684c2bb66449c88df2c58f5ee928dfcd56dfcc71b0fec9374dbeb9e3607dd5375f0ed62ff9261107eb937c13e660fd916ff238583ff5cd1e07eba3bee9e360fdd3377f1cac6ffa26d00c72b0bef74da11973700e4da26f164d23078f269283f55b7c33c955646eca90e95091b310cdbdb357818287831e88497fe4ee72d715d7323011525a29e7cdc4299243da6acd1b9a4a9fd8998eecbd354369624b1c22d3f45db6dcab74ed8a877029a594dafdeb899fa4d8a4bbcc31649640f3823b7a47e34aca8e9ee2607c1129ed5638a48e295b557989e96f748b0e461a35751d63d3df28a5dffd7cba99f2cff4cffe87b34ed17b71fa62b8cae69a9ba6fc857973ef7df80b5b6860f6ddf70e66371cccb2f0409c25c77cba9a1c87e22c19510f3cc490813396cb691407b34f8921c71da676d67d90cf06fd497ffed474e31c4182e458f973dcca758a83d9bf83d9c867a90c958da4ee45e57cca8090b1efcb70d25b67cde8d34d75b8c49eb4d6fae18c17258a828900b7ccf7de7befa63a0412ad2945450b5a3b8c3ff133ee6db819e07861f8c36eefc6907df3fcc31f16268661fbb9fddc36a22c7f7e8cdc87daf6a1297275e8ce90c3df7635afb5d65ad04b6f7f03638bdcf6a3cabe44ccdf56d77e0ab8e9d5fdabc1bf57bfd8f1d1ce2767ff11468dd01a8a41454b68d737c259e8ae4cecec1acad8f5eb9592fef66f2b6d79daf264cba922f764c9a852bfd65a9fea70c6ae11b66bfdee26d77f911203ccb123b6c45d3f66bab40fba894c4751d271d65a6badf59d98f152bf0920f75b50f2d2c41299b5d65a6bdf89192ff69b0052da010f8e70831a3ca10a362f40ae5e2206e1d8a109a0a12ddc218a973c55e4bdf7de7bafa54d64cfb22ccbb22cabba89e82afa4e1539e79c73ce7762c6cbd44de8207309eba928b64d7a9c2690524a29654a4a57844cffa5cb953068fc81a966c4b822530769e852c615ea72c6618b7bf36ac4941409c62bb68c2b32aed4f0edd530e920fb8717dbd091fed0dfbc49df3fa4545f1c92becdd996f208a13162c488b149a9c37d370d37c520fb905b860fba5fec30c603d1e874cf190211d27d627265fac22523d58171646fb9a0173f293d2873c6f00fdc3e9ed2229c45bec9957fbed430d9dff72fa47f3fc338321f5209b9adae0f53b3a02da6845e6cd7dfa44f5a337bb5d2c6e1cecba6132a354252a2323959c1ba20b3edffde78e0dc412c7f63c1c518bd0e7f84093d90cac7d5a30aad0cd6ec992a33fe367b86bc1f09a33ed10c14552ac7951ff17ea48b29c2a81f2367efc71259225be42c185ff6b40340e74307762adf753d7429df6d442da2eefb8e6b752ebedb7a7a7a7a3afddd36b40d75dd86838383d3f1f0ddc6c3d3b5f86e6b755dd7b1f86ebbb9e9ba121111115167f2dd26d375abef4a3d3d3d3dddc977a5a1ae2be1e0e0e07423df957878ba92ef4aadaeeb3a92ef4a37375da711111119752f854a325d87fa4eebe9e9e9e94edf694312461dea3a0d070707a7d39ea7d3787e384b6b4d955652abebba174174d16eec77df7d8fd8e2f5f4f474bfc359b767aad4a16e080707a7bb381df7ddfc8ea7fb1ea2cbe5f9eea3b7ba6e6e195dee4d47bfeb3a1550872a1f00d0034ee978b2f76d5c8ba321fa8888b8d6aecfc245a77b867abe9e9efa3c3ce661c3e1d97078d870361c9e5d1fa505c7626b6d375b8b87adb5b5b69b5d7f85b299106d32442644449bccae7fb22a9df40cf598f4d437516923251c9e12ce4809078767d757955c9252eb66a4d42ab56e76fd929435694425994e233269444425995d9f04959db41e6da8d37a4c5a4fcfd0ae3f92aba6e1683c9d86a3e168381acfae9fb23c996a2ded466b692dada5ddecfa9bf7752fb5ecba9a59737b867a7a7a867c7372561c1e1c1c1c9e5d7f7ebeb7d4b47bf64c569e36e799efd67ddc8bdbf9f26471422c51ceae37360dbb7e37450e2f11d12d729600fec65996e88700f4805f3cbe322a187cfc34c659d6450a00b00f8f6d90c642ceb22ed710ae18db1dfc2f67654848b08a2bc6b606e39f35ceca8282a6908a2bc6d91146317256f67a21555c31ce80b08fb33217904b08e36c67a70a9ed8a2c271564542d2417a619cd560fc2ee3ac1a3413e43518d7239c8a39abbe5e442f238c2b10c62f8938abba248fcb07bfc42f8f102bce8f5fba9c459190a40d120e92cec62f71ad099a2af56f4caaf845105de8117e249cc57bfc3d628b7c11bd62f877388bbea64ac58f23ba50a0c80304fe17cea2ae1c37620b7dfca0b36ca10f1b7f0fd185eee0bfce9a4853a53ede3825b6748ff1634de390e9a6b0fdc2125d991e74a8eae103a0c3fc03918a96d915d41c4d5cd95d14b2e783b54100d03da468fb72a1b5ae8ffa3a16d65a16d6dad3e31699cd58649935f1c09d64597692655946d95659969d6459e6999448b2ac7ea7d24a90b21a2412a4fa78e49e828e824e4141f5b99445d517d0e9557f3365b7baea4ead5fcad5224d16e7aa352a5546aa1cf568103d0aaa7fa390e70ead107d01bd5e2fa09f57d6ae455d3bf53ffa9b91a538c905c6a1b23b215c0d57c248f88873713549ae528578ea62a3dcd5744276ad33a3e1b3681acd231bbe7152ebdeb46eebb6ae8a7a371e8eb3048093284672162b617c72c855ea6f93f34bc4cda854444844959bd9f57de324ae8668b23897cf4817ee8908a37ed521ba4444bbd220aed40fb918ecfa258e060a99f37e72cc31c79ffad50a394b888dec50fd6d63ce52b1113e72d6cad7c7495d4c27b3d9e99a1ccd9c43d2254b18f5739e3d43f7e6ac523dce66b411f4e768266b8bd9391dec8aaa256ce3b78d7177b0da11210f59f9fb5287f868d7dfaecb196fd53e09e4607d017c32c855eafd520ed65ff954ae529f7e9f62bb986934592915f87262a3ec0457e3ace99a5cc6d1a4389a5d7fbae6b4d92967e12357a95ff3ae9b6a6ce460fda38c8d76f562a0c3e0608b5acc9eef5c2c9662d9d854995f7130716474b12e09c3c6262bdad7cb25b7e84550be5632a35f8c4bb0917bc597ac9f175131f4270ca8cebe8cc3d9b7e52c367b3ebd31f3afccbc337bce4d312df240073890b201173c3490018d01232e6081af408b2228300116128800041e80e280d50e1d0d382122c7100c50e128b9614308921a412ce025b5513414900013024e40b8b4e4037833582cd8000428808c0174dc16038600567e08c00bad7455401f00d043663dd0010e6c808706328001232e60810a144181094820021078800376e8680011398660008e1b3684a811c4025e360d0524000140b8b41c60068bc500320a408001c4802180951701f84105f401003db8f8e24ef171f1c99de2f33305a25850157ae8a147e3689c9c1ff010d919929272e3a2c517f7cbb4f8e47e99960a6c5c344cb87011c322c62236148699745424867fa116ab2f6e14221b85084c09413f3d4c68d1e275e23a7109a9c14ece8d0d50506a56aa23d511521b685a316f58ad8c487e487e80ac503424840595caa7249593cad181a207f6124249094ecbd49a69e246480d0b522999d3e71b15771eca43446388413222030a15db71b95c3bb08d613c4d9042403e4ff0edc5cd0911627383970e4e0e3ccfa521694831090e35333272e0b8a30b748182b2604414d3c2b6fdc4c862c858f1a101e285a5379115a3031fd21c0e7c487736f0363a882e39787c4877b0fd236b87063ea4ad0c7c486930f0214d721617ef3fe7105d7a18f1e1acc3f6effda750642171810fe790053e9c4515f8701eb1d842749133457c38bb00145b505e91256928f0e1844de0c3d923810fe74f0b9913011ede7fd64496d481c08753c8033e9c370ef09f341306d145faecf870ca60fbcf99d8a2328a2cf9a3e343476ac0873386085fa121bac8a21c1fba1a88628b894f6449a3213e7420067ce842389c848ae8e233373ef42ab6a7a28df7570d2f797fe74174f19c203e741fb84c64b98ecf6cf79aeda7f79776882eee23614c1a1fca2bb6e75864f98f023e944409f8501a21e0515e882e5e04c487120c41b1c54424b2dcc8e543c9237d0ef0a104da7e84e8326792e08aac49c3fa50dab07c28710cf0decbf850d260fbcb27a2cbccf911595367aa8431299432bb00313e8c6cd8fe22882ed347d2c416fcfe48f4882d17c6879148001fc6d8caef88acf95385ed8f23ba4c950f230f1001f81791358da6cadc5ab477f0431fb6fbf051d543ca8773ee1ea20ba549892d95d6f8db0ee8c90167d9800e553b8774b1423c764c968d69e027031a03ba8774b14146e8d0371293655f17d0e1b5809e5f816834235d2c5011333493655d14d0e19d008d046872a48bdd89408ece64654810d079808e03747ca48badd9e1f3335959908e9f06fc10a143d57c59245db2a31c3af4f9d268fe1d428797011a870e5519d08dcc65438757089a1a3439d225db092267cf8ab4009d179dade3235db21a1a3e7bbeff4c560d9a2a0af849c00f0274a8da5e245d6a05c2dd68b2ea9c912eb5ce1ce9525d748b1b1dc08d66cc5c960e2f8b0eb301b40c1dfaa6483ed2a5d64818f369d02c922eb4003a04d019804e0c1f183a540960e5850e7dbe68a40b05a22eba2361cc0f80fe411ba9689066fba0431500740f3a45d708499769348d84fe8b5bffc8ad7f80b611b5022da24354080b5b7e38dd9092e2130b8ac562417b6e173972bbc8d181a207f61282d6fafb7cbfb5d65a8bf2c5cd02e5939b056dd119dac4967f4385d01aca827f2d5d3bd6655dd6b5c3c317778ba1dd6288680c5b7e0c92111958b088f1f0f94641b235484848b666cf7d0293fb64c2661384807ce61350502691a0a3a023932fee95dcab2964dacc1bccd7d4993833072727dac4f796bd805eaf17d08e9b04890429090e7366cac841a53adaae9dccb5b3e79700c95d0214940523a298164848f4cf96be5348590d121252dc279dd3e73b1e858ff33811972295f29ca0a31a54836ad0d18e1b85f219a7f116e0b88dbbfc05a79336f9deea0be8f57a0111754445659009a9dca8548cb7a541f0989919010000122315000030100e064442c15030d4754db60314800c8ea85060569b88c32445811032c6208300800c00000800000803008074cb0d3325c150dcc38715e51bcccc8cfeba0e33e630b73606434b1a7df34bbc7b01fe4951c1500b481dc2dc5405b01d9e27979f1f7f1859422251c624b2c58584a884ec3e53aa328bb2512d1245b1cc28d333a6c1a164f4232ae2503228bfa74c30d0c2b21e47243efec3afe54dbe3203115a34670220e08ff1fbffca4f76dfe137e81a9498d41430cfa5841a42c95f0003a35285128fbbcc9132a03181782a72ce4cacb5f366e548a5617849d2abedf460c2f5baf3f77b27d5cc3098ee4dc1d352839f2e62356ef3e0a18c97e58f7374b10929530da985b0881a146acb979fe09dbd75f9238f91cc0170cad87641fa7ec32e17806e31bda5e2d77b89deae6f0c8c3fff5558ddc936d840d8c9fcbeeb6c51ff4b6811e72f177d0b8eb92a92cf7fd3b75f03a634ef0a34babf93c869d4668798c02e7f936f630bdef5b185ddbe4e152832dcec74e05d2a61f167b9be8af561a27e80435d9f17019f823ddc9885046a78e446cfbc7bee9769048807ec28b05cabe0a86cd59acb7b332b1cc0db02d953a9714800a897fe88253e3a6820e0d1378da47a1c65e69c2a8443440e86206475b9a5cdc690584341ccd93d8df75975fbe60fac5f9a709b974d5ab9664e65f7f45046e003873feea0ca543e6c63930eff631c284fa862c08a44f9dc2a423491ccc8ff9e53bb58f16762cc5311e84c4240a74070e08abcb983846515ab97d3000d1af465d2b7bcd05d075aebfde643582f49b8ab4a38615ab83a64452a443c920f849860c7b00e3d3d93cc1203bb25716e46760a9e348b4784ef6bf2ad10cd4df87a5b8d896924230e249c7f8186141be8c1627de71bdef3ee6caca575acdbbafb74e1b945d95fc7107ae6d4cc71ff031ff8a80f3ef4811f7de8c71ff2b10f7de8831ff8e8473ff2411f7ddc473f980f797ee8168dcaa35e385b534ad99b38973d4298f8a809219e9cdd9aa7b4190dc520086e449ca79bb544a33340b99b1e14b1d824b4ff992e283276ae46e167989202ed092b60230c5825e72407c3e1e928e0ee760b20f19caac07384b3d6ccd5693d059208b3d742780833d982902741a035183549fa36a8fc015f633e3831d34aa57cb12f1736cabb95b6e1d265606daa304ca8e131dd10f1365c00e8cc61b77da5be3cb463d349a77b12e6c588efd65a30da5adc68a5dc71791cff4f6ac1b9b6785ea00218c38330cbd04178c635d39b6f848b67ab544bcee7b2357044dc5d83c57b8a786a29ba52e561d18dc12e52cd26fc933fc1f18a08ef58c21e26b78644c19cdf6afc43e36f1005137f55bfbf2c443f90302541f4a1c8c5d30ea2a6fed934f75f89f19bfaf10ca23af5b778a12560c53188633c34284a7c0b70c0a41a4447c2ef85e11844caf13776feaf36f32ffbfacaacc62f4055ec164458f5bfd4fc6f08e64f324c2f888edca1a6dc00c4e9d420f2a8bf2fd07e964eff5763ec41e4457f5302c64859ff0ab31c09881805230a33ac4406d1a1fe1d0d14824874965aa8b0b99b6c70484e5104419a13868d10fc3d34483f051109ffff84fa3b75e2afdefa174475f4ec50a00922a56687dbc06ef6c4aeef17447bcc9dd21a44a4797be53e3460c329ce4629c075be3c0b4901d11c83fc206a366833dae4f1865241cdad15cc964c6fec6250100555007083a8c5300005ff156b2b2c82089b7f25719000e4b74fb7c9f2af48f9f4320ea28696c631e0e5ba49a0a9c3e2e9628dc428612eca6a561edc11460e7b2d846179a99d1394d7b7c32e2095ef21ede5f80c1b3d856d52d043cb09687037d1bd6236d41a74a78d0b8dd8e9a4cd9529fc79b29673c2e99fb49f72766d8b50a8687bab89574227502a26ee2315599095568bc55e2ad3cb5c8d6004bc9c5602d6486c94796ab918649b75c90779ba0f8a45e976aa4248e369a6a014b5c99ae8f604aee1303c70436c8d00b7902db8184ad4c1b89b29ccd068f53029f4b40ea5d773c688c4c62e23d1554a148ddbdff21498e248af387b2a0ceac4123cbd99a7e94f2b30473890401b9b461e6d3323315980ae303462681566c2d02f96a9b8d1dd9972ad9f6f3ef361be4b6a7b704cacbbfc40996df982c9df92c660ba3d91b4f6f4ff7fec49c0c64fbb3dc94261d42d99d2a19f8b122303a63f2e450282bb61025aeb65ac168f74f8a67149f52d821630fa3bd70851b12931e3444e09a8b363df548ecebeda7d0bc1f4d68e47ce053b9e4571ecf06ce6b82d9d6466423375f58979104a6c9506d99c59c12abd1d16f906e91220e2c3ff1af1a50d8d3c3656798a19598c2e063c8f504e58c280edf135aa5c931195c0c7114b91846080ef742ac7fb05986319df8a198845bffb0d87718a744ee208653f4980ecfa6fc83f444200960352fe5fe711878606282a8b63b533b5005dfc975c00705a9900abd44ff17b5d71d831801b6b1cf921220290a7ff2d060c8002905e33aedf4f76c651c4ff6de871b4c3c8fa2f70ec816230aab8ff87eb0c12b84f5e52e3e192ee7f6206127b43f6b7717c0e2c8a63020199ff420732e2a2de2f8cffc92b58e0bbb69fd4244826cc8c7fa459c8d7e6423f07fe5593011969feb3ac9c49090aff4b3008909b855fe0fcc77d1081e8f97d6d620a1a71efbfb75c1f30a7bcc71ff896f6056ea420e519f8cc5e29a227f6e7de18c46fddf80195cd8eabd04905f499b96eafe8f635faee2d25b7940a8a8f3cd016d8523a40e2fc95c2e5bd013ae6971f8cbc0da1abf2edfdcdbc4dc813e09698b46d072cae7ca4c4716b0760ccf1907c876f5ffd4ec384ed7829642e817a8421739a2eb3e5eb594a698433bd26e28f08a0cc76a574f66c1baa8c64fed442b745a3b2ff6cc0d0b536b0dd3680ee2138ef521e1b259149a6c5cd8c5469d72ad209284d93c2d266f5b46bbaa0321d0b09171b9c60737b0e52e6fc94d320234b2410689fe5b68ece9c561a3a8ec83737a8fca8fab712ea10394558916f162662cac8d67a091af2c241391d98a317f76d196bf0a68569d83299551741a37c7059aa01e479c63e8de51f5af25ec80dc8cacb05a7e885923cd38b6479e5e80c8c52272d58a564e131c1fe101b4cc158ba0ac5722ea4e9eb15ddd08b9079bd0f9284c6cd3665a8f0a4c13f64f0bc1e99de79a121b54d454fff51e0500f6dd53949824b4b5160a81ea5f928058db1bfb5047d5238458303260300a011fb5e28e903d580166c26fb74b75ee7aca906c6effa286b9310a7eb94dbfa8879a10db090be64afcf7dcc018ed7fc0cbbbf0904626bf5262caee17ab5ed46179188c7fbaae103b1db6f99abc50de7379e8ad116470014b643f9a6ff6144e914bc1b4bf100d6ebc83c46e11476802552e1c8ab738e686a2a917564457f57e7a8506c622e2b1304192d085778635cda960500b15adbb286962c403e0ae5073ed5879640eddba9e7bde909bbf746fcced3d6bd9ccecd7dbad84bcbf3a240e91a9baeb70151f4aba1aab49f128493af086a10c4f60f21c24dc30b9ae044bb63a10400a86466d1e9f5b7755893cad058a8110324cb2a2b836dc9f51ee9f09582cee54906e00958680f04a60b7189fce933fd48839f6b6d8a216c5e1275722f878340976cc8f0a44c273f98864ad58bc7deb9397bbaf1dc9f82c5d3416c0fccec818c729ac808088debd1fc03ed8f5dc2c0b55c1d0ddb4bff8fb9cf9707970cba9274993a7c494dd19b7697adcde4eb91049b75f0f58e40c25a0751ab1742136caa4ed417520294fe730bac6080627a584765f123c472f17b2d9a9f8ccc04640290f1dd86d4b9fb475ede2c4be27ed6e2223b99c2f44dcabcacc835cf2476fcbfe4de8481e85a3b241fb25326121d1ce88588103a78d5ccf3143aa83c9706c1555d37cf1dc70f2e0c5318224ee26ba60fd9618e988bd1851318d244ff9ef3ba027db49c27ddac1c3418f840a2596912e743e028304168e213d3ccc0f72fca1e6226489c8956f200eef1cc3912aba05acbe073a271ea14f499f48ac15b31ff5c5570ba25b676d2de9b50a2280284a10369b2da4d07d207bcb6972e77a9f1ce76f2e44d6f678c685e59d129a60cd7d41328153804b927368168bebc0ab95b75a772247a3f6d1c81674afae42dc062c33d34aea7a4318fb6ced599729db4b77f181fa8873493615622b42e93553538254ffdab1d92d5e45be9432e715cc0d188033b6668a054b1ea54e8c606c7795e9585d65c4ded3fe66906d916c60f0e80dc0ed1b8963143b0bc60fea3576260861fdc15849a3e4da9e64a9658b3c75d980746a6bfe747c1ea3c442343848925f268c0263ad8c71092b200839c413c4c2742010b26894956600a247968a8ea841d1703193b30b008409ecd222af80b62f86210a7cab52f7e57da29c8a68233db1932df20aa1aa3a4bc378deb4be81a19c96c4853782ea19d6d7334d70df91f0f2050604fbe5889bcc04ce3fa50874502e11d360cd4817bdb47f34f0213dc8071813ff193ed014de879a99a01be64ef33d6f14b4ff62e6eadc0c4b0992864a8eadd73b96840ea8a3438d8cb653955863f5d2e16e68a38164c8ad2825ed2a285ec3d65064f106c04d552211298bb12d411e88c404f8932a77080f4a4aa25c029c14f12314de900ea485b279033028e25649aea81ea905441b0a3041d4d6632a503019d26619de209c19d12311d7b29ae347509c24068e4b071b8eb93e48ac98aa9b8a3d23af8047a6a4f136cafc00c0cfc8acf52d03bfcc3b752d10b3da48b0ea58a5ed0878ea5426fd2474729450f744267a9a19774a3a714d113bad0b554e845bae82885e83537136b49e82d191d25a1c7dc2696a5d0b134fa94869eb999184b4067e9e829197aa1f4142b8955ae0da14030d77582e6dc7bc52de1e476c758935de64aaaf44d56bd75e9602c435d9220cc6c613ad75bafb9eb385d6e821e28f3ba40d50de0955e720ee3bb581d4ad88b8454d79830dd17dbdedde338ee6d1a61b2eba048d4dea4ceccdcbd73a4e1d627db92633203e3d2dd29a11cdb5ebae1f15cdb35626ae7489929bda15e0387eec16c209b7f90e327cc3446ba0b1d36e7b5acf7e45efd8a1b578721c53189c9f114ee74584c03a5b339767bb9aeee5a4059e527c2685cbabb0a9621140e41e495ac38b18fcbce24a48884eb558e6d6d111ead3e2a2dd74200e129a2266b8da249066ba0ed8d75d02ad69d8d7a1823e3525d29819c568ad2407b3a8ebb157a429b1931deb48e89b289a2103b2af95eb8a939ee6c1961aac3a1ac16b998a2d9042059f61174d34d56a1610a85f158714d2b81400990d3d1eb1b6d16e0040e85e997ed60399f529c62f390f098ced25a9888bb58a3e1e99d7918662bf65afda51e1a3eda8be5e909ed0f17247239d3bec790627c001775b22aa83f0c3911c6c553cb50cb400bceda085ade02c8d5ac05f4115f898cf73a9b7fc1f1494e07f2bf3540c73f92dab2ec7622464fd2c5930fbf88a93986a7c591bd7aac8fcbc60da4cc82a1109b4cdc8a8af81df76112ec3744f931fe0c6e8de63cd2c591baf0677f405fc88ba0cd05ee86ba29d50d5d38d24ab4a27045aadeff4206f80e17b30674e81d4f03f9d6117f9626a1bd222ef6d99bc08cd12d61a4926a7bbe5ddf3b8245c2bd13871a05bbc20e05a263ea851a2d3d706855d6a32269d51f25fdcd7b7d4305e24f1816718049bf29771bd2e4ff1f2d00060463740322a31f7cd0ea1f17b6848d42dfc2fa60efa0c03021e66cefe882ca09131162d7724d0ad10d1ac7627811f082c6bada8f7663b594bd73d5f100b05bc5aa965da4fc536db342c4486d70a682c0fbc56aaae90368075b916a76c916618763d5da3c0bae5818483fca4c44d8162286a8e6c3f98f1873e8deaf57e55ea4f00acac30f2ed0fdc0a0cd02cc0bd82047685759edfe090cb25670f93085524027523d48869eacc6a47c6f0e8e04ffe079295a82dbc652e4178d4de3000ffcc14928d9958636502b66a7319ec282ae5ecda6ad8e930266412ded58c0219947bc366b4e1ac0a067031cfd62f62213031833dc73ea19505b83d5aef5a4fbe3740752914f166e76605312a110ffcf29820b3e06590311fc4bd935220cce9e2511d4bd67312f77dd6f3b79d050f2049c017ebb9f5cfee51b5d6c0177ba123836f9e5d2a6aced9861a0c69fd4439340ce4d764f1d0cc8e4b0e2f86493679dad390caf851bc24ca1034ed4dfe8fc42acde308c80702de9a9b5016c7daa67cf4c7407e0d4eb78be0d697f6d997339a0d7daa36edac664289f754483a0bc4741d5669bd99671aec3ab4c5c6476907508e8c0ce7f2807a8fc0a1b905fd7e913d38f6cbb7da28d39efd6fdbc1a4ff4b2b321b4010dda44d304345084a5299596d7bdb3590f9e2752b06cdb4a482982aa07ae2e040f0a9c7b4f1715aee14c9a2a74387610dbbaf2a894e8959df35505c775547d28fb4795ce51c7cb67f38bcae615e809a166163556c18131f382229038a1b850206a60c288039a31061da8e2dcffa7aa7f91ed943c0a1f54733a2e65dcf20dd77eb3a2556ca27a50f8ba1785db8bb05b8ffb312a1283cea441f09eed564919ef11bfc44aac349123459e6c6b44c4b2d0b6297eb2c577d08ef05f3eb47d9a918226cff37798fe0e9da1e39376590e4e59aa1a0222f53cbe36eca875b4d46b0552ab7ef32715bd32eb62c2d77cdc40fed4a9866fdc7fcb2d21794abac8d743b4817caca5a45ff1ab8fe1115565eddee162b5a417cd4e63ce4cad69d3054a4701aa7bdf34897324dfc3783ab85631c52bb1c626b0060a95620a3527f224961b198f347b5694f32d11553d5fea1a5f3bb3d98a92fe69d6d6ba43753357ddd47359ca4f21a686ded5e35dec8a04a033691dfc4d5be4f74afb14de308c475796d6357b9207e189a4f7de1b92ca6bb079138a261dc0877511824c8f9ba0974229481ed4b537eda692fd1ada243452c726bf5c71d1db72ad0f52b99874316f1a85254ba65b8f538d22fda9c151a85637252bb1de447eef3547aab738dcdc25c7996280811b05c574c3206bb04512d545c4014fc0f42fe8133ad7b6d7c175980b0056d8836469d7321eb1a7fc02519fdd3766d1322b5abd892fb4cd9bab2ba84bbaa32ffc6c41b19e17e6bac4f7cc1a398243f8bdc9d3ef576e554eec71bde694ec035e953e84c7802a15354a48a9306e3d288d29c089373d36bd517892e38aacfb095053b67410154e3b65bf95e6304f2fe4af6ba39d3a68c88a96b94c92d4bc313eb64f3cccb330a46393f09b13320a3bd2b56049b7c38f6fceb817d79a17263f4574bee89ad2cc8841039f296891f0818d8c19ca0c54f00ed4972efaabbf36662826b2d17cd0f723069db9f6d9d8a49b3978348f3fdaa743e367a3069e634a3f4c6521990173419754b6366c5347f264d0c8222fe58a02a16170cfd442878e942f94160c03124d7fef93c1e040bd369865c553b8ff9d50743813d9990453c4c59c530ca391c13fb808b575ad0834af2c4a71f97969e561bdae1fe8f543c9b7deaf5fb41f5f3403cb1962720081e50b4dbc6837cd9d13045999d77dfd4a7fe4e5a75034e6b3884079dd70c1e498bbfde807adc1c7bcaeea2373277f07af5af0f692ee04014ca95d960709d4737541db28a004ee3024bf8e063cd58f2f6ed570150f12aeb9e20488569c3626789b2528f2e6e85f6ad24468a57b5887cc8f47b0f16977419d52971d71fb4fd9ac025c6e49f3d22c490a10debb8baf10677c17b6e3b7010abe44e99847a21f6b8a418b1832f6335805c1640ace807a68099189bfde323f14fa7e433c5e99b8702ce203830add3c962643b56bc1bc96c22dd537b94699844d86b7ebca271ed834297584b54ba7a5f49616fd81c1a604d8351182ef6e9288b40f776341ba844edcaf323bfa61cac9e38b655a952bf24cff87a1d462d947cce41983773f4eee440f7e6a0c32bbb400b4d70f8096cd8e76d60eadb2bc12f4c097056487b1302605b1f7dc12b17c84a7478960a9fba5a1eb99f9c0f9a31b5eaa968597e7dcb1fc0e76920094a9d78b710a4bd6fc56f19ff9a73c111cd96c20f6d904171e6bdafed797fc2c2f3c2e4c83b799b0780865b07724631543304be35a441bcc07b02eae120f37612882acec836997e7c44a0e7182169cda127c247ec8f120ef0ecc896b6fe9a06b7ab4b79685e883eef546a6aaca52cb9e89f0e39187c36fc0e10dd98486a93ed47736214e9ec919dbda8ced60467449735550a418cd25910ac97a52f989f9c9ca2b6ca4eeec2d4549fb751657d6af8d588800624903b2b57591e20698ea1772db5ba8ffb9a1446ce74f41a16044d4c06bb7f50a55acf35361ba205b74b0d766e983f1b11cf269a40c28c8a41f9095f01c5cd05c0957ee6ef8546cdcb494bb5d8aa8ba28362c773dad59a2e4252e5413a0642d565c0508210c60168da2c4846c66bdb4af87f0806e81c898732315b52f71182cb0d70f0216ca55b8e4909ca33c7730b24b8b98b3cba7f7f261a7f68949f0051c30518e229156692349bdd4727076cd8eddb307e860887bca6181cebdb752e4ca320010ec8ee7d62306241625a41cad558813932d0356aa1b8e0f2b9707552c7847b4da85f9828d0e980c0583698f9a20124da53eb9476d6c0c72b8ddc6a39da17ddaf04d69d72646141269b063dad1b4961fe85d31a1001c0ff126f7d9507a63c57ce93bb115a422a713b6ecb11d4510df559e59f2243d4857b6eefb241632a1f7656536c174986c2b5c182f97500a1291c7cea2c335cc67b32d51a7cb636a4e4d4f071b04077e8384d46e5fc4d7ddb174a47250f717ab0072ce88558697a3b4686a0f0ac7b7a45e6b4b1450eac6fb9cb3ca4647df17e687899628481ce3cff3cd23692622fe3b3b2dd0cd690755178116c8bf81c56005e2419dfcbec9d9cf17883b827120359f74f1c4fcd36f7461f675a23ace4f5485c0ce6d365253d4160f0eac1be0ed7447f2c6a3e6236a3eca29081141f2ce0ac0b5c8fea587b240f81e0f8050d23d86f0e89f4cdd4696521e3f60ba90af5c0185db1327268f0315fe3856cb327e2e1e29d4c57aaad5111a04846db80917815931df7b76c723e7467f49198eb903ece9c7b8ef5e8ae7703e203516240a1f0a0f7eba2b4e3e2e4c815b0dc4c5c8d83baccad4f9907c44aca2a3c6eeccfad6b20326a88a5d8668ea4bac88c9c1fe2ea9646b1dea009b4ec19e1f17b6d884346f24f865b1105dd9dd16a1bb4ad55be6092280554e99862dd6ded5a09fbf28f24b102ba11b0645e436f4ece842cf088ad5bf962557af41be678b826414b58b1dd7f352abdba4258c9b0220a486cc7b79fb5d2d115577a008fbcb36fa7f881a357693fd23b66a9e1365fe98ed11eb4ae9df59e83c33dc8770392c0873a4aed3f174fce8c80348ad5cc69498f4c0d7843a77ccc6e2e860294dcf7b46e6160a67491a40c85126f5bca0fd9c04a08b523691b951555bcc9e2d7a102c33bcde43ac7eb4c9c75b9d59bff4931549836031c47f43ea0e64bf36c97ad49eecc4c278b005956e96d03caa643e9a3fa86e06f2c260d7d2e8ed0db7a56758d39f3933b8c5dfe5c1f9532d85607d53b1ef9bf11aa11556388de8b3b9cfcd85923d4bc5cc9435b806715f7b976cee4e6e20ac47b4c0da66bb6205b7ed9c4ced9ea63006e9d8d713f8f3fb734867713a3ed97e2f51325e0830c1503bf8f5d8b952cf0cdf491fb4956bca6a781a7f265768957daa0452464f7f136bc45e05c39f670e338cd26b0b424338c66a21e7bdaed5a7d88d54792693dbe29d59c95851aecb65306fa2ad998afc4d1d61053c72fa4264122c542600339fa143738bc89f280833177a36e7f7037e1db452aacf793dfb33ae56845afc49e82924e532d36aec82802405957254864d2177f6d3011c6b1e928408d763359fcf9476cf04304cb4969a71f1eb71d9bdb782b7f673838115949412b9f0820f053b75fd93ecf021253d6f329133ea88131a1f00bd01336a74556163d1e4b017ee9235e84abe76720b94589f08841e9207dd17fd48c5cefb3c81febb41ec9052cc032636eb73e3459a1f0db739c6d7691fd10dab91ec641933c1cad842bb712beaf570dedbcb4d01e6de7e722349377db237be7c490a6ce1c0055e8091ce021a7b15e4db7286037c3c37fd05c6bc9d645fe5be2691ed30f10572c14b279adf5626b3036b0cc3a16761020782a48fc10eb9a0e12677feb6311761d653d09fab7c30f0a07897de0e87fbbbd1f92a44c3602abeee607e9ebebe83611cf6b9cb5c3cacbb11059ec2e2d23faff52394f912eccf4c6f0105e622147e12d2b7cd88af567103e74a8f42c3bf82d01c6011f51583c502b473ae5daedf7db94b24e97ae2293e91b8efa9297465cc277e60c2cf895755b45c9f8b561432a5c38b58da5b01c4820ef2c4544822c7b3a924ae534d3ebeb211697d247242d8e5d58ab590c2a731703f22be7a5bcd8d5072a0d0b1e646ee40b8327d94c20ec970684d9d40eb11fcc681879d572a16853978bfcdb2900a0da7e48ca8741cfdeaa3362a0fe2e03c33133aa321ed5016a89e470f0ff79f06382821a0bb518c3c3d1398d46a6dfb2b1de705951ecc5dd7806d2c15a37c65b84c341a028a37dade8d3cea57519bf9317e470ba158e1057a52c804d74a42a2a8a539263424ee57e294f015d7fc26414101343e718b4b8ba0fc894f509667cbc26cca4e2b59163b91c2136206536174a45dad04b3b18fd3fd5c5c88a3bd45472f69753aab3e1ee99c51d03221efa1a2ac08d1b953c5fc414bbd520b66d14f50fbaef62dbab55de6ab59edd26bd9644d50eb7bf5607da05079eecb45168a2d1b076241c02fd7bbc8621f000417929c78663e240ce38e882dd9289a06c6b6c49458c99b606bb5b36b5e89c76f56bdd7f0ff88eea6a547c64ae3d4f721d5aaa971e7cf35bc984c0fe09bc1facb5316d5b3dc24295edeeae4ade4d3649ee667a84f162d9bcbac31b41b62bf13ec20e49ccc07fa8e58a7dcabb3c94e68fa097e02822148c314c5fc7a29de0450941092222433d7735a8601462a2b95123e469e0ae17b670278d431666322898d261da7f76a2212b2f408f82394180ffdeb12677fca724f48b2a7424b21263e3a3c3053c9d3aa07a74edf4ba105d6d4c90d7736bd5025f52063d92c712fb09bf56060e5fd759c85531591d04e982347cd469008c0ad44c152f77f8b917e8c3fe59b38c78c85cdeeaa450c7307c1080f680a84620a07941e82355a1a0a19608bdd5afe54ae141f8f48320d610bc120f6fb33273dce4a2aa9aa9a8cd720c77c9385023c615336cb7099221bad395ce19c121754d31235249effa03e06abf3c8398a1cec01cc81ef745530012f2f0a85f84c95029da16fcccded903c96c0877e8111cdbf84223ed341372ccdc300d74c473c6537c1bb1511a87a66115b85a61aefc51928c7e8cfe22c5a6121ca06872b1ab445d89662c00f11e52a9a561f2a6e9048770d143cf9f7f78b068c03fdc8699946045dbe1608420db3a132e92e9901b0d7d7bf06c73a3a96e9e1c6ab48bad7a31994c53b3930337c2a683642a12ea8849d372d0dd82b5e0b357e3e28ec4bd265da3ae3b26bd5e7336ef9c7a0db07db704c884de02ffdb01bdeef9e22cee9dcac6208707f0cf42486bf91d007305e9c6376f0329034182a186908f35abbfbabe65edf036c658e64074fa0f3406fcba733cc9d45c649a742a5a6189dfc609880b218959a469b786a5743e048ea854316204c0d8dbe0c4f137ca088d47d1f3185204c989521ffb255b701f3bfeb5254560b9b5fd73be9947e6b3e15146407e358e460ef6056c2be830750a3127fdd58dbc0f37d1adaeaf405002ecb0bfc510083dbfb953bdf235a3b9ef83c754b4ff07a4b4416289e9f919b08030d7d93ee829c6c0f7a473ca8d68cfb1af5027979f0af9daed53531f3c9c202280abc6c36d9418758993921b45faef7127cbf86da4ff1bd60f37dc777fddebf95f6353177e3cf8fbd411b71df28a3bd1df21b68caa1617d114021ddcde0f0ce366f6986b1bc6f15f217eccf17631c5361214f4446750a0f43efcbe873eeba46d6ca64943ba03bbc299e0ed019d332a811a3a5ced1d8f181e58f879e22a198d7456f2c7b69a0513fbe9a84cc59f24ae9b1d2cf527d24b976ef54425fc405533cb505f58d880e587177d9e491d939c94291aa4c7060177dc97311d5d3bfb5f7c940d82ef2a6538dfde64de844f109e4fa9929cc9d868f05a3b97de091827c7cf38d425a8848564c8d3a44d0cf148abd8ce36c1cb2d00c51807714d342ebfbe4794260147f30bb0abaa1ae43cbacbe224d91ac552f1bdb01c326d12609200a0757c76d8dbf9427ba3abf053ed93a759552f9835d87c32b649104c3eb04d532246798924e15406e7884a96a33c25326efed3d416257b3d712af997c48493407d304c61fdc4b7893eb3cca04d572b99c8c991b5c38a56bb34aa903f0b195f7b19a96570e503d728d154accc328c9fa0ad6306bc8f9d1af871c8efd9f5b72f859cc90701a3ea237576117acb346785163549e02d13708ca83027aa66ad458f5d315525b93b905b077984720760be134d2a66eee272af5a1646ee3c83c8fbca09958b330608fc6d2692e0b80778b3c8b8fc367c0c3b459a495450580981841b6ad523f1763fc80e4a38dd37ca833113c3c3451a9af4db61dd982f767d007b3c93a17f06f98415b43cf50d8a0c9187e553fe9a011cb1dde8a3458de7976655f96da247e307a2d1f56e611443dde89bcb20068afa5fd4ec323efd1f5314b6eafb276bbe9713940ad1f45c51b49b653c4ec3e07c4c8e3c24788a377f27c2bd280251905177143c0f64c00abb5ffa5da707d217891eb388818e29b3bce6a8f0f6d2516375a1d333e3c9e07f5131c4608088f294bc86b560272fd9d50c328be6cef51d35f04b9ea238e60b27f6ce9b5b4b9c6b0dc1edcc457b017c62ef0bc1059d81050f9a08cdd87a4e9b8b06045cebc203029443a6364581921b035fcedad99b4ed8d82f80f624e73f8657cbe3d8cff6a975a6c81440798126b436533e97b4213c9669ada9f15ba63494db58cf8589e83cb014e64d303e710380de7bec972cc4e05ec586f91af39dce6dff0e5bb7087f9ca6044a7d8150480190ae1502eb653b17d383f0cf3204b16c7a03c88d3a4b0c085636ce8b5d77b2c740e8924a67a89ae3b66fbfad12d369e6a6f417f32ca8ac56c83004c14e141a01e4935ae7f89cdac48938b6d9c6db42039b25b07f34b7b8ebd355b5785a321dc20f2c921eb747c415011ab91a5d54b075fe198bdd703c09795547a1543094a7c4c67ca00a29e6e2e752e7337e77ff2e66b722ae222f292818a8c5a2d5ce858e7ed53f5f55d76a05ef3ebf3e24bc1435d3a01b16130801ffd11db03d61b5882d9eae4da752e49972cf8505cba26d01f515833f04173d5b1d4215ba78e58db0d9547ea73658c8c8bdacd4631f9e23dccafc4611e662a3e1c8400d2f4106325253ff54e244dcc004f6ac53e91f50a272a9141b9c92a016c463834f9fc6194c44468c7d5ef661e51070c26b827f351120f9b948934e6368ba78b88ef851968463cb402c72754cf197a138c308c6012503564cf11e292267996d64dbc0253985db2c591c14d27bd69940c89ea54d902c2523c9e05c6303b186371ba674a06051d8aae78ebe1ac6572d6cb57d488824e582557d85844ffcde60689723b204979cb2ea824bf5b7a9908584be24afb57f796123d0016ed949624f9a0cb17b005a85997a1947003cc42ad06950a012165a7d9b800e21cfd2e948f26b81e592d0dad1838fd36b6fadd69543b3375f6bc9e2759691f282eb49ebebf16221767b08a999437845f69a9e96f6575a9fa82c055b2b3422a88c818f1c5aaa1c54575bb060e8646c85173261c2016432fd59cdaeaafbbe801a362acb3bc3c3dc325f23195ca14f6a7e74f0d310be59bf6b427758322e9fff2fa211451182d2ae3bd41936510b15e7a4fcd6d9131e80aaac703a36904e8729e34a380de374c785856c88ed78077611dff1afb5bc67bffc89692df4f2fc0717702901635bc552e96d94b113100be30c55e8b5cb0096d651182263697558ef599e68b68e221f299d39b2acc44a9b86d4276f31d2c09c7394e03c0441ee318eada464c3a2db68d6feca225ba90f06c63d4e3046ed761a7acfd2e72850b185604d388a0e8b6d7168a1b5d03d344f5f51f64ad3272919246e6a69233d4dbb0bfee09d9e0a28a2add6cad3fbadcd4b3a8b0e2e917e85e9fe3524203cae91787ee11e5f980819bd5fc706e2a68b66476383a6213da7b2401c2cc2f446ba1501eb71154230a745dcb3c50d3214699214b411ad9bc54d15991ff2fb4c48cd56c03f75f116c008df517c4163adfbaab360899133379b9091c341a6668fac978b15bc20284dac8991bbf0a010bc1ac6b5a7e59888806874d22e3c714f1d0e6d897b04047a3053dd7cbaa9888b963a3dd42ff164c07c2603a6c14861fb2f1a0cc20c34746d2ca00cb9a717979a81988c1cb4270943522e7afa1d2a722f0e988ea96d8ac9cc8ac72876449db5dfe0491270ec7e4b381ae195304898ab73f03efd56a578200bd540a759efc865569fd18aa4dd386cf62ff341de7d524189692bbd91ce4c64c1217cf53d542e34cdb996c35166077725791afb635f3da4046a2ccaa8f1358dd1ccd8e1d44a78db8afe8e36da048ff9bccdab5c2cfcdadfcbba5c81e3fd570bc15d06ea6609020188b6b61904eb2685eba7b21f520c70e3ff505365785beca76512f7d526022db53f47567f74e3cbd707a760dfe5d705b046e122f3e2280412bb89d93fd0b4ae4b6530dd77f695b0ddaf3b89f31c14608fa0981ef6cc6eef8c21f4a027c9b25ca56f1127ae3e925e2940a70fab6d8c84758f465ab1d4f1ebaa9ac2582df983e272f5b9eb66b5000c2dcc4ab23dd8ac0ab91280c2a6d7279cb50312170a390c04dcef9bb9c31d70249400c81d9357f4681ce4af9d5b3d15a3d24dde2c978d9eaa460e130ed2a3699375e1237639f6115252def47702b9c2554f39229c92854569d64a892de5c20dc9f26999bdac63fd32da43627847d557e5773adf529f3ffef4ba62446bb8bf619bf44b49b4c8923b131c213d57cad471ab5c47e2c229b415d713f381fe79146a86ae2885b4d340cabedbe285f00ba40b81109a300129aa481322eea721633602516aa5846c4e738371590ec3103e0ad7373da66b250ec07dd172d4506628c608e985506acc04d77c227ab524a2aaa4ff91154512609987c6d1c9081c4f798ca4b0aa8fe230bd6fae6ff2c02dd99f98ce742cafa2b7a229370f16811a6beec818bdef05bb9417279f3946d513f00123d8689e514cd58451192e4ed4e516ac2dd0306fe530fab5590474f02b7b1eddd65dbd1584070a4615fbcbea3723c644a188e1c462787e24d75fb0061e42f5f70224cf9aade8bff23b32fc6c31a6fbbf0522aca76e6f08f5d6cdd8d252ef7cd7efb962bbb0c8272216560f72e604e6da891c44c7a38dbca7e7af0a41a990a4c843799a0a9b3b18867b8e1ef6e42d419f3b05dd618e1366489c35cb7983d87bcdf8b39ebef4d52f18d1f62dff1e038d58b61c16fbfae987d6f168b782c23fee170f3f04e4bea2256d2801058ac92a11410891f4d0d68196292313a943848398728885a2af11debc25854a08b4b9a2d054b5375ef4f3d9ad89724309714a25456f33404610ba0f866674f530c8e9ea8efa09196f63661f3d6ca921b7bcdb9c698c4760a330f82f5629d321b3fea7b71999b2c5e20b32e206cd4fe60ad30aa1af3d0dcbcb9911a9b24d9021fd48efd5e88e52dee0d84f5d3c5301281c41d9020a3372ad1ccb0b2c384808bb7005fb38ec8f30a59c175cb38231dd6eeb63947b085c10844e3362a5c36cfee88855e6034c0d9b9cbb65ce9d27535be0c63fddac60ff6a4059676e8c85fd0913bc7ba0c0dcafa059021865ca1118309988d3ab334f869315a527fb69c5d56bd7e65a242a81b9ecac15efac82f1ef1d362add7ec8571226a436f3b2eb37eeb22a496f0cf2102057e94617e469d89c6d4778b0d9286e088259f10c1e2a4517081d972750b05fbd77b3f48aef1113cd965ade505f60695909c307840bd9342f675cca47a50640187fbe0e728a143295d67b1df4bb7a19cb64c322a7b87e1754510c8d6cdee59072ff91cb27dbe9e0cc689c59113ff1a416c62b821638b0d991e8b9c4d85dd718472c1da582b5d3ff747066cec801a43d2b6685e5c15e500963580e56b858fd90d23609107af01bf666cc3927d669ca29115fc87cef33f8d7bf091da1f5f840212ff85486975cc96234e8c9fff64b1903a0af7c81e912a262dfef7be7ccf8082d2f4b198c3f667489e0cc4e642cbf58db12e605fbd253aec009ced4ceb08f512d97df0548eea40824bca10050a89727c5b00dbbd7dfddb97cdb031f5a051b363efd32dcacac1451d7b47ca430450dc2c1566386d31d19df1ca72f289fa4f49ce7c50efd08a6bd668107c83eded561d01d06a0821804972d879595db43bc2732e9175ab6cffbbfe88e7fdbf0e3f38650058cc3b1cd340c6f209177253ad8cae11ce5e0c9af3685af37ae9be6faa596bf9e3ca0bb393562b556a7df248c404a6a98a2e98046c684711b0e6a16bcede9964b9a46831e3ae9b6b81ed1dce2099015e9e0d59e64ce780140f604841722b733eaad2e25a46825195320fccc8b2595faa08137c509deed96e7d31ab3487f79db028051c365740b22a75d2bb79e67275284bb838d49de1d7496a5217e0768786b57eb6670ccd86b2b15c5177dc8a458fbe354133784dd5ab49d80ba9444ab7a16e3b4986ea725908b0774a9d56acc5131f5a6cc33ba61406746684b6e7cbf03182c740d2f908f2eff5a1f684a83d1b1f08b96f49f7d101fb0bc8f60015b52f71baa1513f153df099c464f32ba4097911b6ae6ccdea54c51b649d34b1d2470a09206461873142db2a5a7dac415c82a2c6e8f1dbbeed6401594b4241a1301417fa35117ed682f0f04bae146100a2630bd9a0487a8c8ab5dbe66a304d5e590344c2044c3c1f31fde60ede8ab274f7f801a798e9ca0e8b45f25cb248681041c96b59098b8e234eef612035607c19b88ddc8feeab2adf41721925f584de33cea97bf32928bc909b6077bad00a2bbb7fdbde1851caa39da1b8c6d831ae89765490811b8d2a2812a9a0453a72fc4bdf5428613800dfa279e179dca9009062df415725148b3ac2afb6fe80b7f922083ddb89ae4c6b87a38d4ef6612a9a2aeb230726e42aa9844cfdce51eeb270237b962c6654cc8b35bb3c11ab88b550a66a041a51a4262239f85a31189d5629a045a4555ab8acce96c544f57d93f92c05ec48901bc9801a90febbe15a9b218b8f085c3065ee57c3a6d16ff7ad0b380eb0219479d1e9fec66661330a2e6aa40e8142cae8b234af3ea37815395668e424b27cdd96eec0cd54e1eecdaa2778ab280a33255846dff96eacb6987354d2d6a6af1ef625a2a7542a26c8186f2fb73baea630c75734669dfe3c3e58c0a1c0215cb91c52674c0eba2839b906a949e7b1b166273a26de851069373916677bf54aeab7fef5426bb65cd0e9abdc7ba684c2e2489568e9460281919705495d8b4f122613fe161ad8f52f160e8a2afb42335e14117a37c2a540d5903bf087d15e84e825c116913d08af57104c2e9d49e8e15240e8eb1c99c041ec894ccda902d4f78666d9461b94d2afbb5df1b76900c024a53a038645408b09009b1a02d09a6048125cf5b6d2b5cc8174bc376a1f2021d550d18d7c31b941585f3dcc46b1f19403da1e21e58c1567003d6b2c5459904d40b39afd175a29a2466ae127e06bd89c65ed3239015384b2c22bd971cb77019f4340bd1eb2fe26167d468e866d081cd9c5e0315ad936e8d07bcfe00fbbc8e5b301e41ac1551b10d2ed2813b0483d2e560f957e8a84e3b7e9c1cdd4a0e01380576be6b424f711cb83d849d162b6770f91a8cf1aca4a38123ea495782434e8087e0151e5cabc6a381a27553133492e788ffe47a227c44c0712de764e3eaec56b1d05549095473bc5169bf495eb8e619fe51a6efa9ceab578a1e5813090d8d3daecc6d84375ca1383a24fa8fe284d706c81cf47610cda9bd0c5832f4e569d14ace0f34b1e7f35fe734a23eabfad7903d5112ec191f04640c242c8eb83680aa1228525ee124fc01a24548c50ea1212fbd74c32ee420ab2f3dc887105e3d309dd9872a2f8d4705b042da267192c966fd0b39ba4ddafb4b46962168afc60c3e6aea499d4218d0e36b3e2b6365f6b006b90c6dbd851c5f5a8b05394c746e48d6cec20620d42140a736f2b0beefd597d64125d0a0b72fed1c06385198781c4bf6653540fe7df0d61e7e63948259060a0a00bca2ff1bf4e445196e54c3f88c7e077e192de9d094d0d656552641d000ff0f0f8559a6a7ce80be11d86f625260cd76fd72f767919cbcc211e985d8936734d04e9fe007615832edc2ac0ee858e3bd734e31ba3fa978b8094c49afb2017f0a4001eb6d2a4037c95a988d5a443821d883f1a0a44af65a5a3e8228da0de5af19928d05f98185c4b05a3d1917521f6a38c89ba4b04e1064d12dc80a6829104bcc75981031b7cc2022629b8042351d7a0b8a623a4bc9c70fb6e70c0ae9e5aa07e85d8aad64171bedc79a57ee5a1aacc73e6042a72dec149f554633316f46a35cb76c1053ca89d978d00ef52db7f590c4ebf9c169e34adede27f66b885b0054a7b74ec05f7556925955f764bc64b5bd4fae26ecaec14393d23a5ad5a657965a528e79af653bdecd7c299b0172880278cf27cd605bc088fbe646cc519362798b3ce72d22510963a8f6292e0da3ae83604e5a4bf5f65750140ea21e4bab25cce8270d0fff53426a529389cad5cc1669f5159f30186534cd772f319ea7f78dcb7f62081de7fae7f5832d0bb116ca5490c17fe6973935abacedfcadfc7e089b21e0efe750229f1b2022b73f78f8f351eecffa2ffeed746c3e98d8e1d4087acf4433d77dba0879727d2006ccf1993eeb365fc5e283314126a4e5ae5b1a0d46abdaa8b88585740d911a216d28587f0469a03d0f11718483c71e8c11dcea13bedfe6b893212a8b2a016cac1aedce4f0d2b10f782de62f8404d2e639e0c68249c846d73b9ec09fa7525308c89f1f54fd6aacdec1f8d01ab669f882b61f2cc42352abb87076e4726af376b51ae736145aa169943f7d6072098f0335305f5241d24e300d2460471741280fd4f95e8e972435c93debc964265bc52d464d7d53c3e6a942e6b86070bc0ef531052920a6f8ab0745fe4c0822f9451e5ff901c342f2c8d4e62560d32f6cdaa78d8df352bb588a59c59e5a82407607b638b5a6ce50a25575ff33f239bcf296403e74c7da0e4275f4d840eba78d815afe319802098bf7b197cb2a6dbe2c2a7ac33fd1eb0f59ae68dd6e09e29bd78b62a2ce6f9342fc8e3aed5f643dffd0495c4d90ca9b6a0a839e83c0e8ec0e3ca43b481e0441c7f09e1a588909a1a2ac0221a973de38018f673c61d2d20603559d174956ea81c762fe8e952e6082ca7516c01d1639c10023cc95daed12f2c4bbd64863c1e3166d66426f401d74ac0f6618d5b5261fdd4bc92628e1536774026b649dc2925ac77b0cdb02e2a41e8a67075b0ff9b288bfe68efb3fc0741002daecc962dc791ca030994a47db7a292a699da1247e2e4136fc557d416082f5944c0050d53075c2fc426880a7faba53c8c2d70a56e40c6d160b64110e0210ef048574b050af521aa23efa48d97aaa71504916e0e7cf3a8dbd1a57e24494aff2ee65265cf233c8c231e39ebd5437b0627d406d9265dbc6b0050ca63ecc9a7952c676b4a57ca3c2581427b2126ed0fac39ee2e4ded3e6b09a981a2aa380fb08468f4a0aa3f4e67e2e49d87b9dd85312e744d81d311c528107313682ded22f9de5fb0f9e83bef9b06d0b3c16bd4ca1d0545e28422a39b4651b49d535c3ad0e4eac583d4f17dd261b942b1d145ada36f718271604d083d75089cd7fdcc50aaaf3a025a82c40f65c28d99bebcd3d4dae80b6ec09936444d6576eb52adfcb1463503de8a11ab35f7f6b173488a7dc7e30c5b9788181aa1361aec95f333f921b9bcf730e264884f261d52b14e44bb2d5052f36d279e228548b568c8c70cfb03fbf6957ecea2569d351bce5fcfb5f2acc4105cbf09bcfd8daeb95bb32d039754987c3b03c861f54498e43c0749b9bad4fc3a4551277a245ee9dbef97464a6857f5854afe8bc035ee97c7064c41b5b0c058284e0e7328b85082cbafe6d22778b032d2d318fa8726015bade5e31f09974fd244f34a9c4daaea9f9294df6aa5d8509932fbf323d6a37defa77836a6386bd0abbfd8266c1465ea387f0a6c3180c7fc070545ec4a340320766486229abcd521f4f573f53f55b4c626fd3a1b405cd7b5ee0a9ca2d1e75de6bc2f1e8bd0db58c8d3a3c1c842f1098b4a3127e78b18dfc83553dfe98afe5dac03a29c0ec783630a7641c285c0c86d31a19fc435bdc0a7ad779c9d2870281fcbe74df3f54eb02e266638a1d274af1e8fd186e655ed1062c3713873ec1785a442c33314a05c4d1f6e8e78b194652b097261ada85fc9752a2249ca3bb65f6c9dafc4823bc99ff6404ec0253d14d68d4607415bea18a2cb05ce941d5a435ac9f42db9c3ace1fb0dbd4a9e7d8bca44e80d4b956ff1bd216b402264992bd160bd019c7c1261b888a69edc060065e898e6f2142094d3308f100a37d69d40cdca86105aa52ffec6cab4357779f12e0ae890fcb2ff25104732c92e51847075736a29708c87b119a13431ca20b1b37906737d37fd63889362f89c0657d009a63a45c7596685a86f2d46fd1c0106b88e944b0a7d50fcd11f2e6ba0ef89ba9a429335bc482c405db79dc333e3b794c922b7177714c49128b1f103550ce613bbd46c8294fc539dc9c1a00cc9b042ea03074109cca948e31fedbc39436d46c7f252448786f1119abb62de3e07e2f34a047364034808d3470510328ccfc4e346ef725e7a0b12912da015abf21522384a81092dfab3373c7945ab4e06c4e20b34a39b762fd0b2fc06690d68e93a0a1595acee0ecd2b8f0e071c8e15a3ed3e46d5604645b9352ea7433d6f722b294a42779d947336ad590d0b872d902327d76fa1c88139c6752c5ab8541e3e80eebe2ed7c1f469c5e28f9624a72a393af3ce10c3b59b7d659115c6d9da13c1031350cdd08b2c5493b21023e35edc5d0952f31176924b8cdbd2269235edb2c80b9db9883d6429dd0423696512eb00683a29b21cd9cb7caac9a04704ded65d98e4e543da1afdeb6b1cd3e23fdecbdaad693a0c1188eae0e24408a0451c0424bb8f4a96f0106a416aa9d100d2b6b740bc45890cc78fb927b123c52766e2c64e4b468e458e79b247963e59054eabafc02d4769eef096c65a5b280af9566203d4c2d1aa54cc6b4bcee5e9ec0d608449dca4b10bca413240402545f1b3b67dc32ca00dc85ee38aa8a70e485ebe2e6d21b04cda20b57a1d609b9e0906bd97a96c653dd449c9a6ab25c7325d61683279629b6c316ed485216505f6896b9714bbc9880f48fdd9f09034a9b53931008ca2e6695c577016b143b161bfc4fe6fc61843cb8c77758ea4372e724152d59f30678f451150629cc278774e8510f520b7245dd4b41ace0666800b29178383016b620751b62f2d69d33875a4371338b7cc5748fc0dc73e440da682461b630cba641a3f47f504fefc1420b7aeef61e40f1e77f2083c0c589048880f5b35f8e70d7deb42c662f2b23caf07a1a34c53995b0e1c466604cf1aa00b075bbc40c474d04ac3dffd9a5d72854a4e2dcf9be09860dfd2d83220cb5ad8ef4e39504148ec8361bd88b1b133da84444273a1ea24739665bff1b9be5276c3729ea4b3c244c7b7568dffcdc8b09812dbeab17921763b442cd4e59e535bf4cbf79302959224d7ef38f962a8c8a99980a4b2d0367cee26cdc6effc41376eb1fd03f80538536457fd277b19c412b32eb615094db5d66858f8ff095f09412d3d4507396e4ba25aed6c601a09dd201cd2002a85136af817fedf7064d4f05bb659fceb9b0a119c80caf84596648cc4a2fbdbf91e8e1a3bce23743804e6b1546e0588acf684070b1813fe69a3b9ac896a22670e00206828d631519c80ff73eda31c3948899bf85694fc6166a945bf3b5fc804181ddde22e7cdcb1de68200c8231b264b30f69a01c9bfd8a9f1bf514dd2a69cf6a7551b1f6ce7703ced9e1b215ff1e6b39c59b67c9828f6a3e046cdfe6ed4dc355bb8dc00aa010ceb4e9fa5d3dd790464d67efa1e8f030f9e53afc81eb9b1dcc3cc57d71d27dcea00e94abb29e9d8b55310e819c151d0df806581f2452081a25722889ff30263cd03029d7a1d61aff1a705e555aa46b2687506faa6472943ab6b5be89a060c11f972ac0566c026eea513d904cbcbacaf4b6855189b760e0ba53345dcb7976a8410e0023080e8606e3e3ee3f00350b42a5268bab477cd3d78ffcd8c96d042684cc27144fb72cec10a2b99b02f23ad22ac9298e7f38d59668a81b4723ba38286b95e2b62a4d58ff9c9d3a5871fab5ea95793cd7851eb48bc22ad8cac42c5132b10825f815a9ab36e8eb402725132538685ac9d168ade992cf3f2fc91c529aad0ecd56bc324235ee02de2bec3bb6648ab2f3363a2ea377c1a281a079c7ebe214b8f2ca4d55c59d9aaeddff53cb8eb2f732e8a0cfefd9c5d7d39b108fd90ba1f998715baf10e2ec7f2f7aa3a99b9edae8667dd4c451d49215eca6dd039f8146af42994cfaede20229c6c456fccae1003b0881421ccbf56995d8dfbaa724961c3b03edf0b4189ff03a43bb6a302e96d02f4e1cddd3e274deca100d79b5dc160a4eb14a31f7b21a97491c9e185bbd0e3eafd8d8e4bab8e62835d1813ffcdae72405140a6e42f76f9a4efddf7ecaafb6a9eef62b7f2733fec16f1bfa809482a857f760539ac315cf0e54f387c46035066dbc13088e9ca871b51842785195726aacdae4ebba5cf6c8294db8e4f70bb50491a6cb35ad85d27780f9444136fe297fb6148f575cf48d4ceae78acf71a18ed2b50ceae4eb97743dd7ed276bd81f34d0dc8b9f65c84d3d9c93ec2b3ab6b79389c8ed915f0413c60a1b780a17749dc8d6095c094d0d955ae2385ec65493b125702c56fdb6657249bc96c5857b8eb6391e24182bb8a912b1228f969afde10ae965dfb8233beaf42afefc0f35af5a03d50ddff32e546682ff7cd3d4d41f3de58e94b098f09168d6f701656b0807bc1a26f5224491e2c7476836c361432d8c5244b6171700bf684559ef92d3c9473051dad5fd95a0ccb8721ae4e2f64ba8e42b2ad15e3b9c65f9cf246d39811856ea03d5c795abf21bcecc549c4134417fef33fd24476a3060c961c68d07577bac97d5418f22957308c35138cc17f1507697a7f05122d32738a1fb7a9ee9cb3df267b00426df8b4a1a7c826fb1a057ab3aa5d3488b96d1123519e5ccbee7893b5e2fa5c59c3d253b4d1d84a71dbf871db91bb32f2013c0821254256c9cf8c2bc91aa6f867313bba9550c54219d74e7d787c54b86716872defe72385fa249d6a0aea208ec031e4cd4657bd13e528aea42bd23d561ea83557d2184285c8ca309aee421fc5dc364fdf0c64e240eea54ff6d8f16c97f8ef25ccd8830746cf8f9d7c94d4977456d6286207eda4b315d02521ad29f7532f344143f54681ee292eb3506cce03c8af1fa5f56f324f9974a0eb723d9059ea65f6e1b620cca1092be07cc901f8a2a9993b8b85e7f67a002e054d30b48247036758af3fbd249e86ccae3a9966bdec9fd2c10527a527f1b4973f8431ceaa1673d34371138c9d839fda8f0e92dafe2f367c673428f8b8986619bbd861ffb4778718c0c117be74dd0fba64c6649a992e727b072bc0356a6ad2e10e480c5ab2f1d9597302397e6a66dbebf6afbbafa09904b587d8471bcead65c9701d947fc7e67eab4b44b35840693107295d58e9db63c18174cb37b58dff7c1051c65af2989c059e3f887726a5f707002ea0022b240e8fe4583bd7197cdaf1013112e60fe5f005cc07d488311fcf51a05ffb91573ada8fa826fe87aa67d3b0b0176f2ee16ace2590ce8a707108caec696660a4333233137a00dda4d33a2609431c8d3786d82b706f5b60ae1b31102aab1874855f7c9697b08766f1557677e4d4413378550f081383ecab009c1cbe0f0111bd01e82371d99e3408a08b51ca81fd36ca0970628de19210f352e67e798e716a56aea3002d1aa384213630119105f02ae7d39ed40072ab6fa324d88280864c07d8becffe698f9b0ab3436ead3703a3cddef801022fe2f086e09ebdf053c96cfb03048b60616f67ecc1b36680e313dec85cec491bd30b0beec76d2405d49c1b10553b3c029b072d72673687180fc755f19fd8a9b3dd2110d4da74d43f50c3582ba31dfa797a21e8a76ba90b2a5dad84b08a84f16f399051a411007ca5fde6b5e4c9a2cec32a3f3e910878a9d3fd3383505edd41524644b423e18729956a74a0d1f7e74ab81ed14fd9f135f7924a29cdecc2d48526e856c2bdd2eddaff05f6e99ac503b02ec63d96dd5e180488350c824772ee8ca0972235877e101b5936e61748ced33d54097840e0f95b65c9bc65425db46688bcda1b03c2199881faa31f142280e1e9a3b614e48f4a98151f6ccf06ddf3e6d431452a6f5813e85e43e3a05882ba9b1a6d0d0b6a4043c18f0cf6021a3cd96666b58f85b10a3141754dbf29e86fdbf1b098b43e9023053b5e9ee47e214f58a610a65bc221c1946207b4e86e2013ff37cc762ead237222e8611c51b37864e32456265be2808ecf26998cc48cbb302555de5000cdcca724e333437d3a1b69c2980a1052e35e7b93a6bc56e3ad10ce6dcc8d77510241113a0822b060dabb0877ac15c2c0bfed9706f6aed60c178d4f6c75f3c2f3a1d4ad987c963c86e5c34885567012e11494f11b8499e976376f6905fdd3d369a63527b45a610007164dcc1cbbf0a4ac294ad1b5b2b177511f21c6688a8c0f0c69baa2a1a7d40a03e7212e24b61140125cf3dd628342240d5fe24027896214205fc39cfa3ba48b320240fd356ec7cae69561668c8cb08c1252cd30cb5e0b687ff656f3e1ad14e6bec6054d56db3d04bb7f8c4a82b0c887b79c7973b2a7ffffae67d6da9c87f4f4677fd19c81fd85be89b9d671ebde85906fa1c95b143355c4115c1333defe29ee2f21a7192370694f9528fcdcf4e51d30827a60060a6a4a53009b0afa28935f90193608f765c3b2043b121de27939eb7ab6af82845569d9f80c2768e9737e6fff52ee933d1edc2a4d24b11cc6ffcde6929851decf6c89a87fd5b89e8fd7ed3a48d205bbd38fc3b4b3f93bec126d19cda0f3084566c37e1e667709183fa0ed0832655c585b690af5738657958cc384246d7ade7197151dc7d67df4aefbc90d223e166a79d82a7877d446efcb0704598e0f85af1d17a734400fe6531bbaee1e595d8605702b8041c4359975485e028967dce99d7a2ba6352e48203a4a3ca2d43eaeb0ed2687340b933b4b79d68cd4558329ee6384062b3aca68e6b0ba347b48c04e9ac4e736566194b5a9732d1e7c3592c71823a3057417d591386dec9c421b17fa453a100de038291a8d3be614043c87160b0205258ec28490c6761479b6ab7dbda7ff6ac004d94db2be4e57c558e07cee33d37eb2c91da9ccb1aa62ed9b9560629dbc15285e3d9b16cb531030a121da79769d0bbee08e03b79a129fe1fae9876fb1019594c45c74c7d0c7f6c381cb96f8190971f05cff91dd4b8d6895bb6181be1fb31a11e75f803d2f67e386d6c17774f90d59430fc09700e7db857a750e82ca6c3ae8b90990e27574670ea222659faef81b088d376044f3604f32df53fc0a46ee842ea3b95012c21ee62225a05f985ea34858d4192fb1503f5086c416aef3360511748eb0d96980cc71701d0d807d3d8126cf670c82628f62328bd97cfd2af1b58aa91811c4522b3d1cd1a5a940070be3e1f758dbb08ce86dc4dc88c08cf3e44dcae1b2d1e48e8225a4d35f545257f7ed3a6da1fe8103ad84904e796a795861af057a2275406d6fa827874bee0b12f328b5d6aa762102c2f78cf0618452744bf439098f02a333aa573a37f8879accc1eab0b3347240af0c07ae9a03a6dde4bb0e3c7e7761b83f2bd2bebd3d3b93aa261bb0a7a9ec58de6d788b0d534d71e1b36b9f77ab8415273a184921097542e613caf4b305e0c43ad63015e1fb1c1f5cf8efbf2d20e1b154ddb86fbc18c17153c236602ff5dee6971733f0418cffc2ebbb50115f199a161383fcd91014b4e461be0da1f6f88b411ac1cbea5748944a9e30db0db3a4c6fc5fa4026f61b72cde50cd2fe04ac66322b451e6daf9de17f33a2553a0a0186899af1467a605269ff7984ccffc8f6bccaa27575f8061be0fb3b3805a0b236b04ac4eeb05a30d896e869164744f3cd7b8926aa8b2cddb3c9a93ee4ff090e1ec85be564796e245eeea191e651ca49e79611ef3d8bb0f601330316ff4b5ad7d5e648ba3a0289b229e17295362e1bad0cc26a29527c7dcd66b6c5a917813d30c854f15e54376fe0ca73fd416ff1ce627bbf189782525bd049f1b74e6e4805fe0c3afdcfd0da82d7a54a85ed996c271bcab2508714704f2e2e1411dac6e4e1cc1ca2ed07b8be5bed41d371a38a2282d68cf1e3e3749c82a2172ac1de5e29d725828271df9d96f0113faab2f813e59a1ac0e0a98d02f03c607d50ab5b1da6ffa9251a0c46a56886f9faac4ecb86a9c62fe259cd6ca5c1be0d1c13e114634063913a56084bc883c41d0e3d3ccded8ba89c27d485607dacc99470bd39ff5e270094d2494493ae88bc5a4dfec9ca629324c47554a50423e1cba2ede1fc3b517a39c21d597f03693cedbaadd4eccf0f2bc301d430ba852061ebdbb4548084b5af225d0dd45d2b5be775bbce34b20160fa6ad2e1222bd82ac9b6dbe24953d91d41e8dee9e68d36cafe36ed0c283926f4f057e055ba3f7d56da4f68e15b8ce95be3687ce7bf416201144827fae4699618aa0b9794a1ade8b7eda6a90bc8a813a898335f622650ae2a60b7729396eb2d209fdac8a8aa6789bea251b79bf0de8953368d8dc250d2e40ffae0966479543048bb77bec94aaea3e2a3665a8a7821d795ae147904f651e13296b97d33796240f7bf0e8a3ed86fda790fa81a5f33f44ad5fb965a89a99ea630a28211189a473cf34c840f5fe3df83a8d807ab44e2f04a57340b02eda084e0ebd8814649df95afb91ada0551486a9f79d6caa93ad6604309c9ea61dbeecd95c3910de1651a10a1ad40cf7e75486256c29c5d5d73fb8540a56a872fa9db1c124d0ce86231f3634fc598bbbcd252aeba93cfc9dbe2de708bcf7ba0283ae345fa2ecdad141455c1133d1ac0236c53f717d2078d439d632e314113535a8f407858d4c092c136141f647e8ca9ec573b238580b90650ba64159e5c22664f02ba403694bb8f07cf921bb50b03670934a8aab2876c32347f477ba7f4102fa5e7cbff364c965e2891893ce3856ed75bff17ee90f406b6e3fdbe8aa2822005ab42c1a2b1bf87f2446c03d5554e8511dd680052065aa5c24103b0267be0ac4119bb2d1dd9240df93f817f241452cf5fcdbb06a3a922cc3cc14e9b9585e7170e05a0856b1b9e3bc83fcef7fbfbf836eab4fccbfab6784e9069a4be7894ece5d2a936ffa4d64aa0ba5ac3c2ac97a3210e545fb343e74d6963741c8806ce905f1884e7e615d8242d2112726491788084bad995ffd54d5d38ab7360a26e98647ae77db9722a46a4e33b21ab947b36cc495b13538868ee921d6fc82a491e252447a62939bb01407196c53575f2ae4b00bab9e98a891e54d1c00fb837c9676d6062da36c0794d880e3c42554f305bfedf2dcba7fcbd2edb4659cdbb3dc373559ee0deaea633f853286156ba522aa4996485eb124018c474d0be47344683dbc958dfdc00728504de69e100b8551f6b97510974c21bb8b9526439182d346e9406c1078e8bb7daaae88bb86d6ffdb5fb0ad280b849f7125099e2ff841d0a97873512c90e9e5a5ce64d00bc4a2fad3743c318674a0f6639af333f0e77d62c26cd0bd7545621e7a6bba88a1f1cccb2fccc32c48edec1fb7aa9e75d5d21a5b85420e2072d66f0338ca6549523490d2e24faba2c5d07c55c885cbe9a55343d41d575be006db1b2ae891fac710467089e70b1184489ea0d95fb66933a39efe73279d1946f4bcd046c82ef038db8e8cd91216e602aa300d1ddaf8f4815a93a0bdd03878bdf7015a1fa26d8124a504c6519b4a23072070cd923339bb9a56a9815b64bd42a9357e169b3e7099ea8ec97de8ccfe82b160a72472840da43681771f60dd2b098982cba3f4fa0e55d3e8652fa2580ad7a20ab27ef2399fc82dffd15524701e17c0a5f50cbaed0159e408bde79b73e4274d2844f50e0e37303bc1a703fddf08b1bdacbf69b82f264264ce141d038a26f2d785ace313dcdc0a6fa7581260dc8166bae0e967ee34b302eb63aca3f8ffe6457aee365059064ab60e0a377344a872269726b197e5fdb4362204c80bdf73f0a0edc7f64b785717a199a3e1d8c90827314369cd03e5f17b2d8acb52a55aa6a0b04a2196355932a63cb34aab1df8dc30f1deaa1830bc38540bd10f8127e6f2c6894bb886de93b959be7818860311229f0134586278f5acabbd84131697ae18d4e091408f3ba0060bfff4fbf0da178f357dd1609b994654a3cd020f6eaa5e8f7063bbc60cc58a80c5120d58d7ae28676b3955be5d617585d495c91c46118a12b9cc9f64feaf77682b0bc8064a982c7aae43d5da44af3d653f21a6f5d0f9497856553ae9bee48878be7b80f515d496f6f7ad63f68b6c1449b657c9200812591a9f24209b8018a870393a49989ba0ebc4b816c811e6d5b7df22fa4054277617407b93661b2308758d8472ada45c36138f199c187314718bceae934c5e6aa47e8c3dca13216c3b512ef31e7a4704e71cac103dd49f335703f226711e3d0bdab8cd421acaf54b3e53bbf3d754288c745f1132d2cbacb540de606a2205955ded5893effca1ec92da677ae4c9d80f3ea5a631b96422a9445d7560d33c83327d4374529f94fedaa68dc928022cb4838b684034ba8b1b84b1ec392e7e18f11e695fcde01390a6114e9af6dd1090b48a3db0a256d7016132e741e95f9df7b38366d8db803509b27cab20384769222e339c4cf35a40edd036a10ec81b5950c8bd12fda440b1aa47247ef29db62c2d486b95c5a75a5191251b6ed19f0e608fa3d2cf6da063d9809922338d7d38cfa260707b592707784aed2b488b2e64bd22a9c256b04c086f69e40c678d6f7f0048fcf2c4ba41895aaf402757fba6a0fdf673d306f86c6f724d981bfeacb08988951d94eff7363d60c24ccd75057e62b848b8ba7fe4ec05819057a9392de62c607dc1592026d716ffd3ee87b98adbd17c45189516775fee220958a0b460d5834eb5633b21298e53c0264da8d6dd4fd4e75ba5016c47d183209dd4eab153e69cb2f9bb7e62ac1da3a1659cceb53f5e02e28f845371bee77aecfe0d83c053e4f04d47dc9b0ab5bbe6ee160482f62da0ca6ac51e68e718c77f0bb647e95d160102e7b82144d175498f63f0cab5989087563887789065ca2e013f6a218b2c860431c52949156b40e223443c895f1de6e65e41d3aacbc27641c3c788b9490c11fb4732ec59c737f530914892deb1e901532d6fd78b4bd87609c7675fee598294087b2ca2458476f6ad4cf0d25d35b50318e2885dbf8ba271044ded909267a8e319fb192e1da7cf40ba67cc0822a4d5fd7b02217b77233265a4546358019fe51f12f84584cbc6bb061270a7f462271982d209c84bb8e498d462c37a5e59a2f20160fe6c50fe236724dde1d27f33be581f5109e473bc8eb5c3c78231394dc958ec05099ea2b6f29bef9d193044470b21289b8f162126f0291ea571a3501e76ff22b6696365f11ca61b2da6ee63e4a5569f0f6d2ad7008314d609934800072165172a7e2e551a9dc20deb64fff874ad1c488ca2c031b1b944f2e70d3b912db0e5b8646de79232058583ec79c43c2f2f20cd0925051d2367f86b39e4e0b2586639f38ec350c103db2a08f9356a33848378798579216947f47b9af69402e55709361b644c30cff56e4777cb0ffa00a20325206c386b63c0c850323699c8e04f3ef467308a42457a05a74bf642b4c153adf646797b1416c66d7377a4bad2bba08088c3ab6def68616c000a6c70895a5e7f62228a471a0b008eb463dd9bfd39c94941947cf2cde697c982edcf4575a450a2842b54523d3607f2529ac5eb1474f8646d3afc8cfaed09ea3774b2512086ee7fa591970e6d7bd9c6d3bab1a4a358bee82d0bc81c98d7aed6248b649b2f4b54a635a6ae4a8367d242eb60ae43dc1a0406608ec7311e8c9652aff5954bb712421e957781959124a89623654e64448d0ecf93f23ece458e9823b22872fa2b96d60c82391125f4756fd1be89d2462188d2f6ddb21b4eb8087edba0159b23026978bc0dad801c7414c70f7c88506c0539cba13e9fc7b19b513f50c14f5064ddcdc440a7a3e018481781d9bdea6d2a29ea22336232c8ac4ed1123417b85a6d680a955b4edfab9bc72158ff50728f145b88b86b377bea9d60bd70a7a46446a3148f9982f8d95e786123cee29463d2a2898297198d15b14f767dc18e66bb800ecabf39a19fb8784683cb44d82666155839de0da4be3e894d840a06ee0528b76145320c658a4a0a6da2116f9d43031642930237b519fd48539f12c8adc71874167a7ea7dd82ead011ed3b1e4223013767d4f046afc9fa8bac2945b2a559f7c83d0f298db6da6880c58d56e77d309d3201a8b9d15f3138bbb4e440546c9e9b8c55b5b9db26b9585f8c21b5bfe7b608045f032205aa0c8ef970e98599d9db2bdeb7932603157f95eea94e88e588919f460dc106407d0251d61b42c287dd2fd03075254a29c88d7cec284500550879b4c157619ebff3518ab738ac3e8f16ad39346f5bb7bd537c555cf8815772e41625982f156be3e12d6d1e0cb95a77e748f9102807b3cc18c47b587fb1949329528958ed00a6c8ba284760396594a6f3c71f75dfe639e8ecbdf3501c6fa37cb9100301767f606130daa7f35e7d6514f5a67d73a656df992773bad31d10a7577d371d48a1ac9ad0f1cb58f0b931914982529af82f4a96278a1c3ad9092302c027b43fa1a6e29fc021f9e9527c23e7e1887c878c1edda80302645b3d375d31b575481227ad6ca668efa5db65d4cc28a424f5b68631830f19362fb90294c211d4ff82fe0a6126fb50dc29a55b569ec7e80361ec2d29e9d6d6cf2cda195e2de254f314636f00ee347ceecc3c2948b8346bcc3eb0e70ccc31b1bfa322efb23177c2d10d1373491d4bd308d038625d13501030d5bb49b943306b65a9d9a3298ecc92c34090f902308d630a142210d8cda6b61198b0a360e3676512a09b7e21cc63890c139aec4839d38e36c840fd0caac955d89144aa82f1c667da3ce9a8ec03cb56c97b55bae50a92b877cf53014a9d1b488633d1627249ed11ac4a1bd5e583ff1089375a1ed8d52038d6907d8df3bde6438040c2c3af802e23f9730db87d54651dbe4a3306391c02c767f9866e942960705761a60b1043be17d56c5a0d4b5cf560dc40821019979ef1ec430a513bf42bfad255835e149abc5b066d5bf2c05c5f5f1a2d86859523597555f348c6725863f0ad0c1593c7506ca59beaff03e8045263e3108114b9a25bf0fe85c0ebc1fe78e00a72fc22fa7899c4a8e4f9e92217654e44214cd4069627d734e2bf288e50fc140fbe4d59fc018e5c287f23e784c0fc2466a1f254af95fc10e620a4ad57adea7dca47f0247414ccc20c0842d47f4cf276766095c3f296c5f9ab9ce810473e62f3901e06f82b3457a0893291480b8d2ba1d82f8c0d66a9dd0566ef13891375e108c61d62f0eacda7e4be4d3687b5032508ba6d106ac3d036db4bdd235b11c4d1e976807a52bc1174b2329ad5b61645dc7438c448616ff84707d98db3f71de9a738b4c11dee1b4230104c7dcabb851f92cec559e41db99adf87bef2f460db83fe6d7b86e076d15b37fb1539dbd9a1a24010a0cf00639badbd8fac095f58061d2bb9d3903d3fab89b9a372cdf344c3aa49d83444878a9f2ddde99d4dbe518b807bd07bc6e10a217c0cb120b35472844c50dec1f9818a420df14eca2667d88523b17c30b433f05b7c028055f4a6fac1c7151d97b89da0e5938815e1ce9152b3e7e5b25103c25f20cf9adde40b073be240d2053660f765ad452be457d17730a437618582bd65babfc3aa506ecd99101db3e1ad1f42af4e4dca531f64002e35ffe9cace68249c6e05d7b1356f33d6ccb74541de30b48e36286cea9d8ca3eb6ea862fdf8a422078a340a57044515071b52459008d8193a47b55942538cfaf8db1156d8b54f2fd2d3b71963cdc6c069502b4e7ee804256326c672d2c9399ebb5d8b66c6e5b265da2a2512a7303d96358acc761de83d1ca454352c22377d93525ddc10a2c824bc82756bf28453e1160924a7ceb386ca4e310de2225e954465a95f1321750e73ab60c18a4c15334974b304e722b48bd4b6e594b306db120fc4ab57a01ea3c0515b68160af095f21e7f47a13d226684a4976682291fe2078ebfe0003102cea234f69361bdc4c7be57da53687cc042aeb409da02838b025ebd9148bb2bd9c0ef7d6280b167f53152d42886e6b00a0b9f6c37c8d1cc1885cc15349d88047b140579f5e99e5d4d7b25a6e040d75a490d8b6141d41be945bd0f299559d17709cdacada18875c4c8113d125df776d344e03011d847664d7c9285d8e6fc81de89a4bb1447b3e81b2a73934c22e99d96dd2c188970750ec80a0561b7726891d5c3377fe5200c791d0da26955513a9421c17a08e48489147c7b0d60104040737305d906517290dae5b410188093490f6fd1ffe2e1c6fb584a9970a45c2c462892a142903c91d29fccf5ad29982a409916d110e1cbe3e5dcf6053468e5733f6f92339c28860fcf3bf454d129b32b273fa20c1585504989d2f70547f65ab6dd50bfd3528448d8e14e2f016f5f3f98614e8a686a6b4f228624188657d376a444602a8b15a318cee707c6ae9b54066a2e0a7a3d0b28f332c9684b737ec8c56f8f60a4c0d0356fb84c9957593c189c647762f8a72fbe413271eb467df759976e3248e6b1c28c930b1875c2bab7c42390f1e26a4aae682a9718d12e347b1a484cab31f1143bfd66d4d4bd9679514bbc580b972153f4dd6ff8b80d561fad83028ccfb90b74b7faa8d38aec282ba5d1c6a193813e2fac611013e58b13d839dfb7655391cdc524e0ab3563c01a2cf4fe72389b9742d66eabcd4e42584c706e6a841a78cd72bd256338a5826cb315c9a7a97767842e745039529942a008c84758aa18ad9c15a622e7dda9448c1c961bece7df51be5f85b64c145b4a1b5c39e48d133f152571c4f4d4164dc14b40432cc14e822c08845d8b609b96c9f944a9e105fcf3f4f60f027337acec38e29050414d368f7af62990d6855c9f8c1b873882781fe1308dafac1dd1637c48f0647ce9c6b13e97d1d89b7016bcb7ed9e4a4e8c9530612f9d08b1f45e5b522b7965a0ba966e400503f742142ec4f29257957c9345234bf075ed33a352a4e5b7e06ba4615fc76722dcfdb047cbc91be51b0b713f9654015dbb0fd09eed4cae2fe5aa922f5c7229263259b2526c619c730848b967147438f5400f50ea0a6f89862097db116f854592119dd9da58f92a9c7ec2d1c71eeddda2fa048c0e21f9de0e08dc6fa67b568682477500004b01c0ede47b3f09d0828f59983531fa79b897b084b5b887a0910314ca7c37a159029b16aaaef0380767e1e94da56cc0ce067752aaed07bcb03880825cff9081ca9fd04fca68b57e304a86d464c7c016058db60fb316e67a2e6f524ef0a09d61f32ded420528ef54c89226a808bbc154cbe82719491b5f69ffd7632e7aa75844fab47fb04587b742f958eec33ddf2b0cde4345d0ae6fda9174ef98804e49e5cb23083a2fc5061e2133ab55d75719830e8b211fd46cfdaaf7da28834bda5f70d1a2f21f31eb837c8bce1325be5ba10b5b218b0b19f10eb4ab4df1533bceeff80ab85d80f2792f88cb59406f19b019b505582b87a94699a74a888d254eb748b75f1958423ff1428e19bb24d64645af5c4295e498e375b15ec0bc4d36865c0a2bfd78f78b1751968d8166303edf66e1b3562e9a833e1c60d1229b376d702ba06b8cea1b59841161af7e6fe99e1739d806ea0ff82dd408f27a52281fbe2384413cc81a930e124f7a4c96079a1a376ba3a331039c0ff6f53792ffdf40db36a96aefa31fffb46073973c3ef1ef7ec3a7dfd9aa0f22a1f6641051e7d4372a720007d26336c079e2b79be3e2d22161128b04887da36fc38b5940948d00e02ceb9ba22be7a324b16111f5ee04d64b9db8f8cde77232fdc457883a3a989a5348055a94a360976cc9297a9d28268a8a32e7482a9c3feae59a3227f9849cc1c34561b0c722cd08bcb5304ec95e9989906009e1ecab691bb8dcfb4616a864a33f606251bd7c2c5806bd7d25b82dffb5054b7f82542f5ae0f8727f07fb3a39bf4a091699ea448c00ffe1bc72bd8bd4cbe61af1cc48327ed32de5fb1e952e595ba7b36541062fa10b40d91f32dac9ac9f448b131b7446d3e57a20a31edc06ed6b045804640b99ed9a49967a48efde7db2996280c57e22c567aa0394b6f91874a6113e568089fc234a644f09612c543262fab3c305376710b98fc3a63e895c52198fcc42602dad190d124562558ed8a0bc6487f1dc21c357fbcbaa4a82c9790d31ca7b86ece0b9470492302dd8472139d791ddd6263e8ad8ae509a7821f2ccc5c81ae3ab15d5e1c4d18e1d878845e0ac001b5621f97e72215b6ac206a6690778673f5239835ba4c170e3022251a98059128c9ce05473120e058763161742d417148c994a427cf96f98737f4e140abbbb5de12f0e808ee1e326dad7109b87a0cc1d5fb85b9882c2bdba5cef6a9c74df718e72a3354408621b37e4ac64a51bfcce7b097671886f7c774220af99d450c461dcd3e1304c0768b41f44d322c70942cc34605d9a70e2f18a7b2a28a0a56b37007141d6b81d498c15287718860dde1f37b8a270dfe9ad18d0a2d34c7c129b86e35d53b008e182d61dd3cd7b4b8d57c5b8a1f9ab7f895fb590eee3927aaed4a8237889c59055d22b4d8ae6f60d79ee27433488ef08b3fc3344314c5b6f011e888a6c6205c15c354e45fc541a1660f2a717d2e423ff867e9f4f2156f8121952bbfa488d0e5d22c1c5c505a335d6778f79ea09a7d9f2f78a0acb6b5c882b7b2dfc3419ac2f78852e7407924b58f17e14593629e24bb1fab376292ea849af1d2e7a6be63783747dd50b442503ba73fe775a409819251d6dfdf24b14a1fbec5b2464610ab1f8f321ecb821912d0d15a9755f5feb5e2c4d63006694dbeb2ae6f111b6cfb489bd40d3f7c4e925e3b115d0ec2020dca937da7ab2c0d78cddb0adb5b61b218434b2f7de7bcb2d036807c7074407cebdbb5889a7e212410421c32449ce1288e3e2d42bcac58b7f2fee827a510446fd454745ec5dbe7779797ef2ee50b98fd14727cd6e91878f58c82143a4c4e25d3e8c445654798d8e218d6e72529d6df44805ab21dbb08a61f5c2aa85d50aab20ac52589d5895588d4f20565f1be22c0fac458675a9da6861350a3a0d9e798787e199786a359f62fa91bf05103d1185fcddc1c2577f95d9456697074b6b4fe5cae1c26a1484fd001aa168b08c83651996fa9dc195c962cbaa57faf05878b0586aab1ab2ed865d400fd9aa6253305bd5cbc965ab6a25b16c552b27a4b25505f9806c55a91cca5675769169ab2ab190b6aaf14955a192fada1076719607bb807ea37f6017d06575b6aa6d59d8056435da7a6810d2a75662ad5c389c0b52038dc0233c430f0f99e0992cc02a38c66a348d240b0b5d8b61c815f2d669b880b02ead2ba5ec96d44ad3daa3adf4655d5132e1e1ab586f2b7135ae051eb1b08893223a7dca82764d5f7405d18ff4d2d18fef653938af083c831d4e9d1e218b75cfdac7da369e95aeb049933e3decc231619127e380661b4a037edb8910bfdd840141400764b0c83d35e017c2646200a54164dc2db0611168a409baf21a7b5811ef3d88b0d1ca82ca837e61914a5a6f651e16a92bf3f7b432ab0c9e6c931eedc7cec70bc7fb5543e11f4ea3c9e918903ceca1071196d9857409317a598fbe04a22ffb52d61e21fb229ebdada74ff06600088cd90a9ccd8f5d267c2369530cea600e2c3c754b5f66775a1c138f853091aa958cdc1c767fd899c93f2bfb1202f9a1390045c52c5575cc594b825f6becbab3fd32aefa7163d8a96bd1a1b78a299de90dd7027986141a4265747e55d566e7631708312450f72a9628c459024ba51289f411e923d247f22aa5bfd25fe9efa56341a0b164559ea4bb5e522a65a58f3ac9e31906a2542a65a4763aed76da3d69c7d3cee71a5956c561fdddcd6982a7f92a89f48a5aa12bc753d227930e4e77b70efd19552eacf6c3a463440ec79dee1cdd71a627ee3ceee4e38287427eb1bac539e76a3e843b15233a92b1ada6f3d390c0323c137ae92aa473c7582a3fa4a6436a3aa45f11492744226597070be93d4296949d2fba849027951e4bbfd13be27390b21d21d24b2152b6427a8924aa6d489f46a3d168d48858956d8dae71167e88b3199df4eb58602f21481f596e48c71c3210a4ec7d9a1aa69374924e42445a7887d331a5dfd092290613151cee2695572ff806b42cab8251493b73386b017669446cd5d335767f58973922ec02ffbaa68f60991687eef0f22d6ae31695cf984afec50b955f91ca2f157baea2a2f21e21aba2720e71140b4fe145432cfc11425e2533a25d3a3ae635da411a49e5c21a5523a62545995262602be169284b649ac9108da67700dfa47bc054d86955b24e0205659e896e49c34f1caa63da71434c48da087c8e881b8283a653fa28d3a1b56b3a482711ed0d28c414e32ca6182a179d2f1fdc1067e38874cc285b297de48674cc4aa99158f822de09aa88ba4608ec9a9a9a1a9546f912a2c53a267dea4e02beabfcb6125688d25f4dc7a81cbe8374123c730151fa7bdd83d10e98868a7826b4d3491afea9d4527d2d2c950aed0d0a6fa2b455547e4d2abf57797543fa14df4240e16fd3a1bea3741fcd4afe29c207b56a5b91b7be448b43ab942de1e2f0a46a01768177750b5ab0f0a219f414729135222db29b69842231b970ddd805c4b00cfbb3d89555805de0ad665b0ecf80321fa82c367bf7236a03bca06a6fc69b6f3e799ae103889da7ea8d80853fd996e1e3d976aa42ca1af1b2fb2ccfe818d70e73839d36dd6fbbd91cb7ee0dff20b41a74ee0d8410e0585a719f9c655958117e61ac3b4c678efbd41dc27935d8d7cf62797f17c2c234955fde6f43e28610d896dd1dbecdd91eb7d98e4ff1ec6424b7c4bff8175fec57103e08f9c125200c59f7de0fbefe81e9923140cb5034d18425381775323eb3f415fd2950347105144d64018a26a6e08b59b83979e74e1d135f396bfecdbe9c7f67f82e0500b190016c2f1fb8b750b1dc478156dc52a071475fbec35fd7a1838e8e5e4d67a36bcbca6e03d5986577fe0292c4f2e543cba2a2aaf7785466c40b4bbdc77b0676ccbbea55eff1d5fc7c35b31e94e886bbd1a35a9d079024a11a0b33f7ca550f5510befa6d167c751884cf90450fa47f2009d90312407a2065eed5e7196c8c3ddacdc1b6877c97ab3ebc832cd0e7790049625d9c2e33e285c57edd7491f449bd3a478a590f2c5b4209d24ba552a9542a954a2412894422910e821a3d90fe839451d7d24aa552a9542a1d04357a2865264c08b41d74b6576bad31cfb8a05ba00b2489b53ea75577f4577450d639d1104abd6561ef8c3d061df331bb5436b325486f5236edc380b4f1988d99eb6c4506b1a263da771ed2c6cc08d7462dfa40459d8c73ce4561f9554a299975b8dcc4f2e5ab2abb44c818638c31468a92524a29a5e4c7dc526597087ba91f104228a594524af9cedc7235e09c737de6168a2ae1a207249c73ce39e7babbe37fc00c893e7cefbd1d76b81cb0973a880940e9708158be807019b30ed44140340bb2202a560ec423f1c385085860c2892ba490c1931ee00f204b4ce10132dcc0053638a2093d38e7dc03ed8e88cd6b388d499f969c805bde6d786112d1364426d13c3fef2fc890f757cdea84f4e9edd8fbb7c33352f00ce8cfbd2b50838c68b0abf76cc67b92883e4ddaa07310ba076b541a004d42a6184bcdc140a063a84f397300b131e68887547c4e07661e988bc051a0a73ea9fafaf42e84f5d2b09086eb2659de1f96ca669fe48fbda7df794b563ece492945c15839df1795319dd43cf31c21db9b8b8f51b68cf2d2ed80f75143e7df21cf50b740a7a88c6d5f42c847f918a511adfd3927159cbf2ebe5decfec952772bfd172bac3bd88924962d74a28865cbb66a6697d7a7f7fb605d79ee729f80ccd65570adf5bbfb3bdb53a331a0d77219906ecd0811481e704355a196bd6e2d49c52c57624bd00bc4ba1a7681af5a64cb3498393f06995108110b1f8f601a7873133f60e1630d3403c32c2c3cc4028e8161192c3c9c02c1c0500c161e4a815e60f8050b0f7f2017185e61e16114a805865bb0f0d007628161162c3cec81576078c803a9c0d00a161e4281516078f8043e81e114161e3a8152303cdc8151304d74c22f1032c1c2c32610094c139ff00b3c54027c826922147e818750587898038bc03491875fe0a1112c3c35c134b1a78708161e32e11919878741609ae8c32ff07008161e2ee1991c0e0f7dc034310abfc043205878a8846770383cdc01d3c41f7e81873db0f03009cfb01c1ee28069a214863ab034710abf20e1991b0ee10d2c3ca401d3442cf80566874b587838031f7ee1993efc84812f98af900bd5d34a6db8c806510da7a1061a564eb3f2db96e6cc316e23c66f5b1b672e4001ce6c00039cf9000738f38d1b67b6f6cc3df4706604202001674e008e33e3f0e1cc3e9c39478e1f74280088059cf98733eb38b302ce0cc49917f08a87cf6a3dd679acc68f2a76953a7aa974aaa6cba8a7e750651c879ac3592a0ebfa1b23cab37bc6bf6d7fe02ea753e584c91f213c5a78707ca13273b4d747270982c519204c99168e4a69970dc8d85d445c1a0a0cdba5f58243e1c98037d2cc494407d2295f9ccece1e03c1c1b1b1b1b1f1f379f099cf3e116e8b6c032efe784020bdf084cef03f4e70b5c03c43bb2c80af5a258789c392928bbd46465d7f4cb8c07f4c2223314422e587888d333b0c2c600c2f0394ffbec30a14a2644f27ee48f349928953ffd70fae1e074765d120b8fb3800a445540d5517fa839aa0f15474d40bd118a854740eda1da7aa31ea01aa0de9873230e4dbd71c98d4a62921b91c423371ab9f066da17cfaa0be29260177896ea8454974395519d0dbbc09faabba9453400d4eb90b0f001a8d72961e167d4eb4870dd092cbc00ea7529b0f02f15a65ef7020baf43bd2e06167e00f53a1a587802d4eb98b0f034ea7538b0f03bd4eb7660e163ea753eb82e081636715d11ae7be23a245c17c575525cf70417050ba960e16780d8fa67eb2b028b985c91d7695d4fa37938ed05de518169a211235680c233a428304d3c72640a16de3de19916871109125849c13431491227ecf00c1505d344254a98d084674048609ab86489127478e63dc134910913287278868722304dc4c131020ecf584d304dccc92102139e9941609aa8a333040bef96f08c0f982636692ff04d8060e19d92b8d35ee00e1ce18069a2132698263ea101d3442831609ac8d35e20cfa81ce1999291223c63ba131d405902debd8069620f0b9826fab4179802a68951dacb099826feb41778c3332b316ab80def713088b2821f14b80fc0d3c429ed0522c134118bf60279a61ede1dc134ce074e71237021b0f0550d9586db506b38a9c2788b4a7a555bfcd58653b53aa8523c3ccb6eb8818505071c72c841868cd3a9a505000008400066cc70711180005e5e60607418000168ecb0030d5fa9316eaa2ba5eaa2eb8b8faacab13a7aacd86bedcf791eaa7559eb611179289fc4c22559f6708cdc708391232c2c4790e08003922439e49044890c194a969c4e4b98b4b430c101000070720210801c9d1933749ab8b834d9118000769cbcbc3c3e8139cc6f47283af00ce0f0b187003e34a2ec701da00c80c712a08786cf0e512c7cfc89912233a5060f313f32526afcb6e5e12f78a8175af91a55a6decbcac7d41dea55b1f2342a01eaa5c1ca0fa0de6ae575a817072b0f535fea75b1f202a857072bef52ef0e567e46bd3c58f900d45b002b0f00f9967af9092b7faa979160e565d4cb5158f91cea6529ac3c0ef5b2d4cb51b0f237d4cb54b0f259bd7c052bcfecc22ef2b54e76917fb5d845de864ad945be865a6217791aaa895de463d418ec22bf52cf2ef2a6cac22ef22eea895de44b7506bbc8ab541876911f551aec228fd51aec221fab0d76919ff546027e601779505d00bbc853b501ec225f5508b08b7c8b1a017691f230ea10ecc252764b6c09ea6c055232134127d38b3973da08a6d817cb4f8c2088ad1eace493edb5295c921722d9604e9f3a04a757d30ba61a0fcf6855b04ceb01b7c0df70c3ca0a89646fe3a9ec6d3c32aea65be0f9e1f4a9e7e19ca21c53028d53ec94c6033327e40e49c78cae021d110b6b9c8ca3d464c27942880d37735bd1f1e45d8dc3a9a12e89a9068eab71f1eb9ab828289c5893440d6ce20363c02df0534e3f2f52e4c2224cec8006a1088745a0117681ce27090d2c3c94f22826089b4cf1c49b30f980e2c0c217611798042a7f69d88a1f804448124f8cc0c7b2587e620439b69188408ae53e8fde284862178e87f3725ccd9087d331415c123ca304cfc4c3b7153414b4218d2662d174d0966830b0100bb6525aa711840b1445b97aa7751a68be98ab0f6763f69c682feff5897daa8a6388d818e9aad42cddb8be87844f167eb8d0852e74810b51baaafa466c7c2462d97290ca3958575a6b948f67adbb0b4775c9fb78f639073a7ccefa8b575c01e2c4a066445b719782a7dae3e174f7d45e96cdb01a94a2063f575cf1738508825851052baa608515561cb1c28a23561ca1820a9e6ee75c73ddddd2ba774f799b939e9e9e9e9e9e9e9e9e9e9e1e2aa8a0a28a2aaaa8a28a2aaaa8a28a2aaaa8a20a2aa8a0820a2a3a5ab355d7459dc66ed535ad00b2a645e9c4e69c735ea77e2f4a5ffd5d3a2e9a816e511465d5e6fab262b7ea9a569873ce392dea947bbbbe2c8813dfba63530e6431885aa4d7c2a22a7cacef4dda8a9a73ce69351a6b529635e79c95b32ceb137bd3cf4651a7d19a93a26676ad4fcac5565dd805026196656193beba627561b34d8a5d55a494524a29a594524a29a5d79c97853deca1ea9a13f439419f156856216cce5fd36a3416139665619665591666599768341251b34adbaaaba335e78538944551144551d49c4c4c6bce39ad392dcbb2e6b4a837a5c5ca0aa0392b100804b228752b76abae698589519f18e8028140208b8240d4af39e79c73ce39e79c73cec30bc7acd4faa4a85fd15a154747ca9d3aea563301aaa85fafaab6de9e740ccd56e62dd1e8f2216c24b20e9af31735ad69c1c9763a394d1d56e0b1a465be14d00f04d69bf566bdc5574ba0dca77859f01c05bdb771a5adb46cb6f65fd99d9352533dcd536cb1ef98ce568268b7dee7b39c78866db4b2aa558daad9eb3ed6c49d5922142aee98959ef1dedf7befbde79c73cfbdf7f79e7befbdf7de7b4f05556b4b07b4fb8d06afce705c855a1696ebfd71848eaeb1fd1bdd56deeb0e1dfccc881ed2f65b16968f50558d32bf22ef068b294f9c2849e2863821517c74728c7491aec102ca93254a1a9136e487c70f2c39a08ddf102a66b9588deddfd88a73a030f675eb81f6c11b22f64e59637bfa39a1d722d2a0d8fb88b4465fe3683f4e867be8371e77e7e911b16c5ae6fab188748c2362fbd78f73b05b6b8f9d9b7ce277f7e47b32ada7f1bcec350c49d528bf43570e28431edb26279373a6558a717a3a8e468d773a028bd0968136d382b1d0c6c93c1dd7d29fd3e6e9e8e84c9962f51fce8c29853e2c2ceb04f111f27e8858fe8bd2324fa75bfa4d7153a6409b973575cd395924016d24b48149e011274f26e5e449c87a3c3af0caf1eb8a9815756c7b6c0e9b82de69ab6a64353aba74b458983ebd26240b736be84416538ca7a30476e95ff976baa51f12f8a51d06057aa9255998f572ecf4a95dd2b6ae3d9cebf78e1d0d84d25efab73dfb78e5806259e3e6b06703a1341ae8a4bdf4955d935b624365506c1f2e71326f0a74d268e013538b4f875dea6b32053e990765d7e4b29e4f2c06051adbde70afb29d3a331ae0c38649e30972a449ff1059d276c648a5c227f7a7e3641eb7b8778ce6f7c4b6655d9fba721cdab4b8a20b2bbe9a514c06958318e4a161fe401b7bdf5382c7b213969f50e2c656d81368cb9c1327f4b69ef6ec9dd7b239a06d590381c3712d6d39277d87e31ccc706c43f7a45bfaed9cd87e3b277deab7f913868a599c40af659d4855b33029e8e51dec0d70a0df936586579181712d8ef4ecf2a861a71528b3ca21730ebee4cb4b78c97dcab8545738f4ea358c732cca2ea5596d58b3b0f78543dab0d86575170e1a7d925caf05b91d6cb0625aa07c87bd28163b59ecd57bed713ffe0f2bfbd4a7e633bbc8cbec02714e5e662758a9f3732b7c3ee814ff6425db67c494d90c7829dd3177dd68f815f9b822337e116d39ab45b4edf1a3c65a7cab16d17c7076592ccb2c1e4e6ae3e9fb8da62460e59d61f9c2586eaf1bbfc78ed4aa1740c124a789657e10558ded8663bbabb37f96624fa87dcc75f6a99d19f2c0b976d1a3f6558d56d6cbe9d373e7c610434271e6ccaee93921f3d225617a670f07c7470b765e41b8631db3f2ee61772c839d5993659a875b9e0f4fe3194277b4dfdee679387d6a991342af56a41d4e9f9ebb29c28768f4d680e88015bdd5dba00635a81501ba3b55a9ff42575d140aefdcb3a12e21aa85ff7161bab72353c83ae938e6dd65cf865ddecdcf2342fa35b9168f7495ece1c031f04cff8584f8340f6db4d146db4bf7876dea7aa95e1b2ccd8a689664f3dc47a0b7d16874d733aa2e8afb6894b99eb7c30e1be570511e95b99e3ebd28cee70b54e47cfaf42efa8d6e5594b9287dea06b2780a554344b73c18d077c180b66d7faf18b4c48bbb176f9582428f61a7eaa558e674faf4a64e939de7a45b769cce4dd53c415c122f329ee6691e1eabd51d7d1f4ee0938ed941ddf1b82bf00c46d54b8876d7ee5cbb7bbb50d6a4635ab602e18d7b01cb30bb1c1baebbe19bac887693fd3de998eb9cd8d731fc4409de8362df3128f49dedbbeec7bee77eb029d028d4632e1f27c405a19376cfa5a3c516f19a933eb148e9d37b3becf276b8f7e0dd11c704cf808e1dcb6e0351edeea74fef52aa9b22057a1d11f7b36363dfddefb3b7799e94ebed026e799fc1bc01ed817d43b0ddf384f03c2955c87a382f87ba700432ec5adaef0b2723ef64a804f4fe2c2d63721953187b27c3ccaff49e0eb63341557db20f3e9a6d8e9aa0f3adb71e57103333e29d1971b9cc87f6b872505da1a68ed84f1c418974d587f81602ea635ebf32204ed6fbe4c35cb97ed51e2d88f62e5d06443cafcccb537565ca3823636e275098a5e2aa59d5e4ea3c34a083654caea57a75669314a728d8ea57b0d57956bf2cc5564d1e6163398ae5276a90d8aa5d33bbde3c0de85a4386f3cfceecfea8aab314959ea8b1b1d7868e8d8eb9d4563109e8987ef51f9ca9bdb2662946a5032a3fdf33bbb3814efd87ea0ba8aa5662962a46894c849371e1645abc72515bd4cb8968d790fe24e9b2b6bdee247659dbb19a43bec93728df47c497629fc0c666818ddc30ae254e8a6591bae42b276337169b699518cef73679862dd10b7195b22bbf435eca17a50d999d137946a4ae0965778eb24b4bd9a559cde59238d5581405632f0f162ba910d75b6644b3f298ab431e6f81965194101a0fe3641a4eb7c4df64a2b12de9537c48090af3f8db96c8a83cbe931072132966caa14c6c6cfca561659a8d6b89315ea536c0b5c463f5c91a7c727792c426a7481379d51a342a102834027a5f7f80c96d4b96d4d8178538096d7cc70b87cc60fae432097083cf35774d1be918173a7383e953cb24d0a7382dd1f9890f34b1b76bda12284c7e70723a264622661c3d7e545a42e5a15a44b35856813ec5b721443899e9aaf8219c8c4a26e325b0b3e38084ba869c2996fa6d113b29aab9f92bb2ed4706e2b080ab5ca3a8374ab6780bf08c9066730196a9e15ae6e76d43ecbc8d886d37385e98f3b71d117b4e09f469d6a831a7a9468e5b4a52af9845977d2cc033cecef398977209eba59eff0966ce1976be15895334d7429702d8ca26db6b8dad39e773b09d076265bdb7f20e61db67956fe81e7d4077e1684e069099df5f9fdc09de8db6dc7bb06d5b0f46ac64b51e05ec7bbcd53eb782aab2ac3eb5e6606ab40c113525538c770cd5ee60b51c94a0f7418f5cabca7de28b81589ef0adde7091ad3e39f79c0fa49ba120f43eeba6059f6b52314bc734989229c6594e332a1cddaf7a8cf157776bddad35b345fbcd899007a8e38e2c4f8a9007e865b1b0b9d768844ddfcbf15a7357a03e4fc11b1daaa10f4208ca404c9d9ab223dc09e560cb77ae39da978e78f90ac67ccbf72b2a6e991702017db0faa159ebb986969bd7e79cbf1e0fc4c2eaeaf5c1a08a876541590ba1bd482516c20b87ccac1012a63703126061e7e527a53033d0fba61533a8437ece9ef2b525f09954b57307626385f5b6215e1f42fb8660831e955b6f62fb366eecca100babd2abe6b16133b2babb5d39e8a5751b362db071d3d885a3c9aba22eaaa3cb7e8847da51884786785a88c742cbfa04c201eb20eb201f3d2d10e8b54f590444ca76cc3bd1e56fb48d16341ad09b659d2f2144d9b5eab57163db2d2b6b0759cdb22ccbb22cd72eadf996ad38d315c22ccb7a6b10c8c68d8d1bdbd89543e5ed52e916d90e25af92896ce8f501df2d694915183fd2ea3f19ca185e19a8c974ad41ab0f84033f786cd8b44b1b47eca5eea37780fec336eb6f5e1b368dc67adb28622f25af0d4afe4e1b37963acf4beb9292eda0cb4b6a4ed01bd55abb035199556dd8b497d14995744a9b47c5c6c9c0d8992a3616c2c3d87132304c94b60cbe54ea9e9ad20f44f52e95b215eca44bd3120b0fe3c7c9d01ad7024f6b60fcc0f881f163e16db4e03044364dea78e5e8ef0865b05d446b60d3cc460b4ca64be56b2c84d162365ad0685a6b190f7863439707bca9de6f972c335d0b8ca11e332fab67b1eedb3db68aafacf6b1d569f6eeb1d18246d36cc5b6aafe669531b571638ad1a716a34f108a28a8ce6af1895652f4027a20b66a97a0fb8096ca6cb4a0bdc8df7093e3ca9052ab4090c252da73ecacaeabbb7bf432d78dbdcfca56e70a74187574ac82da45305644d99d9c5d9375d99561dfab4a44fb94fee1f4e9dbf9619b5b50daa28b744477b445b64374cc894643ef6ed3f0c64e4376db8afe72ac8b91ad64f76680917566caba3b73a7b5bafd76ddfdeef31504963d27b2dbace8d90af676d0105494363cd4dd774d644341ed24123719356434f0c4c8563277d061886c567e198a4ae5a6435ca865ece70408244584899a3bbb33bf9d1d2dfec3ba479923d031a0b77e7b3a20a6ed027410ed9763413fd5172286693c83f24153ec98c1329f5f0dfbf8fcd8995e9cb9b60803650f07461dfd45e92e6a8b508575082902fc9863ae0c7b6186a0b22be33789b26ba2d9a5cd2216b5c69cad84dee2d88770326d888cdf64a2ccf3f8188f19b6fdf29891896ca80f679bc33e92578ef61da22c5e420c717fae5ae7b24bc29edd0c00b1fcd1751d5e382e1aba1b784e349a19967f194a12d90efad09d7bc887a3cf8642a735cc2f02cf8946d326c012e01979475f0ebf9b7d0062bb6b0d621dbbb0a31c83c13ae682758c05eb980ad66597c78caa511086b5d65aebb736450f3b0d61bfe1b05afdaa56f6fa3439da5b59f85cd6a36531712cdf002446bbe10c95fc03129c8ea8b4ac36b5490d99a20101000004007314000030140a850383b160249247f4300f14000e8aa85266509c89a32086614819630c000008000000000000018c4a8200e010440b8f063d76996cb7ae3a07e035d1d39d9f4a213b168675ec2b1c390676ce607a1fc8e8cb70294378f9a658cef1010e2c1fa5d41448908ca360dc573a72a6e68eb3d390bfd3e773d8ca46de51a9b194b12f525299b7d4819df475da1896bcdd963ed7f97671ecfa5f8754e662814634d975a97605b96c9895af94b92c13bb64818ca232021ca375a190543db255bad0471c50d60c54091d7813a5de6e17fc488825cead46c992e737576e89fc07411e3e528bd0b344a3fdcfcf0e52cbe1f667d7c5a1506fda5ef7cb73005843a9387f05a30cc71d1ebc6aadb21045fc1d9a2f39b70c6e3f80075dd29dc0b45b8d72bda52ae21f24273717e79c7e351c225a012c7c32ba1c211b6b1972827c58df08fc1b95801b1521ff5844ea061591cd2d97a10b0a306e81bd1429105424a89e482454db95a423f53c70c202a022c904c81cd2c15b356585a1ccd65a576bf32b2b80353e8def8dae2dec69a32c5c095b4cedaf2a56e70f062126138c9f265c46bafff9a70ed7f0202f73975d3b95a756d7b863a55f5077a84d0d6c1474e62c12f12e64d839e0553a58947473fd32d584c598017301607e09421ae511fb717420a64566b818f0f1af415f7fe17721daa0ce032fc5034933eda371eb49b9bb0a3d9d454f7503d6bbf5df91d7b97fcf0ef8fe1806a838243bab7ae73ec04551a0b5fea718c873ed3fafd35d4a8ded0526fc1688394558c96592e30d94bdc924d778dfc6afb46bfc54d8b7607dbf330368d0880371e2e6369ab767d004b1ca828c825ef4319d16bf4536485893be41992550836ff8f6470887e3501b3eb5e5993c7f8cae51673508f934a2db426355031a91757f044db5b3036dff48aa714d274bed1691446f9a5f64e810f5d38c0e567040223b87435e681b91c2c95a1e9de9acd99e16e04d3793c207f09005988636551be87e49b641242cfbad07b0a093279b33504725ad217dca0942c340e92cb8ebf4dee24571369957c0153aa5f15730eded48338cf42bf22dfee3da951ecdcac02cec13f5908e2e6c04130e8465e2ba0aa8d5199c5ac04c40cad53c57baa213df7d853cbf4e62e816ffbed812b35627879a4fd3f113ba7786b81e9eda6f0639416e2189c0cc805d078079b5e3286456c9df4f50772fdae21461512ad5fc5e2f9c427a52003ba81d4118fe350b488c7cdc5e373c6d11d3061e23f0316da3da1076d607a44b83c2c31c7a852a6db1f92c7e45318f8a2551ca2273402aee0e8cb43473d4538bb1bae603a13931f96f94ff94dcd5aa70aff9a6f05b26a97fbc3b08f695085aff69cc9c388545f3d3fb1b9c273104787630e0536dd71eb2e9b2b6d38077de3f1f18a096a0984e4ae22e4cbe30a7c6863a00f93913daeb6df8f2828b2d36013d073b0adeff16ca149eb788429a76e56b4eef7e5c4e25ee4033635ccf809aaac5271ac1f4299c9f4e4e765c8891eeadfe7c49b464c2c5df4155b0668fee688ba9cf26e0fcbaa61849c0566bdd410ab236da05c4452a4fb722ba1553a4ca801b34521ae914748705cdb880e936af5d3d11b99f199776c44a640827529c44b62aa24492b48be4185c9b25c85faf80578d1962d15024b065623e3346857edad48b7bed1f1ab9428bcb077e5148d74a4bd72403cbc3642b71b15851a92f2ea8b88163101103d1c29a9eae527268012e706c3347f07d83148db972a1621399e9b1469f883649d28bb25525ab6125def46ce747e2b7849f3794da0564f0100e4339d0c8ea09728d10513f0cad36542017a512eab5fcb2ddde14a06efb395d9475e57c3245ca1b3356239f5142b74e8e548d24264879404cefd08234fbc90e56fa54540b622f7eeb7e3f1540ad580e1dde6f56a2d785a4bb922b0a732347a7ceb5792480376f31b2ed69dc2ef1e54323cdc98849de918993ed1bae4bb4b994852ff8953edb15190474822d6b0e569322fac57ae22e6bc0477b17790272cfdb426d6632e0582e6c534da8975e63f6e447699b7f0466a7598544ff3ed8662899b25ff85fee4512b3d8581112bb8e0ed367869c14c46c2d3e704fe2f6b3527ab2889f72db8e3b45617a2af174b7f5febc2c071b2d313195deae2188f7500bea7635699bc68bcc1e2e27d7a40eb6b506a14caf2985f33314e52d5713b3e628be36908a850fee34da0ab2c55202d2367f40dfb005780662dfe4f18d5c1154524303257cccbb520f9573562a1f8c91d9da8db67e8ec72ee0e41b7d7ee4d11b399cf4f6d7671cafca10483c74297271a3af7476d4d222b351dea9656d20da6fce986eb81cf4881ed8f1dfd62c2c91c32ba5940dad3676d40e282419a04c9c0e78bb89aa3ba74c1b8f0e9d0f5621fc093f4d8e2697adeba9f602847b64056db1d69a8089de1935e163d20bc7bc9c225e680e4be6a59c239993d746626d9dd3963a78362a304ac4b4645e3436c3367d2448f13427b8d423672a452dd6bf26fb4a5340f4dceefe06197c067090fedf12efc252367273e1516e7c5f98a5132ef1af5bd2cf761faf4a429d6537b4636a0774475dd21a58effa9ca6e049330bfaa332eca34039d225f0a7fa1c9807b441ac239368b58fd538d23b8cd3dd3fe1a9124bc1345e21cab7e49ec8fdb594ba0dd036da2d052fcc681f4e27661f28045d093ae2d4da90541285b012a6bf00325323218573a68003e25661d36ecfb89c6789f0d79b58be99920555be8ab3bb7fe0faccf660458c62b1f6744496cd953cda2948a475ebe192df915ee40338a13a0b30fe256bc01c2ad4762fb3b686f96c3181df93656c82c91ee266093a303365cd0f801f746c2891a1f509ea4b831ad9f3239332e4c16747b66f3a0fc4fd29c87826fd90ddfd03510fd071656444ec850134408ec525214d729f55e798ec9d9c83972cd944928a056e8dc489b4097d605bc3593afc45c083101b60efc298e128e4981481d300049a9255a037008730289c03e99b7604ace629de06752f2e3ecb8e52a97a949ca6cc66b3c3d78f4b468e3d6c52794588ecee6e32673165969acebc3aefc2f298df04e6ee7ebfa682ee808244dedd2422f486e4cd9595caa85af9e24d2207f12686d7c2d5491e7307c638307ec9e579b1368dad3fa014dc231f90a6e147bf5e6c26ce6c8b633c9d3e0b2f77f824de7592d566825ebd0236248bb93569ac581ff1baf3adfc97e5400e6a91517518d15bf33c69565a0b45ad63c626e4c3db66040a1cd59bfce7cc6d9284b65fdf2267891b460b01a0ad28b8f6907043f24dd6a0060d29683e890b70ff0597315e0b165447c9f63c15c10c733b44dc6d5e5d48bb389c85fdc24094252dd3e208e062bd2a8405729d8699efb9d06797d2798485fe79dbd5c4dd342188470fb02c9bc13c0899155d4336ad9b8dd9686048b801904bea85852388f84e7b03e17b88106c755916aa0f3c14158d8e5d57523d1e082e3dcd7f5f726f9c54ac36b80a37142ef3760b59f03fa591e45afd4759959d3da0a1dfc784ccd2c17f3798176c72ad101e1974500495863698d192604ac794ab6c4658dcc1e6119bbb5144cd513047d10864c85ae9802f7a97b5f0f75d7c242a4c631aa17cc74c1388f2a4852bd8ee8177e500155625dee8ec1944a8c9a12821af634c53ad95579bd20ea84fb57fbaaf21882ed5289a3b56012ae093a4ca817a3c76c8939f1e2be7088579c0138125a0205d32da3c76b473b4e950ea502dddd1ecbe92799e91062ca4cf99b170dd7a30f70cd3d44e46eb6e21bfc66250e810d557fd2888debe04e6d16fa679eebf4f38e4386937ca7ac25cf2e853a24dd54b37dd741a82943986623c8d034f05500819bfde90d766adad185f6b8ad52d3cbc66865f88b1ccf8d01e97f592c50897352143a0acd4990d7f2c0cc6c5e7553136338860e49c3350e75f5ac7d35a23b70b04d1b3651676d3d544801a6bf76d94aecc6bf1ef6da657c5ddf40a8f730db8431f4eb0157f75b472583d353598a26fd98e118bf70e9ddf5bef293c20c7a395e44d019d8ae64f3915496f3adf15e43e860a282f618f4a944459d8f146724b42a6d161994e775c6da2ceeb7b54bf5b692bc12681497d543eb36619ab3bc3fcbb4b41d2df9193e12a85fc83c48a906f79bdcf35857b3904cd953d466dd0b335fc577b3c23e91947aabe6aff63c752dadc2be880fc312e56b03173ac50a016a8873a10bfac48bf485371813f16cb3f72543c269e6003ca0775d4dda97df082f106f86a05e47c18fb8983a20d5b6e12182eadcd3440df502db0b4792eea770600dbed890dcd6f4767fc95a0c0420e7dfd2f11aea0562f3c0074ac2b48b24611d73c85175bff9811b81a8bbb361ff35e0a4c157d4e874fe723ca02fbe1ce81dca56644002479361024992df002d100e995c4a1ba51a2784da336cc4c201a4898b769260fdbeddb4791ee06597f12e63a9585ef7d4a7fe0eec7bac313476c3c33055d1c4752111e2a45e6c22ce8e16b618aece2cf5e2a0c1a48ab726bfe1db183b99386bc4e418af4dea39c211e70107a45a423902939127d90b3bb6fc0f9f9a3fe187adbf447b2f1c06be7d4f411008f5880cebcaeb55d2d884fe5569957139fde0dacc922b9c52b6e1163f8740d344df3fa280816e74c15ccaa7e5b56b258cb4d0be74e55f854ae99de80d14d2d83570040f582d6b9c501076883a3588a151282116a267e1731a679e1b07fce8e57eac7a2672627c2d0b7df2c6bdc251e5e02af3eda1478f0b61d580219c20a6f7904dc21bc7c5bf7b82b5c06ef6d4509fa9eb45ca8abb2ccd5d5a4cd8a1227f027a5150e5a220082aee729a67c08af811e6a2b6915d348ee50001416b37835e3b16a4191545f03021fbe49172519f6fca828419459d8a8a140b34d3dd226d5b543765f998aaefe4e552d1168919c93e0d4b686f26cccf4d3c12254218b8dda9a64389e120966f1c01afa06cb12b56099e5491dd3ae59667225d82675c1dfba31d9fac454ea8f0c9c4df1218a523815c565712de9754b15428c393a0a723d27d745af576a315670b970202b76869794c6eab43f854e5961c54ea8016798eb1ce84789c2a4b0127e6f4a8e0c36c468d62fe42c6ef71c74f388bbcf1a4b5d9f5a626d33ea70690aa71c6565d58cb782ba761c0553e7a2bfdd8be2b3cae3b00786bf9c175393f9da83ccf06520e101e064081b7e623c64f4895db2e7999d42495a1a6c908a2ad93635e1d55df83349115262b95eb90815c38c4f7aa38523964a56297447ede8b3f1d834a1d5590d3f5c7ff49ac954b16a7970b9a33890950198cd4b253887b62a26803acf5ed2f819b8c34976789d0358ab6a4a8efc66244889767f6a83d95124f915c25b09abaa6b8a29ca219894ea4ad39adf7589a8c93ee4d8b8953d0d93600edaf2e350f3989b46d9511cb47f2c217be8370e001b64a0887e5c4145f951fe3246e7b4b648ad445c73f562979ff4560abbc6a806688ad89963964ca9d28ce39e2eef1827982f0deb78e3468da82694d314cb959abb5d0085bf11606b9518c75062db4b270e718ca380a79399121bfbf96f126bed0ed230c0647489d49885f0684df7cbf1272d35090164e0195edfadb3e484d1dccf895a8af5ccb5e7c2cb81c2e0e809394f212a3dfd2b97ee509f44f51355b12813b2056305343f7e821b6c3e17714bbe120b3f5210ecb0c5c8b570f1550edc01a5fc9ff294325d012da42207866a09319c34a580189f4e0e12454ce9616c147cb69c7810f0ffc73fcfa9769ef9ace841e006d4c6053c1740e6e8a66af25e26b392869cad5ba28904eb5e03cf1271875b4f905a41a25dc2847165abdf3b57c6e216116d20f44c7e72ad8aae8c3a03e331465fa1addb2327d3f63811b0e84f89e9ba843872e6802915b20b0c4c53a29889c54bf45114e600292df5137969fb5bc93eddad1083bca400a34ee13879252caf07034aadb899ba2859502bb8e96069b01523ea58281062a00801e2530d09897d411fffe0bf84c21c4d630198e7cab332e443d1c2c80668a898fa182807ecc91aa923e4aa65709f7f3a9c02b3d39a0b4220c68e2256bde8ed52d1bdbf9bc1aea3531ae8dda2f1464dcdc8f7426d554cea60681bc97c7f67ad5e578cb9a0aab42446e359c11d8a37061070068150b6f7990f5d729f4e02cabe8a90f1d91622f93eb45d6e9f13fd3eea48bad61d61e83a9115a827a63a44fba11e1bbdcd32f150f90216235f445b3e31e573edda1ca1d06715748fd33b55b8d1d182f5293078fc033d0c8fed04412e2d51a8237cafb691f1aa4b0f6771321fee828a6280660eccb781d3c818943a88b9390b1dd4bf7c94bda769f204417d929318ac8c7cf9674a3581313b01a90fa5323f8609db19ab9dca6032ecb874801e18526e61c61a9b2ec749a8cf92809630381963feff1abcfc1e6c2e9f5cb46b61f72b727af65595d1e3ccb6cfec7d18c012c81961d0ecabdde4b876af140e2d1b76fe3a1d321176f1b92c242f3e8d6ca66a445f11401b9d339a1959c7a968d999738f015dc84f0dbffe492215899db47f6ba830e76db8929b4a3e24a04ead2ceb6b28ca5ab657c246b7a9fb6702aac4d87aa63624259580f23b31a2dc8b5b4f50c71e2053d5cd53b3f779a1386694b70f1c89413cf9ff65ee85e5cb52420f8e5a5713d6a25f9cf8b06c14b2f824c68b8764237cd9fdf6508c6cd3dbdc1aa5ed9bf206402dc8980707280c649b3312cb241bd2fa4a22d67eb13159ac6a5a4e8308ed6d296fe8ba1a70583d9d903b2317c3da1f6b99942debbc65d7b8b44b74066e22826cf4c6d38efb6e4acf7d4be312daaecf0f2b77189674dbe2c1874bc6a43a21ce445f8ff803f9d054fadce55b24e32a72feafe2e2b550cdd4bf9ca58ea58c5f2fd2d101de70f9d563645164f465222058bfefbf4ea5586f7d28b55339b92646d76b6952bc8b0d7a08fff46d9cf396988cfd460b5c4783ba311606e3b8fe4cf431e628dcc2878cee3869c2d625b12096c44e7a7054b138876d3295c8359ffd2839c85e81ff7b6ec17f1d2ed35b303047bf0750756081d2042ddf674ed6b46bf1cb399fb888e32b41a034cfd6d3e701db1900a0d4dc6c384d5370676bd1e417261b97a5fdb068cb519502d15cdda944c5fb6ce6154414f83f6d83c38ac7122579b2501ea3ab379964a338730b63e883424eb12be3bc7617376652cd052fe54f257260761d7ce51342c750e3f54b45a7b72ceaccb9a41918382b167a6c7ee352c2f2c5d7352e8ae44d0c3ce3eecac507ea52057fc4d144e2729fd017135e6d5d33ccf56e2c0af94d8c8fbc7530cf28ae81c229ea1d16f7d593e9fda212ff141c44e0d1eef4d86f993b475c937bfad5e809381b30a8259a2d7fccf6a5a4e1d8ccc3476c87a7c33b1edad6484ebdf158690095d23f1cd2b0e8d8677b3bba9ed8cd515cdb4883c377281509ab6b0201f1ab21098c215e4bb9f80ab6c4f5859b28e128fd5ec9487a4c771a42e9986d1900e6b0b506c233fe779da7560837d57e02711711d4c9684128aab40ed25e0a3007f422c7f41785cc2cce9ed247587d5865c6ad10b64da503c8a7518ade9f3e25ac6365a613cc20485aed75f429bba5ce848367390b5ca1375ad7c0939483627b69459c512553028b42c522f633953ef8ee5ef86940aa67c6453a970569152e2628586798f241918d9ed0779a38add0ff0c392d465a8d481fb83393308ba46a80af963805c5f9dcb74497aecc2911460ea8813deae46ca408a497df20b33d01bb2fc392c4a6010713201c7af6174d4948c5352815edab6e47ea5e3c289d4b90b3b54b768bc3f56b96c78b863c080c8742151841afaf97f28029f4c597b454da825e38d649711a8d18028adbbf14eb7256c8c77aa0002767428ec06c39a267c3f28f22f95e357abe8bf5f402a37a07dc7aab27a51740b27cbd966efbade8b5dbbdfa51af2fa85799e7bb240e641475a11fab5fd951354249ca4e923bfa43a1860c7fe070e3ed2fd25e6e570135a0ba4f3a720a6ad2e69d4507a97647fc84b4b8a2dd11f9492ff03172b6d1a9c0630e7df8b1690f7f8bb7b0da0ced8e980f7803ce578acf3fbc87a4c1bcb7213df3377c6a14c3758462190216cb035f16436ff933e66fd5a1cb98c6b159ec904d9b21b216fcfce6cdc171c443a990792da56fdc3f9a38e45408d5a556648866c4be3ad08bf8b3532b24d2404287a0104df2c9e02d8fbb33412df51218dba7bb002782b2db17c95582b2da3b8393227ad0567b55d85e809ea47b65a75e5b37daf311db572fa4642f8660fd446dcf627a55efec5b5eaf19f6eadfbd9cac971de83572bd13ab97a0f46e21ac406d0cc4bcba0988c528f6dce865d3c260e904ef6722e74ef4b359e4d510b61a6290ce0b81ebca96e71b31d260aa10de8382a3ecc80fc801f0e20066c8fe40f9539e3d424cc418056322c4281c132946614ce418856222c4981c9b4e7a61acd7e57a914c6c1962148e8914a33026728c42311162148e8914a33026728c49b121a017c4f5224d2f8ef56ab05ecc881cb95de9185a6ab4ee81c67c8679d5824ab5f39febf0e7db374e8ef74771a68a2d17fe20c2d0debb5d4173ca75ecd4c934377eee54676647b02bbe13d5fe783dd9a92b1ff648ef53a323b62729eb752ca8d925c6bdfc9f39de62156f7f12bb89e25a77c4894d1c510aee812cd50114f977810df3da11ac5659c22c300f97ddaa7b7243528e14905e81c67f356699de2ef7a54d5c6fd5390177644f819af5722e41e5fc8a8808df6fd5e948d685442e5e24fce8af5925eba2c79ad81c929234f8326ce361b84f02248db0d4ff15df980c7f3f24e3d1aa73cab14e1e922ef69ae3bf9e75c7b598f47093e1a50e5f2ab99ea3715e85202382b84dbc11633e1ddfd0d51903b0fbc7dce8bd68a2afceb36eefd95dc98ae15907c5f886667979722fab4d3738174bb4ee7ef5eb40d1464c0912005c64315b77c4406f2658e7bd5f839194f49c96705ae0da7dadb3bca3a22e76e91699a82353cf30ba4e6ee3246a34b98e12a9b101689de8246dd5eb4c965b07b3559446872644a1e6556d86537dbeb575b1965f67beb0d38e58a7b705382b99ece24a0a7ba9b66e0e64c16e9cbe1ad7c79c4a75bd1b45b9f1ea9ff063382de6a739bb59ff2049e1f3257013abb8ae0a69d6b1d6036b9e57be46a0d2168a146beac7d1796294e97c3dcdb4fa32c74ccc78c0031aacebb8b28bd01a1868d5c57d04113cee08069306d28575dda50cd6bc6f598e2839063a8a5dbeb7b6cf72442c134f2422db0525af78194267c9ab0acc7fb87583f5335b67d72db9592f1f34281c17ba17e1118b0690a1b986264a77ab7066d79d7ad8da13f7c089e9dd33bbaee0267c3cf42bfa2eeba0e53ab6ac0179a2aeebcea580987e5fb7179df52b70c53d3ffe9c956100763a1bc7604b6c1520a49d7421bb4e2106e797849bccfb78981a97b505912037a1947614389889ec3a3eaa2e369dedd4ecba343d7e3aaacd5bec8667d7addc81a75a1255d875e00e4c4a8698c28c5ade384942d2fa38b4b24c446258a6317504fab86f1c675e57fb7af042ac15248c604c53c2b4f41cd39de742101d9a8a9b997e3c1ff223a83694540f4b347a0e3d0f9b0dd5d767ae8303064acacf2c611c139350dddb74932279e2e6b431c9d83a893a9c23a2b9b8f8693416d13982825e518cfe4d9247b6d2d3ee57bf3a6d9b686d71e8e5a1a06a61b0678a00e32f6cbdc2e9a16647a10683bad47260547d2fb4d6a8ebf8a1fe945a8fd661e55001e40bc19726d6cc40f04495f3a1331a260733cb1e6dd9e3f8db6e9cea7770054ff901507d557fad6f13e288d8080273181bbb09a31c3a31e12a4786d4df3fd404f9e7ae73f59ebddaecabe63e27b8fef07f0df997df9181030f928abed826039186b69cba9d27a26e7e6b855773ea7bb8d66b369557ef9e7e3dc43e56cee215462d4a857310538bc5411422c5fd69dcba08fc0760ea77a452d6a522352e63af6c35f049a33560007f4505675899c7e29e344aa6fc8a2f3ad9a474fa536969d259e6d72b89f15c188d3e9f61a217375260004a4934f41cee0e6718936e6d0d68a2ea3ff8cb895bcedce484fdb0e294332f39b0ec84cd459b4f4eb8454e0e69ca066bbe70328743647543be1c48c7d9f53d5ff138a3df5b654401f5e7c9dd8a55d5ff4061c1bd75f638944e81019f6715d2781cfb370fd4e3fea0c7d5344a3efa32404a5ae3533ee5babb63d6b334a14c269aa4ee286674b24accc5510e2bd65be0466e1669a7aac949984cfb3bdbbe76b5b62cd8a7e95a4bf52af2d8da548e38ea3321b6087e8db8361ffe5d2bd55b9606fbd6b58cc9a53990258cbf8a9e281ae0e1d68f09fe38a96da90f7059a4b927fe48c10a819c2b4afd561f20945a516f5d4184ac119403efc61204be353e544a56b93d43e111363b25b629b2477039af727ce489b9c5d5e6abec20c6d5864d30a33dac2947c1d77a4cf37e38608f301ab0cbdeee08f7523af5065f5b1d181f5d7b018c763c1bf33bbdfda4bb0c429f5b624f47c38683948588625e7bd29788d71fdf255dd127c2800be348c7f1279dbbc664a90b29be7d9e86a7a414d6fa422a6b94d592c658ae2d4c18b8b66b100d084bb89bd52460fb42e73561af2bab2842baac072bc92c1dd3b15654cfd890c9e2199649a82d3e016c6deb443153e6c8bd384b08516fae2c48b4363d5e4a39add5f7144939c7f87c0560328c09921089256004be775ccf8d992e034ff1f66aafff246d51634844434a282ce2a29efca86c2071ae41cee525786e13845e65b0a4ac476ce445d7e7c017af160695fcb8ed1219cd2a5de541e8af7e292905c7b69dd000bab3384b4cc096bc0d474729b04e797433bcc12ea3a87f54fa03ee1e89677c5490bf81cd14f11fd9763718db460a2ec6b32cfd74f9587a7ed42505b0c78573159139c0935272ef6232e4cf248cebce7277bb5e2d8b1311475597ea125d44f20747c34c47bef0ea6c328ab0fa3556ffefa635f8f9bf8100aa6f02e2246e230114ed462702952f8a597dff7136f28f145521504200ab71fbcc2a9a782c244d37a47e4ac74cc5bcd61df2fc517d508f8d73c22d09b072bbe8f1f198324a0a6cf39a7b8cc4690bec47cfc1fb79a6029834558a74032ec65d26157a52f62a40a5490e5fe9e6f21ec1bede91571b6ed14d8b68ff9d3d3c0e63fc67244e9d30b3abdf169a64d8e57927eae7430517686825aaef7bf46e7218c5c15ed7ef518a2e24f1624870ab132eb2cd09b0bbf7af31cdc3e1a09d4b8c961c635290574bcdb30a0bb3f4460bc5d1c1cc034e591d9e242b11dc648b943e908e945116dea80f79c5f108f83aee76d1bd6c6319b99d980fcfc352cf063ab62b5a186dc3873c8d5b2cebafc3374882558f6494605c0ecebe967fa3a8d0da9030a207d14d9ee9960ddf1a1623172d22b08330caefd039f3f1c28390d330d27030598533cc0ee5c03afda932dcb0e9d2262fbc470c8166b9e35afddd318f184215ce37d2e17ca8a199a6a02897d8173783f1a6217200962cb25c9e29f070e9c7db3c19abad35036e48fca67a745cbf6cb9e71ee90623c2c0d4dda96916437286889ffbb6fe4e1e5fa60a5d2ee5bf11c4d40775db0ff608fd1dbae38797daae5f31028b23ea587da2fdd77628a076c0af13fb9b08c26139aa2f32bfa09be6fafe21e6e80778a7bc5f0bd28e99796647d8e9124f5ffec4951e891fd1361d0975c4a900b3ea4779770cd7221d53fe5cad6580a494c57c7caccda9196368db5d37ab084dc24376db1f79a6d95edb143866a2db3962b1d15dab4ca64839bacbb605af4ea5940e2e3c0ae074a541de92a6ef6b316ca5e0deeef1889e3c42990ba891c0cbab1159a0b9bc07c7a116f0e91b43c340dade96d0d088ade85c0221c1dac80ec53de3b48989e45ba1ce90b86341728913c224a45a2709e1199376f2ed25e4543d3a10a451c2331648db4035684de2d8eed72e4e41675cbbb05a8340e8eddc77acaf9ced81bf7202f4e69db3ba3026497d175fbe1025ae85f5c0ac30f83591d3cfa7a1ed6036c2a0673fb38e4773d4f10e5b201253fd1a4a624548f994cb86185328dc7dca7693447e6075e346587993d0c4facec266a4db1e242415ce8dd8e4de1398ffd884563d98ec94bccaaa6e507b3c5a65d98984de09e1d4be5bdb42f31a2b078f57e0b60c0e4ecbcf7ad4d8cfaa2335ea8b62eb1ae257faa183e588da9da05ed14eec1a4f5d0c04e622f9a6a05efe75cc8a51bf11a0e72fc916cff4f561bd6a23967624e46c592889f79b546a94ac37a2f51219762de069df084411b51b0d6e151daa3ff040a7bd04e2818a82c9cf12168112e6c43a03334cd88e82fcce546ae4c685859ec7092cc866941777b30c7021912ce120e74a9f92204515e3d12156950f4a0c2b47719318de776d65599a3f1aebcf8b089a0427aa5e812da5c1b1b10da45589910c7732b9839f483384869a6310e6055c1e6c7421f0960f566d07a640c09441a0d302888898c436d4f412ba37c4c28eb6e299d17c8bbad56549df10f1636cd090acb8ee82cf1c92b77a364b27a136e418661517115d60fe0458109e17e189e83ca6c67749888e85e8e14f67e94615aef4d6bc69ec00c8f40dc4a3b63a23970c00c6aafd4e2ae57a25c00b7efcffc9d1a3fca5040b9b6d68ec99a29598e6c97d20fd015d11884810017fc32ddcdaf662c5c7e6f1209cdad672b2d5581b02a5ee53017d5dca311258a00b442b81f65650b3365c27003fdbdfb054365e954a16e9ca11502c7118cbd98bf344402c9216760e764ed96814988e32e582e059277ab4020579d01e5e82b594d2cba52af5f17a4ec0f0eb9cb5df7ba1bdbf41be52e85a8eb891d7ebc550700cccd210c0aa5104c54e93e19d672cf172b7c7fac750604b7911fa5f3b473016e1399d1dbe7beb10f8cd05092412c33fe3feb3d844d2704e5ebf5a2afc64a23686f001da7cb348d9ec013618bbd7e97c07bf27b289791ae351dc5641a30870eda193ef5ccb6dd52517b7a5ba3c7e25fdb096d48ab6db4c8a5b1d9d27bf62e6bd94a3529c54b9530fb26ac5492f5dbee046e88643b3cd0792de7f376a3a47cf9e53ffc5a78ad1f5f493b89fff44b79d434b7a3bd1155cefb2c1b8d392a937ce8b52d22bd77717994440f132d3773dae85d5a636009e1ba82b63114e913ff22f8126b6722d7c50fd2ddeb6a0005b084bfa5ca2f0336b9d891362842a461d5d1a9717ac731ad61bfc5514de773a81164d81d7fbc4dae92a43fc2f1ab3c2ba194e56f7f43a2a80e18d3d55b680b3a45761673a51b71277bf5b81f8b5fbe78e9c778eaa6e7f125c9210b98cdaef9c2712baf27dfdcb72f000761e88d810a988f3de7cff68853cdc7031fe9fe7a366e20c650c3c36cb0f29bf4ea3e6b9b688bc4fde7b7c1833b1bdc9acf90ec9a337dc1295deb5535492590d108f806747935c6b4d03659d3c519c36af4fd3783b4f482b4d562a0a4db1d6124cf64e72ec396008a2aa4a78d90d7e0fad4d43d3204da11eebd36b308cdd6882fd92cc792e236b00ad9fe23ea2e7845888a9fc2a17c32195cd68a4198b5f31f77721ef501ca97deebf1583ee8c42495d093c2aa00a003852dcfd49767c780bb3de7510fc98bc2625a924bbe7885891b592541dc95f679b185e24bbb035835c2c2175b2e663a2978e5828267995943d3416718a940d831c59e83ca863eccef60a1dd99fbe6f7831ec4433f618f54b681b693944b81b395bd14e7326d27ce3a419646e7e5f6413f1b21f7a8d1a5e91dc4d6eba2a6d375ee2a28f4574707ff9c3686d6892a70914eea2774c564d064e244c5cc92847eff7210b1038a5142e7bc7e0c0d42bd405920722850baf3243b039de4388721fa203709b389fb978584bb41bbb8991750f1eebfe5a7ccfac1d0352695075d5baf4d244a618ee8af9674dec6252cabe9a1dc5783f1a60d780e5536b0e7e5eb19bb0188557c4bc1e6caacbbcaa6ad815309dc59a10518355f2b450b50f49ca0e39a2322dc6aa8123efcd66cf5c575f502befe20a7a6f7125ef81708b822907192cc518e8d4be97fb4f65ef1a4016c9e8ead9ba9f6af22edbca5be62f12ea35a31c8f6444e0c590ee58a1b397eeb0d851245234e6d18c5ab621da33456c042d4342a62f245315df90826ec4e2a156b850c7e1c2113ad5f2ba292cf3a5f2884115a3932e23c181e8b0c4346d6504305543cfb8bcf58a1cb5c417f800e3880d6baad05a5eea20a8d719a929f1ac716f285e1d75fff2257f83289ee42c91168fb808a6cef23dc78ba4ff8aaaf7a249247bf88ba52d411ab189439205a981ec7e577f83834aa71dc148a3165404436999f29a4404b3e12eaf9cb993f9ecc8b2c5ae0bd0e023b9fb893da5aeba67b84ad6095814540cf15b65615ea29930480eeb516159e86267a58f3bd0495800d06122a5fd97d742a10b7a1830f8fea29f9c3ae5adbcac0ca26a3d32513c0d8709dd564363be5daab3fbe12a8e921287a0d1e7104298da042eb3269ae29548542b21488bd5254220eb6eda2c8fda1b7fff800ebe44a8dbe391164c9a905a71d3b1fd2ce0aded407e3ee3fdce58f5798a13fd27530c6d68989d6699d3a1b078499928eb0c9602923a350c7348a0d799f89f57e53946868f4ebd19bfdeeb97202a7dcea27984e4064dc6f23f055533bb29bb051d4de19b2cab87677ce376e01e1ca89f2ccaf24dcc53ef3ad708d8e78f9f7be5312283cc846b59634483c2f2326c821be7d1346002b4a2c5eac3b6b7a02834e81367edc1e3823a9a54d2fc99f8daf612feebc80f3463123d73873f4c2482425a9f5ce5be3e98472a7c342515e028a449f4afff0b773db11527c94c09b87d83bffe194de27d8012938db22956a8c1d0237d8134126de76593b0a7c64a70e35250fbca2b2cfa300e481b76a22686c2ddf2706d1f9a5d4d4c1858447c9345669cc8a22090363a0434900ebb22230ea22f7322dd938da8554be87a9d1aa1842140afb71fa3f0f04bc36ffb2186ec08a93bd0f91960800d3cc6a411cc9eeecc04e8ee4299a83433ce84c41a6d08aa1b1c69ba3f675a096441ed82f9c70bb88513400148de36110f6a7525c3818d38c3e62cc974a3a8baf916c7a6fd437ea547706ce829400bca79a44d5bd5902877f6c5077458d5b0d1270b1d1bb47dad4a8de1685fa5c16b1ce50d34850d7e59196c9bcecb3595e077e70dbf504c5ff83d3f1b0941e7efbb86c5a96f5a0fd8d4ae9fcba9c61ba45a9adb8b9b3bcb5a0fa8c4e98da62c74d336b41e00c023d76116223b718d800262226dfb1068c9bd853313805d19866be2082a4338195520715bacd06f3f53d65991126264ae05718f7463fa2d819d81ffd5996c6b9fa87ba7c2730de07cd541ddaf2ee89e29bb1d675b0208d7dae8bca4bef6096eedb9ca6ec2e9c544bb253284dd547470dc9038edeb3e130106d58c3956c2384ccdfa49016e5f9cbcbd419f73665bbbbb7d70af3b36aebe9d986a9adc5bc0330b727eae3343a3f3913492dcc9e9a61052372743af800082cd296ea5ea352177c3d737c8d8315e48651a7ddafe7ea0aeadb3cf0e2ac92ea532a161391e5cc1fce6e559a738fb4b171820b194801c54ed45efd59910af2ccea502df8e2ddc52254f379558b0924ccbfff08cd55793bb37d93db12bfacb43606b3404570d9efbbd862e9ffd4620d36c2bfa05993e63b902c3275560909d6d0551a60e46a41f235cadf9c7290797022c49c030570691af799a92487153f30f520ba20c0e8c1eb308dbcc304d2f53644b37bbc165bfcd650c07fb22d7c758b551fb0610dc30c7a6b5ab20b8caea5713bd7fac6450df39f74c403c5f800c0e14dd87e38f19266d5eb364170249668bf1ec42a8cdd6b6cf2e10859ddac6d985d385a76d3bbbf0dab6b5edb30b4461a7b67176e174e169dbce2ebcde362ca5818c8c875d1a0ea9312c3d23a57911765826fb16b9855d6eaa7ad8deb0cb7fb41916023d4560c7bedc31fd60261fdaf25c9f178d9b9838932b2f737f8b620253cc552f8b68bc229602349281dd09fef302eaf87fcbc8e0b72caf2e678c6ee1455a26a4557f31368e37aebd13fbd2132f50250f1083b45016605a553c9d6cabe64e0b162b6d443ce489a0674763df09bdacd320fb8fbe6565d8a5f1ec08b92245a891ac2062fe7c7e51cde8927a460dd92f2481fba583196ff9fad2e0b618ef563d2cde6cc089de7c1cfc1ef49dc6b8ec19c53ae100c2ab79b6e4461fc75d19e03e7b335168cf0d9a460366c64da54921f6a5e28aa518643056f9021c99aee93ac9466794083bda0710388e29c68c879816ba8c3a61cc9c215473519f4a91c8438251f800d4fbd3f2fc693d1630019fe557aacf250b5ea700d634789982d8d3c07d0e644f02b19c892b5a6cd0d413dc5f041d6784574adb226ee20af2485fd58bcf309596277f7d4688a846e39eb58a4b764355ef55441bb1d975c211e1a470923c4700c3d91c102c0c7b3a8137fbb3fbddb04a538c2a0e5956ac5985a732e41b6ad39e7038d49c01cd7e1779a19b67e5d4d1de220da2799a1ad938a09e9de00554a8923fd40a6fd49f4371077be959e23eb014087b91a0a700041a3f8a43464504c67cce61787c28f114f3cb57b2515ea6859ae443e4c8a1cb694121299c618cb416f77d0b9ee6441c964a62fc89229a9c000c99627aa1827dc077b408ae7a68e112f5e4ada90e1c38c0644469e0feb75902a5d77a934d28c4f890e6d8ea9d033a822fd787fc6654a2f0d5a6dad60d4a2da4e56116a6566bd29c93d0d4e45189550fec55f1825b00ff366b90fac414cd895454dddbde50098b72b920992c57dd76d0d19b21977f4d555e795454a89a00436b14c4661079b43d14b0367b4127bee184179076e077378be9020b15267d87eb255effb0eb72bd71c390a653cb5c65f3e1034cd2c4f3e0f1064f8e19899c9a70e9470c0d1d5383d71b5eb8fefa12678cc183c1c29ec463de9f94e6fb5e15a0a3d43619b29319f05e9567a125138d3787f646f49081d9c0dfeadefe89f26e3f024109fd036b16563b0fb5bb29694d3b17f54633d9903d97c34857bc756be94ae91b49d312c82612f427ce06f6f1f762deef4249a26a364df8ff63886f04d689b6888eb9a6fc5a641e52c304705f4c80d5a3a58433044b00c989904fc8d878bb2a2b20150f03cb2b6838181d69f07a95038c016c40dbf1117c5d4871c41a6400e5b7440087fdb5dac9f4ed0416e0718003cb48d8c459e8040d0c77a88262f3ffb3df098bd6c181ba292efc4780b511db806540ae3c4b4e5f73946d9a02a984016080a0f0e270d00517044135aee934632245da84a9be80a9d8b0c71c93ca4af34c99fde7a507d383f9afde024c3af372fac2cbffc1670b1304e0e8210a097eb7d0228fce12e608e1d1431412fc6ea1459ed0b0e025a64f6855c8b97ec0452bb7b5cb92827148af7090de954ebbafa647a6b8c0059ce6a0b7a8abd9b5b3e19a63914a2ea1e91b58bc639d224d29adb492ad3320ab54139e15592c2b043f54ad4ea8d8e57d07c4e2e990e8c0f431787c23e226ccde37832e9ea73c31f86be92740c223a5b4478cea0e24b0d2e06962949af8dd2991e3425895a44ac6e9b42162a881ae06820110c6c131009a2970c64131039e3170864131019a3150e6c131019e31be39f051ccb762c2d7bef9ecbb7bb4d7f51709de1ac27c2760cfe846286f5f1b6790c5aa23e69b6339f8cfcbbf7d04355d8e0132e614b748fdff5637634eaaca9cce6ca900fcd0238098ab283417b7e7387c3bcaaf5ae07cdc1ae3e0ad30376b8173716b8c83b7c2dcac05cec5ad310e2e2d04b156099ad8d4b23d02dd3bb00fde9948993d1e1888cb73b724be96625912e86cdb050c574e686268af834844cee803add9e3873780abc17d3cffff363ceec814e0fca50f7721c9d34caa153586f5f3c16fac12716e2602d3fb44839fa737d77e195a39b78f765e68754fd333d70009535a823a0701950ce70d64bb0a6a25b8649da44e478bbe61e8d4ab023f1b1258a6fbc0ebb82b3b5f1f6b75e4825d5634a29d9f2e52f79a67aa8c97d6838aef9c3b5251453ba10c84a19d764024bd6b778f74020cac974f8c640b2c2b46dea6cd412c8b0dbd02068d415a427638bfd3b40cf42eb70596d548b059ffd826f08bb0f269d82d068e82a68faf3ba613cf6a49aa2920b12331e0fae32e6726cf39661cd5a431b070a6093be13273508085a359ae0c70d31284640f8cb8527dfe7a548820f8d98b82676e4ef6a9fff3e0c3d6d5608b4d4f0982df1d37ba62b07adaf0168e18a6ae99769c3c2b320f47ecae2bb47354b0480aa1dbe611c55b40a972f55512c5a3fefcd10a0092b4523dbf5c76bd4a6d6101d1a2a4f55f2e9ba0f6d9425647a7300b5767a549f2199e3e83357411a442c2c7bab1deddcfb3464a56449cba7dcd51baf59d7e5d2859cfeeb334beffffe8856ff0ca14a265f111743839b5c33a408e815a65619638e0e33e63f1ec6b403da279c4cf8353ad7b4134857d35a25615aac85e41bbd9cf34f1d718d4b840132103f530bddf40c8efa897a20fa980773e12ae9e00c030e416c37242a3842fccfa8730131b9ced6e8ba8687141798607e6cfd9c544e97e34d0cb443a91099efa95bad840f4d115a311f328ea9c36e09899d60cae4a7ebde3ebbbf1e3345f6bed10ae418495aa0b2944d674a989320441af1d070fc5093430c23f32701ffada1092393da1269f29ab3f16fb2c74d4a29c58a12bcf5427f4fa4845a2176c38cc46da50a717f46a4f424a3d1503e3ee59519af7d61c4da863d7d0212d56eaee28899b6b6321a767c2a07f65e45a3c244850aafe005acfba812da09529960d6d94fe90b3fea0e6850c45ea7e46f625970d93c372317f700962eda4ba3efbc7aefa5079de634c198f145c47819d8d0bb5e7c320181a7ae4c8a7c8dcdaa9bdf7378d27a826f5cd9beb0890002f0c3774e74dff37673080fc7e48a5058a365cf521e96f44e491b994a4f8813e59a6142e4528f2b22a670515938837ccb391c592913587ae1faf2121e9b070d98edc3aed74c0978a8226602ff6ebe07de1572ab6f44855ce740c24cf92f8d83aad6b2cdd7cbac967e28a4df70503d35d484ed12cde84f06b202f1d900b5344bb0e946b3841ff68ac9f1bc46d23c3bd8932471c34325f6d23d44a796dff13ccf92f63835ee6858f2c77a18fc3852857b83d83606a3a2f67bd8145b0b81e568acaf0318830cbbe108bdea53a5ca1a08413915acab4cb7b8383b1e9e736ac8fb37b5c0734767240e8f5b989d5faf9c4ad66eb44a43e37014fbf9ff0d20c9d80d1f7262ef4ebb800716f8d823bf7f5f6beaa9c7d08f60f2a0e4a05fc080f7af996ca03857766582846013f90470f4a5b579873794440c119c82c440a7cf37e7ba7d7854155709164b8484c174be8826da9d99a72e7e2bb44cd2b28d175b659df943145d2123e535f5e6457fdf0d3f554e0c21688a3482a413a3905268843ebceb25f67edb7d3dce03d1ccdd6c9445f7d52b92b4aa1ae0e9b623e5178b99e27cbb3afd951dc5b93c06d7ae2b9cb8c03f1de0737041cbf405ff4e08cfb25bbb74632ef96ba99c68700e34883c2c74bf2515321503042696a80abdc1f663879b8f484c477e0480ef297781dee73d198810ae57676e0b17741cc34128da32bd5923b02a1dc3e0d2281493dafb48743ace40fb7205472642ea9ef2b93478eb8b81f2c716b917b529f18f2d4f4ade124eb27d5dafa7f56da9e87120b7877f0416a8013ad84b0fbfb877a347bd867a45904abbc8b4b8d704f4c79d185c9b5deb0e85e8fe57f8a881c4c8c25c65b2ff3b2d47ceebf1b80363c6023e0fdfc87af0cd2fb110d0ad0680091c61b4559480ce237e10017817ca9a003f522e9ca5ccaa4f5eeac7110617bb1e41c5701c4029fc39be46675c64fbf14221a67ec820f390723ebdcb3b291b6b3245fa210219ff238cdedd4bdb67cb286050370c34837e3376f3e923c1e3d72567893118a1448af0dcbde8c91b3d1eb0526d3367bdcbe4f70f1b88e0fab9e8202252680f017392ee3524e963ed3e5107372b6c86c839afa2705dca250d3032abf05623995782ee3ced2ed51f93f436617c297e6f36df53ee4c041614d5f0518608081c668b1cc429eab83600b285c081286f5d96d81a85ed2a671c7dafe11804f821eddb40edd5bdad3007c1bf81b58573d9a55d30f3167b2b33973a392892def55d798ff3ebaeadb2ed1e4aa1dabb574b79c0aa883d0a6e276bcfd868812209ac77ada9c02693a06644a77985c24e5739ff9473aeae6e90d66e1f30ad18f2cfb3e1a55cf2c608f7dd907ae908a698415a27eb27bf5112b06d3e29390183b4d0e10276a75c0988788f840db376b705781940ccc32003e86ce1759671ac999a8d33afc26aa35599833986042c9bd89039f6a46b73078b3c6b38d522be1121becbe81d666bc00ae23ec6e4e40873ad458cbebdfa9bb99bdb3d3a36940c860e022dc7b060ac0de7718f9cbb4308fc5d913e8171c6e052fc173d1b40340e5f74f730e655463c58678999d48b76acf01e2705d9c6e224b5cd7b7227d303ee42aca0364e50fc35502fe3e53176ffca7c72ebd0818def39ac75e55632523509f9ad545dd6749d96c0adf87a8e074337e70b281e4a7ab9b42927a9c394e1d17405ac2ddface1d9d7ced5e2870b1cf772a82fb58c893a55e8db1a022d6010cbee762713b1acf53814555d29313acc41dc3427e5b69f01ec41046b8108b5f260a7c333d02be36d4cdfe0cb852c2adabf3fc404ec6774a7c610f5b0d99aa517593b7546d05aa6f8d0238c58317daa9f7b11a74f2df80ff6a091fd0dd29c060ccab0197f07602d64e3876f4374222f649ccf5908602ab8738152824b1aedd1f79d6ca0e31585c2ae261454635180de13b1d78b83cb8c40ba15d6bdc51158c4929854cd6b8fed251087b9a70de7a1c757be64cb02783c1c5960e926d4839c509354320b24c4df86e4f266bc1d3016e3de72ab01e8d5f5a435a5930251208c6b9c7c50d27648408625a82d7eacc9833ebcc88ca1aa130434db2880b4773a185b0c0d3bda6b24a178fa2b8a19c2e293fb5fbe0acbb07a3037e989d42c5b9fae05f39c6a72bf7b1f2d5fe7550b2e7346cd4fa4a98296028ff3b853100662c6f8a6ec96702887203417f3bff2974360c5da352f897f5c4a811292ca032e984d9c6ec9f6ecd8fde9cf9ad5f3c61c794416dd9b8988e3259184d6e6bf1d0208589efa7e119f672d8bc44e9a7e3aa55afdedaa9fffe15dc0326e988409709c8b693438b335a36651f22fb913512febef8e63b854702531c71f8b70cbf57d88ce7ee33c8341a08851a59abb9ff663668b48b0d8486f98722d44cf728e460357a1844cf4f0facf355a655c995a634565a93947cbffe2c1df6f5730adbaf4fd37561b750f3c7a4889085a06506217adf4f1a5be9c22b730378a0c07c2729c4f65f6e64eaa773828395ee91320da0c792ba7e16598a5b79b58da06b1e7d8c42657ff9137af5cd5eee297578abe530c356a3e8195ae9e1853a93d6f6965de5dca7922b5567bbca0d713d3196c5d6a43bcaa36bc6d561e0ec4814237ed8d8ded38f72fedf569e04afc2251a619d9c559249fdad5463a2f45586a0cbc2a33090cf25d566ea52f5b8b9be4bae3de13cc1e40286648a5fb8c4ace6bb32e80daadc6da9e280d5518f27f06e8d34a1b7e9922d0700eecf87409563b24914ef13f2dbff90c333af30dd0f6122a9bb747f01f7390a6cd4051eb8260b8606db2d8ec00a960cc615e18fc952f21f773254d94637ca9ce3a371a46c1dbfaef7e3235810c8944877650b922f0bf2ffa66391abcc9901c95fb60dd2212de8523fa18b13e8064b7d5098846905af08b38e2aa0360883612538d3384032d05de32fe1886cbeb2841fe8d8bd1d230e6d514fb0e04fdc8619167e6053caae3c703372ce58820983d249428e28cc8b47687749e8bf44c3a3ef6b70632dc0ad842856e80310c3531950e400466e35f7c91cdb711a4563511109ca3a742e9beaaa777b6c16295ca7595e7ff5603446f4d8c30a51b9b6073c30b6ba8dbfd1912c94ecac39abb47b146273a61a938b24819acc08550d48647852ea206d3d96399b6c2b1a767b83ecd35b5fce52106185e03813a853f3748d89d6cfbb5fcc70af9f6e52c56f3dd9741740aed76965cb94692e18c3454aaa94bc5871a2e93c203d1e67ff7445f1594efc0ca86a7cd26985d44bdc093e29a953023fe17ed29cc26da50153507ed80eb54dd9ea756faf097970b2920100f71761a403fcb2fa5a9282479a69ccce015301402c8df89e8d2d4f6a55e684998f7dbac2b97df8837cbc84022178b93f7d014006c494ce7eb5b56771e47e0da8af608cf1123420c86b717b672cfeebe12fe57a8474bd55f67f20a253a53270d66be202e5d0b2291eae95443e035e30ba08e60b2e9ff390ebe67ec3e6dc70d907ac08e650b64cac197454d6ae34b1a0dad0a78459dc4421ab61694081ae748a68e38cee873a0d029eb364e8ada51072d9b6b1c208d08dea48bd1190f81ec7456f8ca69081631b67f28f97d5401d9975cca8e33d590b3bc0334540e6212ebb890f250f1bfe39e47b01cecf05f17e0ba2a417e47b7cea42fcbf3e7d1b45fee3798bf41bb20cd67bcef9bef4820a79a4e331ad5f5ec74939c6836b7b6bfca3f329a3d6adf6ecfaea5a39417d0524f95db13654bb50011de46f930b637f9b3672ad63983f7b679e38b227d39923d122f2338a7cf1f8d46eb14aafd8159b1775a7cace31299797421291a9cdf394decefe1e44415ddc8d6acdeb293bcc122eadb1f14254334f9c3669fc739416eb202aa2902a7af4e3111ec80017e1d2cf6e1cd8f920f6bfbcb3f9070b3bad13eb060d9fe0dced5f6ffa35d4c79760d7ab8a714b18d551608587dba349603e67047612eba2cc4be8ad817037350d94258afa38ce8aae081e661f51db51435633f80d573b41966482b46a7dd760500c115a889010e90e51100d967bec0cd3f4e445e6c6bf4b5f7d7437b0d4c8a9e376f8f068e1d2d71123fdda1d1dc222fa33141a36bc9e1bd87c8365e5396fb5b0551e4bdcd065fca7c7e522a538e8d1b4f172898f3623775658e2e53eec81a70f8eee4b627c7ad3fec22a5754385815ea2a00466b8eb40d009d85a730dd7e5b6f46ceee0f7233025d6d0fc4687ee2c23baf2b7916fd315a157d2dcae6b2e80d49ea625762e7a2685d2eb735491aa803a727e57b3c294319fb2f6ee8c67ee7659a8181bacf3e4d12bbda326d73644a6bbb64e16644b485fceedf792c57331853a9967b67608a7a17d6c5c860f1c8dc750818c0845a94fda3f1297a8d253eab459370c12657441b2b682a800cd4da4c64e4fe2a48122019a0841b81500b2245e363e6b95dfb019620df724ce62bdc9b2f4c531a66c673ba8c635079ade8feff6058ef57b0d7972728a663c57392168b68eab9ef7ba1d627a47d508da8322576eed774fc5c0564ac0f061a1bfee4bc8fe61408dd51418580fe84cdfa177f59080146495ce70be104a9d853babd07819064b37db58ecfbb438930dfd61cc6123d90018da13373a2828da38a0b42e733a3801904d9842f443919b8f37ef71851f24265ae5df1b2627e983b994d5ab797910b9d418416ca24124c18449cf777fa08871c83a6a565ce1d3de9b468f4c7a29e004c3fb024d0be6707a3d5b8d3fd45996745ab59226a2862411bc48673d5b1dc7c42e7a5f7dc1cf3f5547ca5dd92ce7aa082dfd987621bf8817825499e598f202a6cd840e6f3c9a49751ca4470f39bfae51f90db718f4b67ed50e8f914d631d4c3f4491ecfcfe6a6257a9bf46ccdc5c78160af59b1e61eb14fecbac0c66d829ab9cd6fb3d301750a63ebd3c7d8e049ccab6dfbc907b50854a8603a12ab4cbf643fc4a7a24d9e397ceacb1ecfb2a1428889822f76167bf62ec7e81b26388066dd760077b77ea503e2a96eeadb71faf6bef8416c124f46d6f1f0bbf23a13f890f4d7400725813f8909a74a73f5b6e7e1e280ee014e697ebbcd62a7d6d14616902807781aa65680dfd2868782b31e0fadd68c184d5d6c57f5d11436a8555dbc9627651869ea6d796f057855c862a74dd8dfe66a5dd3daa0f5d8794dfc970bbec34f2407c80d5a82735b8a44622b3b8c0671b467909fbf8a6385a15a01cfd4838f0d9a3dfa87a7030379a52d178fa8137b15a2d1ca315193529b83852e595c9cb99bb338e3f3c3132ebc03dc9323faaa9b92407578d5ee6aeadead3cf23b2f71dc68cafcad3787651cf4eebba5a234d90ef47819b74755a2e083a6f91573c2d59588968c3b5a84387ec5e498defea88be3020fb4077233ed54d0f87c467cf304d3b94c840b9de46c335963a6bf7cf775ee24d71f79359439679dccdd547f1ea773600e30b57bd12b874a846b2659f35987ab8f8e8e3e35dbd0d336aa809cc52b8f8e2919af30b79a6a1890e57dcb4054dac5bc9e37861c2647b379192f09182f3d37e5aa409796cc945a3fa028e016a09a37b514f2b53c37f0c96377605338219d67c122d269276b02f233291277e67d05c21f1895f5400a60b15d81fa75a03dfebf836868333d22787ea7f2131d8cd318a48641739982ec2dcff25e30d4669f18e98d3cf95af1e7b1677e6c0f6407aae0acdfce4cf0d57c809ad3c0fdb06f2fe9593101b7d1cc2481301fe2c1a88555e229c167e924d6284d983f39de3b05e6c5c789f14b252b8077c684f991595ceb633ae5cc53f80cc58877b97b17a0874b43877961093fe3d6a6b39110cc4bcae803e8bea134c163c8702f6073ac539478a09c784265fdc6257a9b2b84d169856422a4688909152d88ef04f2436a34c33f1a8d2da41864c1a05ed6c29c5d28f2f28072c6eb1930b589c63b9aa45b67d44c07d9c560fc8f0041952ed27932d4360210857430b1d8347ba59b2f5d579882dcce666407cae64ed9247ae3e2cc79bebcb5893665cd8a7448cf3ab7108e971fe31f87d1b0ba939847611e4619c53d3ba3fac5d6b71efca6b50ab58e474c90630b9db80829e6f845e343e3d81a9e459ee573a24c63371ac57ac79bbbd2273592bdf33d6c1e2c9fd172cdc98710605b045d3d5aa3390907f4f189432ea2f2609a27edcbb5110c0ae43803e1d5d2992cae6d4b3cfcc57a3986510139ce0ca9a1abacc18b9a1099d4ce6f4433a65d39db841889e09907db8d5ee77129e50ebe4bec32981638faa35264686a052226cfed09c31a7e9bc4a2818c007c0bcd79b3189c3db1b779926b0b63fcb52d752fc2df3f0f8ffc6fba2b71c1a37b908a1dc518aa517404ccd4273f926b41a8d3813804f35641a934423075dd1fdd401da83c96fb5f021e64ac03faedba9958205a55710e191591500ea913b0f75880c3b762389351c57641e518965f2889c369b76114e0e4864723dd4e2a5702317ec3581a64866168eaee2b746551e4553c0d82c012c72092fcb77f55af2d3ed7767777f796524a29033809b409b409645068e43deaa63963ece9421c139e6e5fd2c8c3e5f6757d4fbc83d376ee8b5dd79a73cee95661ef1e955b23615cd5497cb412219ecf1021bb265171b5a83eef2c93d7868376545b273171e68e30d6155b18b42f1eadb5b6565b6dc53b382b38662f972338ab46ba33cfaf7b4035a78a7b0326b9b1eb534c41051555549144c9ea647b289824745ab77941e0f77940406190368176fddaf5cbf1f5d0f8e6f3ea20097af53145b551746a8f1e99ff64837f82d8fbc090cc6fdaa348e63ff73892f9cd3d96a53d9664fe72937b34c9fce31e4f32bfb82b2d7fb8c13d9ec8fcdf1e51647e6f8f27647ebdc714dea38a64a1a44eaaeaac31d7ed795ba8e0cc7b059638b067ff5c1c3ff43461708277c6dad561bbfa984b25a8af070573083dce21d15e9cb5f781a1389265c93c4d2627d4490a4595b262bd607e3b0ababd5c2dd62ac5df857141dae84885923a419d1e6d599c971484712713d3e9a12a66a924555656b84f97448edf0a4b8a75f4a5dae0d10e7347a91de67810e65076aa25b56baee6bcb23da9014ee7c479b3078aacd2349d4e5eb56abd56bc0a8b4bea123343ca6a5a90b71b748742a25b94a4d3e9743a9cbb5da3dbed76bb5d24474849bb97abc55ae572b95c2ee5a65a314325817677de543f8e4b2f90aec808c9914ea7d3e974381c0e87c3e1a3dc0dcae572b9dc1dca5da2abbb452a149d4ea7d3a570381c0e7782cae572b91ccccd49678bac1192239c4e87c3e170381c3e4ac24747f7e24e26261c0e87c39df8081fe1239306c7c4e240a0203b94f341a7d3e9743a1c8e5d1c0e87c3d9226b64911c2199259d4ea7d395381c0e87235bb830f98077f696939292703a9d4e67816c901db2394b448e3a9d4ea71371724e198873ea54453909c7d2d45da53a4f10e94c52f90d3cc59cf4793949e7249c93720e899d385f9026a0f31aedeb3a48664bef1d71aa11c6d508446dbef54eb9b5d191d3ba4d1bedebe38b52dd29773d72c22877f53106798deeec64571fc5b0448edeadc619c69c6bb5155b9545c26822715e1f3d4f7b682d8105fa2c52ce21a8b1d6e5f08dadc2438d848be0a21b82b888cee9208c873618dacf668b6dae8a7ba39bd0b910d5397c243f2ebae93d731817b9a9c645886a8efd61936c5a073be7eeecf38c23f45c337953fbe19e184d169ce1676482a74ed237ac3a1d14513b53b9edb2b8cdfbdc26aab8adc4b23331e6b655cee8751c81c0372f9e638ee2e2ab97d15d468fe9dc15173fc5474dea2ed4990a5d4159d00f55115116eab3448a23e13415959b2359bfafac6151d449ba0b75b6e2d93d16b76930ec3c0615b76933b0dce65d20c56d5e06b6b7819d3da09d45bb7b4e5174d1343d34ad9b5ecd746fa9502709ae8c0e82199735d34d6ffc5454549c15963a54ae22ba698ede43f453e3a4a49b7a2b3efaa7429d649a8ee688b27c74b1d4a1721305b223fae9e4f83849446d26eae297cbb236963bb6471cc7511cb128beeca6620aeb6b1d5de56b4d531b8c3d3acbd73afaa87a9c2a45eca5d8a38fa6ab1ee7a6a3dbdc7404c1d1b3df233a296b25e4288e1e963571343d6f13b519b159de66378ba9e23ac91b7267e30acacaca8a9b6fa2b29b9a28ce4d73cda4d7272e507467d90623c5457267367db43378b27cdde4a36e1afaca076185627e3e8fdd2ad406204014d406dace8c1443455b56bdada9e92c9f6b3afaf72059d3d1597f56544d478fbdaac6461fc731db9acd9a79f737a444ae899f9b4fd0ede6f399a04b8f2059efad48ee355f6ecb1acc6dd8172a9ebd061c75c61243b9a04014ca5954409798699a1a54691157b86ff7f189dbcf16ddf7789ad2344d5b5a3c5dc1c2e23a77a672bbf9fc802c207a45d3479d3b9ab4ca8a8f1f913b63f1ecdfd0bd897976f0ce44c749541eef7237967dc55f2227749ee9d955743e0288ac81bc829d4b906f1903f9a6a2926f2af9a6e236d55e9157b88a631616f276f3f9014d14751d6e9afeb7682bf16e9ecf9d8978e5e66e9a7d85ce9d99a84dc54f2aa8d5c069c3597996c7494ea4cb4decc56de14c7fa1a6f905d562a8b1ec19fd00900baa8118ba64e79c6467b2dbeeae5ea831d96d3aa9866f31b300db72c7c431d11ea6bff7c03b9c0445568db38ab3a0b8ed16d95b90272249e52b7aaba04020916f482a9ec395a71ca9f4914a05d549fa88c572501ffdcbd1c7e1b1db51183fd64a26e9247aa795dcd335b9a67b6323fbfce072d449a08916e9a4179a6f3aa916ddf4187659eb249d44efbe13bbf2b6e9a494b7a1c27c43c99e7a1b79f2365576d407f1e19836f00935292a43928fe5be78c2994de74d413283537c99049b30d6b1d6abc1f2466cebdc14df59ce3abb5fbb25707364bf2ccf5537c57ed1d6a7511aa02b118aa1185ea0db69bb44bc4ba4e6b8a0e658c79e12397b36ecc0e10a21c9b1846de9e692ad67db40e2ac37a571673037cd36d2d45da53acf2272c9c9fad0943c830ece4561b49ea6ee2a8cddcb169cd62bcef5c630089ea74ae58e821883605963eecd472ce8775685a831d66f0d8d796a8eb515e8a63c35a71eed1e6e9a1dbf888350dc2d4d2938470f6b8c9ec4c5652d743305a7ad52613db3aa1412e0b9d6e77ac6e1662970b8327f307b0a93336a3b796a8c759bfb5830e2120c8f10307ce5de98634512d69aa4f33ea623e134135da254e2921035e76e6fc4ad7705e11b1b38861d3c4f95a71a0ddad8f33c8c51242277e82ae162f43cd206bea9b35a648bb0b548f67895286b1e6a267189dc19e8dee79e83fff928faf7361fb26d897ca0879f77e92ba13db45f226378fa906dcfcf12c7490c9410833ba4356aebd9ae1f93dedb78ecee91f6f07cccba04deb4246bf97d6459fbaabd4af0582237c5570a35065fd20c67765d4792ac65ced9af127f95b829d6a1f7c86e3d04d11bd9f65c2a6e4a9ae1b43b22978a9be29b8b84832393a5a93b11221bfb3d527282d6f3b3ae927bc37e7d8e2e90bd4336ce5e83a0c411ec3a8923b084e244aa1689a502bbc5d841105ff004b110294eabedc4d1f1c103534b7da55063d8b1b07117f639868deb3daa31464ecf3888bcae2b944d38b3e30f04ad97a8eddc65798573fc746823b756b5c4f148bca6697a8dba4dd33fd33f33f49e0d82e79ba028decf7e9fce1eb844dc5956a9aa4a55bd1611c5b0ded9751c8279db327fa17fa1275abf21f4e336f45a8a1f29d6847e9c36ba7ea1f1ba2e77ae872e5ed7fea1d968d421610bb746ddd771be59c7d64c24cebadf6224acad4ab6d540bd21415088d6d65ea2ebf9f5ac07da258c2318b0d7993de82c8f711e9654636864374143a62b1c99be70fa7553d2393393a6ee2ad5799a864cbb7d5df6acd56ea544861070b5dbad94dc64b8b016c28ba80005881002c8104086f8d2a1b4da5b7aed96d56eb51b028810cef2db1563f9ed8a41ba340fcf6ae7129b3163064aea6406ea3463866cabe8964541232956bb222ca89e20ae4d011113141a8a0e0c31819075c66901ea43e7b67614023a0783b1a6a7c959fc4dfc5f7bb01594d48bb54a5f5a62ae164c4c2a95926a158b974aa592ceb9e4953c0178b98483837370439abc9436419d56380ec22bbe569a1636387b9e795f6f77e94c5d88f2eb259b91d93a890c843d259bc9e5ce0b980dfb5a63b2afbcad3335cd8ef27ab3a6d9597faaac9a66573dacc6e4b1a619a5a667766dba86f1b23ffdf50365b80cc1e16664c0502726e4e747262614778a7df02d0686469a5ec53d221cbb4a762998176d7232a5503809efc872677ce29c417a1928e673502ac5e4010dd27b159d59d658e8be476e8adde48160ec284657afa6b88f8f6a2f2a8e8e6e156679912ed279d620bdfffd7a8c044f81a96841c2b12353779e65ede416b929f6b3bcba9b625d8df4de31153b7817393115b88a9bbe507c140493f4fe25e32999eb44eaa84b84d33f9d4589a3e4d96950e58ef6928f2739cfc89cca1d1ba4f72ed40d7d82031bc8d3a3be5a815e9cd0fdc131ec2e7f8380d23b94b275ea29137a6f28a590ddd99d4a6503e9bdca26b14929aa1ca4f7a91b48ef4fb64e9d94250800e93971535c648424eb702c2b41e43aba293e72b94c20943e0a80f4b4c909f503103c5548764be7227db4b00a7bbd06603a525464530383f1388be874352c5e30f1dd2b014873b358399b3880395ad1ff4c4569bf7c46ba31ecabcf4db0502999e8246327346a8988328d0cdc19cd399028d44dde5dffbbf7e53e797d6e82e8a679f5b68914d4e66c4e259bf9c19903e93d89e2241cc34868b9136e9ca4d361442100e9a550bc07b7d681f4522805204dbcadbf9a5aca5a0a8a916ce024b7e092b69438f086c14eaf2959b4943bd94b27a9d4494a9b9c1c55964067c7ae9fc60ad5d1e51a16698cb4e789c7ca1a8aa75236e9ccae834fc60290dee7edac87f142715258d0a47238863df6d9f559f7b9888bb3562dae1df540c09d820ab5f8e981805b850aa53ebabccf12d9a526715a1a9a1287e7da65e54ecfceaedda5dc79a9f696ccd07c1334c5d963ca5a4663e58e6e2941e083f400a4f7f7c507d27bbb354c02f01429141f9da018090e645e623ffc00fb012575f203eaf4c30f9eeb3fd1920d3dd1f26d791487f25036f23cd44745b2f378841d9460679d2b92002031d6151b4bd0be3e22092f929b5e51b7b1eb24e777a7b852dcf4be7cc6bb9cc6b758b068683368d476562f9b81bd80897969e1c25f32e80b1797bbb06939ab863683466d67d59ae12dd7d73dae56ab9567a25732af6785ba3c0f87f901f8cb0bc0631e076ff101709bff1c5cf60470165fb7cba02f570b00cf4a628686458587bfb91dfeea2ed12562a9a951a1a8a0a4cc0c0d4a6aa5dc5121615018bfe3618f6b8a1de64f35c51ef32835c5fef2ac9a626ff1b01a83cd9a6214c7017e7bce52def0dd63856c01bfa64e5a585cfe7f456ca328da926e151595949c7996d3fc0a01df00f7e119e0dfb7601e925658ab95a4063c0b286828b7027b1a7ce671729ce663f8015e01cee23daf79ec32e8cbd562b95aaf1a0d1df87121b5905e481a0944424ae158565e0f3cb0943be3132f240b3894a6ee2a15c6433ba9cd83ef55769079179f296b303edaf3c56b596be1e30ca9bfe6e0ef8cdfa3fbf5d7e776af90f2feb4b079b9432eaee682b26e4017e8b2286f504d0d0b1994054d8dcdcb666c5c60625e5a40c162f9b07e6aca1a0c65dd6a4abb6341b6fce572b18199456a4897c3c4bcb478a1ac24ca9dd87641593f4170f91c0ef336f8cbd7e0318fc35bfc0db7a1f91afeafc365fe72b56e666adce0ccfc6b7fffda58059dc590dfbb6e64c8ef5b1bfc8a6313e32f2f18978b0b8b7453a4940d7eb5ba52c81259a21722a9da2d2b5eb08051e3af18650d36be20710ef00c70161fc3e6b1b77896c7fc0b7f79170ee33902fe87d37619f4e5f2bc858150e039f0dc4f070cf00d7006bca525e06d90906dc0db17a51dbae98d51ed2db59e86bb7e86bf9ec680afb4961fde8370cc85e4bce3dccc7e84e086b080582d6614337fe3b2c7f17fec349fe32c3e86d73ccb6ddef316efc2633ef49795cba02fd7ca5b2c57eb85c33aa150e3783a9d4ea70f9d852f5cc08aa07041e294351734983e17e58ede2eca5a8e0c12f6db679e06194ef33aaed6cbd57ad1487bc238adacc538adac91b78bd3645a36352ed03d0c53e2d0fef94b59fb5087993760f15ef37e83ed74395ab9a3b70b0a03c62661afe3331fc365bff27f1a9c46e6b1d7bcf7c2637ee62f1f3accdfb88ba32f578be56abd5cadd710245be5b6140ee481013d3c2b57eee8cdba15d99385d3286b324ea3ac91778d8f33d017dac1dd8887cff10ccd8759c8d02877f4ae4159b7a219322fd483a32fc483b3781772d3eb34efb71ad303ea381cab415d87ff01693ca00e8463a994d78aa0a041ea7183ffb0a287bd7638a150a7d3e9743a9d24f1b3c3b36e3826043704686766dcafb73e56c8cf8fad515adcf720ec83dcf4ba8d928871c6eb7ff0e1c80710b01b365f7d78a8a1acc5a0ac5b0d3684746a2877d450e2c01b86c360ad76de76b7e735943bd8573ed6a87183843df6999fb9ec6ffc7fe5348fc3e273bce65db8cdb3bcc587eee2322f578be56abd60627c45090f392e1e968402a09b99e7c0731df8295be80bd528887e68c8aa2bafeaf033650ddb604359731a978bb76cfe61ba99870d7d48c012e0c020d3cc4c9abaab54e76962f32c9767dd84b47816aeca6a5e2f9b296b1fc69edb30e2205bfc8ac774f81d9ce65b643ce6a5c34b0fee7a20e076418578f0968aeb0702eed8ed08960fb0fc00a1a0a677264ddd552a241f125b0a177b58fab02437bd5e8087b53c0c4914fdfa8a8705b13c0c0869fcf60fbea99505052c40e5cc4c9abaab54e7e94819b74b6e4be1583796cf4dafbf943baffd288c7563dd6accf517d68d75ab39b5da5bc2ffaf6d7bf81387e79fc794b50f752977b04b0902975295c33492a304018d1b6a3a6af86b475983993700400c8c8e9758dab28265454507aa032575a20375d2a14356fafca5c3571af8759f77863d67a1f9a6ab1d0f5da1e09d220c7f5837d6ed48918831c69966c1ec347cbf1bde0de1b46efb6e62ee2631c2fa3399c81aa773ac552aa37cb30f4c61b5f706e9d36b3dbd267264f672d7321194d347ae9114f706df6bd1aaf1973da00a0494da2012117005539e1645d5aef7f3ba30d6151b996b0213e11cf66e160fd9b656697b64cd8552e8d088d4212ebc1e0eb9372491d0c8d385469e2e34f274a191a70b8d3c1d4603e477ed2d795ec6660e0bb9229d8b6ace0bdf7c6051cd01b2d144b1abbd81f54c71e9e191ce59e106398363288ae10892f806046bad395ead391a5f93f194fa193331c56e7c388608c193591af788226bcd194731043f6f2c95a76e22df7ca342657bdb19cdb57af85a5cf22319eb913cf18d4fe822388a5f6963fe96152c2b3efe297a2a1bddefb097abb54792cccf5aedb1649ea389cc9f3ad9e11f21a2e9499a9e50272914550ab962b55c2f12e68f9239e79c3dafb4f02b4dbbe7587f9ebff4628befbd71bdeb7161ac02c0d8cc30ee9de570d3eb3cd4f4da90c0e5a1ce26006387656d874f58c3031d099016ba0ff6e74ea0ce6c076a8abe15aab119549aeb44e01bfb736736c876a0ce6c0bea2e6c0207fb7ac54ba83330c2be7ea370dd08093e2b2d2883956683eecc8661187e59c4dadb21f8915dd0350c83864d9561acb3be20146acd0161b44a95d6197fee1f897fdcf95160798630c014c70646cdd1645a63ae87697a6dd539dc9efeca2d7a26778a6f44d426dbec6b63b3efacd457483af3a571ff04fdca70cc060d1b6a4e8671d3706314a74c0207870fc6194fa648671739c13b8bd9f5071f8130fd44dd99d08fd34ed7ae6af9ca9d9552207c10c399dd568f7e289ddac59b9e3e80a1589242a79fa2904903d5917d3ad8871f80f8d2add3dde32b7154ddc6288c704684f1ea0cae3a954e6cdb08c2697d86345d4c54e7c6aedf98f779e50da31871ce3632190c1c9cacf18a7b46b554def781a3c618fcb014e3f77d38cc99c4a99c31ea6457591af357a598c21a3876bd7261df7a857d6f5dc2e9b66a8413054df42ca17547a6e9b889a8314f9ca452a7a9ceb0572874ea8c7a433a6a573fa92fb20d6557122562085b6f226eda831d1145d4594661a450dcaa348a3a9d9c3e935dfd4f50f96de8e7f8bbf139fe524aaf298e5d27bfe29890e358175635e764923271506268723a4d53cb459a527ed718e96048beaa143a4f53a9f40a7a63ad453ad86f2a6d444322ec10c6e890adee5ab6cd0ee19b5d63d7a33882c555a415ec8c3ba33ae6488ee50b06d69a931a43f0f3c492142f8a0f8a300c25f56299ab34b6a2c5d5727939cf131ba59e899b39c8334dd3344dd3344d172e34110e8ca7565ecae2230c0ccc699aa7699a2ca9c93c65b69792cdece090dac4649eae639026dafbfa953b59c765080e372303863b26e4e74726261469e90cd2e4555c7f8b119223a42a6e5a84632998171a282dec798763b71fdc132c3fb8a0d690ce6524fd2ae83651e52a725246ca4936489d91aa4872d35bde61939d22b09c8414e3a91893799a7946e6e442d540ea6f999c68161813161816cf2407a95fb54d5254fa53293a48fd27db5b95281000a9ffb45b9a4857e4a6476e8a911c21e1983632d14ee8a217978ca489329226d2b8928f3890fa4d76cb6b24463856849da822c9eea63a1c23ca489aa87cbdf49bb447c260facf22a37bfdd76b22276e6af29fa4b463af77375684a57537c5bae8446b25d6090fb5444499468644a42be204910e9a483ba18be82213adcb483fd04f22252551a27f70ec866355dc74a76f483be80fb7c90e062051ef276f7baf2220d18d6107bda5ac69224db4c2649e264a2a95224200eb73154919493ba189b42e6600939c3d94cf55c4f0eb85583cf69a48eb74118e612dc54d318bc557de8a161fd3343d9de7a965c57ba942c231ec2012514e62d17f5f10e0c128205761929332d20216b00094d4c90250a7052c409f6e32f3799ada68632fc951d441fac806edecd9c0044776d6d90679b7b007bd00d0400690d040109e231cb0001b037af87800047a98800f104134e0870422308167f120be468647e06d1c02dfc21ff033f7f137dee371dcf631dc01ffc2ad069e026e917822dc66e0ed2dc857c079be08b73e47b88068000316a03d002ed7a87b28c193d42f035524cd27c06b1e012e7b1f9cc51fc065bc01dc3fbff91f7cf60a28000630e02f848448800f331be73dff410118f8043ceb868067f9f0ac033c4b88019e85630db9dec516c8df21a11b84634197a8ccb14ca73d9138ff790b199e8b4ff3963b28523f8ccaca0bf1d4d0c3db3a53f3271632501a949a62f4fc1c63c72c72ace1656b8cb2becff5d52ce9964b4a4a8a2bb657abd54b26a69bc562953bdf8ea2c5d328f016b0b7165952112d5aabf583bd2858fe8696dffc0dc7f91c4e8107023a0dffd12ce015f8215cff8a228a70188dcc2dd9e56ca0e4d66e30ed4cbba1a11c5a40baf130221b4ec2c817a942ba484da67e766aae16f6842877c6bdda3dd122f5b3b06e3735ed4c3bd3ceb433ed4c3b1ea8a80c09c19165cd6bd17c5cf181cee25b2ee3692e745b2537ddddf4eeaecf4d6fb7fbe3811fbada95b72c9556fc8ef130252f8a7877f1a0fe03dbdd4a251fd26d60856f170f4f0b8cf573629475a3f91cbce609e0b2e7e12c7e002ee371e0c1b1dbbc00dc75810be4c0e3f31d7458b2cbb90dec057e95030104f0ac212626a76a6fe9d3ffda292ad38a6bbb58c8d676f1f0bce85fb1e0416d118e5d54296475408c2cd24d41ed492e959249c552282ee4892af593fab9331b99237333a4cdb76a50e08df0179fe3868ca7398b9fe1321a4ef39f17f1439c3e0c8e447c8f1bf196666f6f65a5902d41d0f3f606d1b8de85bf3ec70360c4571acc831c08c740cf6706ad052b77be1d85cdd3665f03e76df88b96c700593c8d9aaf398d890b0810473d7798c97739c82169c1a591760a8bc5c2dd6280f88ffbf8cdc6c3761df8c90ded5c0ba2ef60bb9d0aba73a13b8dfa2ef5b3dafdd098418b816246468685494646ea97ed99991a92e5017003ceefc871c306fa2f1500ec7858920c7c48c70d9e732e38528e1b36d03ff74b65c6e52a6b9fbbca1a79868f3372e567388dec3f67f13597f134627c0e87f1347ff137e0fc0dbf791b3efb1adee277dce65dcef2a0d7f03a1c46f3ff66d2d45da5425fae75a02c180c5ded66ac7637d072dcb05163877c699f1f213434342d4896dfe1364fc35b7c0e9f3dcd6ffe06c7791d4e811fc28978206e6f2f84cf78ad9ab3f89d1a4ef333bc8837c22bf016705d441133be1b365e2a45680777e8b821c70d1b2f9519bfdafd4a89efd46868d0f583030a12e2594334305859fb1c56d6c8343cf618ef398cfffcc5836e6f0fc489f82170bee52d9ee6457c8f57e08d70fda51042c03e23976b5acba5bd0f14a2c7080b0c0164b52bbaf9182f705c415c856706150a42030c1a590bd17550ac5afc76f1f0f0fc6a87632c1f21b8218f5da8a01f8a51904565e53f97caf790c3b7e203887f1ceebf6bf8cff57b5bf61548ea4706e4758470700c6707b6c152e2c0fbc32d772971808e3d56eeb0943b9f833ee6e494b5cff5cb36e8385fe3c5df7018fff2186fc3697897cbf8194ef32d5ff9dd72bd1cc9b550d3eb9786db666ce9bbcddd3404330dfdec8bae762f97b6e7ca7feebf9d86f73cee397867e3cd8f3f118b5ef38b5e4711ad6177187a88f6d83a77c4f6851dc370620f5d7be89ea73daddd26baed735bf6d0f1b340f1cb1e0e7f04c13af2d6fe036b9bc16f899124d41c38f2c69e15461fa7eaa636ad466670db3695595d765395108aecbbb119f67519be29cda3d3071b7000a2071f4698c8ed23379676dd0610461515ada2d30d4a422bbb1a89e2089825d8b400b5ab91a20fd07084550e4e444800c50fa9640ba523229c76403291b2ab112323589581b5ab91278e8c3c51b48d18ddaa0a2575823a9998524a1e07c699d37a35c244d0101191cec8108a64bfd6de8a2daed67677053f10ad41dcea40605b570f77ada15261571f7b60b7bbd69c98fdf9f891f8abcd88cdaa01bb6cdbeefe700fec77d7faa24e91db1f6acb20769b368d4e5b456dd573588f98d836ac5db63fafe50da6d1f9a11ebe4683b8db26db42a1d72aeccff5a7356aebb161dad8a69fc523a4856ef7a5022df4cae3bb42ae45f880f63cb0026fd792470c1f1f7cbb963cf21494e031b3841f84bb963cf0145a1081b86bc983256806508c4982e0042390bb963c5c1e70c1901594b7053e5f10820f4abb963c5250a0c11148e6ae250f4b851964e1052658b2e4dcb5e4619202145e708623822c81fd4d5be3c82cedd8593bda593b8eb0b4f00700440f3d8809f4eccf035069e34e0f3074f24be29365580a91ae834b17124931f4d28b4e92aeff474dffd8e92154f2ba7d00d942226afae73a987451a4953c446f22fe20b003c0f4d047fc3832902d14fa584b1e68791369245ae650a2379166ba88de449a888366db8448f7d193c4160a499287597211bd552a68e510a46069c79b553d6fbc77885e8d30a1c46655b41a61626857234cb8608f1e895fe847062df45a737686625063eab6dd173b434375a6ee8adaf22d6f785ec330fc20a167a087765a608912872668a2b843973abc32871a131ca185a8113658c106263862051b988008b4b0460fa1d0ebf651c416ba695aa823e54395954e7a101d9b6c87b51a9d5e69a4dbced2892e81dd636c1b90d3f65185f002236ccf4d4f0a22011cab475e69e4d0166df58924046ddd0307ded581986c1f19e907bbfed8313af6f22de091baaced3822033d342496d0de430b5d973868d0b6f416677538267a69241ee942a3231b6483706eb3414132d0435b02bb290467b5c1d83d809cb60fd80d984083204be0407ac92b8e95d020f786963fdb766f24ea7369a1579a88561ceb51519ebc3dd4565da33d6af4ecea4050db87005890815dbd3e7186dbae28abfa1047b66d8821ec7a84a5891e3e129726a2aceaa2fb80b7db0d7f1037d000549af8c35cb2ab8f45352766003db470d717fab1a1855e4b001c5197ec5ce78a7fc4b78416a2208ed5074b52084b2944f38991d401996f50e21abc1231d828b2be12496cd44dab11254c647d233270c146999c94f8b1a73229df14a5e4a40c52803f73da6e112ae8ce6c57b76f2583111910ddabab39f6344b65bdd6a484bd5a5db2596063f41e7df7a5841187b39e8c19051b45cf5a1c5bea180238bb8775ac73a6c174daf4b5c189633638f8c604e2eca62f7d7ad3ec38fbbca35b94476fcf6d89c3024b962c29dadaf3bab14300676bb447bee6cd27c0335075679507ef1b559795e0dbcb20b97326f39833d069bae825cfa8cd732fe57c82244a7553f077bebfcea333cfc53d257bbd308ef64c61acf63e52e75e9b3ddf9c6dd567eba6f5a6b70a1c132251880087d4a669246164bb258aa09ffef987f1978e63e93f0f9bdeead1c74df2dc5de232832469376a86f2efcbfb3b214b7ff21537cbdae72612741358ca1bf55e63b49f1e85e43c4dd7c1e7978ec7b2ac8d5b7ffe4a37cbb1fc47bd0a49054b27f8e4c11bfb46d175dea26e69d1bd15b7e0f7797b787bee9538bcbcf1fbe9863fa85a9001097659736490811884c1075b7c8e19b555297a68cf1ad5a171532f3f8d9b7a37c6d69d8d6e4767e1b03eba456db6ef615fe7a6dee9ad3bd3a3ad679be011e527b78935d175b0f825b73611e5e4c997dc267a2e394a47ebcebc96b55ac96d28963a50dbb351a8adac69d7c13b8eb034f206782af58ce58d1a3392d957dc667af6fcb98882a50ed0c7920649d77ee2e2dbb27f27280b07ca4b8ef212eaeb064b193549953a469be89fa7507ffae96d26a8ad67f3d80df6281d745ceef4ec33657e8f12bacb27c710ccd7e28b4bd93cc2e9b92d6797b162ac4677aedda82b7a60bcd6cc997523df36deb5bc71deb04b3e881f35e976db3c263b74cc43ee50023b07f143c6be35463b8fb7bf20befa03f643c6b63546fb0fbbc4860aa3fd7b5ccf66cbf3e7632ef3e7b5b4c1dbb9afb36b1f537f7de5c8cecec271dd8d0c39b13f122c47ffc41a4aebfac92d8aeb37fdbec95b7766bac5a50e1d3d78e5ceeace9bd41a13ba2e7564b75ded1a65a1a03b3d1be52c1c2937f1949bb8898f21a93f1f6169ad3b4b7dbd25e92b77567fd82df4a3f2d2a75c2c6be81753bca483f1e92a6fdd59e9734b1bcb1a7a4c3dca7b987c7ebe4ddbb09750f28340757c8e3d7c9c9b620fc52d089cd5c8d0146059438f0f76ad3063e8a06c02f67a69df9ed4155b301ab16fcfbedbba456d46607cdfe29859c20f966cabfdea8cdaacfbe8a141d2c628043cc846853e23b6f52ab06dc641b6d5a804302a14a4ba11a6d1500f6eb40fbd55bfa88d88ed3b9cd568ac5e5772bef5d8b0b36e881ba33fcc5dbd2e61cb50ec77c9ae5f6b8c25817f9e0c50f80923006d7cda18e38d31c628d4f7aa15bb3e51042f14e18809635db1e1935b4fef1add6a4e764b853dcff32ad1f9cb18e3ba60358847f2cc26e4fe40d49d61cf8536683f8b3778bf8b3f1cf690cb1c9084a80daa31d7adfe10dc9fb7c73cead123f5638bdf2661818032cb060d61b546b1a4d15cba331459ef4cb44470d8617422863a220ece498acc39952a83a8792864eb43a18672281b99ecc42c9d28286510358bda2a1cbba2094c9a9e4ab2a452e14c5e1a7e9c267a4d6d900d7a21b1d2ec90cde13dda119396c88d65d4069da6921e453225afc851770261d4daf33e30fcc0d0db1de11bbc84bac408380ad9b11146b2c337b8489fb8c84bc21ee825dd19fe30f6bc259e18c0507f9fa7bfacf388a0dbf703635d519df500effa562d9a73b01b1a4791479dd689466291884474c211923b13939c5067e217c49c4f3cc237e2f873d32fd4d9288ae328eef0cd38fedcd93876a0cec6511cc771ac310319a3df217c832393e18c41f8468663191c83ee4c26938da30ec1ece995d665218cba6f0a3607ab76d6f8d35aebfcb9167e4f8260c641fa471c82edd04808e7b575cca58ce2ab77dee20cc4a12acaa0de800ea22ad106dbaa82543708a226a8244cd9aa82d631432202000000003316000020100a86c442b12c8b924490c50714001076a05c5a4a1d88635190c3288a621832081940080100081818a0a199014de5438c2510b0eeea60a775540f78b1cd1d211611de70ad4521ac5261533442b96b22407a85193880aa823155439935a9f854375e852ae8b0c9c2b3b6ca26b6948125a6c8531a4b13de2b913bcd2b8979cf128d2819561c58f2e13b4f8d061c025fd1771c1c4875184856630f6d07b0ef7d4017ddc8c34a5e417ccd27abe13d9a74aa2007e30bdebfa51e9f1f4605bfb3f0cfbdc8739ee2242490ef7065a54c57b63e839f0c0419412d431319c10e3447221a9633600b73a47b91fab5e99a4d0b579a0bea210b78f6e0342936a071254eefad34efd8284d5ea9c35a1c792e709aeb6f25682455b972baec2325b01bd94e47cac3e8894910ecf6721c4d8d9c33fbfb80e540e575081658b90f8bfbf778fda37c00e1aaebc7ff64b24ed6f2d2a3370926d05e5de5f9a792f9e45d3bd38824de113bf68ed8d1ae5a2ff623e9edf29c4d555956551df14cf455678e11a22426ecc6759834a2f4c46f1866ff1f03fe330de34088e968ccacab8ea364e11b548b748bed9d01ceb6335d14189c67a02220d7102767fbe4a58a51351bf51a40e5af6355ca007c94f362a7539c26b22f09e55a0ac142dda0f4b7c285281936235fdd1ea8580ee319cb7d4e667fd92a36bf19f08435af838d9920f2d51c968c74956354c6be4b6da91fdbd05c12241121c3873d701ab75e45820d4251fab08a5ea17c63bd46a7b28411d1c3727c29c0ded0094c1896945b9a273a76205b7c269fd154b6b6227f1440fe53c1ce058cb5886e0887b09bf5be6ebec059212cd039e8258507fab6d067aa92f4ed6213bdc69decf79ef2277427dd77a92b1392fc68fed6672d3407b03b61d0076c4a3394eea3eeb283f2444084ecc224d2c06225127895b9d3e68822c9b1a219a0a3628de48d0f027432e94631ffd78c6b7e5740a20f8ccd3fb31f4a54b38fb9301a20ede6e6d83e37affe15d564e434124c2ad84436ce30465420a09b222cdb78a08a38d4a450847712fbd9d3069d07290f67884c33a0b5b7d01939a3071ac4c61efb24682b52d07ba5bcd605d6eaa3413fb4bdd19346d6e879ec7d679df535d393631a7878dd862e656702e5b723b7a3779033afb61531b15af2dfb68375d4901abfa05e464b82ea9504f3e4f7a4ffafeefea1b9cfa1e7f04a967cc8e323d0cc9802a0f05baa2836817bd7ba3aef0ba29858dffdd9b4455afb8b9631a0a3babc1d36d4efc436be6b80f29e533fa73ba0934da0c6a637251e05982c7a330c3b43a770313207a239d1114d4bd79e6aacc5f6988bcfa8a15411b8f9ad97d48ffc64117b12794034f5cedd9b1e39301a223cec997df9ac257951c50e9d4f0b41867c6245f999954164fe365fe46ef0b207965c5d4e301cb9a6dbd98d289a42fdd23cfc2d6328c9a10c159f3d7e5a77c7d136895ad70ae6f4bd8dfb091a28f903064cabeb00140f73affe16723bd398ef1e69fca2fad4e9d7179911923379a0bdacac4027183678475053824caeff181f42b98860216701dc7c302d509de15e6c06f4d7a44668dc0d14a969fa09fb1d960d5627fef12782608be8b579e526c0dca0c3c5bf7c0daf12e91edf5324816b16a07d739c8702796367d34d2b1a2c3ccaa6458522aab754c6293a7007bc1147a8bc1dbc3e13809acf916955b5591384a530eb8e437725de32d65750641033f7d1620f0a9755b40d3bbe55c1f0130975094f17f1320a29f6bf5c3557fe0d6e1494656f9ce9ee46b4bb6219e4ab5d227d4ae69c50b46c815f22b8c483f7c5fa52a3d643bd96c41e38b5265e11d61182df1b7b09ab6e541c827b804b128a0bc3821d698133f2c13a1c38fdf27c9d203ebc15b7850356d6aafd03806a17288a693a7e669cd159f21b0615f9ed963c6a9b529b8480480f8e0a0b7422571512c73e3ab546a588309b28889f13b84bd81497c56ceb92ffde0a5315d564306ac4808b03ba8b308b386ae453994cb8e7118c916670283a9a70ef3c3dad9424db69d9a0526fb03c009aecc6f98563e315c8786a3ea804e0110179aaa6ec97c19af133e6ef718677008b08ba831e8829ba99b1bcb9c9e960791747720fa22ec9d99426f136dccc0ead1e84aa39499518da753b8bdfd4b140f5d1d16862ed58da2122ff92be6f6f0195005896b8b20c780ee718181e04960da593feed130d1b430828619d72c6e51fa14e8a8cf84aba6981ce567342722b3e677e7a0689554974a3081098866ad6dfeb1e92621845557a5da9093943db83fbd6569a3a0485994f3f6ba5fbb718949b82cb002dd73cacf29560e9f256dde3ae79179159697995cac8a4ec16da0a9e630237d639508befc789432028064c83261a1d1f5d788ea9a69402ad35ae130126c75ed4385b0f4ceb9437d0d5a01af71d0276de1d3bab52c64e6998d62a9d2e48f0439ad6d60710c581e669a01c008fe9906f5a5916379116b2ceb91d9c18ee8977f306270c0673c804d0ba24f051f8e89ac6037762625126e4623d5844423662f2db4215e8b96df897625b71b6d01a71a33947cf7ce31c64687c89ba42f2fe4c74cc0821e0bc827522e7604d52e17cf25156d617d9b8f8b94b58d843d2cd35e2af9ae1b8e56c562538791e97b5f97192d99017e3f49d698217ed8c5e2d1713b14c8d6eba5b720a416ed334a601d8621bf4f266be188daf80f25456c26336fc930f1a3befdcea73b006f3e494cd18599c15c79d25ecaad3d1190c644785bd9cf4c69431f49a2c224db2cc9590a320001582195523fe4f4d6a68e77c02e2f1a34dc7f4757fd82f383db3dbb44702f224b2d65e97a73a9d370d43c3b437f4c7b7841a3d0b9ace6e36f0f53ea89eb6af78252bcc26ce5ec09a12529cd30ebaac857f618e45121756a0697cf98e8053daed1c6445f062b640f47adbf6ebfc218f826a4b34186647f4f7ecda1699be1373af0ab2a95aeec8c6771a6cc68812ed65eeb3831b8ec326e023c28c064902f9db1497c47a4cad0024f183c39725e6e58d39056f3e49f62c4e5a05beec524f3ab4031671505274c19d3bdec1e7ac97fa926c776bc8500eece2fe92263081bca3e5c50996f26106e12b97021e9e387a315c80806a699f914fceaeb1ad202774c6be1831105d66595401d172703556de1d2000eb8bb2d09ad3ca13cc9d024393edd1e22dc66e1258a7bad9b466a49626513e46a1048319d6144f81711107e738d73e2a2f5f462a6ae4e26aa593303e8099393bfb9cff9617f015cde7d6d8fcc7947450673708c9cc44e28bb30c24f542a34b37ace4a796697fe1bd04e5924d981d6235c906bdeec670a47acd028ff615054224ecccdbcc916a464ee264c82bdef563408f3a881d3e11aa8394efb104cc8f109eca08b450a07d722b7c007e9df2c8361ba48f181ee2742a6b5a0b57ad53835369d736e4fa65c0a8a773d8990c210b2d86799c9be7268aa8008ccd9e06f9f1e71aab08db56930d9f908ee76a5d6a0cb1d84480e6d76efbfb1f5fdbba0e896559681e750667d7112a832a90671665b1a16c66eace931d6061374fa2239eb6227784dfc2d2cf57f22c605667cf9086148332e81f92b0aee539c1a13f5529498f4e77100c491e40ea6eb9c7a364a7b82e24feff82fed321c853039f3e493880f1b0fcabaf52a4d7681807fc043b724e5d56ad63b152d55efcf6f9ffec3b64c4bc790eb0d7d5cb54654ea65e8e96724700d2cea17f27ac5c660ea75341e6cd6bc7fc02e2e1a4bf1f6b5097468fcb7d129eef6a8498a5c35d545627ba13d37e6db3b42b1296aca97320dafb03dc1a2d9216ae6b73e4b60159d99e9562593d21157e9d4f7aa519ce9954383f665fd5ceaf4efe4aa761f56bf2aa7008d024d6ed8a1b986a166d821b7df3b564a156f9377a9cc98caf74cce1998bb9634403cb0fc8d8b8041acbea39a1a4e324d89200fe6ca917fccc44cbebdda0c781dde804a6d5e548be787341934d7a3fd40945953599293f3325c4185e01a547c77be8005c42ac91c17e2c35ad51ac60c186b37a975b63f8ba297c3879c499fbc7e20ecd9e1ec43b885c49c7415f9c85c5f625166462c4275454ff7cf8c11ab5bf67b49428273f74a88661a1690494a1c46a47d2395b4bcc8733afad93c634ae35ccce33ee6a49a4394b6c35631829775f847c19fe51cc51576280af21af1db338df28be55f57e8143cac849311247c7626928bccfe800a2bf1d79e4d131c6a9c8239621def01f6e85f5bc3860a414bbd1492d1b05b2d2aece48f711d634a796cbe498d9accceda7b3ffc376015d3318d007656708f8008af60c9f6c615f8b4fadca7f001ab8e5fb3966afe64a1c6c669f12b3c7563e050529440077c2bef6c7d77bce8d81f32c3bb3d7ff1403f215d626490dc71ad7cb07447090e8e8742be190229b81fd62d533459c7ac286af8d25d9e07b4a6f83683acff6d1146f7f9806a8aa273891a18a811bc77cba23b8bf3916c69d85155400f62969ca1007ad77b6733f0a42ab612546085b4f988532253ea57a8538c820188120199ea87dc0c50c11208a89b4b1c5f026ef9de0f085273980cc3eba6854baf39371becf2c8ecf402329ffceafa0997aaf6c46278e8993a508eb13343ee78382422b23ab279a3bdbe3e7251c13f9424ea241438d453cc201dbbeb81ae1605e7c963a929f3b54a635623b2e63c9c8792169f46d4e28b7178283fab866f18de35530dfbb586e8651f0ce0322e21e92a3f6d92bbeb8927dc9a88b340202e493ed0a6ea8da997069ddaec75ebbff7f2744582f25e1116ad57fd83b7df83032299b1f108ada892e9c101268d4a1431c21e1231d427fd5845113c03f5f81ab6923e7d0bec39a16bf9f3a74212324adb07c6125e19731d17aa070791f6447969ef99913c79765f201a6cc3c627516e81b536b633595c9790e59edba7b229e7446ce5eeea1cde80fed9d6653ca8188f6c2934d380f93d35ce82f40e69f40a66597a1b025b5002c1b83f588bf887dbd7a34486141b889f2821f6cd626c8f141e09b2843d7ce07712208718550689f0c1f4971eeab88d5e18c641b900589f74b226da97845bfc780b54747760fdd69bdc67bd025820bb84c971b88c4f73f3738dac6d2d82201f861a3b5904e0619822e20553cd11d511344d919f85c6091d11fd7c528164cdd7abc10b3dd3402ed48c528a09cacbc9274b9e9545951333ee154bcb9ada6ca6a1faa876a35234e95898c834c8cc9659518e70a0b09502bbb3cf231447878ef974ef250e1a95a024553cc9596d05bc45e9c558afd6cb8f959325d934b642fd33897963b6b17a35d95451ebea90964d0f051282d6d0727d66e8fd08585db9f95e269cf99a3c16679933586c7aca494bc79ed9cdb8210a9e5a063c73d0c9089f3f0ce5baa426c0bb1544732c98da62135349996f715087c8d72d577841428803dbaf3b86e0f4fbaf74ed49049d6b1f83cec5e08bb624f7817676c622628248d6016a92470e53b97489c78b60a487b10008fb972043b7771c0de736456ac314de01ab5ae22a5e863dc5449806e02f91d5e412f9099c72808a40552acdef7b575c135b99bf47a8be9580e6a99a192fa841a71c7b29dabdf00135634ee72fdd270c91e91ca9932ede2300ce3a864931208674fb7713082c2b16fe521f11fedb1b761bd0c316b12793d1c7f9328cf4e6a7b7d2bbd28bbddde95eec22c433efbc59fe4dfd9d06e552abb3a64edf252df9d043e55b3f5c5c97ea0f49a4a12a3b06e9271c12376c7ef4af395b87a1328ea3943f4bed9d823bc8706c799c351aabb56a5178238a526a822f06d8f21a17e90ada7b62277ec0f8054532b853290eeb8b0ff8b2b19a8bb01686dcce0fd2b60e7fb81ca63e44c4126d8411cfdd8fbef410b548496019f36609a9b5d4c1a8705b3b162f5740ab91ed44b120efc296959e71e20984b1f9e06ba88920086523f80d2859f2400dc3cb1bee5954a1c99d47eec5f0c0ea7f3971d4aceda3de571e3bef7fded3d4b33b57e745260cb4b6cbe36d6fe7b4ed271d0f9d04e72be6e18fa029a55ba6703f349f0efb482b14f1822257a444e43b41ca2a25c949c1ad7a3d5b5712325f697043c885312069660a400551212abd488c1156a3eba95647960bd46568851641a33395a89f1c91399b48560e1f80e2746057a11d756d0b0d07eaa57ca1c95d80fb42711df2e6703a03344b28082eb5aabb275c3b5e0e3be2e2f808ea74cacf906f8fdaa9b374272de200d50b8f22bbfe6c90ca9124a6755283e32022137277d5471669b33476f3974bcb43f7a09417ef55fa23c5d1dba7206ca3e739279bbeb233d2e5d899cdd96d1f66545d5ef85635ec51e1b92e17042f56b071445b15c304df68747365637dee43658d8dfa61087f013f8805a029d115bd5190da815f9b4bf188d2a123e15d4099431e0100c784449a69f022d1ffbc2d6666147a07bdf7dae1dc9dfb3c577a365a3d83c31db7e9bbfa3351057d5ea8446137aec9567b9d3d2b3cb9c2f265b3ee246ae8922c2782040afbbe4352136b1c6594ab31033e5acfd7386f02237ec2849ee997afed7bcc72d249276e6c0f616cd14f4060371696c82e5bf54b264585e2ca30c8284387202f5abb0539ec26a9cd4a0978cafbec34ce4f811718a13710a70cb27222becf0228e3e164571beffcd05d8d70b5e8970df674c817b12a530b8d078afa44f7f1dc79e9466d351d4c2608fa80805504eff869815cc2ec32ebc71b3d41db99f42664f8b05be17a115ff76da0c7c318eadf67c3e78a9828f37b693c7e3168bac25bddc9dbdf68337aa4560894578e21bdce07d3d88a7eb4c578db279c6c5d699941bd4c22134549078545755690ea6a94c8cf40e95c4da544c0c0c6da87973c1b178d116703741cd25e226348b221a2fbb19aa26a8002dc4139746a76a75d0cece439bb9f4969a8b2b57ed74cba5d4b9a008603263c14b78e37d2e99b770b8f93faab7bc3554d4bdc57c88a66bc1b2663add242568eddeb78e9ee7a7d7b78809cd26982b0fa113c435c9cbd20227123e09442461b148b5584b49d755bd8aa0664ac2dad71d5bd0be7f8c64781b1d4717183ffc0ada7fae1cdda80c1bd2e2e1be3d15cd7b54fd4197afae006d4fbf0a86d2639efc992f59272de26a80b3cd237642c3ea6bf2dbe74a2195416cb4632e573f7a1775abff79ea5e5a385e2fd6a06734498286b3e347b46919d0817bc7c2a1dca8273a56a75a815c849287d825de8b64357559fba98fd343447f48815a73c90093feefe3c99a2a75579739737a06072de06f2016aa9751f0973aadc3c655cfde729ada5003822ef87cd773d0e1375cb47ac2e29b3a57f65d3f214c5535a4a45726f3526d586247f9d7b7cae01388a41c7974d9c7a53ab7f1f8a9327d268f3f020580c3703948d3852e30ec138156cdf4ab3d3e1bdfcd0b586f210e6c1c58b79fcc10182a1de8b89c2e0ded3b81dce97ec2325d590bebf2bb5a827c76c1f5e11d21ecb30f8e01893e5a16e7207a42430fc444df4cb0f32955740b663f72bb771dd52479019e5228c5d0c644cb6f00726cbb9399d6bdcd40ef912f269bb0893ab6e8126490069f860c90f816ac8d44caec7419eeaa6fef884e87b87f538bfd906bd794c766446495594f94ffa437649aadaf34ad214eda1de682ba5187399db41b5299a2730509a37d11d8acd880e93b1f9e32e446f7b1f27c73e8a0cca58e8d5e280f460243c1dcd8e3867e3ed1d74ff56119e19c6b45c84889526bedd847060559ddfab50243dae6b89d9271183654830f9d466edc798585dd4625966048f5ef4b8cbc3af125949a515db2ef43438d55cda97452d702286b9779193f927ce836c6947630854f1149a1b71e1b394728df4f0507a49cc2111e43f2c1ba913bd0102142daee2e2e55a2438e1a54484a941959478bdced254d19a68346ef332590d9f4d4a0d5e7e82f21a2667b2e3a297c5bed77991b37982f441244ac992f09f3172d9e93915dd0cbfc25fce77980fbbebb3b2be52e6f160aa7497b4a249164f0484c29d3f537c521126d3029c66ac18bd9fb7098998940174f8732c70ff5514b142c1f4999e047dca03b72ca1a3b73bbf137911404042da9f214044cd34412966633199087f4efa024d99efc115c05d1bf3101bcbfdd68aa4747862ad2e761dff63f78040dc805ef191c302ab637d6d6c227650e49eecb7a65eb98f598204f821854bc1334a341a73f39243cae164a97af500d21eac61e1921139fb0571c685029a6ae88dcbb5502028d26ba140a23efc063c1f382e75bb43482e363fe3c257db061a0fd680636d887254c4fc8c346c9bb08e3839d0db501d9ac7d4ea57036a96b0fd2dd809b26d6f08fc06990ac9bce3b987b05bf5f35df89bdb087c92829c31cfa760d323150a27d88b6486b37cb2060af1cd336454acdc2549034ec13bb4512e4aa65f360be17d78d7f46d3a1ae692f0729a93815737ffb8a55062d8ae3f603fbe50aa640df9385abb9f4b5cde3e259d3df8992f3929820b399e02b9ec6888b656ea22f9e0b6a76a939a34659a65ca7030faa06395c30c742c5508d434591b621225d26d07e7b81ec64fd5fed05054b5e4c0a131ca1cdc6a00e89398d616451e5096eeaed362bebef70db8d3069a7cb9d2c33a7d093d0ab0b6ddff535bc94824012fd1065838ebcc5576f4d92854e7eacd1405a2c74ac68138ee68e9372dc73a4029de2d87b6b8f71732ada2d9b96c107fe51199a082993592ed7a5dc538b09c2740ff2193f4abda93f28df6c655aa8421018531b870d4aed5c4b7d9b5139d5f7ee9ff6299bc823828b583791baf4b24cd2a1a91831b504a076480b255b3879ddb1620f2592d3a07cd56680fd081826d3b931aad02155997756d91c528ef9e1c5e73e64655d741fb4d9dde96b559b0296e5c0df756c63e95f67c4b1ca4ed4abf3ffc7a43ad8a2100a87f608f8dde03befa2bccfb2975fcddd02a32452a5f8b81e8706c5d0d268251ccccad8683643e182e987be82acbb0ffebda847b55246cec5cf1455fae4105018e938c88dda3e3af91b94111e379d38d7782c12f02fce6cc3c8bbef277195dec25c435918fc89d22ea33bff036d8070f9372851e9011127353b5558087d3492cdc77334667ac258275c076aeab6deac7e1b9ae9c379e573bbc0ab10a369181edcd8c6c3b68aa4024c9f546a60c80149e6f08ff01a2f67f9d1de195fa8483acef39ea55cf5f3ba37139450eada6bc9fcd804a051af9627424b75a8596b92c3a36dbdcacd3554a4d3e4863da57775d599a940ede351aad8f020f50ae46765abdde407e8e8ab91d05b6a081e420f041e70f75551c66055f096ec31f0c6ec9ea0bdce2a00982d13d7657adcfd20ca715927dc0c88a20b780d55351b2a1dbe5be2d9368beec15817ac094ede3b88feb3fa86835bf4991df5e1069f08bae11a16b1b52b06d4b826d8745b2c5a734e5e4f0917058416a0472d6bcd5bce6b5be6155b983aa1b17ea21c9e0f4eaa3dd5a60e6d80d3f2311a50d7e5544e40e7fcd71cbfa2c3a545957cc781a2abf1a07d2be832c7f269a5a7e17d5e7eacecd67b1afc165aabb61ea21581e69a6126c07f31c43de761d0920fd4ae885e89a06b23c8d0ae2b4a5303aa005512574d9e5535c82a5a400656d4586b280a86076b1974b435b0d84bd0cc4c815f7ccada5701aa54d72040358ee55625b36fac665ca62299bcd4d6bb90a01b8e7f3668e65abdda9b52af545b644528b950601dd2865f90df2e71010c1e48c0bfa1566a793027292e2cb50d79b8d441a64b4e27b9f75e2ec5dde818ab8ad8d8f1b1cdf301f3403fc279d5da246e289cdedbad2403afd1d26070a150cc891b7c00a6beac891bd05281fc1ae862101cc84c23eab72c95652831de2ffc6233aa4055a46c97a170c5ba440bea86eefc73122e358da8c0b7a614d61f5891a1c757bebc0101c1cc8ffe837c03cf97d23c794b20a88b0607269374d9361897dd9e73f20df83ae6bcf286d20b2e53dee619358ee85548bf620d387075d9a6153ebbe4cc4fb50107ec86e75646e18d49bd13aa018702f2094e893a0fab9a3799accd47dce19f5bd91d241cb098ccdd580fa43eb9261ce6bdca556d01b7de77d7862d16e3e8f675e6d6c1c70cd3860ece4506546993e98a830b829fe75396eda20b641387de8c035b413d03604fd857a8e0e0e950e1239d5dfde57a5c2fc86dae75e5256433abcf387c2f34789e245b55ee33bb26714b0dee04673b5b5f52bb7fbbcb58868e41b2169d5aa552de5316a8ad430e8e7f79e920ccc7b144c0a2e03e1cba210be1afb26febe1a61c56ac2d9c423465145a5420480ede403c07122907778a5500a14c1d8142dc9e88715a97bb03c36234683970c75021a0d208c761409db8532a5103ae268f39f076048a0a186edae5e53f9b5bbc7bff63e9b3d721ed0f54f339558d46bfcb7628ab3507feecdbd07617d526433ecc27b82b1ab06064b127413930db658e1d75c554cd14a3e9c4fcba3f054544a0139d548a454572399126f72b8f39fce51e2343ae188752beacc90697609a6210ad4f28e936e58a6b1cdd9835bbc2b90e0e871939be8dd373184a751fe13dac10055efdbb5d906b6257b7539b384b3f6bd20e2c6fd7c81091985cb10a9f4ff5c1164abfab5cf1782521962bf6a2e2930e6e62b910de7d42d8e3169cd333f64ea11151e074a50ba17e0bab566cfdaf9cf7fbf3784b002c2d0c3ad1f92a6e2b41cb01eafb75b07d574f00eb8a8734c6d1b09e4be197bb450d87191f7927975e6863f50f5c00714b6a0ece7ea28edf6f9d5bdca6d71c988fd764bdea119d01200fff35a6d85ec40a58cefb6046993a1e7a358735f0d774fe9b2d870f5615a4f825abbf089b5c7ccfc1d5bdd79fe33474f148fc348c8dfc2fe720630140047de189e6f36fe4852d8cfa5e0c303ce1a18df71c96d0dc41ec993557895f158fa6996b82ab924336c48ae8f04940983066609a96de73f01a9d5f637ef671d0c11c1cc6ab1ac6ca55fbfbef6b99b542d5903f6e5db3b74d83a493610f7569a515fbb09b031b1faf39fa877d1e8a513226d4de437382e9e63edb4a9dd9f6185c5f752b630c5a04a7fe55768e40245bcfadfa55e6b6d4e75cf7ccc0c3867f876a84bfde69177681cdc2e58ab4468625ac3594f1563de6942786f8dfb56d095f17c325f1b0bec4b326c085d78064d35674e12de397af4c77045258650bd356a4606cc22093850c8c7d012ab273a3d90b59098a9258847b49152c0ee9ff25bfb3b9c966f1e355d686a1e7f2a5983b001798205a4affb7ca9fc57b5288d4f24be7873234ce239ad0767c05c10682aca9feb2a0c51489ea8421b823e62e1ceace18f393ea25b2abf33293b65ad258d3d3200c3c3a34db6571f286821a49631eb04710946fc02583fea2ad63cfa29cc46227ca4a6d06496e48771fa03414d1dcdc9c191fb8787f8c22449db5baaaaa94f3057ba4a7b8d1fd64f7fb0ddd91f28039d251dcc07db2fbfd760f55a22074c7945abae4aa8034045b0387e54872946f947d54f6d0d1dd2a273dacceb046a7b621b275cf912ac412dfcba96b6fdc7d039b938f7baa2bf79062d752434e069d15452c94ce0bc03d78e7513cbb85f1512ee7456dd756f9d9e88d93c38757bef05a081f3ac9de4540185c61e5d5384cbc3b52b35252f17dc74b1c0323cd43272ffd5869da361e1da652f1cd3d1226899af10765096b698728c57ee2d745d421d3a600c31b21fcf842e8877506ea8d38ee36ec42140fdcf03e4c4db3488d4c0c3bc4333f5035208ca2e7d38cd4d8046d2ad280e6b61b20b66a0d1034aa22e75eaf65cd2ff5600f8c688b1be07ad223f97949c23a49e84927bd9db64d400919f3d99a956c61ab0e0a9e8a551efe8f7f5164ea3a1dacd950c21a555e3e33f92788608b0ccf5b1186741537d1a93d98c1b53b52a242ef6ddc87b1bc960f437f782b7ad0be60382b7f1cfd87e1f3672b4156860c1938cf4372ef8369aaff374839e7978a4b1ea2a70578ec2cfbd9020f3b1041b3fc0fa24ddbc9f00b9123f94a54b006463c61a3bcaa8c868a61422c733af6f4cb131f57ec8fe16e840cc0dd835c917a879074ec6a96f6da1f21454064de38a19aeb3606ae52335957a22572c5c87fad2a0b3f62acd09ee21fb8d887c8152b1b4c2816ef7c97daf1dae27935a2054dd4b47c72638c974e3fffcdb5937be2f91961d74f7e60a6c2f52f7776cd8f47359ea810f6de4ceeb767bf6983297c194caeb8b4b7456f8d190855f3f6bccb509260fcd75ca48cf3f2eec9157596f46626e49d8c1b32523db240e9af981681e51d27af5b7a214f4738aea544e9268dd89455359786eff74b0d92963a69a44f625be22e0d263ec13519b432d5fbbe0564a961adce96c53c1e810a276868624562fa66f5d29a9b785bb17cc4addd795d8178fe7c5eedbc1373a30aa88e5efab71824529a205595ffaded9424076ec33963ea96cd7c562a44227cc98831a1a38b587dd0d15c38a92046952dbc5c4c42575cfa868afd67ef3cbcf25936a7b59a593506f9814d5cc03606a94ab5a59ad6d67ac14c3c5547e6415244483e52ef775938dbb549a2b4449a692d5162d512a48f86042e14982ea65c191ea68b319a599ad849b714e764adf82bf287058b65e4d532ece1fed9d015d7c1f3524af24585255934463e0afd2c98040c85fa95a56879c305bdb5390becf48759d074206501ba729d19065f60a14216086652f906853288264a204200bccd8eb81e0fb59485ef1efa93e300228101d17a55764becdcac666e81a589e592ae550aeead1b70b6ba228cd546b6ce895600f6acf30df075f526ca10de24d36b37dddca49bc82582d522cea1ddb13723067f3ed777ec6e87a11bc3888c5eb137f4de400ea716e6d6e2bdb1cec9d3980596981a75660119105ab35a5e3298a963c44d5118820129f82c88583ca8a30366e00bc87d2a64d859f7246c397e172b405e8ca935ba01c410fdbae2e9317e888804c5f52fdec0c165df3a9c7d6f15db34c4e535bdaa4a81956c056e82c7cbdebdbc7419cadbd71523830f4babfa50178a177b4ecf7472126395e97ecee2d1b069658f2a82010d5385cbbfad2b0033c8095c90069dc1cc20187d7103ab7934f480482cfc2b538c3ef5152bef18bba555eb01e070b10beb64f1488a31292d6087461b6ace459d0af669818e199e7b0e4c3a8db2462ae355a3216219e2410cc1d02abbc1b07330055694fafae6193ac6811601c8137e9c16573cda4442abaca7fb04375a6cc3f57662786d9ec3df4fc4bca85db37e65f6db641dae317bec7166a91d51b2e6ae58f73cc4991c6cac28d34fda7a0706b74c16d96f0a132b1bcc1326708acddc5a7ee3b97f29f08407c939f1c91537c5aacfd66cb45ce877b1b6d3322981b52ec1cfae2635323f5b23519d063f7ce0173d5c113cba42884b34b4cab668afddf094a03f8d804241a849e3a0676ce632d91993e6db7d67fcd14eb3b219d67b31dd42a1982b89254ddca91eb460fc116478c5b84c6d722c44653a85d2bdc035d1285468f102fe540e0fd43ed58f16b9ff8046642a37e703cfe94284b84115bbe1cd7132c1ef845a4724c631c3c658dacd79b0b696b16378c5b80f22f38fc961dabb649dc6ff5761414e1fb8e054275e3ea035d16831aac56e104427a2205f60079017c7022a1c8a11960aaf6875edf5f83c617a3c95b7866d89665c27a61f99e936f2d2de871c093880f3d6213cfea86694c02e16609a685fb443f82b9032c91cf2b9e7a1f41060492a886360b5827e45d700e1ff21f38af10358511f4c819f35598b1e48a652dcbd3dc4c0558a235246ae1070b0545ee3b47ac7ee84f7005cb10f900d129e5ff056d9316e46589cbdc992b4f1f82f9bfdda47da4380c405f138ecea3cd64e44d52bea1ed35ddbe017ae5296009c3929d862d0ec8b386970025896289c048a75db49b76f6dd389f9610b3311f8d0bac73e6500f1fee1fe1f1f6595c1f502c8173ab93f07a2ff9345bd623c55e90de62d821cad2f72e724485c05af132cb81c8c7e972d067e93cce2bfae2b74815877761041155e15deb6057131e240a0ebb83d2cfe9dee87585a0385a1587c8de8396bfcfb6c8dd7679fe20f4acd966abfa4bc7e15bb681afc2b9bbc22ad807d30dede5260c77657523384eb178bc699609aaabd9984b80092a5a59c862d4c1fa26613a9199ad68115afdd502204059dde20b72067d1bb6e265f97df33e02ca948ed9548cd7a608cbd197d99b62ebc9b2a31a8d2e9b85683b74e3bef66f47f29a347002adacf7c30df853c7068a98f4daf3b79a2e419933ed7659f9ebbbc3a473bfdd0df0a1854344f8a393c7209a08cec8b87da76390cc88668dce0340f032fff091f1a607006caf3fa084ab420ef8219b93d33320bedc53aa62b604f2564aa6c0f2a4806bb0ca90afd397dc06b178d2cd66f4353d043b372008b4d236d88163977228839f779e234273394e968bd1f423175b37e00d530611e3e18977af348bc5b7da76d13bd9c042d58ab24967a78850f4ed6b69de973172925422fb5fade14f42ec7df8684b9b667e554ea9643d8fd7feb46d9450490a61be9c84a41b1b8f97ffe9015c849aed646c33ef318186edfd793c468e1d459459683daed9691bdf5b24c02344e4a837d03aefd1289dd12f8f3270f30e8985dac41969f65e1cc99b53f7f715d2925bd332f5cfba98e489d59dc60386db10257d004b842be1d8e340951e6613187ac7cb0ec01d11d9d769894fbcaf42bfa2f8eb73aa24d2644709a6c4796cc17e4e994942d4a96a7376776d4a6c979f4c702f8467b8271ea970ac96c9578c2beff5aec2c86cca92c641fce3bbf01282144c2fe91807de694dfe2eb17681f68b698f7b2bf071c9930e1b8712a5c1c41781667ca4964464692df604dcf979e05f5e921f25afd699811a93857dd6d07863f17ade165642edec47eb9585906225494017d76ee2c9ddf03096f84ac5de840e3f2561a3391513732edda28ef75c039e078578295d58ad11e6d63f2827aa6c9ba6c2322c79a22e99ed7b4c391f0def400f7256fe84993be4eb09b2ef1fd1f01dd1c2a31e6283f9e71ac625d12b5372df30085ba1da0d738a0c7c7d9980bfb0646af81c9f73df930316f3de63c7c29b0b62723d6b53ed715925afd5d51123f664bc6132e37b3b1222d07476fe234e7b7f4b9ba27b9ecbe0f6aee024af7c79ee4c607ad1f153a16054ceb1289d3eaaf2b907523a234a21b79251d9540c31edb9a85b9d2f8ac22c94eeb6c56705504f58b724176eb43b71428664305e8da0340abb3bd26e6a42e81a276c10f9a910958212df70252ba6da34c57e828107bf1ff20ddf014286239b6431b38a7af20d35aa4d44d99bd959bffb99c062b54f060f7a67bb0cc3ea1127f9565660ed7cd7aa3a05480a038890532fb1387a8b66d669ae2f415836bae24e223188d2dbf9a94038b7a958d08edf48a1a191ee716e906c3a11db4c2c6d02ae46ffa77381f9d3cb80569aa3fd298684018065636990b2c966aaa3f8df7ce6ea89af0e213e603b49a734dbf3bd211454c213bb2059251fdb9f7b020f6ad89875f277e695938e2af28f1bd6cf08c2f70609da46b81351b9ead10f005a660f273d4fa4d6b66ce31c6df1bcbd186a54c6de515f92897054731a65ce501cd748f81751827d83bbd23050022f85025f7ec8b1d8d90a43ff3f34eafe73d70d80669dc608716bf419d0e18957abd5cd30ecdfa8b4e9ba1a7d08632665306a31943afec28fe9b8e7e540dbd9c70156095fe4feaedcfed444da05d7fc9c7006a2105c56b4e45f377676ba63aabd59a19c45cd41fbc60c4f1e0fc6151cc4049afda5f1218b113ddfce47f9d186b1f613e0a3caa0c1f8d65ae3fcac414dc2257215444ec0bf2a298784586373a5088524548bb83fce891448194941a90ae9954dec3a0b729fd56fc9890f7d1ce416535d2d25931f564a3a70a4c61b915d31220a74a5bb088e12067cad83937f0031c34cb0ff7085aeb0463a81b691e166b48114173ae93348184aeb84282beeb3c97fb69f791a8d65a213691e7203a341792186a2c8110e8ff3595f3df20328a361b98b262501e6442ad60d2db8d12b35267e244e398431199a93eb73d8cca81333942363cd90f765c0d9f912bb473e9ee4c1a65f40e08274e99d12526f3d8912effea0fe3c9162505dcabc5f66b49c108d6847189087282d4948145f42f34b6d7e7c73bf062a765f5530881596910af7879f093be3c81e761fd866b3c32933eca2c45cb8dba562a21adb128aa66690379472abe2ecadc8f078aae63812eee4706466bd2d35a96c85871f84e23f2029a08a80c3b1e8955d0edddc47e87d7d590f8bde51b476a882c6f5173ff158a40d9891518004bd110aadcacbf9e7df498d149ee1a7b0723b046427bd6ec312da55f9df55f5d4713ab8e056cd9abfdce0e4ab4ce468246c83abe914d1451677ebfe5a023c0dfae4673eb4dace0e84ffa68c23ca67c1a7a0e3f04563a73f36a2b4131122ebdf308187ae26a0e2a2bf5cd86c5359be63b9e346da58f83d134bb18f640078b5b33430b33e5cc27b55164126278c0208b74946fb49fea4abfa28a100044819ee20ded57dce87758c43d0a8cf430f5042e0a1116c8286fd03ed54e1632c00b727b77013c0ca3dc3da343d151f401be37ad16b360d6ca7b11c52e0186e21072d9a543ef8a8e6920bc6a027c61c2382a53da59c168141ff0b355dcce801a203415ca996e95107799e90a746816c6bdd38db6889d5515cdb877847d81812a65fd69c41ee076efbaa7abd36d9e24077c805c0851eb8e255a1daee806dcd99d1c119c84abfdaae79f0bd2d79649fcaf245ed05df2c4ec7c24e6295e355c94b8536b5b4edfb11836f7b735a0dad3de6d7883f97a617b2e1e9e18aceb08acefb13008974accca9e5d3bfd6ffc9755ec71ade09535d492213f2adbad7499065c2132a847834d074acad087625abbb4c0257eb5cd4a9cae1a2ef0ea816c53ef7c60cce1f2308dba65849e61a93148ee9b0615f36dddbb8e32a3fc030f3cbb178131d747bdf4a6ab2585f8270164722d83bc38e5953b93f900b842885f40b38b81a0987ad6eb3c099871f42f529b217baef3ee5d2c3cf29aa7a32bc51c0ec6b820e0e49220f45bb9eeb72903d6340015c8e84839a5628e7ad23b00cd74ed49c806f4321754e5bdf3434f7e76b099ef9222aaecd65e4e9bc91d9458ece2b0f9c5747ff94f027f1e37b6009c401d43cca299d0970206bc02b51ae9bcf4e900a2d00ea6c7bc777aefef40a013d7054bf2805b6a2671796b7527a919effcfc3f4bd64667b6bf2340558de2a0ca42b0a7cef774a168064138239473bc154c7472dac1243a0589a0e823ba16ff06e7bd8be8e5b804a680d9edbd73ccf340f5e07e1749f3a9b19fe48d5291a8ec582094661067f3bd3b2e7a66b63d308b4f67e8a3b3fcee2cb9df2d88ad569324d490c1086fc6afbd7a746963c867ed2e643b5bf229d3a9493d2ccc7155fea5f7d10969dc16c7a2b97fd2f76ee3f31de010fd6f7cf2c9d7e12e47cfa08a6687e25ec3096546575fe5162724048bfd55243182f0430b19e2dba1c38c0770fedd9ea7feb950d2c807e520c6775a8784ec49ba8ded2a2709f5ccd75e96ff01cd904cc5ec3429b02447f54f885c5d062a2456ed66adc3075c1a6876ba2589e7318e82e8d2ed54e216d16ab7f61658e0bb83a44014171e16e3895acde93abd40e04c605de0bba337a58f879059a1df825dfee742c93bc2bd039a9db865e85e38248867ff8131ebbeabec0d347712bdf8743ec101cdf6e84dfaa1b8fadfeb63ca04d2782892addb8b9545bf13df191ff7085d02baddd73ca610c7f91dac02e5d81e996468d8c43b6790c3c1d35a18b89113d797489d69c069427d1596bf1f046e024685317cb7c642fad89bd882ba216ae1ef0b7794398919dba0cbcf9d5aedd1a0ad213e5663811b8f262af370653f549c1729ec4c2c738c1227e3c9ef189f95f19f8ce889db10bd7ff2df1db33647908b859efac3fd96947d411aead35ebce625350ec1d27b19470060d6d0e08cd8c06482e4b04c95eb4c4dd001e949e4f184f6d0bf17e360a0ece1bd761d1652af79dfbce3e45a3c52c1221c667b095c5e5cd6f3e104832ec0491007359f29d5b8a497b9a7fc95620d973b7d38bbe4a37390c8d63a0fd97543423717e0657ac0ba737be750022c10d1cc2eab92702691a948d33eb5b57372b51314b54b0b8de4a17b68a6d5fff53ab5ac17371b2ec98fb6eebbed03402a6d0a7268f19da261c6d059866435f25931c38de766ff53dbdae52f5858cc9116a3711656a39e61361c8361b57ef133eb052f67fd31d64c2b450e0e53463617d6ee4af1b76054e352eddfef511b056d5890a0aa219aadacb14f772f36ddc9e654000d4f40b8781f23351f50cdc8e9e27b9ea2834754457131373f9605c82d98185f45063c2a4c6e1770da36b61809b59b3be62e5e17df454f8010c0d1cd42b289597abfbeea949284c4912541ce2b3e14d8257d91b09a58c67762f64a4f4be3bbe8cf5b5b8fa1349e6cb0fe83caad14c98d2cc9709ddbb69406050536ce95ca6c4a22a23fb2c2b87def3d9478808a1f002c13e90adec487a1f66f0f8642b5652d4b99b65b4d246b756a8fd7408ff52f2644ddcde693bba89dde31ea4eca60d248358dfc33d7415d0fde823a70608c0c5fe6b10dab14ecbe2024f68eae8c8c14c8a1b9cb60851bbb343fcf2081ade4acfee8c19077e5b7d35cf8e382ce59b644084a708580a69a1afd2fb5a7fab9ad2bb5dc6583aad2e04db606ff3834eb8f9e3ae93cd5ec118d46b8031fcdc52183f6482f2239172004e784370c9c90fe94ad3ae5515cdfaf0d4568b68273600340604ffc35a7b4aa731ee39734716d47ffdd2b38e2afaac706e6ab6007cc7322eb75a96f260c2fbe1b80f0b74eaf33e1f98671f7089aadf90661e38f99bddc0c6a11a79805291983618f5f58cf6c051dc4903da80324fc432492443b08abc7f1f26d2cef63097de50552da777206f967a6d9aa8356d46d0510dca1bf8b29f6cee936dccc8266065375d5827cf8ccd88df200f959a0969f77584cfcc54683495ac3feb306a0856b293fba941351ee48f8b329ee5c763d29ec11365dbe797e8dc4a240f0a3a56d839ef120a7ccbe782e47b1d1de72d7a62a3d335425de09c218766dfc2f40311c7f2fb4d739b09084c21672b6d64efb254cb64fad2e1485e3a2835b6aec19394c8c75e64cdc0278da6e4b3798cbb1df3b1034b64b23e9ed66b3f3b4c740e7af3138b90fd51272b232c5f91f434aa0d8093b33b39a20a279336a53c7d2820de79074768fd3eda1965109c9b13a70e9023dbeebed8522161a946f13f4d8caf2a3874ea51aaf5f67e69b680d5f34d735bd96ada7c4c46b24e67ed4ef7a0088c684aa8cc7699432cd7df04dc426cb98be9da8a03028fa7bf037a9677374f49a4e498803d20e7f744f94dca6b87cf529db8cf3b41882ad1fc6eeb6434d82d6880ba2e8422534803975d9830c372b538399131001c2ea1149eea7dbebb4fac6bea0011c625f93c443ae39a30c9615d1a0f6922a8702be8cb67de296d4026e320bfa51c8e6a3c7b84eea41a800a3df78c921afba79ac313a3629a2e0789214552c10c0851437ac8757ca314fdf7610555ae566ad1216de52b946c509af4aa445b8b879d414047d9b7e12bdaf28c75c3e8948ea234c94dcb803bd3907c945eabdf8cc0f7d5accf1ebfe8754a025e32a6d39d68a26330bad8e19319e05f25a58c8034348f4ca7a8018364c78a00a10572ed36b158d0ca4836c00df79d97f063551e7416909bdd24c9cd5fb574e3df0b446df4dcdf65b2f599a2abdfd6ea4c6683d046f27afacba0c72172b7bef847aed886be24bd97758db2252eebd3e14c82458a275cf5fd59fd3ff33f376d7eb7ac92d99331c5641b390c936b34e78f855db60365c47c0e546a4641dd783e6a7add6acd3dcef1fd03258549bbbd37200cde2e24766e6524c9b813e509c6f27f3a351a6d488ec11a5065957adc3f9e5a05480be87304643093d9c9d829b6969d12b6b03e89b1cb7fd3b809ff1e8f6318dbdf0357787f5cc5f5acf9ea6eca4d762b1dae186d4848ff02c3decea4bc1d54c5695a1928ce7ce866564f18bdea34ca045e06c6c446d9b1e3a68c6e9317152789053335447ed8159cbbccde35f1bd30f62e030e763ee607e6c74f3d5efc67df5c1c7898bb69231b64838a1a54b4a19f9ccf18b4332b2cf0695affdf9b117b7ebffaff9eef996654ad7524de40cdb725c37f2f6cf9a33ee8a35a293ccfba19a3dfc28f7e9407ca6871d5da21f1b6bc96f5801b86d9ab69cb4dab12c50872bff2fbadbb9e6d27f6d9e9780f1a2db7bd00f6d10c1fb8f47f84947b5dfacfda9758201884a67dc4fa78d193d60d78b0a3cb90e9cb1314b60c389c9fe2b933d1e83add54e000759ea95100ab2d43b31d404ed37e62b0d74a126078bd96734645af4a013368132adb66e941202f58f1e8811634bf6941ee8811f280b1c5be05209c5787f6919473745609157b560054d2d7fc0c44fec2136276230cb59cbdb14d49fa9746f61684d718c0c46e37d9414f81628180af462784588d07a5d84ed05956411435bdcfce0477c1289d97a0da926ea3d81ed41842e0829bfceb37ea0460c7d86ac084480dacf9ef16b0bf2d2647410f07bf044296b1ef01853cd6353dde4b462efdfbeb3ed6a0bf7d87f6122d296087a190bee579db9102b47619dbaf7a20bf7c824643966300fa4c6c331580d39b204b060f39fad24ebed65e8ec91afaa6575b0b32d923d2964b9512b7b2c98fbb8d0824e689b06b6f502e53b07981516cb2cf4e5f6e7c3cccd2aee045898515e09b0805379ecbb63fbd141ea6eae4b7e948bda33ed32b828bfa9794a4d130bc57c101391a6e7222867a41fa8f839356446a8925246f22dd74baede6755849956ad5521bdd13fd9e31b90515327a435f7db25a712bc1f010861031c40f2ee9644235929f07e21c3c61f05db394440ba0d32a46ceed3bdf4e2ad92e4ace1ec60f59aad82f49ecd7da0d6b1de4bf39888388923d75e2bce843d9765890f2e2ff3e0b0119b6270f8de6fcb1bf144e071d4e7e5bd928f5c3c4170481befc155f76635cd821473ad5b6cb969ce40b3669c6d226720209b598be48eea78b79e936446d9024894f8924b7ec84b4c46ea7681f83de44f82b71c2ba0b2d173318af7d38941e5e82a81f46ff7f141f4590c8329c9654a2775122f9940acb4dd3c69735c9a65f8abebf1a02f60333551b16041659de229228ae4a31f9424a98f143a0d5f8090730ed2426ebbca568223852fb088a13c39db183c650a99d62d6a9496182c82558fdf7ad1305799fd0e539599909637557f53fa2e89cb8e263d0cbd73560dc0027b3c4afc12fb96468786f122e0cac455b0a98a69ee0c202052f88835d0b55ed57415ed3c08bc5677bdb8dc62783de261185d67f205d1bc0f81cdfe23d6a6e40a4408310536c9a22c2c9573c93e0c313043468b56ad0510d672fcc126c753de79e3cd57cf8bbcc2a74e46f7606b2fda9298cd415675c0a5968992361e27321a84fa5dff761f1f94cb1f4c992c9dd12320bbf167580b4a6357dbfbfc4d6a2070e416b7e8d846e7073ebc01ad1232ca25068995722b9a2aee12745132fcb94644769ff8244fa6c2e7482f598ecdc5b1b2cacfba1557914e57393bbdcace8d53ccf18a79ea5c173570ebd4858f7cc010abbfdd8f0b2ae2c33326964f14a3b34ec71e9036a8de110d593c1ed745dd73080a2296ea6e1add758e473abf441b55f096ca4bbbb687134eef74f99406c1d00a5d278414640d0054074ebc9aebc2f2c53ead1c31546362b94254400d362391f10b9f843128e04eb50b5250a0027cee10e154d0668613439121ca852a511cf123bec52de3ccfa831dfc58237444da6efe997ddf3a27dd96aa11a1fcf90a045e0f674935a3ad2ec1bf982deec3d9b41f55be2f6f25852d758000f680b6c6a4a4d6ba199100301e8375daf57e261ab5851e5a1e25fef574f04f304745cf30f569ea7ee161a43d89661a11032c0410b27d83ca7a056712482be59a0a70a87d532f3ab5c0edd7a7d6234adbc7dc951fd0e432eec9391b708280de32ddc88bf2bd54c2e85b07f120ef42a2bb9fccac9d98d8b4e4c491cd2e4217439be0d726600cee9c80ef4b6d3b73b72b31b3d5916db9235d5d765dae07fb07120bbeef00b44e3b78700b152693fe79b96469e03169c30eff3dce0a2b41aa313ef58016d3428b36c365d29b140dc7446ed49d5802b48dfaa953435bffe9784fd83eac971d22ec1b9ff091caa0407c4ed5514a00412c573aea613123ce8e7ac68ef434bf7bb89b675061c4c4f3bde0762c9357c4058322b3b11a9e8b39023780e5bbbf65ea13776033da49cf0c74d61b3218224c9a31e2c3b978411d3a686fb69530585dc69b9b9496a678bf63477cccb0c3dc8ca3623e7667d0c229cdef7678cf0456a4719eaba87cf14c922353d6a3a340172b9d586a935ab2593ac90b766370091dcbe59836197176826e5ba308c71de83b87a121f2fb6a15a654342cd9798ea78160751416ed250b2f4769f29ff2b408cfdfa23106a53d34a621911a8a9357c0d83dd96f02ad2508602019154cf37508f75f10f39c992512faa761dcc0330108737ca3ec47cc9de21a13be64478794601900bec72fc08f3dc9ecd9c5685e5e730ebb55f30476c3bda086888d8b228189d3f3c1a5c957c7eb7776b4614dab41f42e81c6d3710321a67f5d1b3822653146ad27c4694048c157f213837bc21db57d4aceb058f2ac6baf12a5a9c4bb4357eeb5769843f18a14f2941cde7d11c18934829506171118b70adf9e0ca1410aeab53b980a8421bab07270af849323aaf6655bda0983a5b1ebe0df74a623893dbae25c050e12c88d53852fc6fff9dc47ccc3d975030faf47886e580dd96b16b6e2adafd2d04185b58ff14f9f6d99652dab4acb01cf326c59367063b9d0ea8824146a808b1c756fa6dd47cad499c5fad0dd3039b71cf7ace778ad2773ccc8374e2928abfca8cc0bfaa1c7fa946d34fbb3b903b2c646d8bb4628e4cff2e568480486e9a396035c121cc04a41f551fde0c623d1e328634e2ee374e26a091dbd5e3c6db97b60e769c887cc26c5f04d6229bb40c4db04d7642e5c0a89d5098402667ba9fa8b23385643fc81f658617ff8648774df9d5c795aef0bb84bf6c21498ed41dbd2ee84829a6ba915d37b10dd099c3b66aaf67b6f76476ddd7c68b1497ae8282433fdfdc4d036e61e19c5e16582c1e1c4e3323a7e667b348e9a34ed00689e62b936db391bdde1148b9ba948396cd365b56d06e96dec0cebeda77ffdcadc071a74acafa0f9b7e788d481c59ab9e4398ee73db18a6281af5414351809b716a30d37f37dbee38458c9583a9e44fd43c17b747c86e419958c775675adaecaa611af212635de2634d4006cb7ae5179799cd57c87e3ddcf5ecbf95ef772c3221316240a7d99455b45572fa4e8184ddf27d6754d5da6731b506702603c97a21b0033ed5ce0146a7c46602bd300307067fcc9076002c95ba4cfa767f8bd16490503dbaa46c80ef5093d470006004344f6f1f3f7fbd4f097e9953cabb2a050997f81e306ca96cf38cb808811f2a5224d4e23cd48d5d788bea46c660614f89d77ee22d0f1339ba85f5a84e49eb2035366eeef2dc35fdd449c2cfe754de7184dc59246ba0945db5a04e2c626af3e661fa79b55fd0b407f7f1f7a4685281fcf2ee9a40eceb8a755541a30647cdd2c23da8d73d9b9adc417864ad2b9b696b3157b5cc7254384b9e49a347e17911bb77048353b08627bdb2f8542578158e6585b511ea9ffdb5c0ee7546f0137a907d9de0fa61e10daaa680fcdcce35dd1190c6d750c7676cb7566b8b9823a04ee6bc3045a108a2bb342adbe70035272634cdc289ad81a0c37855edd942dde7dafd7a399e94d2f900c156859910f8e196e34fd698e62d96d77a6c1a9e4b4940f4646666acacede7bcfd1b389a3744b02baccbb299365b8e210bd258ddf16b1c9482d2664d6b50d8dff69d910bd3149ead45d5bb14ba427df1af880b0015eaecd8289c131b1354875836d82c300d87ca941cdb629957d13c0681ba2b3b6396d038844e54aa9b4ab37011f792d19027553eff0e46c0557eed9c0d83c7ee7597c2af1f4f2d9b610703cec11d0be5de37c54d5a7893e8bacc10871b882080cf4b66754ab7e1f2b8e827cd66f1e230ea7a841d181d91db5e752993eb56175e9cc68d1ac8059fb36ab829fdaf485f49fa266e2449a02180673bb38b39716f54da59d87fcf2d5ff573bc3b45cd7556a189e7ca1fb1a134a752543f43c17d31f3070c3a3022c39322bf844cd99ce6a1eae914daa431b7135d5f4695e5d11cd7e1ef0710583688d356a23652f539c1dfdb46389461ca6e9730182e836732dfcc691ed3b30d6f09bc04e6377f80d055513725acbfd65ec034f9321c0beb4ec0ddc821995f7e5742c911fcf9b713c445f91b3347f2e72f7e63b5436634daaabe92696d733b5222951d2a4c4f926f4ee53a83bc35a4fd6b3315893ec5ba658b46899b9cc26b59bd7c309c7bcab7197d3bc4232399d13f384ac965f51d588c92ef33c48f250fbef3b51535506537015520b8a7d9aa519b328f76cfa26bfdf265a9fc905652c133553c83bf9b55f3b783831e8947c7f4e6234dda30cbd6d8bc5dddcb3d186c2c4ab032eefd9a87b2d912cadb3983b38ee242be55f10c0e7ae2c3b728f1ec30adb6b82b2eef67efb2587686260a4f2d49018b31a057c3680131488a0f7462ae436fafc8a7d83809602b4b9ddbb4f6b61648036bddd0612fd452aade8b6763a7903125bd93752471b097aacfeb267c5bb067b6c5da6d5d90018d20eb90efe38235c84b4f8367169c37c93013393108369d30ee800edef9dd01a2b08e5c9ca80c2b0270f28ac5af471d0d1c015d55ac32dcb92c1c94158d457710c66a8baec5688fac774763ea36565d1eba0f4953c630f061a4e9de3e81012c55646ca0ff40db616654d76cfc631c8785f34fcd121f1a2530d3a20cb486ac632a54909b6fee54b6cedfa7b0c201e57f8bb4f33f618ec98065709fa49ca85775440fdc1ca23bd1b81a68e90470ce5418d433400c0d40b048de29bb5610587d4b775d1065d45167c5217b58617b74761936a0eb1a5e9ac243edf3a4c3717c200728f2161e07270ca82bc231d19526bed3695f7e0acd02fa271f7c1ff04e26c407c4c08538a9ff4652f4787e500869b269928da294fca781d40d3754b28866275ac1071c1f5a4e66504426074830c37938a0d9d4f1fd83cdd994cf274644a9b4571b27226d1328a8fd040126d7d9f3498381b375ef68195560d6b8bd4357f0e96c3867d81a811ea32ec32a68251f312f00328439f6cd3c2753cf5277cb19ae108f7139c3f5a17cac1cf23830bbca050e6214afec7a0fe5a32fa3af86fdbf4f7ddf11fe6dd15b0c3bafd0613056490cf6a9c54dba2e74aeb9579eef9d4bddef4d49f5c235993c74945794046c40fe5a130b04dfec89495dcc08efd8e3c888657ff89caac3755629afc34cc5325286e2d632e4b0ed1350c811a9b1d498bdf4cc03f3f119819d06aeae1d8cc0e84eabba495bc3472a64b4d0eb1ef79c85cdc8f0e727c401b11663ec58991606569081160da9a670e38a09b5bc1dd56416f77666db6b542288fdf7e36339f99061d36858e71c7b46f21c5960100806ab68816d2766e66cccccc4ed74dfe4654398167ae44434fb9759c501515fc1f5f427f9a6d27c4aab23a32a3f1f1abfb61430b86808c3267d42ae2e9c4e806724a4e1ce9309be8f6e58a0b82439fee4c4c577ef9f049789ed75eb3f4379b76126b63343ed46583cc144593b255bfd852ab8d9d70e0329a6eecb1a50cc5903df446cdaf210321c62e60520eb218c16d0bb1b3a5604abd0d2c828323bc0882e48d66d2291550917962e6fcb2708c4cabc528b87fbd2fe65831d1918c5e82ef8f473540a68694d5f104936485d5567538dbb83b64896f6a0eea0186750ac9b3dd385e52c334c09d297c6be47198b164906f351cdcf478467c214a5a40c8a424c62ea595beaf35b6ececcf9adc6c54a52612dc7bb2ba3a43391afc349971429788bd91403271376759306270363f9d47f369f0baec6f675c2088cd030bbbad9a6048a103682553031d741e515c93590985e266ddbec63ef1cdf405342f272ed65d491055c1e3d38ad65ea7226c94e91e92b9eace3c6d46a6f3371ef1b099aeb51a3c7a4eda4b5472fd4da514168acf5f1aa71fcba7defe1bfca7e0eb30762e9c679a530354ba83ce97ce396602d0d446da5a87829da2a4f60efa02ce05fdfec2739a21fa78f80426735851a2688e400134a16c3cd2636d355606134eac9e8da9689e364dbc9f89c115da50f95553a055b422ca4e82d15c8b61357bc0c58c3f8547e6a56aefc8662e9dc8d98df140c743363df4565ac812b874522b32ca2e14b9985a099a9f3eccbb5ff8fddfeab8ef125dcbe93227f828cf1d3bbd210b2a95540fb33ff5be4b8c0233cd2b0d4b278609595fceff05ed3254c64a27b6d02d005759aedfb3496f5dac1d30292c91dbc7d718920de9a08ad30958b1bca406d03a3eb8367096122849b528518d85a5b53e60e201ad0a442a2435eb3f3b8792258e590dff697931ca38c535023997acc2d6a23cdd0ad0f2d9d440ec87ab7c8829bc790fb6949c5daff684882feb25100dd890f930b68d60cb4e21e4362f63a40a2c8fc521a17f9c84b662434dc9bc0d96ca789f5ab08e0d5c78d4d4053e7b76db136e8f8a8383f0824520fc9122a6919bc3373b78c79ed65d7112075f2520998a7024d5f42204cb6fec96e5da75a80a26d3ca3d8f092fd1dc8113a8440aa8ebdb9526ea7793882e23132e4b3c95cc6bcf303247beaf55ed789955b64acbf0d1d9c5d0b3527b07fe37e293ceb48293df4801cebb58b5b568b42126825b5d61dd7b696e5009050ece0a12d5708150f6bb070bfee7620e5dd23d6793faca0530d607f767949f6536e39589fa9fffbf4990e92ea64d24a5ee42894786f445da57955c0f10af8cec67323a6d0358a2761e251eca905e2d096a19ea1133bd3da5a6a074a1dbf5f66aaa898d030a9ca35fa980cf4dc6f8d782e2c63edb34f5c6538c143308f5344616d79e29f16e2dc82ecad7ff5b1ea626f573b75ce56d10791e40c85d4219e9c7ec23f154ded42760c2f52002356b3aa770a60e844473b9ad96b8a32552b0ce1b12e6137e3de785d7f07dd13df43e36beab440f497a90b4d3c45f5d3901f616afa5bf3efe483e8886bc941cc0a628c2cefd1f733c5f428524c0d6fc8529d8a2262087d02cbf9edcb297782d273c7267fd8d8df4a1456401680ad2ef080cf12c6ef92f3b23212592e66a1da1b06382c3397a799cf88da32097b47a41481c074665d3e61d1d9c39c5ffc5d8ef092f0a006f91bb1eed17c5478a05d674292717324bda743545e71aba2c4ea2de0e9b1883a619d45da140a52e04f81cbf152fcd915e73539a2b09b8b5f7d60ef00563fe7b73449686f084dd81c098196939183d9804e4c469829cce6a8ba051d64aee973992e41c2ea7300e3d9b0794728dd3bc5f5a437eddf3837ef01b364e6cb6a416153426f520d33c06f74286e59b8414a8d165d68ba5f7a6811f75f721a091286ed18d5ca56091767df91c4fa5bf08930a7dcc3d6c36399cab8897a48c070913ba322365d321b1ef336c17928318c35e97d63736633cf0983b25db180f7f5fc6c396960f322a2be4e5df51b495b8776956190c04714b46b3c17f494b2e65ff8434ba8c7107b7da30fca1323f6d94ed597efebe65449d6c9fe593f2e8dc8494e11c516fcfdfa5e5ff3eba966f16d189ce71ef89595b7ed434f107d3cb8749fa84847680fd1fdf53c13755263d5db8e1968f77382fb853979e544382c6c33bfdc51f646a7e1fae70bc1e5077c51021e37fd6eae7960d232cbdff51bee476e2d3f71b6aba679edfed0a0b562ff87bc6523434c09bb2005b370f1c3a3c6f10abfff0d7148f2986e7f7c6a3fecd7a41e0afcf9c4f921c7ec2f6b1837f38b20c111164b6ff48c7f8aa366547bb41205427be702459a29a1cf842b9e3f313501df86ade658d48f5da26017914a11240295f79567c282645942f467c9483b25afacbb70dbf9b05da1e2e5a1f4dac110c03cd4641b3e98d9630bddf48c15ec8e9da23bc25e05dd0e094b1892f3c3a6f09a3483f0d850c02f8dbe3d59fe9a851fa04d4255bdb4d848aafec13e7063fe6e103c94fa45d24c90882a8a6535c3de657eaad543af4b3ffde66ef422ca0294b624b3b22c27857f40a57a92220ecb3853dfe4f1d94fd9415a15d495f8e293922106eee7410725f4f7b2f6906a0a919007f5972e123def176a17462041e6384e60e561038cc6a737c1e9b3beddd1f692896083bb47fc417d1ca7e1b4266fe066bfa5aa2da915e464ef1c376cb465b0b9bbf8a4d7bd38b1d8a21e778f01caf3d76a1901b5b93c239219d53442770f4b6d192f5d226524a9902980e230f110fd8f45be67bdd0c59b51b2207f29e8a47013575dfe47d4b3f3de977338f375e3ef1dc04734e4d7e0ccc4ce67bbbee6f57dadc045d13346b9de9ba2ef366a8d6995ef3c0f4da35fd1b87eed393697ee39047999fd769d07c013b69fc55117e1f86ee618454aa12c45f8da7bbb7133fff0141f10b5561287e2ea16fe87bd5386a71b5fac0573d6b1c520d8daaef637ddfab54e357dea8fe73adc64fe8fb583636ac7114ba2af06b29d5872ccc62b158acebe04a253482606a687cd57f2ea1b154852ad57f2a30fc3e7114fa48707cd523c1e4383482ef1a47218f143f2f6a91ab51a86b5dfda56854aa9a9a50bca2288aa20e9a51fc14198e3524b9527db8da6163b38324cd90bc244992a48a66144abd4a55338a3f8ee3a84a95526e19b10c0a4d55e9be23845b226b5c22ee188b66c40f674495ea79a86ae42d63f2188958bffa9035001628744df1439a4b43434343e3185cd58c42aa17778ce3b746959812ff5395526e99b10c0a4df147a16b8635e2e7125295230df8d18ca558a64aef71a7cb57e1192240ef536089f3cfcc7b0faac415487665edcb1a8ed97d65ce33ae2fa45316b3e66ffb31f1e3fb35a72816d62ec03da9fbd9a786c77b1765e28e8bce4ba705c6d9c1c3d589c185f7741b702dcee8ccf880c3c4ce030e4b91e1b0ae0363746274643a0e74617460741be834d065a00be3b016996e8d5a1702137f87063eb2e3b12a14c715ab033b324fe6b6664cfc2957cd0e1e2955288e2b96efe0962ba50a451e3c78745d572ec1a324776880010fd70eed8e81683440101441d87dd8b99e3435984dfdee3abffe3abdaa3999daf471e8ca7853a44a1581df2f6185843c33c803c1fb7dd8f372d769adbb9c3d8ccd1a2876ae4f06f29a3530a5e39fbd20cf9472cb78a6cbf34c4f08d0d4a6ce42e20f2ff6eee7688831af77c57435ac8579350e038779f5677de1f0c6a06b9aee6440d5182a317701dec73a6a1507f8d461f93c34c488e9b296ac4547612d3019f3923e6224f866c8bf7b217777f79cb3bbee70d7755d8731080ee9d725cee21d83f42804baebae74f98e945b46a8fbdcc1944aa50a532915380a6553ca2df3f3937352aa2eb4b1098b3a3195ea3ad510fe2eecb4d61dd65dca3d548d18bb88be2b92a438127def8963d13796597fa8b1832b3d0a49b965c6a03028648542538766574ac93f0a5d53680c4a99526e1907c7ae3575d9fa0e494318e6fe8eafe980e9a114b8d00bc6c19f18b88c7b68a114dea334c66762fcc442f609bde41c1c6aa1e43d21175e4c975785e7e0dfe1f2422ebcc78b80e368817b3c2e180757e1302a3c0a78537852785f1c36018779f124e0302fd9c773141e145e172f021e04bc271c463e7e8f8bc35aa1972b6a5e16476a1e93b9552e962c600be2c09f52892f2863e2cf6c4be3ca2d31b55c527c073fe95ad97614777cb8e355a91d0f7ede8e724acdbd22c3ef704dc95d89f34c551a4d98f83350a1e11941d6ae162e7708eca38373f2e72139e39c717632f9270ca303876e74970a2baae81cbf2649efbbd7fa5efc1affe3cc0a85667ea150287c013b658c8708b17f443795ca8f73ce395f0757f91df41ddf71fc589bb596897dc769f0902e5d2edff1c733b925340eddf2fa8eefe85188fc3159decf4fce71af060aad3016ddfcc6a01a8c797852a314d209f2e60baab00aeb72c8eba4dc32a62e6f8654a6945ba62d63b211662d5c0efbc25791197c7f7c8ba43efc184020a82debda92ddb736e6f7eb8b7fc94f03a576beef5cd877bebfae0f2f81e6d7cd98a0eb5d1df807eee33924983883efdff4ffcaec224dd0a5bd1450e889a10b040a3f31747d402128862e0f284c89a1ab030a5562e8d240612886ae0c148a5ea7fa44d5cae5a2314797e79c16cbc43438a7873866200c1486d771a8572b73748540a2cb81542e9b9ce3b906621c9cf54a3f69239a9e4b77e1a73dadc304f1374778c3c4e95e8c4531eb2e63f00669337fd8f95027d499d8c9ec6eee2bf9e7bf42de0d0adf7b5f947af0bf328f429def086933e7ac49120485f24dd1f7de137da557dae49c2ebfcef975f6a12c94bf2bc19cb33766577609b9d99537fa95f2107efdd925843fe8de083938e620d055545ed04e1aab7a08c34b628c2fc638b82cc5cb44e6829de8b2832d73b91ce00207eed961fa1cd8c78bf25cc3f8b5ccc3cafd6bd90170809ec118ba47ac690f8ba805e3bc17957d4072e54581516054cf132c84f740711cfc21987d3c1024491b9b7f1cd08bd2c20414ef111b10e54a15e139f86b5ca91f3c07bfd800ef49ede0384ce09e54168c53442a010e23c261e1e34f0de1b0d4e34f09e1b0201c0684c352a91f442dd907f4c161ad1e1c36e3301d8f3fb583c3461d727018ebf1a7b2388c14b5dc11b07c1246b0f000d17c2db500137fca087c84e6f1876388c0c40f82f7f33a700dd377c210b8ef8862b00e570bae02b862be835fbbd0305d02700d8000517c473497c0c20354f32ad712587e806a3e05d6fcb7442ed998ba5ca2a67421352f01ea22e00fbbfb9935342ef33e96ec13866e6479c3c458c2398c8062c2c435d43c2c220f5eb28468904790351cb3e6636431f1b3e0b0ce09b3761dcc2f8a5c66f0aa0221fe9085ffde4b3ac6d1d97118332f691141621cec229720f3d3e3b041356689c3b8be2b029c75eeb4f6a2a2baaeeb4ccff33c2f8c79fd416c841164c84445dd2ce6b8845400799b7c0ede0c99baeb12ea77bf576310c4193f4e22f43e64910b101a62dd307127f3c6f3324d1695eefb5f7732ef28a47220a82be07f7f45758302f8df17816591aa0453258847a194d038744b2f3d70cc3f32e9baacb5d6a3d04704fef7dd58049636a54dce09bdd1f3b27eb01b853c2733fcc6fcb58820456f14ea1e0bdda1f29631bf51489bdde39b02539fd7e9ec37b5d27f4d1f83bcd7654c1f9d78a55f33e30e7f63847ec15128685573328708f187413572c4a298853c146c6c348d0b813426cda847a1cc0a0a594fa0aee45cf946a152649149a44621d548e3352721b224539eba38ebcefb5242770a7d35b611c9fc696d76aeeb79218b755b5a9660ed1964698769dfb9acdb53f361d2e09c8f04b5b6b939834139dff7c719b4b42cc1a91bb234eed137432953ff357559a3e25d30011d99fc74afa831ff76a552fe37c7a025fa7377cd8bb3eebc0f4ca942715cb1c8d68c0e9a9a1d3c6c30c8e0a6c792aed4c077ee6fe03b9703dfb95d38c618ff15660dcf61e2afe99864f01b188e28acc9acef8f937d561f663cba1c4874c5f0405bee879eb7257f985d79cca6e7f1e49cbc727956b93cca259aa20b4a155ea82d1eb825ff96ef43f775c9c64cd56a4c1ee67d6d5ecf795573c1fc4ad277ae6a54dd0cbdbe2e9738e65015a652aa55ed05f3963f39ae3005a63e4fe53bb7fbc9395aca0b4f662ef53703de94ea9a5e199ad9754d107b7284516eb392a2c7125568a00d1c62b8e28a130d64cc81822b4fb840032e80f23a7d930494170974b1c502a000aa916072884243993e6060e00811448511a28a6c3a981bb6c8376c91c31cb1714605dab861082cc4f03c2f6320bc57c7c48f69fe1806336a061e4c5cb3f9018c0c53bcf6cf59a5ea9cccebaab5a68704832e27f353ea721ce187ac94e7e994f77daf552c3d769d089a597f2e27d3269aba03faf33a283664f01105d5011f1a0a8c59a3c9a2ddeb9008c20360b8487145095e00460136983983814ac2cc1d9839e71cc50e5d687a1665baf880131e06310e098a9fce39e752c7878d09cc9c73ced7cc36e0f7c03836d9c707ce599411c3ccf9c59cf3fbb83e7ca85c38553e60d67c0c0182616aadb556993a7b5e152b76f03ccff3aa405183e784a9bdefd39dd69ac646f3f0e01e9d3db04a027228abd89043952b58aa3c5d798a2386a714c8f0640228f0e90b73c674304f1478914b77b317c30e32a4740c31d800ae20cb47021a3c3662e83aa03def0a066af0b7a206ef0a143580b9a244161836f094845923554938fd8044192f2d08838d144861c52b80c60e4634600716d0200490bfd36c62180c08a3013631f565351860764000753e787e8644f10ce1c93e9f3b25badc3d4ff9f37384ee481a9b2e6b31bb37b3fe1ad8755fce588d1bccce04bb2731cefd3af8a9bd0f9e2cd4b0400be7963c363c43602055a667918608cc1acf0a869bf58bbceff789d0df75eb8a0b665c0993e50a1833d600ba626600023b7421a6052cb002c8bd754bc7389806264c0dbabe3cb80747d10095718ce8965746d13084a9a3ac841e904e3e3a285ddd971a635d3e9993801ef8fe9e4b9c83e480fc1e6a4bf73e401536003f406a406a10065db3c7cda7bb0f7c97b802f286bcf14a9bf273cef73839e7fb3e92c67d7c4184196040ba0e6d48a82dd826747c04ff0d59feb8e441de47825fb89748b8c31ceabeef33c2738f35075943766f42087e80a4d1915d34b38871488c137af6f191cb2f82ac89ddf7c02f46c5f086e951323c99f96dbcefc19f9fa4c13e0ee44b607920afd441668cd10883ae3943426df156d8225d9bfe65f0bbee311732fb406dd1afaff7687d4df7f2c6ecee9521ecdec32b2049f2467be5e79cee71724ef7505b2e4b05648d34796e969045ae42c7ae30bce4d52b126a0b8845c00fb5c53f867f75e0f7c1fb36d79160a77bef1406c8028413592c2146045f806aa459a5878c2652c0850732bac002c8df91b28f13102250838637561044101900aad9989e7e323dcf733114d0c50a941881153b7801f2ca1f337b0dc7cc3c663ee38a1542a025890f3cb101167c71bdabb5b41155cb001727c0e20a0d84808d33c0320298c38b233400810d28808c2fccd4125c6cc9a10b2b36942004403ca6fb7bead483186920410518095ca18367610617b37b11f7706076ffb827bfc009092f5010c504b0e8401465564098a9259a08bd771f350f733b1a97e7517932b3aba65d7f008e6b3e995e8a34307818bd05e9e5ced9283306015ec811040e6200755dd7755d59b3fd98ba14af1524489a9e85196d989ee95998b18359d3245ec2bb99053700e917f5f7f85c929ecbc645e3031b58b21063cc0cbad3394a9324cd687a1662a461b24c07f3f400b346ca91dfddb1eb267503de7cee18bbdccc187bb802d2cd8b1fdb701de6f79addd7b489f377d9cbb9ebaeeea450d1d9cb7fafa94bd09fb58f2cc290319164ed64ea6ce20c84313b11df22b5d4b7daac7ddf823715dfb4aab77d63d79777eed8e5ee529c741b7767d7976c2fc5984e996ab39d3f9ad6733d426d3f642bfbe308b51da1b61fb93469674a2e456d3b29939a2aa5b99d213db19e9f293b3c2f117c5e407eb0297ad26436556d7fe0722d9b5b7fac7b664373473ff64da5fd70c739ee18c71d7fe0eedadd45770c80cf036e841ef5f4647afecc084118b686c81fe6724909a14bc99d0d84b252e5e2c73a6b9da1085b40dc7b95ee2b79ef4baed65a7bffa5f4f7aef383e0df5ccbfaded739632ab5fb9ea6b284dbfce08319a4f231b99f762979a952c9d3df81ef64d6f07b4a5e2905bf3f97b0f5c3bd17d7c04f3d7685a1fb5036bbb5d54bf8bdefb44b8a8da9e4bd9baa520a1533f5d825c526f5a0fe0b9652a8749f3fd77429c5ddc4b80236e4fb835d8b07ec3e3a239de8c20f64055f20fcf7c3ac45118bd8bdf226e87b4fe92b9768c2ef954b34e527c10a94fea7fcf7314e3d1e9fa45ebba05c08ffa644a7a7a7d015030940f9552e282c17287f0c2400e9cfa295fcf74717d4f8581e287cd005f594ff965056f287e5537e550985e581c4a7fcf84597951185fcf99fe07751e5c272b15ca0d4872ea8184800523d960b14be16c5d285100a84e24062e9c296a2f0efbba07a0cd4a5bcbf40ad1c48295ec6f44aa5259af02fd1a45f3fc17fc71b14f4e32fca7f1f1c9f64ecc11082d9870a9517f0e77fe1be7e2a5b8abe573d15282c0fd41579dffd0ba907dfa9c4f0405d49e58554d9bd57bee03d586279a0fc5ff98277bf2bf3fbbfe0dd14e8ba5c58341496186e0c5ba490705d31b8a0b06c914282793f065d6e91428299dfa356085b4280a1e2e98d2b4cffdbc5f4efa04cff2f09b303b3050f6617bac3966eba25375df9255cf3fa3736b94dbab2e674e36527fffbb7d5e6d7e47b77e964d7a63736b94dbcf70f07dddc5bea98fe3a267eef7636dcaf54b96eeeafde8142178b25feaa7461f522f90ee442f8e3aba07ab27481f5aa1f4b17b614b15ef52eb43e0c5d37b75cad5e2c6fee8fef0444457c567973cb1b14c2677d51f8acbfb72c52fd585261bdeaa9b43eacf11df06fee7fcec9ef0424ba6e6eb916894f8236e39325152a4e3a01b14a2a5b6a4bb0be7c623dab7cc105244f7eab141f244b128b00feea595fe3d961c52a9fe49c560f1ec6e50424ba9c80420ff1752ddd12b2eb3e893f9654a8e0724e7ea3724acec9bf1239102de7e49742e440ab2772a0f13e892c34a460f35e236e1623b4183184572fba584b52af5db75c92824dfd2cd78d1ad722d6af4a2a5456bf2a2fab247220a8eb859559ef40abaf5d2e667e24997581c22b8e17c8c75bd2f80ef8dde8bf0fa42a411bdd306013335d9767b23733a3c5ccbc7663666646bb21cecc88332228aa728b5c8de08cf8216e6112b3f00a8f58543da8c7e8317a4ceb7e6370ceef647868379ca8b8e1f9e7ef260fffca9a13151eafc56837be771e8f24f370d5f41c3cb2c9e39a3c348f37dcbfb2a6c968323cbeefb3fdd87e3c1e3cfcd3f1b53ed6377e1f8f991f83a779cf3e19fccc93bf1279bcea3570f1f81e2e1e7fe3e2f119b8783c06362ecf393ccada8ed2f663d680a50e12db989f0d1ecbda975faad463f4183d468ff19c76e05412974cd58ce3387635aa71ec3ef0c74f93d164f498b1e67e4dcd6b37eed7e839ccdaf87d3535ff7d5a0cee199ff5da8d5be4d36f98b5915553c3fa6aee7f6559d364ccf1e747ff25bd9ab2c63add0769ca1aa8a39ca97d0de7b2caf1bfb2c6638ae1a7c7e831251885575db772105cadc0cf4ba95eb55a81aa5fadc01aee0204c70741f0c515b812555f66bd48beb8129f14c55275bb8023985721f8e3083ec65ff017fc057ff998f8becff90b432f0cbfd03ff40fb37f88bbf8be30fcefbb5cf015a197de7f1f2e09df47adbd9a4dfc0cbccfe287dff78de32a3fe9e3eb70791ec7af19593d1ff91f49b69ec675bb88a54d3453deeb985195adf61e7ff98cbfd064128354b4c2b00b7117ad30ec5af88a1047e12ff80bebc3562bfccba5f5d84bab86bbf056187ecf0a9f85af68858f04b7eeb3ca0c52dfb19ed50a75b8583fe3f29cc32abfdbc54c7dcd269ae087642892e16bfc057fc15ff0177285bf383c4ce891d987754bd72d2c57046f29ce40d678c06f065229f59d59e331c54f81aa510913d105be8fe2bd26785325fef2f9085d383a3da18e6321af59e3e93efc055f21830f9d6f06f29a351ef37e4af5e2e7fc4af097fb432c55aa9f2e788618c15fee8f8bbda4c2cbe5cb2df281e5cae58925fe7249b0cc5388a487386543e83e3468a332f2e32c506cd1f0b54692a606b2e6687c38904aacef5acf1ac9996fdd56ebc71fdf0d528b61957accfdca2216a214b11005f7784e43f7e9312d0490de5fb3e6688011e5c381bcf98d66341bee213f3fae9d827b567accfd41962c56cde73072c34756a9ddb83fba4782cd55f7e9314e3f66ad7bd6c9f4bef6632396351e1cb0fcc0fb947a41e8e3ba04cf85450379dfb98a4820cf97f0745973ef0999739e30053c45fea0bd5c40cc13590bd682b528e3ee0e47082e13180873ee12fadba005a6915a09b326820ed31f45431593e60a11de8bb3f64f043f30890adc7bc19402a272ce29151254745da70a8f98e2fbbe2f148df8924aa552e2588497300cc75502a218c725e338ae58ae89c05dc40bc60b9715088690c00ca0e912b012451cacd52886aa9478730942ff8b7337baebce4bd04427de7b6fe769213e2472cede97313044d775dd07aac08b0faefb8129d16feec295321d8c171b3a2f2501115f1c44683a1828ceb8f7e20c8518ee3b190440682da67944ea1f4cd3c17481c2dd47bfda073052247102d525433e29c2f842fd3fa9c568328e4ff01d7c5d4fb4649f22289e941b361ecd63efbf54a88335e2983c66c6efc6fd713f2d06e3d4505e2ca596eca3a3ac81368fc3638a7a0c95f2d363ee8f7b73eb0a7982c31cc915a66b61640c79bffb9a1113fbc033588545784577cf387311e23bf97a1f89c327d987e5b3fa9c7acfe3f839075495b53b85a90a7fe5729c1396b5dbc5547d8fef57622ff7072e8dcafc24e7e45459f331cc5c7a3ff8cb15821f5329c1ff727fe0ff5e30bd560c644d4854cf875f08f6e220f177f9c9a4b03746172c0be08271abb197cb250a47692ac85c9f999172cbb05c35fcf96612fc106b70a61b99b839d37a3de3daf13afeca7883c28ed7f1453bcad6ebf8a29ab2f5340fa6de041f831fde990f41f07e1ff6bcdc755aeb2e670f63b39be9bc6fb5defbfc97748dbf7a249874b11e49f695cbf6638ea51e737fdca0ce043f740565137c952be89ae0a75ca44bca2d6382be93dfd3e102f3bfa09d58b86b010f3a2801c50e0d28420c2f4d783d6ce0c51a69c0502507304eb840c00206b4c00a3010688307a724a4c0c0d31424c862c453143f63c2a53052c0012a36700618a82635aae8228b313350a0090554919d822893460d32a4c086123cb1f40e62fcc08232aa2861011ee270c3898a16f090850251c830869523ac2c20ef70440b8e0863650b207a606207333f6801f0f33a9d71d6c1747f57bbaeeb3a06c4f04318440461831a43a840079cc50d6b7881630927cad8613a1823d4c882e45cc0567081097429a3060f60e81c5eb0040868b802864b19739c61acb165072e88280201592ed4104058208604e020430e5698507cf779f68a80e187cb0b12d08231e10f171f26800005c8400128ca30230123d0451c61ea179f94f122470736e0822e6e00fae1c205fc8ad0a1082c668d04adc8df106144f0b5d63aa5b5d775351c336b500f91854a634da3bdaed35a6badb5eeb23b98a3b4aca1841133dcf04606340e37081d9c40820c18262003694343e60f93a00d28cc80400992f05286039f35c9e5838041fffb7829c430112502214ed08307fc3dc9f33ccff3bc110261065bd0020b06c428a38b2f6db831def064021e4490041c69546183077e5a835fd779433440242373c95c54e61dbb1c17e90559d39ed9e5cef49deb323bfd4dddb74cadb5d61dcdbdf722c125e83b3934af67deecd2e605c10c33c6f87a0e57f84bfc2098fa84b839e79c7d0075ce39e7c7c1e2236d481a1f26d03650d9c1021cd042460ae060c16a08080f4ce1012178380105b260c01adaa6878fab4a757180f6545d0f8ca36b509d20634b96359a78c1530d4260e4c0c51822c8640101cf74303970f172004d2ee6edaa480101821d3070adcb90c1e6023319fc78805fa7830d5eb6d15aef30b5aed13435d00001840e2066c83223c70d2d13d440b28100561933acb2f0617ca207514b113a845ab2e0a092a387d4181bc03370f8383083374510dd0f0dc841ffa00310d9e3d04276ee43096cb89ed9c0d201b1021d76b8c9925529d007224ced69ad754a24e5c0b20519480051051061e82e1230b5d62c53d3606aadbd0c0a7600c10c5c1cc1030580740f9bacb5d65a6badcb9a0f1b1f41c0e043fbf0a1862f68c0e2234af7e082212194106381196680401728ce087d90c011488869830636e0706344009007a088830a34ce500102a010c3f33ccff3bcd074303d789141ddc304c02ef595202922c1a9ec799ee7e5ae872740a72714c851011b9ae0220b2d3ccff33cafd3369fe960ba7c89000f62b4a7713a06e49c3baf89afb301dfa647ce3923f169d086044533a050428d2f8a480205542001768181110f8832c3041598401143649bb7e981d383109f5fe1c5070f83362428f6c0c3e775363d70a230f38b3a3a60bcd830c3e88659f31182ac4a7958cc985fd7753d6c7a3cf8815d5a19b42141911c928724017a3a639bae73a2cbaf938738200fc18142cb8763c3a3f30345115dd7759d91214670b2cf10287630bb6e48873364c84f6dc8ca0c1e0d7a1d1434e49cf3e3f87817dc00ae40866f0c969c73d7755d171098397764745dd7755d3260e69c73ce66eeba74d1759fe7a01ea34a1a1560228d38a0c8103173ce4d74f9e2032a8063860a58c91df9bacc34d987e7e59c73ce397b60ba5801f5f9ff7d7866ed79c6e81cd4e871cdda0fcfbb4779603a981cc4982bd3c16431c2acd174c9294f531183eb5c66094461769dce5a6b1dc41a1da83b4df37d5dd7755dd7755f07268834cc0e06a0aeebbaaea461990e26082e3c68f1aca85266a4b2e779a40d0d496303ba0ba0e0b0620d1560a9018c28dad06880337400c3146b8ce009322070c4f703055c40b085951e5ef003191e1615dee000153ff820860336104518a6e7bde8791ecf8fd656a832d8798f13e56388cb41451055b4a000022fe8e1cbcbf0c2122ee832022f7aa0a28a0c85a8bbdc457165d5e33dcff33c3163c444e1010f5cc1a2f374d6594f91040c6590110115c071030f5a523a062725def8620608aab4d144193bcce151364e84b56be6f0620c3ac6faba6ecee02db3eb7a405e3c3b2993ba1ed1d893d6c3490e9e707726d586b4ee25f5ff69ecc9242945d7160a0c16c3b1adecc4ddd42430986ccf54998a940eedd9b926e152206ad9d304b445d32103a0b63345839634d97038f3087bda64b175e3a69cb729e7edc894f32643d9145ddb293bb6d9f368dd4fd8158e04119233c2b2a72d8992753f6161b0d8edd2caf6baaab26fd5f4f70d6dd3dcfa48e8cf762bdbb829fb59f47fd38abe88516c5563b34d63d114457a20775fc99cd420cbefa357db9fed96ddedeff57cb6b5e54ea43dfb6d3b42d9744361d717dba2379e1791203b3b4adcfd3a4e32b36d54002d2d09dd4ceb5e3aa1c5e5d6554d12343b81f65e83642c7a83c1d8742ba92d0cc6c260edaae2703936b66fe78ac4e6dab385b265e9693b81f6468ab14d27ae6955db73969e4d6ce7ba7127d8cedbaa3a619bce2730db5edab6184c75c26e01d0d893498a9eb423476c679baa0640579576c4886cab80a4aaeb132830d846d7368663cff69cb5e95e372d4593d89b92f68cb5e966d3a1d9b9694e9464aa0d28655267b1d966d92d5357dc913d5393a80083194955b4c59db067aa2c36436de7528c69a7b8dbcac4886cab7024857d8bcdd69309975391d2219b4d4d321bdaab2a8bb17b096dd11bbaa66812ba9eb0777b26ed3529c98cb5ec696b5974ca8eb1b6334d4259d6869eed5602a5cd9db06f3976af38759dcd6c2a8ddd2bad8dcdd28d6373ecd99e4a9250a4544db2733b8782bba78e4b4a51db110a651fc999eda419ba1e993846645b0536c6b27b4d4ad1a616959db833b6733b27254693b5278e4567b373d3623229b79894db0cca6ecf164a528a269d2cbb9ba4688a9eb7bdb62a8dc59d291bdbedd9b2b1a6d3b65718ecb65bb6898de162edb6d94e5c8ccdd972b79cecc8ebcc86cef57c62047736d97b2d024a4a5135a9cda931dc6da5c570b75c9be654592c89bdc570b75ccc76b66abbdb73864b2109eeb632f105b8fbeae40050772772d2c6e6ee62cff57cf2e9de4ced3efacd9e7b95a5e837d96ca70c4dd5564dd5dbabedb3b3bd5325996a3bfa135eb3ddb6e8eda6ca6e009464e7d1cfb6cda6aebf8f3e3d65df9eb45676b2e9b9b69f6e9cfaaa13ef03277974695575fd9d74ae6acb6297933ca6acfbe8964b71df74da36d175770c9ce4a1c4dd3f48d9adce7e766edab7e95ecf27eebee3ee3cee5e83b732d0f26a378bb6a8ed4cd7dd4ed96f4bd5155d4a979440091d65844102122260630b263a608400359e130885aa05c51739bc1406c0690aa2e87105045e3c605d310108579631480f4474e9b283021b1f6cbc08a309252f68a008012398e1b9098c66e9c6e14ea3a7b528d3af1bb5ade7fed94ef73e7af683a6b54db73b10ee5ec55b1bcc665bca1769d3cdee15f7fbe85b36777bdb4ed393267bdc6da5fd6cafa74db6672d7a436dee18c81d9b54dc3112770f72ff827077276f95a1c41d9370048fa0e4ee1a13c9014dddc93c19f977fb5cbb1ee1fa67c49d75adfb39eb763beeea8241b48f671ef4061f06c14ee77b9d077e39f68b8226e1fa57a4739677fddedb75437088fdde9b31937bbf8befcd9e01f0c5f7c33b88eef5eee7f88eaf8c3d0f47f55763acb35c7d2f565d15e09bf2ee6a9cf7bd357c2f0653c037f8624fe34b027caf872f0a97c7bd198316e8f2b7ba3beebd1713c13560be445c7c3d7c2fceb18bb52a35048bf708783b1f7984fb61ac816415c63787d5730fa0818441f90976ed5889ab338eeef0cddef570d5b88e9d2449bf7ef5c577cc053108f7e20ee37caf90fbe38257c418632fc9fd00638d2f4f7e85188000b8e34c06f887db610caebef93a7e825f75b563d4f337ba36647759e03a922c70beded5df1d6fd6823108cbf7275f8cf563318573bb7b3f1e0d84039e8b551e88bf7b6117630f64efa6b0ce4bb7c4b97bf3ce4d85f882dfc548f0067803ac41f6ec97753d8cefa8c9ac310618e3eb5d8d74533e6ed8e1dbdd95cf0d1efac214be47a0f8e18bc205efcdf8eacbe46a8089e01e38c41fee6ebef8e20bbb1ae0107ffae62edfeb73f3c5b9a92bde7b8bdc0db02a7f17d417df0bbbd7db8169aec6b7d397080e6fc61bdc9c31d6585f2218df0cb0eaa62ea8f1bd177635c0aa2f5f0dea7bafcf5f1b1040233984eee69bbadae6a652b09000371bdc0ef4c5d8c3dfbe640d4fc8e45e7cf1bd77c73fc7f9009c2e19018cf117c01162c208c0b5861b2b9c6a3c208534d0f02217190ee5880c6c28e7174e74c4144410b9d4135038a246e6c939048909476c900226670f1e2247d8fc2072ae1ae093c6e8c3c7a5ba3d695c17f418954940cfbfc05f46726cb063c404d6416301aacef3801082113a26e0c0e8450e9ec78c1ba1a30537ea72f0d730b86777f70edcfda80587fb017251d8f5b571a78cddee51fc89bbbbe0648b85b33d67b191956f32154fda86276d8207c2df4f0555c8053c759df801808c2afa08209a879844033c043c6913523b543d6c60784a09400f206f10b69e0806813f9e2a17b151755c3c815e9e68a25449f9642250209ef1d49579eac40c38f024b625154f299b15fe8a743f3a1eb0d48418fc6045d7f0c472b15c79a7f503b46995b1d28500fe7c46322b1b019378ca4d80fcf0549e039e72e865a0754220f96a51eba882ba103e017819782aaf26d28834299bd48e4f00d90556bc0c32172b9d164f1ed4f4ed631e68a06122cb6be99b777212fd44e4e1e16f85efe673d2d5acae17e64e8b39679cbf0ce694aa87ce5f0adf0ceb89aaf579dfcd9f1ea27fe80b62906faaa438e81af0b472409596a76f402556f41956cad87b9917b4d181313210660b2d72495072c8b2048884117cd4d404637e7c40b2c08f000338c149192fc0d0000738f068f90149106788f105982a24e0c4123f5e00f021d7e2c0ae2a38019932c200030b289c5e28409401b0708213a1200e36e0b1630a299c9c78c00b2ec434e8a1a61cacce3043caeda9cc0b58b0822804e0b1a32506982caca84202513c81c30d33c40a2080154e7032f48517596080025a9878808c2fc0605105150b4882862b309c808c18615441c51410807adab3a125ad910c1b6b9cb10516527ce9d2440e36ec59ac005108b0c2d09222b09cd6f885175b1021440e507b5680000c052d29e26cacf1851717c8428a2f5d9e6842871ba05a08c0d00845603e4380e4ccb4b49761630d332eb045165848f1e5892674c8e1061ba0d488b51085841faf39e430a104d6ea033db2d440030b2bf02061030d4d53b6a4cae41760177472e038c0066806e026f0123708069279ee2bdcc921e4dfc101ee716fbe0c3206d746f3b83b523a666632a959e28a1c331031087ba85aa90ff43eec795d97af7b502a0fb878fa525f4aafc09e2f9535108baa3829411c4f05fe689175b5e8c534531e734b8f0143104fde0a7f29ad336af0f38027950ae24cebacaae021375d0afa7a462af03482094a5a3060add226e4b0e0290456400853e576b0160748aa609d41dec15dd7912e84309e3c8f832750352ca02b59a88a0c4f18a4561069441a0304d5e04056b58227236d4ac84807f24be5b153d233d45005d42b4f83cb1252a50d24522070000a84e387150e3b24ad8f882e6113808b151d1d8e2a4805002f8a06e12362650247085961000e3b481ea851660202ae780a734842c03006615d157ae4221f063d55541f114f05aeb2cf9050d64015b48227d53734420199dc2c0952a5988850664626f0c443ebf4a83c988ed153854bca022ce0490532d9e08886a72e93ddf550f0545d110f842340612ef501c8c4537d188c4a523eb493140f9a1e00c86007086008251001a08a0a7c7d4246213e434f3e517f1974b0dc9312f5078fe44b7d2afda32b41ff20b9dd4d76753b7852a02c135952c40654ed48f95449e2241c02e2681fda87c7802710565a491742b741ca87eec1029235b0f2f4fa713352ded1b93b4059801da85053271e10268a8b130c4802014e2e4c619590b6cca8005106c0820a29407962420098c07e84e000c0830e5e6781451913b8d10609473c2833c0e03302035d2cb10014969000d3a0460cbd2ba6f8b28589259250c01146109102ce073f5e42045104a5cc1c6f1c0dc00463aa88a92d1d7040918e14517d4ce490c527d581319a600246a487074da802bf1e37128822ca9e9de0240043414b604380e4ccb456a34ec00d33c8308386081470e2010c705a41059f1e1b1a9d81302950e1c8083da9cf7b22862f1040c2871d683840110948000e27383952e403f1ca91e3c07068323f068bd16de0343a342e19580ccc81541822183803f80b3c057e223b819574edfab81c801a743d460c300f5c73695a3aba19dcbaa45ee1b053e11408e2efebb0bef95ecfdd55dee306703244623b3adb145d713ff64c95a1694ec7fda654516bcbaab2b0e87b4eaa4e77079d5409c0dd01e0a44a08a9c271a347523fe771fef70cfd16fd224debb99e34d99fe8b74d47512916903e9c70f795932911b8d127a5e8a6317d0ece08463e4593f6510bafd78b00b424f788e07817e4eeadb7b490ae33f61b8293200aa091146dd93d7b9aac3d6fdfaae9b35b9d7d0ece96ad3995053700419fa5bb3d9ffdc4ccd24d7e517c493cad4d4ab7ed91d4df32d4c6feaa22ad67cbfe4e4acf35f5f29408da01eebe736bbb59db8974474004c81ff975cdc94078983beaee3827bd2d6eb9b405958e0a07c7857741a5a33ac0ff01feffdf1d1b71c745dc318c8887e561514cf087915e8e37e3eea4931e767f98ea612dd2b6fdab8c5a5a12bafeb748db66c49e238c5006d94de1fe2cdae68efe5974d3da87b1b334a71e3d92fa6d4e7d77fca3827d7bfe6c2bc9d0f4c4754f4e0098bb67e06417c56d47679bbb75a63f6cb68fbe6976eed576b6b926abbaae4b98d4755581ba1eeeaf17bbbe66eaed477b43daab2afb9cd435b43ee0c5df88910782f3ee9e7277d6dd597052bbfc08b501d96177dbd4aeead149ba4fd1da9d270a1cee1e8505155428223318ee5eba3b76326be15e1eb9631f77dce38e4570f72177ddd2d9c71578883b16e28e83b86320ee98c71dff70c72f77bce38e752ece43f70be5ee037012bbb167aa6ccf785e22bc78767e44608f7e2001e1e11101c879741424c8cc070852cf8e8abed8dd9eabecd5b4b62c9ab4d71f6ad27acaf014dea2361cfb46ed69b4c3493cc4dd679cc459dc6de7927adb6b4b0924eecec3495c0077a7711207c0dd4798b26729ba6e36459f45713eddb637f2fbe867b69c4a633fc7dd83b85fd5dd536f7d000c771c82fbbbe399bbdf9cbc3cb437a4eb85bb5f0c82afeabaee4fcf9fed74cdb57b6dd37ddb36dc0dfd163dd7f69352b46dcfdbaa22fde9170977579df421dc7d74f2bebbd7387943779f6d1b7a223dbbdba6a37f24f553156dcfb28d63a7b4b72d4b55273058d196a56afa855d5fb3742bc9cea3d846d7b647c88b6767a7284d76de767670ec6cab29bbbed875a3eb7a1e0159f7c5b8849b6930b04986f6aade7eafa7cbc11386a4911e44d218ecb6e13e022d27931ce0eeb673b3ee449201928c1ef6ce84cb5d01aeb79d9b4d51a42677af39398016b83b90934842b83b09462e55b6eed9aa7e52aaae4cff3aec464fa29c19c32924d1dd5fb374b3e7b67d7bfe3e6a4a692de691f3c206c3fde50ee2a155ad9deb5ed514bdc562297a9ba5a852ecc84dc682ed6cd39389e95c672d5a9ba1272e4d813d519b294371aa0cc5a945ed86b2676a1376efa07643d9b6a373a7b0aab6935df7129aa6b0b6ac7a8bb567cc663b65ab8ab253cedb5e4293daad2443db36dd280e95ed75e39ada983ae5bcb1294c41cd764359b76d969e4c36143667c3ad3928b33487b4899a724049293ab3a94c763b650951ba65ec56b29edb9624294559d596a4c56d99cc4c37ee04a6ed04775b99ac1b69cf768bb22a6e2b613ad719ad455738925b5b768890a523466e321660b0204b37190bb1d9926d3bcaa94a509cb9c2092f1477feba955695298684a4bed6adc49eedef2021a96f84c5d98dbe8c62a96af429faed66d520636eb8661b5d03337177ed9808bbd1d69c723681c18a3e65b7adddecffb9e6ced835223664d4aa362846dfaa361649fd5565d12574f6e76c9fb69ccc76ca5e6ddf7db85f36842eeedecace74c766e96663ea6cd66e7607178bc57037d9149c67256a29fa6cd3c9643bd9dbb99e381f214280a06c130cc6b653f6abddecab2d9b7b1da375279de9d9c4e89b8e6c43dc6f1a2eb6692bb1e8ed81a840012ce4eeda31111907ba00f982cc4983244092bb8b45d9147d9ecd9e6beee469a76c1529455bf6e7c5b3b3a3dad8586e363bdb74b7291adb4be7b6b1676c96aa47b126597bced0597aca62b6a373dda92db794c2d8a65dc20bc59dff6ada4a1fc2339d2b6a8bbd64a8ed28875b62829904cacf767ba6bb3d65a92a23fa17fb463f486dcee867a86d1f9de8d2cf36abae6adbb6ec665bb5692bfd6e857eb6374b634f5aac6577123a6b73381a7b326955758dd1d89309edc8ba67e7660283c950a029454ab22ddb38285bd6a6fbd6743ed949eb494bb2ee59baa1a8eb1e40aa3a615176a75ba8a9456d67bbaa4d78820411c274ce864e96ddeb6c66a2ad2dd7a48db24649a32045398a12254a19c5dd91b8832e21eee0cb0bdd3de6640a5338bbbed6cd06b9cee23a08772f809329e80001f2e27901d94955b616dbb375b3ebba44e984254429a836d2c9b27b23d9ce5c2b3b9352b4e9c4c568ecc9e426636186c64e80c1f64d95b539f526632146634f5acbaa329bed94417180bb43a102a504a237d4d428b695ced6e8935254e96c9b662751144446fe62da2993fae7cf4edacb49221cf7170a2140418bfbebf6e7afaa0c6dcf9bdae6cef47c5a524e5d69ed0c49ddb422145af774ff388982ebc9189e93aeea11ceb728abbe52f3c9538ed14dc6c22cdd50d8dc6e91549c74dd4ccfee1df404c9092338e18713841c8a934ede7062c4dee991bae29e4df752baee2535e96d672e3d9be070ea6ab3a14c4db623946555dc6f5acbe6d47527a5e72ca7cda96afbb373af4929fa27ceabc9c6e6547469af38d969c339b939b1f117ad4599ce2663f8b957227727e26413a8262f13cab0e5d8a6a39fed7627cd72e9496b7f4d7a16358102a409adbf5816a7b6267c2570f12d650a7b32a5e723a95fc291008861d9197bd202c0253d67fba606e0c90327030034e486bb173939a4c55f4639af331b32da6baefda593f6690e2937fb7d54c4c8663b9318fdf96a9ba23f4b734bea2d3d8764432b265edc5fa98acb9d3f4bcf23b57d1d9df5a64a59e2ee2738c9248ab3b95f81c907421a10a2e2af36a7fe6cdfd096d6aeeaebccfe445bf475d6bdb4d3a6731f7dd3797b16a515fdebcfbd84be5007eeae8293411898e56cb2146555d9b32d7a6351f3d5a23fdbab9aaab4cdc49eb41b7ada92a0e71376efa0348526a2b38582820d3d839214a55be92cda2c51d3469b66e76689d214da744331978ceeee6dba97da742f2d71770e9c548286bfdcdd88934ab4b88e1224eefbb6aaed89b6e80c3d7139297b6de2641231ab8aa4b63b7b4dc2c553f4b6ee76cfd80f3670320916f757929fdcdfd41589f62dfa5b96a2ec8d93494897eda46a0a14c681a6bc5295c6a24cdf9463b39d389f32a99b560464a324536d6fb3a1ed6c6f992cc7aa69ee37adc814e32fa45445cda857538bbbed36ddecef23138b6cafa69149be729a2461e19154f457dc94dda2afa4d7c641c149245cd8bd91d4d9ebb83b13279118bd66bbdd2beef791ed68e98d8c4c701209d8949ebfaa482c8af4e96f5a110951eefe9aa53915e9f791eccff6dcb4d62401ea5925996a6bbf880424e41132eeeb4642ca1d6dd989631f497d25d969fbf359dc495bf79357528aa6e8e7a8b357dbd77ea138bf732cad557fdf54f6d993a9c8dd03e0e4112daeee28c9362dc9911ff7474242674f6bd1a6f4bcbdaa16b9bb8f9323c0e1afd9468d8cbe688433dc7d052747c082beda26a5689b53d74752bfe9647a35fd73ddb4f6379b3b65fb68dde94e7a1df6649aed152d1a21ca2d97ee3732fa4d2b9aedd9912336db99e4c8b3e7171939126b8d4c51818e1cc9c1317293b1d0b27b76db2d1adb1be948d37aa2321469a7fbe82663e1c81415c8c80f69c45f2d1881e064112d803859048b1761a108cfab05231b278b90af168c7e38091bc35f2d18c19870772761535e2d18c19ebc5a30d2c049188ebbbf5a3082a9fcd582d12cdd2c0cf6c48800bf37941b7ada64b1d98edd645362ed2c4de2e44f05dcfdb56db675e3be4dcff3d9143ddb544db2ae3b65528fbc4ece4f1020b9d799ed599a538158599be6d4dbc94e399bac1b451a5af72dc7a66a92d9aaca3691094447f6bad1f57624e727f73a3f399ca6d83e6a3a6feb9e6d365571ec5edb9cba6f68bb97d05676c658b43d9b66e7264a4ad159ba9f34ad3b87c26b55696f3b8f549bd0ef56bdedf5cf4fd59f6d25996afbbd9e6c529a0bfa57537a3e12fa3a3be96cd9673fb8bdac4557155d717f3e7bfe6cb334194a637a9dd96e71b7ddb6e72cddec9fdf9eeb7ea3204272469f9eaf33dbed29436db89c927fa9ed6f25d4c6f49be95f48eadf36adfdd9bead2a528afe667a36ddb2bd7ecbaab767cfd76177527ad2646b4e7db57df6f77ab63775454a67fbf7d249b3d9cc7f3dfb6c4e45d773e999d454e937136bc20c655355c6aa34a667d34d6b5fc768a7aa13a3471afad7b3e83749c2c2abed2bf9578ecd76b6e823a10fe45b3657cbb1399c9f6d1cee5c5b16a5b5ff48eaced94e15feb5a227ee738c58a39feda5d75171d893f63d2204f9205be9b41d35ed12fec5e2ceb5fd76b3ecf94929ca6e34555f4debce49b1a1e7d2f92dbbdbd3a645b0c476ca541358364d81288576afb2544dd2aa4e369b423a344b736a50ab3a5192a926a449e85ef7920aa5559d98ac924c35814935a15d55dcb6eda2367782926cd392ccf611bacad8a31c14d58909b313e8044a87d876b3acd9949e4d54b5685569b2f4dc44499a5adc6dc9b61da1edba97d2a15675a2c47674a629d8d0a0bde66ce819344b379414b60150f696bba153ce9bdabeedcc49d90640d9bd3e8bfe2d81bbb7e064083bdc935020552d529dd86cb9a0981adb6d4eb6a7ec9507c8ceb66d766755655b969e399645632d9babcdce58bb59762fad9bdd6b9ab3d9cebd84dace186e6fa5586ccb561589d69e7b1663526db633b66ea416b5a16d2e164340cbfd16c0dd5127733a771fc1c91fa4bbb3eaba0df04929da644bd59f9ddbf66afb6c8b1e3d8a8494637fb65b2494c6b69b6d9aa2ae6dbad92353496c0389c558eeee82970649288bb6b6dc2d88909d9da414b525a5e7ac693d6fe88a8b2da92b0e77c6667b457153366ecb64e7aa22b59b6dd7cde662b3d989e6a41ce5d8a35cbad7d9ec6467b68dced098ecdc48b176b331db96a5a72c6996abc55a76e7a4ec753db74dc61ee5d858bbd958bbd9f58ccd66678bb6e99ea1e79a3b77c2b85f2fdc935a684c51946edc09aa93212f9ed7cfce4d360506bbc9a6c43ec019012f71f79be41e71f79993383feeb33d4397d4d99ea9b2747f93ed6ccfd97f110fee6cd91bdaeea43587639bb652acdd2c10f6281d32d9f575634f261182ec6cd989b4b38363d9f575f4136407773b5b76dfd0d674f20337dc7daf6a9a34346b65bbb6d736ddb72d4b736a9a9e7bcde1d61c2eb6db73af3276a33b369b9decfa3a6a9aa2aeb89d59acc986c39db9d86e73679beea51d9b8222ed1567b3a14a4ab24d93c5da9c4a6b51a658bb5976279db818eedcb458bb59a5f5bced955d5f471e4480cdfd3efadb6e876e6a9b9eb427b1d8c3f64ca5c9cebda6b99fed75b7e97e588acaf64c4de2ee39ee778bbb2739e9018fb3eb8bc8abe725646767db4e19bbd3d4a2eb89c31ef8b8c17f0423ff3023a36fd913f75b969e4bb3f43c72e4276744b65598d94e98a526dbeea4f52c6ad3bdaeb9244decba5124b4559decd986b277d2d94249429ba42acaae5b850eb4604fa6b7d94e9912273b9822e464073827edcf4fd1db6ed1dfb6a41465df244b32eefe62dbdc115972717757d3595983bba7e064e9e3feb2d936137bbe4eba97d0a44f4ad1965d51a44752ff5f4d365b0ee9653374f6ec7e24f55973b6836ebb1dbaed76885dd5755d426bd115b60d775393ccf66ed3219aac3d81da74a3b2d404a202bbd973db36d1943d4b87dcfd03275d077077274eba76dc5f2dbb939272ecb7b424f4f61bd7d49e9bd6ea6c5a9bee5b2e693d7fd3daddaa4efe35dbb4674fdab3cfb49da42acab21b0ad376d2234290bd575a91d22993ed127a440872d2a0f4881044652ada4aa70d288810a693088810a693884708d349442408d349f41384e924f209c27412f504613a894408c274120d09c274120909c274120509c27412f104613a898800613a897e80309d443e40984ea21e204c27910840984ea22140984e222140984ea22040984e222040984e22224c27d10fd349e4c37412f5309d4422309d4443984e22214c275110a6930808d349c4c374126d254332166db27790bbe3b89f4e723086bb339d6b909790a18da8146d7485454c32e594a111190000000003150020381c108a0683e180208649eeed0114800a7bbc4e624a15ca83518ec33088828c31c020400c30001800424353e3000fad6d555244426786c2764cc76ad55c31310c571d7f2ed1ae1c5020377296dd44e2cf3d659d01075025af7afff82bcbe25d941214800c75b7eebfb570868bcf74b79dc53ade15375117b07f1557ddbe21f9f21978e202767684e4891c9e490b335c9d4a845a79b7f60fd73f48cbf3f68754850f8ebe05793f6d6d8c93d56ec2877a77d46f5bf54edce942d49dbea98e6513b07a599067e649b3d5dc7712349a9494c78f015e3cc49d4f36bac732f8898166efb44fa1bd25470579a7a46b36b95b4d5e03c267594126c3bc2efa0737eff6db6a604e04f14828288e9253929b5e1dc13c7a4598bfe7e5d946b5a28aec41befcdd937e129e8469fd13e1c9b8416f8d2e5d9f2225b8da1c8cd6ee230e0d3371cb125ae4f2b2ffc4c04c742614acc30838b8755479ef7c07c1f1c6b362a0e36154c5ab79b98bf7e2338c8c27007ada70821753a10b7cd111e6299089e4ded88d4c166aeaab6dcceaaed53924f326df4c4831298145a053d65c8e3d74114fa7ae154a77d701d391eb1848d179c13564d99933e62469e49b27884bd997b26e6f54abf0c901b8dd8de11a1d30dc62280da2f0eacfceeea618f9511690c48e0e17f396a7507ec594f0586f5063bdcfd37011a01443f161e0bf99dd86f6337a183a43832a91c215d747cd18a0838b371683ce250d9883767c8a06f875587b85b50ad19510e28e5c57d3780ae7e4ac4da07b619a710cc6381caf1cef54382b09f3020feee7e16fcae7ec24f80e097ff271b9b5ab3f27248642cefd9e1a13c71fe57c01fb56b0b70d9f5cc023e74a06ce36538235676be2922c2af94b62cf432eef19b3609e0e6148a052a394f862e9a216585abbe51ca85445b993345d172700f3a6a509ddf1dd299567ea48f217cf833ca600c5944109861217e38fc4317ad2c657558ad9cda8535d37a084609b0c21d700fe012c6ee9fcfed03fd6646fb1fb8ea7314ca72f4cfd5e01fc8c882cdcaf8b387707f0c0a3f14aea9f860dccf40be7cf79e89347245a7803518dba82569c9413766abbccd312c1abd37a2b29a31917988f61f62c4b45e42db546d9dfc1f82827ea5d2114b8dba25f1d253c6f38a2bf4b56d7c8fe9004b0e6f55986b12c27049440a00d36375c60f15162b89f7d999315307209c9f7a492b58dcb500a12fd2d25e70cd4d35744ca72d779ec9ae13d4d63c1cce36c5721fb547c374b59ce9c96a0a2acd1ca6b155c9c281c807f67619547517d1a74e24c5bbd9be4dcd7aaf18fc10d3485d348159662fb6f77f161722611959d450eea9dc9245d1dba90da478b9781f1584126da0ffdbff337b67e05b4e790102c59f1e6abc90797c06b012db0bf1c4eb9a7ebef563cfedc05c554988f196203a5365f4eedb5d86916c4febcff3fdf49879074d4209bceafb98230780e78027694cbf39e5076b67dbc79a643415d49512f21371e1e73b97d8f9403b461151df3f3666930a5394ca56fffaf5fc0a44f893dd0ae4d7e4afbc3e332bfba3153ae2f15fd878bd8513a7d139c1fb973e32c840b82f19edede10c4fa905de2703a78ef5f81d0f56e2a8d2bde2ae12a51a8d959f9500ac73d1785179fb3058a1880a6b4a81c04f05ebeff7c7a65f410f2526ba5df7d8d4ecdc9f6fddbebe04a15cc603fde60c17b2c836baec4a6dce6f85a7a057a9a4b56c996d5ffb76491bc81e4ebb1a9b4403215cfd961efb0dd4c6dc97777455babab7d5eb48b4ce770f251f2824db8a11afb66893bfcaddb26c023a9a7b8a166a7ff1709f160c211da7afb337d4cbd823316ac7b73a6b5dd4c7c1f180043cd313d8b1db9a2d6acd0465e0b975837ebcd85032f055ebb0b68c89d2826b17749cfa7a3498892d4ddef51bfeb9d5e0944804a8087387367eebb8cb965c90ebd2645c765d47ae2ca6f32878d4399cd3158261c3ce7c7d398c784b99b7956d4867dc3c2c39977c708d8f9307560918e3c8682c729b3820c3651be98e3e093a2d93d113e540c0363da34b83887cb8bbf93fc9d307807526d7aeefdb0432ff80ebe06be91dd97c7417ea9ed3c6b0a71ca64591ebe056904883347c657ee6a715ff4c5a3982548b9f7867ad0bb49e22e9f8f6bd2f56904102434302dd14847e9f40fef12f77505b932d4a900fa3d008ec590e46bc4c6f2b48c685e4b6253d2a33eac15f2fe5e966d550c9b9bcdfa329e13533d3f2a3874e283fb6430c7acb81b6710836fb205578c35675cf54da9de6634568b849d3f36d4e2c773bc66e7925ba80984fed71f98a61f8fd8bf0bd908fbe61becc0ec049f6ecade38cfec100027b298d4de76c2e3339936d759011d36fa8471ab033d0f858dd1d7230986957fc3ad59bc6b3d4e1ab2ea569058ec8dfe3f87bc34841ac53f9ce7ac384c377a139f520f1b4a4f8c89c1d452b1895d4452820c98cc0b7736e35c1f52279b8a50c64bdd9136179ea0b1492d21d2e9f6d378d4ddfdf77c3e0b87b391e897241422a1e22f4851698397be29fedff277eebbb60ff86ce376ca6f3cda73b87d5aef4511c8004a95b482cb13ee83415d7bb7f43dab84a48e4afc6fc03e4c8b2eea4f936b7538617b86c1548356d62324679de6ae4948f3f7a2a0478e6fdfc668ea8e311f4fa7b8d0d466d7c05bcc25e825a93e8cdbacda6eb2273b72c6e7a53fab252007858c87609cdca1c343a6d0ca1a3a8f2a457fe3966756ae5c14b88dffcfa50dac0f6e1a33e12dfd0084c3eadfbc39004acf67bd69a68220f98854c781b95b139368cf3e70abb1ef8d8a0866a079662afc6ec108c2402b4ab254a2055281d54a89cb945453f95cdcc1c94a1d1705e9b94a0a61be1ea2b35e8b5fe4366d583224efbe9ee3e9e8d8137bc0dd822103883bf4fc9056122513b2c00c857c052434fba6f44f6df4f2606a69a31eeab3dab7a0ee0568827cd51c4d0431e182e6eca202d5c339f478c2b892d867d9b0a685a293699518df6dc2d06320a07e313288e92191f723c97858c6c308f67602c8a85d6324282e614612b9190005a7587c9a0af368a015117f7f534748581a0251621b90c53a9c7124bf80e1647b3592d05d9104a1da9f33dcb8563380e78d36b269c53e5830416bb45ae827f4798370717fe073b50ebc7c6eb9c97ad105c6dcd2f76468f71f0daca3826b5185259d01246fb21a16cd13e9a50788649b1e8878b1645713663675d273ac47af6e54d58512103132c6caca58cc9d546915298fecea4c2e276b6f5b09f968a39a535562184010f36e280903412a222dc395f7de757066efa335c69650cdf0cb223f0a9b6ecdc9be0ee0cfddbb7cac608938b282767ad11114d0396680967e51d263f33639e75359dabc0de8cf6a648587724bb9c626a32f319e7b8c5708b656a0d5dc7687e9ca1542d87f04a7d488d394cfc162d23320d800fef6cbc8e317b9a5bcb7e67bc678d7b6ea1e4a077f3861d65dbd0d40f0ccc7918272a3a024cb6f894f1e18254955d737102507b9cb2f6d694c0e8e7185228fd52b485a0b562f457481d5f549fb9039958487061cd730b8c80c1704cd3acff64cfc925a962511e74ffee8be80b0bcf149568e3c777884b8bcb736c3372b034e9f80df5dd3eba9464350c69eb3cd4274ba4aecd604fceb3f2a80121f53a70a497cb2387635acb4dba547fd6319782cd5966bbbf24bc6e2cd0667a416414342a48dc6fc4101872519f62e55b55be84ba04a30799a696db3390e18ef9fa39afc2e7c498475c66d0e40c186b7982e7911008d52b820f8c623866451226549435d1476259038f6c1e687fceb0a6036b00d497a144a4f9cc4dc3c64cedafdc38196f4d2d0b8cff81810ad664075865663d37eecf67727c56aafebb8a8a5ad79efc5ac41e95aa9a43e94b276e167ebf3ecbaf8a60db3a1e34cbb1ac6fc056fe9daa3659e666cdf16e93457846b8822dc9c4987adbb2676670bb94fb20e34e88b1ccddaaeb990cda1f8c7364108c62e84ed9e2d3138f3a231fe2874058d93277550aa11c939e4226b4beb352f9bfefe610c0fb8ab4df7b348bf54c708bee81254835484236cfc78a17a176188a89c46a094f1df4cb18eb93c0d07340667e0f397b028161641f5d75a7208aa8927c98367fcd1d10cc3ed6b7fce6073751cd50b9fd073150a7f141c435909eb2ece98f8ba88e40b103689a7a79241658cb552265499769a2262c2132dfacd430701eb31ef0f4a8dfc7be221af90e5d1c6208ac5437edb87edcae9e84ee6f2cc3f4138ad6bc87862afc9fbbfe16598aa394b5a638e7d7519ba5a65730d4cc76923a102a57fe47cee35d56f6f37906b5045454eb7b744520a302e383bb81bf51ad7171068732b1a670218ad19c7cd28d2929a8d448a92a72c8eeaed4f8175828e59c05196e2ea8d96f5e31ed08a156846ad9eb10c63f45ffa34b14901cf1f5d99d87503cab8145ce43530fd970bb7242074d2f48070c1ce98c8d1cc55eaa67161c00828e84c1f6384acf5e6ba18f54f8f41965c5d6223219589ca237c3234286468269b6141211483bebac9ccbed68697bb0aeb6b3d4736a862d817819b0b1398c842cb68cce95993c07e0417689ba710aacc051544c44294ad96a3b4bd07737f96170022fb190408461d130a9e0862d5e06ea6e5dada20cbf3967452e8d94694f09ec5e5b1324bd3c2fd3f00368423d635cc7d37b078588fd5671752d38840fd83a8f0c0c9f1a3ae64e68c368df81b27f46929205d5c1bebd0b4f3171f76b0e6571ac9ef948b8aeba1c79a285ed8d283d17ee1701559d4c107036915ed23ddf849a685d81d601ff0354b97b8f02872768473505024e336b257bc1e175e89ee072ae34cb060b3c1c33552d899438369ad4b71a3aa4dc0287d967069a41305ade70d13246395ee8f3942081f26a86a6ce7bc910d77d494f85766cb7bb85a3d8e2cfc1f30b05cde42a9a4e44e104d93db25af6e8c11920ff1ffe81c397f5dc3251a5c86228cde1c7d5151d24fb8cf4d1492dcc2cc3905067d9d0853621ceac66cc37205e0a7bc613923515cd675c44bbde2199b610b707daff2000300c1c36de10755d3694e1ee9d6fafeceb1d2b4eabaadde9714833448ea629f3ba17725bda7645eb11e51fda0d345eb7a61f97716bfb4c2097048bc2b4bb5e1e4a87be78866b5ec061ef23f56fb6cbbe97e8a9d43837b1c22b5f36394e53de49b9bc076a8699de4c1319af969340e9297504b12d05f4ebe75580e43deb7b3cac6befa5cd88bbad506c09f27c501f6192f335f052d0a89566689df0857e2417f59258d103238c49e372fa01f885cbd434fac3c6c3dcdef63180710e6109768d94640a63276526bfad7ae11ce4a36b423c4fac4f84eba2d004120c4bacdbf4c62b8c3d7f86b4d3f1ac507773983c9ff3d7c6d7cc2f4d4b3fd62c6148f75eaea4fa6f8dbe829a87117384c23cfbcd214a0f1bcf3966749feaad7ea462bacd6a5bb4bf548bab1496249b1e16170c7a1e8f3665b229b460e37d803848d00f9643b8e43f365d64c160e9721c1a5aed34d745386f77439902cddb28da004f82dedd8f9e0045ce49ecd0dc0ee177895c3dc12b6ea2bb419e02991d32ad51142893040a55d223ef64af4303bea2b6ff15ec2d63060def59e03279a1339908eac1933c67e9cde533330c17e3524d8ca6e83c0c953a6f530bb4eb0c4713f4781fa8d6ad041b7f65724f3be7c60fc64eb147ec540f7abb4cfd798a1fe724800c32c19a8c8f12aa51f7f7240c64ed7d916118da4295f707609789b065dbaa49478400d6b90373b9a7aabde32a077eabbe80e54054bbfa9ee95ca7728d632ccac510c56b9623353f90f29709013ff9dbc451e16d709584e11154ed88eab183ba15a00b673bd342ec88bc27b73aa3b31f65ae0d3d8006105a59cb17eedf7ed7fe835f27fb5c5df0d9979b9cf47ebdee4ca375b0098b9ae0c79425668127143b77c4244a051e0332ca557bfefda8620a74d054389a995b68ded1f91dfe5eae4813f2975825e52475ff36f1cb37a7170b3a5631416ea9362ad6963763d0d86a374d5146a1abdd1744d4b33492196245818b6caf03bf98f3c8ae6c6528d88eface9836330b84469db118a5974dca97f55bad01dea4662ba21d4ac44a8376ad8d45faa6bbd6643ed7f43efd2eb65cff2dbe299dc9f8279cec727c2dcd4bfcc708727fd25df625bc5f7a6ff6dd1d0d5ff70f20be585dd9ee11f17edee0c0093c68df2c1ff2ed5bfb612fb902ded5e6aef061960fc564495aa41e6f1236d15bb1deba6f517a72793e785f32bdedc5f8fa17f5819f76be5d84f80ff5b37b8edc350ec77e0fbf76c297f9c9454ef2564c731f2e4e8881ebb72834df62958bb261b7a5a02feb1a944fdbbf2e8742a6232f0e58684833b407ce9e25c7daa253fef8c0b03d4d03fc25ce521bd06c3058a6ae804ce3dd757adffc6b2b85f4d7401d5cec7eb888b428453365f3fc258f8415e7df2147560378331f747608176383f4f1fef6ae89ad3745266ce67c6753562e5d61bf87737bbd1d8a7f45f321bec75e13f452eb4c3856083a9112dc7e00002cd74c08239e45abfc6ffecb3c3e2e780cc7b17ae5dff8fbec52c7c883206b349e53a26e8870d2e5b0e0817fd74bd770db58099fa3afb0bdfeb205fc0ba5f0d13458d8da46f3eb73df26e37ed1363fabc16b68accfbfedadb9735a0f711aeb1c6de12bbcdab8f1af43b379bb57c9362077cfddc88d9206aecb4cc971cb1a3423daf20862270dba88b39f7a680c37df466cf66091e75825dfb5e16d0a7f29d19ec29f8baca33edb5f54a348333a591d4e33c8bf2303891cc652b43fe0c3be50ebc74cbed09e33ec0b406accba17a2b30075d761da8f34fe2b76765b8d93f8e83ba37977f30d37e1a38bc588aa48a0dcd619bbfda4c7fdb449b45ba1279e371451e2880eb022f728f8fd01629130c15f04868bfd2160b3a4d9276118d41d8782996e34177f1d5122264e29d970bb60b8ee1e6d6d23595812f7a0e7080b7c28a224fb2f938638acfd31e0182750a4d12c481015c50e380eb094590bc02653237d6721df8ed79403d406c1aa513d38717c567eeddb8c9f1a15b2a03c65300b7ea1008c02778da3c833bd0a28b8595c207250824180eb35e29291ce76640750fb70ed6a4161ed97337df68007adc127547449963bc8fe604d375df50b3e064e282fb1c30fdadc7e49a45fa6dbf7737e6541f60d41fd6a205d35aca27755bdbce49d5cc35942091edd42d1a8bcbf8b18e2494e0b33f58b05eb59062cd20f15797bcf80c09dd26ba59566e7361c70fd0f7b421d1dc5d2c05ce9fa0a30ac92bea2709e5ad935aa3a2bec26fac8f3206bba713aa022b2f82df10b13df73be4ae9ed2367ea8ca59b58385c2c7729e5e16880cf174f55b60b0875eef76293af61ede12679c168775f91af271f82f0f8a414347be801305cf99e40ae302f52c9041609d5e98b21823ca9fdcab64f0c66d3efcba7bf8dab11843b1c7e1c3a811a6ff3f2230b1a1da86202c85d9bd58117988ed2075d56fe3c1645915b60c697fe42bb39a89cacd165ceaa3b9f15ee58af76e8f2204e1057ef782b144d4f326e08299822fc738ae49fb69636f1e8f9d21e744cf48848ecd7e398f45ec589d5d09bd763c280cbc09293379be25774a808840257dc11afd332ddab6a7ebb85670f066d3cc0c70072249bdb9a64e6c4a5d030f12119b37941c736d75fe1b7d22447c99b7fc88e2e4eb4a03ee9fac078d7e6452565ce529e744fa7942fa6ee77da6cb90ad030fb698f8d2ee8b93044bed9cfdc48d5081e8db6dd099882a525381270c367dfb42d12d018104e8a8b4e47742875d5de562ce2f4073df7d85a6f61856c094e70562068c5ffba375216581452884562c9c8f4dcc37466e6acdf0c1bb83f38026819b16bc627c753efde8e7f460fa37a1f600e349c4b4a3e7243376acc48eac0b19a8d7b2a8903947f78435603c885df546c28f72381c14ef551e390db4ff3f743b6166686b7fba876c58947a7a48e726b1c445edf20f5f568f623f41e197a315fe687463730e474855e943b884d919e5c8cd8f79837d5c7878c9a06fd305e17252909f1103f026482ebc9139117b25c0925ceb7076be3ff5eae74385f73de0e70359d8d155d66ee479a065abcd9791103189d07ad58865de7c40bffbcc91fd6cc7172084c94e31d3135df359526edebb0640cd631db2310a690253bca9ac93cc68a802834f6d8f8d06c86bf287d545a467b812f29378cca69f13d29c44fb7e20baee730d3e84bdcaf2691d7c15f164c84c0dac680c6558c2854bc95731ba01b646bf9382d1804825df3872ec95a0e56beb05da4101a227572031d1f3d301bfbc734958e88e4e89d439c899462faea23ef0dc03fc012e1a3ae0476b01e72fae78ae0752328b50e1dd02ae1fc100f2804e067bb6c6f46631f17172dc8443153c5a2e81acbbba4cd54042b0d3b0451de2441862a596f505bec95833b198f518ea06855bc2270338ba00c331346b8b722b98288dfebd7988d000b9c0b2fba8437562205239c4f47b9e6d9d9865f33ca8e569258b61141e0a766ed666b8418ada18b28e92d2befdf59bcc776dd3c67cfca24de0257c918671406460f3f920d0b0a4efcb945b9a6506e9d1e6ba28c846076bf6a548e537730aa860e83cf5e3b15d2fd897e49be3a1eb30d8011543ed10a922d0d9a05feb65a1cd1aac495f163818b08e8ec977942ee8f88ad6ef6ed5835818bc564ac74b03612fb240a235f0ec6f30be048a97c742f34a532b3c9dd6818895747fe27dcc7af498dd02169061376cdce155d40a874c59703ac7303c19239005c7c21ec061388a0537b28bb037bb733a0c94fc044c6f9b540d257b7103b5439e9875473e4b1b25bdf44197e0a1acf26245038d405991be3f652585c247b1720abb658ea8405f11d856ffb455b4e119f31035c0590bfd660e49afdb642527d452949290f614edef943cfa0a07a64d73a0e926047b98deae2170768da9c32f2da67006322ff0a0b16a4012952c2c47f8884a9327618e73b5bb7c4887cd4bcd65af9a9cd51efa4a5e3fe25b4853516905e49c48638e56d8182d69956100895a73fd041b46676f64b3439a6e19b8fe7574d64dc7f935f13f6103e84ad89579fa8453ddd1ab5edab172b494c3fefbdb01f909fcb520bcc20a06c1cb6ff9f110c4d1605150f33db713d0475894589a3b78858b4d32031443bbf61a489643a925eb450348d7944cb12bb080a42cb80b957b67b073a30fb39cc7d55f8940e43c16d5cfe9d375f5ceb08ae42ffb65ef12e76f8f37a50f595c284e4dd5bf4e9101c8d3382d3ce39930162c1ada7e2cc0803a620bd3a6400ca2f58e7680d8167b07e3c40fbd17efe2a900ce8174a51d353ab4fc1022d398f14985c60f2e5aee7ce23202365eeb289a0b94812ac6595ad09afdba4654b09f5706c48b24a5024a0024653dcbf23bf6510120192bfaaad784dfa01bb39a8aee2a388bbf4ffa2f718beebafdd787504e86838ae8ebf3f52c0d7f3a343f6d9e8205cdd4a1bb9b374eef54259abd93b229d4666bf1b7b61f86e2c83148112453ad3f1af19170d6e0e850f33cbfdf23e567051a80aa325c053c417723abc41fd6d5448b510c7457afe515985da3167f3b0a78ba96216ac754869e0accb8b02688f7950907542a81ea12cea20268b3a9eb607063fdfe3ded2cd15d3201ef6b574f18228b15a8492c74f7d01aaf830243fe4ea6a683f7c8c14084ee622c8b670df6d11b524f0f3b000c07d3e9a6f6033f9292aabb3825edfae5cf5a064e55ac12d470b84593ab1ef2d77f3c3206db6c1a79130b9231f37fb04de13b6789e87b666b197c5be7dcccf8148552ff1bf27717d14ce53acf424b7f7289e45026177c7c0786ab4f17bbbd5af07aed6a10c181d9a31e1a14b683d8f50bbe41f6cfd0f5c95f60bf9edfafe71890b664dae76ec4c7c8dfdaeb7a4f05c804377785dab69abef1fbd85919fef6660183851e34425561a31bcfa496f0866cf9b709fb4ebf84f5caaf9fa177138ea2e69fc7fb51a41563e383ba5e9cfc8c761ac1a5d9680c9888b5dcf5379e60778f05f54d4a46c404d98b8bb231158c8789a0cff370b18a4888fd8510d79d8fa4038f50b21da0c186fd9c5d36b43b0ff29abb80be046a6d0f0d07701ae3547a896b243d1cb7b2fcf75bece4112894d49c7102e3d20d4d4c04c3e5d8f86397627f4bea6c055e7d5d46021ec4ba2ec1a7490de614da627f4fd0a97990512454e516b2426a9a1a7f40fae4714ea32aaec52bdbc4ef236ebfe27575c99f0cef5a47f461ffe2592fb268c5c017765717865c9e7245b3b2f6937bd56836fe47068dd1feaedd38e23859def1e133fbd1e6fb9dacbdee4e28262e92709d27af31be0ea0244c1ee5431d828864f1db6ac46232817c26b09d90306bf40eae51aa0d87828b021310636e981f44b52998ce1616180f7722a62d3230a792f1d77c925eaa48b4bf630ecc7b0e5e40dc050f739440e4ab46af73d5f2dde01bd0839b1f002e451a515171a909f5cca0d0e7a91b87ff54f5011eccf6870f66f6332766d14077e88ce471dc7c70e9c7d8eb113e735af4a91a95c8259ac3c92ee11541ddfadfb27e4dc5bde33678c66e5d3accabe16ba39bee82d5b08bb5fefaef0d6bf0f81a4a66bdf2f78f19f035843b1aca11b3396a930a4111ab2c894796594b219d56de51aae50627a48850a1a729479342614949412a2c027ae3ca3882781cb3e50b2a5241db35b69d9d217e55eb917958bcaf5653f2424cf9afcd8b8006eacfc43547f46009363e4b31e75a8bd74acad314f7c4d1f614e57e335e181572437d76108bafeed9e92702dd1929c18f70ee37907d3015abc68925d129d41480479b693bfa2534e29835f44cbedb84a54a20d1755d32f1795fe4359f0868905b6d12fb4ca795e8c5ee97dc2a662e85ee84fb9dac187f288dced8e2fc0eda58a91e152602c1a47b11479e8f342abb228dddc4040306fb37b2f7bbdeed9af519ea3268e538b0e94259dedd97a20e96713cbbd09f735de42aae27b8e273f9d9ef57035911fac399e779e7a918c8e4796dd9b706ab240ce47738a6ad9c4d5d81698ae1a4eddc28e519893ef6d66079a840b83cdcc138628621938c16cda08b5eaa93f2b71495a15a904df96a91931ba5d29e5b4961e68552a4605f14bb2b355b2c87b02f4223684b343ab0a1284dc31e34a65f6d8153235f3b5af614880a37bde57d73667acdfcd28f2deccb08296264918b5890b991e12e464c3f090e078cd51fa72a7c235b7e571122392c1de4ee3f1e6c99fea365c7d4ee8d3dd23b7377b6befbef7a9ae45de09b7f89b1a46fb2755902d4f6d69b0e6f6a90ea4db30b8a8452e07941ff1d85de3d619fbf47696dd804bcfe94bae32819f5885408d8cc55affcd67acf26ac036a510f642d75d8ddd7d2937b9d4942394c5e8e75424539bab8d507a5edf3f42d5b9d866f1f0bca38b942c9592d524f7cef5d7e8d95238b7bc840742b312ed90cb28ce404e09834e069e2913440d2fe5def83f704e095c94f1d46413cc00b32c98e6c5a91d6e2a3045ca1c48516e3e1e76e17ec0ff0460db880451fc4a1b72f760ae1a106b89125bd5c49dc92a83ba817f5e20aad81ce5d295ba46fd82b35e182568f9a9396b5d43394977ae28aacb99e9bb723760ee7a5d6b82059860127f8b7ac9f7bcd2b0fad9f27962571be7d609473b77106698ba3a24900bd5b13444ec33240c283736f01ebb7e3c559f8ffa553b3c56d7fa364838f2fc1d2ba07d94ca75f77c23876329a2ffbf296b9fccb938592fa757c284c0378cd9556c071d67515ec38d198bc3f0c1191d2aaef05669286ea380a722bc26a12daf551dabdb02de2c56fb26cdf47d90f561387d54ec845788d7d77e0c1020f0558150fa42578c97ec88a64d61c81abce403eac09d084a7719d8cce5dc2fbd1ab156e51974c91f00d559f05468d5e394c4929c689e6ef7567234aaa507309ed0db260a85fe0635d0558b51015b08a065b0bb6ef9223138b00b0ea84c72135b1ef78c706d38898f3c1699288a8b7b678ce7a125f5f51cc217df58d5cd2ffc812a3b34490fecfaf439109c92dcdd12602c7592e7ad07bd90d21c69cab34a3efd7bcc3fb35af987a728dc46321910a8d04fce622b431225452bb516733624e5fecfd53d7c77f795eccdd3b9278b8571609f60381eacc79315b7d9c56ede41139aa50bd1a4168805a09939a7c2a321e29a924d954bd3ed9a6a9ea16f29c93f90e15234d7e49072accf691dca7dec99d662a87bc1f57e0ea02c7e82a84fdc564ed9b61d6b86c4b427f151626f839dee8ce7586f0e27f5280dc8b0cb0249a85b44dd3eecdcbcc277e30f8e5d1a75b7628754686122a78184605a9b61f30b1864701edb8a067d1f12549cc057cac3c0c00c7474d952b413fb8a3cf5ac1bef8a9438bae71a9974c977ea4096664fee8ebe7e86233772550e3d998e6130b5d261d8b81e7139cc3679944d83c264bb8355508a8a4e94ab32266d7098cc5391d6820a7b80a49a659537ef9d48cb8e845b0bcd944dc657f7170a16d8701e6c3d808fc26d65907ac1a66a4fec8661a3226a9ff2422af952b5127ce656b1227502619ecd416f6f9edfd12e7afdda6c148fc515135b5ea405befb7b5fd528915bda8f7cbeca4a512f2cfbd88f72142208154e70c910a8be7f04ca670377e8cdb3d3dfac6b390a1733cd4da8762856a8fbd6203c30f555eafdf52ac57f5639545f2802ac069c0b6d782ac4c656766b5b68d8658ac62957df7ac1b73ac97fbb8df633efb16a134de474a0cd973adc23df7c71426bfdaf5fb353919896015ab0ca51c23311dc7186dd1d06b1fc687fa86ec2424c01dde8611e40e165bf01bfc6ea1a007873a63237b511a3c9da183aa49c78acb21b7b147fb390f67c2fe4a8d465f1df8a18da76e84e3de96adb0c6a42d2f3a05596637e2b056474f35fdd30ffe987a1b7bef9d363b6c461525139afd172a8d7053ce057fb8dd41d73bba500a56e73dfd5132455cb654949f92e75b086b9f8dcfaeeba9d2ab43bdeac71f5e67c45931fcb63a2fdf57726bcf6112197d6d9ac470e9acb88188b1b027089c71241180eb59d6593db262cf423195383ee83cb61d09fad7fd772eeb781183c44bb39fd9497124e9fcc608e42a630d235d50ee53d8fe43d57c97e6d93a17ab60854f2c7c653a64a21dd193e9922246399bcf017a3df313ceeb3d383a207c2d41a6a4d224ae83a032fbe29f05003b95762af8881855a9110448fdfa0a8055ba153e4da131c10d64289119aea8d46536f4ef54a8064fa1f78bdc240b038063187f651648ff679f95eda621dbd492a9f1b7dc5c2113f2bbd963fda193081f21ae5bb0b97197c83cfa68a1e473ca62c209dd8194e83e4afcaf68c7c8d96a3de31bb12ec633980ff8742507aaa6ae87c08a6bac31af47d51ba9533d79c9d9e44cc19ae72600140fe2ab36dc170fefc3a40cb8ee230a151a82402d9ddaf8f6176008859df59afe9511aad6b87faea2a32a3ce4ccbc6b9214024d962d2938daf51d373f6e253c3d2261c94a22e96cd28154701fa68518431d1879e587ae2027adac3f20ee5245b71ba46e6d382d3f01902f02ea090e0d552f8d1ef4661c0ce1a9427d361d23b96dc2fcdf6e120fe15dfe4b3b081f726376502516e42a7e0601bb0197f81bdf26bdbc55e93543f45af8a4e8962b187d0243a5360f5b6da327f2940180039e795cf4e80ead99a4c567fc12bf1db3c24fe91986370017bf603e8817944b125f05890bf8053593281c10228760f00512ffedc97d7a7f783821fefe2d90873ef52968a0f85135004906cfd00847e2eff35a36dac7234f1182c3205e5cad92e74066ca685e65b54ab761b4d610ec08ad753407e92725d9588c1b2cba4c6cc64dd6e899c73e85e8e8bf2fc2fd126388816747a90e552fe62f420fbe7928d2eda93357ab0da830051edc5d792729b236e89c1d8a4c5bb8bb951c0a9e56492e318b21fee6b5f1e102d769d43cbdd09ec77d864b0dc1ef4bfc27892cf02f42490e96b4b27ec40d6ef457b97a8a580509e9971a1df84b59bc300cf7b446dff6f3a81f9bc104dd961790fe2fc47f9d1481bd9404cc0fd8623002fea80d81f03ca62b02a62e46409a87ad71f87a42b8931110f113fb7e23fb6b19313feff625dd20c32c54ad66660c78ed5f3f7d66ae9949d32a9a64dec9b8f053a3661decc68b9f610c119946c7f108507571fd9f3df23f74c7c90d29d0e0036c61cf765c3baa5b8056e7227dde0af734d3f4ab7c1e00e3c46aa5f850730ef923b90700312ac1e0b54aa0e8833ec612c3eae5abbf542f836ec0af37e0445353d3185dcefa50416022a388f6d399354a7f8b5fbd16fc4574eacbd8b98a9e2988d0c84090e7ea14cf735510deb9a330de1ae78b77b3ddec539ea79a36e5052631784d6028b36beca1b1925198cd433f83a692db69ff58f6a80d0cc5ea3486c3915d48d23e28682be879a9dd067e4c280f3bb6c5b2390f6ea996ab2479ee63647655034f1306d3d2e487b32bf5ab48a2d03fc01d7973769dd5c2a6cfd62ab35b7602964a1f3006f3a69478ca68bebc309634917ae03682493dad02115c1a90487cdafd93701716220caf731baaf4312113fff720efd62b57a621be8ec0fd6a3da97b88d76d0072409222f56a47af1400bb45eb772f898f6be0da444d3310fbaefc65dcd26e3ec99ad1858f03f7f8c3b4964a90b1acc47bdd45d610fcbf64fed1d2fb5037a61958ddb0b05c91c40031d8b911ba1516e97b4bb893e1eda4bd3a8c4d709d76cbe2e07e95d1742b57d164fa5a997fea9ba5e6653e3d2043030760651f2fba1396f6e58941c91b5602c42c3fd71a2fd36a7da21bac72409b58143117942b4be4ab55f60a94251e81d056b2fa6117b3402d25bdd57ab30e3b7785c1eb4a80a37fbe5575c8e5ba8dbce3d4d14de538f17ae09dba4e6c54c7219ccc32d3c84c526eebb429ea2b886101477f60cdd7eeb452e8bbeec4471723b0bbe955ee8649df6ab7bbd214204fc0bf2775ec3deabea20ec4fcf111039fcec224159f3240735746fb0608dc0bc93fb9e49363ddb82fb8456242c9b012a04d76b348bae85b4f18139873a4e45b72e231a1a37101943f077926ff3fe8155260e3b50e8715473e3cc99b6f07319c18278f13ef0948a41a8b84d207c358584514f4b80f14161a5c39d37a59f1bc10f383fad77c075faae37df2ac6403efb0a52e5f927291db171de7d124079b5cc106d98bc19bcf484b5b8e33d57f5d7015a7639efdeaf53c73e6283bc7d07c3ab986bd93ce5cf943f853e144f0b27f5ea2617b91e8de54f3c736d4a99d60498ebcb50ebb04ffb0d619e38872737f10997657183cfa9c822f6a11053308cf86354e55e88ed66b8861e184f0f85d07d2e1dbc1dd5c8880a6edeb523ecfa070c379bb9a2bd6b540b93372a42c030d4956e31c21959eedbba64860ac7a35996e113d64e705afa0080eefa3ad2a3610a20c56be5cd14121131be5498471b52a94fd8d465e17611599e04f4632c5af8c678a5f196502ff32ca247e649409fcc82813de4fc699ea3e19cd147e329249fc653493f8c97826f197914ce32fa399767f190f26b8c6cd308926e608430f6f838996b25cbf2164d8de246caa260cd9275b659668ce1c12a7715385a2accb62c24e03eb2a20386ae96da4905c89b8d8d067ec0d20d9a79066ee9660646cff58ae51b54875cc7bd08dfe0487123cfa9ec7278a9df77cad36d69d52d3e746569669eb49a193a687a810d1ba19c737ca900541732f1ddf28fd175bbff946c80b84b921631a93183a6b6ab0fe854c383a15bd4622b151eb5871c63969936ee460e92ec4360f5179a0ca90b302a4537953c6b2401bb1f3736a6bfc4952c3e14b156c10e5091695cbf3fb71c1ef1be6a54a450cbe97c8df4a467a09b529c6dab49790981236891017007add3690ec2199f4ff19cd2bfdb7baedde1e61245faccd5ae9d14a5c4ac088b6e4a947284c7919b8554e2eb7401992611cdd58384a434ce157478e8eae4c933fd25276c3e24a3bd3e04d9f41584ae64e32d4eaa4645410bd174fefad4e28e8d4b5d24304987e276d5adbefbb9f503c994b00f5495684c6c037e8a303615153f224a382360574698c839da777f1c0293cf0e694f2d8abcf85043960eb7c2d76a84e7c34163cc32fcdc9b23fbb9e7a2ec4e7ab87ede0673f388813e55a6e46ee1fd4336cee402da66d4be95255288e011ba5eca115aef09573ca516385a711fa8fb223b402b57b254a1a75c7ccc18fa0d6ed2f13cf239ca1425c24914ed918e8cc64ce053aee6d8bc6800ca0ec18c89fa41806c3c2c7c777369ffed3e5163f3258636c4dfb69b6e90a676c62a3b068a9e08c9162171d4ae8c834d4b2116441b1c3341e8dea658975f6c1d3633853a496a39b9cda9e32df3c844013be4b76c440940fa6cd3cad1b535b788acf2eb9bb3198e0836e7e87c7ce5275eae024b34e37e6cb05fedd01cd271c6be0e437e8c3dac85e4170e778bfd6ea076bd386fe410e621c64b5228b4bccf76122629a3415fbacc35bb28fd18affe7b0aa258ec66105a1f1300211022419e0bbe81e8d84235207baceef4c4803aa56fcd9afc4a825297eca79d494bd62461b711528748f64360969f5d4051303ea32c8fe4c9246768b5592d781e71a1de03686a2a1c376e60a1ab660ae7fba6b1c3a18de2c52f85f95e9edcb489a785c9e7742681d466e4052d14c185c454269d970055dd73c79860bcaabea79750f07faed190d938ae2bc67296730a2fd101e1c3be2c968fe15ca04cee1b4b32877f5c78c7088a673b6d7df928d6e02856b90a7750d5a8a2e7c9388336dfe045a41a1355425a566fac6c0083b58238c85f8a6a4ff6f3b1e347793488340125a63d89080ada42a71310a9a9523c0d859df12f1d7fc133e436700b65f7f860530415145b1c61759518b8a2784cc7bf12650a1f2f18423fb900563b6a6f74fa41db385ff6740836410b84c6cf0fa991295aaf50a4da34988bd439a31a3d87f8d12baebb45d30ae4cfbf7210aab6e5ea133e9b6676dc6d8190878f042cb9838d350397b1450231ec279be4d980e2c97393b8c998ba6c9481bf3bdf5803ba681f0e5ff23cb68691ea22f72ef98f900fba1594f68d035b71328f8910a12936566c34960a30efeb0eb61c2fdd9ffd70cba3072fd0afb7aaddb3a9de15da5428241ce3d597aa93dce4f6a6bd77c3537000593362a7c1a2a7e37f2f0fa39c95bbdc6949fc18969020061274b10b33b8232cbe0311665496e1d24a1b44c22e6ff947a347a3221e2f17f94006f4ce276c22cf4aa02cbf04e0bcb010b841231130e4340f7de01b7e667dfd67a6d201e17d741edd204611d9ce0ef132700d895f4e698693abebddaa7732adc60fc39206b02f791b30de8956680a84522a855bb597173ac096f2d733a519d5ccf6180b05fe3a6c20037f2f74b5a99a611eef72dbdea15cbde0a4873df888b0ae78e2b9e55a228a248a150b6a9cf19d1e3b14d0104d2ddea10c1fe6aaee32ab86ff74fa8e5587c4b2f29d10817cf54c7c4f87a824321b337179a299d2db843263068845749753b1c4f27c94bbe552c4c5b580f6cfdeae2c474c164d06e6aec631bdd02a9923bd97356899317743ca00590202e285334f943f9398a92d7770fedfaa17cda648e23b879be3c9893fe05790938b340f43557cb449303b9c4bd283139b5061d922004b06557899dc776d7a0c3e0db90c88a7be575fc814d63051c125a2d4ad14782a39a8b58bca582b070a7292bcfdb804b327cc1e5bc86642b9d2f5234bd8cd3040845a40837494cbea15a4ada3c507e885cb2a726ec5b5815052705f5bd29d5d82891b1423d4cdf0509058bc2eb064a6a639594597fb6f74d49a6832d3c74526aeeea5f4008eb28bb333e15c305e672448c1410028bf2f9b2e0dfa2cde2bdbe055a74cd55a468dfa70d7a192b6ce493b29172fbd0e2725695921576addb0c0bb0a108e39ef82e40c2b5e1f754ce68d0b131adbc3f729becdc51b46f596e25e31f7960639596b19b6f2a9088fe3cb150c8259ae8dd350d22ed79af31f9c50bc979bbe96dea8814521b61d496c612bd5a5d6b05388654c6e6c61524f193465a6d5efa06e05f4e26dd3e213fa7415555743d102aa6d0532e4be7256926422a2e10f7e2445d24ca87dcef79f761d8d5a49c75dacca8b8ddcdba9c57d7fa15770668b48da95d69c50d376607983630841947a71ddd086f42365bfd853a60d2a42e6c55638156cce1dc701382165154602b5e8c39ae754ce328f85b61f32aac1d2f6258733c00ba6b3edb733183499f22af5454441903cecc4494ee788231804ae25dfd1cc3f281ae64562cf7bdd44808e3563b237212a0ef8a5ea221a6ed19139f0d7eb311a09c523f5d34039e5f90de0c7c3219280bae79c4086f25a802ded46d69059108ff62d1a78c11d5f93df8c76c7414606ebf8c95da4eab7bb2b720b5a9ee3767a7dc56faef518c809ac6621412116d490c550a4bf721d225c3595bab72e248069412722c08a838fa6fb090ecef12386e04f313b91ac6a38475525936d9debbd337552d2be74b2ba87c37cbb4e6d28578bb1559ded291d5c66b0a076b2508a875232e20ea75e873dae737668c040a39c8d215a260c997cad058e1bd42fc631fe453eb8905b0dea737c4a13512e616385fc5d219ed09f06f165008dce1f6ed9bfa75004990350b24dacb0cbe451a14bae9ff07005231f8258dcbaa6f768b0e62008d2e13b8839079de1ed6b9000a8e0c7800dbd2871e3ac6b590fef0d5b17af461676704b41f878f7e850b89fd1f1f6c0f85ed40652d896321547ea8dbecdd264e76ea3abdacd4fd7e01923ccbf669f18205941d03360c0acae92330470c0164491a26c2153b35d5fd74179928995889fcd5d08373ebd4efebe2889047d6f7e1741243c5123dda63e5fdb6e885b874991d1c8929a273f09cd21f5164d25b1f0fe20c784e7ce29797e90b437b34289a8e85cc78e423f4048fa94b000e2b63d678983bf68a0cac7ab257f54a80cc3edaa959ea85873f93c2e11c98bf944ee66983387764a7cfc40e345f42d3109b5deca45f7b1dcdbf48d3b02b7a649a053b430729a3c8426fc8d3ab193367c4265913f9557ab0f9e049cb3b930774cf331ab7b17a6d3eb44d43629b44d02d8682727f441132bd199062194941fde2f1b37b663889b580e01eb28bb1ac03ea809127f1e4a3589a8ff03b47db7cfe9134203a7f565cd7579bb87441e57f208c17eef58e7a2bad11f4d9a106ee0a6066dc61f8c990d414f9a7c2ef1a91ab90c835ee2bdf77a4eb3728b52455cb998457f04f9c40af459a391611a88a77b091f6bc27fae83787cf2a25d33b1d98f69a9b08167d930632076eca61287172076d484003cc8f14a43812da5e63b0700af3757a64378402fd14ae6c5a1e6da20baca4b046418593b5c694a5b764a3639e17204f666da53a2c0e770b80677432f4e81d92801806192bbd224516028c6667d97b14df5d6e5a3e07989222fda28951f06bde933f52e61629d443b3bf80f751aa6e105627b219833a927366515fa78ca074f3b99f4b2dc20e1c94793e580e6f5524d456d253eb510b15c232533783b4f5a881c122457d43a7b7a65768e66e760501a43631a9d5b5d8110448f1c0a3a97a11382789eef8616a451d1433101f9753197d591ac71c528975ab0d3e5d27f72856c122309dae3cfc09cfc114248da35ebc212fc809db0760b513d1aa2d98ca8769414ee4834e9a66ffe90d8929200a3993d77fb5105fb3de7aed70373017906223d44c6bcf0c7072dddd0c34357dbf46b253e72699eb12eaecda7fa0fdb63d59baebaec3d3ae1a4d9ccc43646d8c4a24e2b5d08bcf67611760faaae613d336240ab9175521cf05a3ea2c5db77e71c93fe6e3952c80d300d1efefb9054e610098b9bcd31bff49af046f92deee5102fc63d20f37384e6703f5e5755efc242a295f4a0607c53be896fd80dc0196ea383cd13f792227ae855e3b52dcc2289c75eb7cf46918aba3d2ac433da2dae5b95c99f7b75028b686cc4e41a0226f53d359d885e7d3d719a756f31c25f750f3621595ddfc731d12a31d2571d0430e5e803c96d5d6a12577a4cbc668aca8df9c9ec840fab0f87193f11251ee01faa58605a5cb1cf3a3fe34c091ab1e7bfd04e4466bfd8ee4b00dd500aa786df408e492cfd3d6da50e66a05e7d795a1ae522c8e62531c9c83bf4178bb7e93389cc912d3d36a28ec71cc6b8af8d6d5eac01b1c03210a58ece2328c7086f5b8ebac5970440b46844757a702b34627fcafb12c8a91d42deec9323e8a012f987df27e60422ef15a4dd41e51fa5c7131863c62eb97daf54123c539b209ad41bf09440d571921a747ae75d2056ae288a71246abe0415f8468344beea8789a95d2a4fcffb8ddba078bf589a7985a923d0ceab885a674cf3200f2a6a10e285876aa85c759ea5bb0966d0e55c1c10ad84d4918a304e62d75582d83b34d80bcef2132552b2d5021cb9d10228dd58c7a5ebf2373b47282cfa8a97dee0eac95eda3891725cf66d547c689436ae761719b40c8348ff65aad71ee7155cd5dc477b6d13d4257bd668bbe46195dd44fbbfdcc0f64cb587b54420be90fbc71be8350fb4a8cced069abe85c054247d47a9af80893aa27137e00d3b85585f9982b9f6ed2397ba69d6d2b8295300c599fc0adec3114f6890f7dac00c03d99043e5051cdf3eaba88fbb0473271d4d0524c582ef4816f441b0c52057dd83a6823ef3aa058bed78cd31c0ccf63e3fb24327240388e6f586ee25f194af6f15d3f5a9085a052a0536d630c968b3c251d31324c7a76d7dbb40182a6de4ad787bbb7731f2f06e0ee2d1bc6ebee51c6ed9e6a25932b75360ce14cc4b8bdbaef4d816eb7dbb369c09c0431111322423b74af7ec3c86d4a158edc7bf85b9abbb03e24940b3c46fdbf0fe58bf7e24453098b08be6fd9d18055ed00209127ff9f25f9e3ab987ac0b7d52f1ec07bf3512a424228895bbe346e383de4885a0d4830b056b36310195216e66da8b43bd9a7e5e473c4e880bc9709f4de394fb47b4134d2c388e79d9f6fc6d18e27434783c7005d000e32c910fb4b2616a4374a566871be8fae8508660b161565566b6994ca43ce5ae41df19dda3bbeb9a80e42dd7fa9cace3040afb05178fc284c86c9cef7e691091e0a712bfb0347378bec5fc269d3e193fd1386a60a2ec47770267baab8b1f1f6659fb34c5cae9218b5dd0ad126e63170088b60c7b466fd3525eb4dc2b76a2f0ce09c667a3dc78459ecb4008ee575df98de954f33ae09e2d82f5b3fe6e02d1beddd9535bc781ce66949d1e56f6a490350369e741cb74cb033657b7a24538ff5c75001c9df58735106c55d1ece9e38b6a45b9a33b0a34828a8b96a7a2070bde8fb77aab814527546dfda818dcded48894ec4d9c625ab834e8d66f94d02f70032717ef2428e1df652273413cfd80ae296debb542aeb44509261716203191e56ccb1d0edb12998b2bcceab6df853fa921c1d3ebcc5b33d8a1d96a21f3ff4a5055a1478ebd14c1b60279f219a7a556e52b0b464b997d60b5e5de72cbb34108131dc416c7e0a845a3478287df84b08a62675756221009713a730ae64802da89268c32841650872649840e1259f81103154bd89ca9815361dd793c213620bd276dd300366c63845b8c5f4a642b394a24582d40de5862f7d857a523cab413248b2ca74b3ee0b217a3b6918fc2ed2250a9538031995910453547453fd09cf9e7aa5df2b3a7fd5bdc0a6804196091b2e8db1e4759e14823609ed9c74735167beac451f5a09d167082b2d1622abb62ba3a4c92f7f3b27095e1998c22a31a3e7f0d04913276e8d8ef7b5b5f1046fa37cc69ddc4656d7964c0ea30bb56ee4bc21a34b0caf3b10db40f0f5ed1812e00793777dcdbc53a0dd4e14e9f54f2d90e7d00787a42920e11d51f3993198edb8f2dcf5a6b047b3489d4e2829937e325ad4cf4bb829bcf3127bcbe57723eebdbe25752009745d4bb29655364ebb3f74ae950a690579a97a0c815e2c30ede53ce68a8604505c0e828f7ba775be975febfc09f3eafe750e8091b8039bb1ce347cdb1359aa5f8ab00d10669387fda0628c8e32d1b49bd8606005bc491ada5880fccef3891d6cd12e1f38833c7141623c11aa2dcf43714c48ab14952ed6c77098605d0ce1746ccaa3f959cb2c696e67c1c28155450d940f8f053f3dbf0d68e8c7a6dccdd7cc40c8d3b43f15f561455647f704099f1aacf2d755f01a57184e148ac2a494de6a8e88a5549995b146e7b12a62d211b6a9b82581d70630d0d951ea6c8547d5dc3ee5aaf365553141ced6a64f80bdf029a34924c42e4be189367622eeae4accbc05e5976f549edf0a07e1f8a8590faf8bf70401d1e7a2429f9f32d7a4426fd6a074bf79ae86342a12e43ffa7691b237c0125056d5b2e06a14f890430fe1745f7b807576204888087a6f55606732c4d9d0a608959c1bda07c09e6f2bcbc0b4acc06269e5bb6346b9244689a292362ac7fcc48ded19bfe61a19257b04116e1f3adbd9e862aae615b66c5c60a8c19f12bd4452ed329c40d87a13ebb47472b517e457e8540d4e0a3f2b1b28a79e6cdd8480f3685d3e6561529ca70652892e3e90f94c8187dbe51082d3338f675094e9f0911d8f3083a2abf3dca339afacce713a35fa21025b8ff4b0f474daa2f324e6266de9d0667a4fe880f47c1c906257ef89ad765a625238852504d7b31f831b4778ed5b313b0379406f6e67363664ea80e349801a79e7956e8bac0bf0f081848616813d1a74d12cecb42244d95da0da6c1ff6ebdb088d04fcd6e4d587d2806b5112f703319bee20abfcbe5466d999475f8038dc868ee23541114f93021a28cb3ae095095f1e51f0e641b43efbbfff8eac64c9c98bb8bd727a198ed1c2b192d2bed587e8ede6055363989a03079b477569e602dea2df34d6936c20419769cb3402eba1c296943ed0931d0c4db8d5f784f02f79931762d3e5dc7bf9ef06d52b5aa6588bc1d12c03f9d2b8cf5d4e98602e56fc5267016899e26024b143a8d2a05e9405083bc791a12a80fe4c3b4aa8293b89eda6f3dce04cf38c80acff9f708a163587b27521c64b02082d5d081b00160ad629a7b57bcc42a046be42a7876eb5cb10f54d4f75f45527419938ef5337cab7510e7fc2f2b0b1394dcc697ac7a0efcac30ddf7624bd89e5098b18e27d7d8df42f33a36fa4d0bfeb0bd48164ce5050504d2ba3064e7ad733397790430ff1acef53662e9888f377f9339f0bbaa39eeae51e4871d139f33aaebd37a00b0abd37b1f3769a73bbade0b8ffb5f36f5d09f614154f439842a031d8e45f41c067bcf82f56a71f5e2c77cd0d424388f90dfd0be185801cc12a11506c2df01038529753f5e08d7e43f540faca34d6418e912864b7b09651d6313e18120c5f2a69c2cfc1fa96890602cc2cb7f0b692d66cae6a1029fe4c0ab84becb707d9b85bc49f1c45cdddbf9c0b70fd0768e540067c0cfd15b03f6db72c7bc5191a3fedff65204b6de1b542699fb840f049050c260b6646a7c05fb4ca377a3ffa0bc7743e89e9e480a9c5036bcea8be9d1ae8538de6a6252fed40f9041db00258d6f657b048f1e5171aafc26777c5e30f77476663c3d51f9df072a2c9251e626dae722ee1255804f8b63be2d89623ab6b4d147e3c304835f6e3c2c5f6479c0282605ca62812285b69189e89c39ed23f924d771c501f8a5046d11bc4da3dde6a7fc3831a767c0fb2c7eff375b7f7551a9cbef5ed82b3213d31bdde44868198e6c2076e82ba21dcf7c99e5da1e5e400ad3951c09d07e6b3de4966afb0295dc9b825dd411c3a69b233ffe6454dd00377a4413815b5ca86a5dae74d97d42d4e3ab14479a39b7e87fdf26601cc00b9e08bd72800283eb2467fb6f1f2da847ef288375f0500a571e5a972a71b75159563115dea4b7fbde7c8c0360f7d1a0308934f09979661102592113e51b78d2d233c7b9dac16b030c6b403e6a51ce23f130d3764d734c426f3a5dedf41d4f33f0c354828b49d99fde94437998259d22c11a4137180c373b8e8ec99b5b49165d282babd074238492a35ad54120b65a50f9a79cb0a943e38b996bb9f5cb0cfa839189d78cf694caf31075d27fc5bfb06b5bfe73bc55765ec898affd2c7d52d069d0e3ad359e44aaba9eaf602ce33d4bbebe2b775d5057017ed588f50b16ba547edd48364040fb0f74edfe3b8e3d95544721691978c81142a60cf32034551d2c73ddf5c52f4c25e55ff9968fb75ab43c0501f087e1ed01a6b5c4e803aef2110135f3a61ed6191b6ce5e8b482281b076066c4484882d5611b58d99d0a829ca486f405224e2119100be27a2906767776c312161c60c0f84d01c2363ad09c1726896fcdcbc29694c91b5494dce68b0b00341959fba57dca6051ad691e44df6a4cb27e079a7a68cfc2ca86b28750755704118aa6a20561b20389d983e57582513cdb765312315974cec211de61a6220905374205156978391d88b206b91388ea38120c040835bcdc2f1679d072e5f1d3d727da9ec84fb16ea77da06368d1c47eedd8baa41f2282881443ce8e6ba178e225e4a97c66341f5090276a1316da5985754a9a791b58e84518248d68681737bfb843d56bd9508cb2d5bdc1683f64b6e98ba13038d3aaeb179c267404ef9c5ed4016c00023e133d452e0e167868612a8cc84f802e65ee76d6611595fe1f2229e9f87220d1d915face1882ef69bcb5c2a24e0f9e6c156b2330223e0dcfc465bf74a993ff307d930c8b9a42843a08602a1a80672391f941b13aaaabb9b729d61742067fdaf9d812f4731fd87950ac77dc347f4139c546f80ee4553e73d69e9bc9736bd77d2a4fb5eda74df499fee7b69d27f2f6dfaefa50d42100240f779aa8c9322b7083f2321cfa3a38497ff336c1d019d9379e9717992f97b7c7ecccee7289cf1c7adf98ecc2e747edf8d0a5838daefdacbb09ed51930b4748e73aa5584edfbc8c36a90736a65d2ad2beb2cfef5ae38d221e6fb028e1fc497f2200ca30ea0ec1f28d9b708f434412860c2d0476ab71c06d6d29b0b640119546d0d6c2a9c6e09177f416dda348bf5f391518abed3ee08f5106f093a88ca6ffc814f08499f67154b04fcf400d62060b3fba7dc73487f4346f94da4c9b18a1c224af0c82c84fa9007430495ce2a1975515f0f4e32086238185f8883de29eae0cbec12a8300012e5d03fe7e11c38247c3b8a4323ca87dab67f942fd7474de4061be76fd4c8f47b383e3b165686a108d53dd823022e0567e6b405f4c0e7f97298869992c5a5afb0aaf441f78f95a898078181d0007f1d04fcfe252d96b06d594e73d28cd9554d52758f4a9627c3f64594e4afee406791fa2f6d94f608ba5b3aa53caff1332a04705a83b448e143e443f55774303f348a0ab069c0561ca3989f913bfc463431ca89f3f68561fb880a83e80fe30844774c195c039d8123de6631923d5b3d1de1ba07817cbe6cc20bebc827fad3a26e7f26aaaa9b15f9442fbc2fb5d07a59219a7cf99a1a86ceaa2a1b305e5d7a7ce4eb1739bf30ded11f28083de711991a6ec3277ddf672c4e9054346c0f8516702bdcc18da2d3b888c87f89871b27203bd2e216de3d7475e821dc42a1906861059884dcd11b5ad03c5270b53f277de4bd0b2f68702e01fdf94fef6cf746a8501c89a22a78371a5482490056a8d0d895300df8d965ee6e299a5d86b0262ad05b80467c41fbcfb9f68caf2656d49951509bfaccc8a520162ee69c009c95f951e2259d39089764a0c3c284ce63560dd4dc66b08cf36fbc5e664953bf783710f92f8761df768d79c89fc8a8b39ede631b39848cb4d0609a263fa4db47862a45947d2a8bd6f1eba7794ff4fc1d8c9589e17906ab036f3da5e74601f797041a4883f40cbd0878b492b9fedb1d7b26bb0e3d5b3563352868e1037d611a5d919a82c5f8f4cb096909ae62770b8fc710c8b84e1982b582fd4ddf15e4fd3cc8acf5a16c3b2d0afe5b101e6981481fe399de6037168ea7c45f5a2cf20876b16ab3723fc89cef8de58e90882361a1f433368fe9b6b42e9ee5be35b8a411804ca7b04a45d58973a1ac9cad03bc692a030a16b2f2bb392f9dc658c8100c1485c5f2b6079a8d6694ab4c41ea25f9fd1b45763f192a261ee53170c1be07dbb9ec820f42be143608676640101b9e7d81739248fb0efcbe2ff65fe69f176c6f752a41285924371854e67e627c94a90d86be0174bfadc507e83bb24ee008a028f0c3d8c728fe6f776cd81c0b261daca665920a7086b7e690774f9290fe8477c30d30fd3ffceb6a94fb39d15208c0443d81488b801b53595c5469a530fd5048f0127ccbf2ba52e31df4d10c62a9825825f5645ffb8ce483228c5078c6ab81a327e4165e27d5f24b704d5111364f5d8b9929b0207f031f49d113384ba23cb612817eba7052c257873705e28b9087f07173c9557bd230ca83c7c3618daec31fde0dd3791c66c36a4afc609cc2769bb4c5898ca8244780342d9f754777020945dbe707d28289fe35ec9ab25c88cefeb77ab9caada6a1da715c34a931b86c526371c1a4c6e052f0f9d61e5b2501273feaf673cdf5741775c66af34d787f7a3724726997e574d0c6bbfd348f3d4018e611f2ac73ecf97d03621a695565a2715ecf01ec22abacac76368cb433ec151ddfd660c4967df0e7449af5e99c17c7e1e492c508ba86cda0e4c58820d1c0d803194ab720a2cfe73a35aed26ac2eec00812c84da9a7a4b847f27d69d939e2b36475b0efd5fbaea095869e217893d54e8c7be52c9796cb462290be432fc1addb138166304d825fa1e8a2d6b2933a8152835ef5d7af580449fe99103c884f71ca97b0d556a8e9fecfd9fdf85ad3d9e566f082f947d337095f087c301404c0fb514dee398f9a543cb9274ec49292f0f13cda1f0aef7119edd7750ba109e3a00075bd44160a6931fffae69682c0c9dc3c5cc27c47e7f6b1d58153bd032933f3f569c6764f5addda9958e6be3ea2458b4240ac5323124c5c2d6af3a5cb3b75f793a225c386747a6dc697e9998b8250ed585b1b92c80fa0f77a995fcfd74ebfcd7ce343ed29ce687879824b6ca01362505fa8b9b7fa72c514b641fbf1a9bd55880d52f8cdd11ad5405241b09230f1a4a9ee506cb75fcb148f781b8a03bad4dab5437a4a401def03a60715053218ab92702e5b75983f9420d13b420ec4acf0c43f3dc8d11642c1bc8b45a3387d93a52a882bc3025a5cd21cb85cbbc841e634c80a652ff35d3c3a6f88ab937c97a979750127171914350f28a368023c96b39cf6c63909965c12f787d5d835c0560531c87df4a76a6b2d15cde0a052a2a9b006c2e8c8887b5eff825afe66af1520d803d7a63b0ab66bbdb2f0ab0c3859a56d129c71a9ff6a4bf26e739009f68119a6e21916d8c888875bf96c5f02b6c75e175a3155dc8b9691908b39914a8dcb9aff1e960afc551b4fb5c78e872c0335e5543836ce101554958f9166c757275c2a948778ccd3cef5e60cd9f1482410d3ded02a00b662c202af9a1be29f8e3fe2689b7fc529abadd3837b5e1fa57df8f99f47786fe33e8d0492587164623591e05b27451bd8c39d37b3b0c6dfada364caa18832c3c83bc83047e9fe460e8d1becdc8f40ffd4a7d8117df3bcf449abaa039f2b2a78765404bc5324adc15845ce28b27a0e0551c0c59c282c1a98640ecc3c442dcbedfdef973af4abd3f3ad7f26abcb606de8c33fe956e80a3111b02c4996f04088bb7e784b8849a64393d5c43a5bcfe63a5598b332a9bce0bcf436349942b0209dd405968f482ce5cd07a126c7ce1ef4da3a838ea3b8382e0a4bd72059d3fd60504aa8b0aeee68c7ace4ae8ad58fed60c76139ae35b7d0514a57c26af925e932d1b0a89f34a4b2a17c33c8642254951d3e53f81c6b2888cda24cd7d937715d0bb8fccc31eeee3d32d93d7d22d9965b635679e6219e8bda8a92c8da0fce46a9bff2e648c2c44b17d5a79c63d774efc526f91883a78a9511b9ebbf4bbae78f65b60e9db73b1f4127a7a611e804051b20cc1f961775cba1b0fa4eb5aef33878c864e20b35320a3440ae43214e31f6e1b653c8c9ac99a40c1b5d9a9e6219cba5c85d83e2677da0c13cc1b30d8f232eea3950ae34b07a11d198298ef645e7fcc0baa1a3d06342eb046d5332995607c05f20f283a620abd8d42b001d25b0117f4edc26c0aee7880d61c0c90609c99a51eadcec8ea20fa27226e6dc13f5da3057d6b5380a3150a84714e4a01142d1a5ba87fb81b495983c2fb8325e11217e45deb0a97bdd8da8d846759ce8f57c557c1d3a220f51847685f46ada96a899c4f8797316cb697dedd56d610658b5ccdb2faf9ab7ab0092e5044242c759b527001714a5a1e85dac3d2aeea0054579492766a8f5c58ac62eb3b9e9a2cbec91769752cc6a82f8ddc7e9ee97049f719193bee48bf11de2cc78758c01f27d035188a01979a3155768a26510ac9a1b3e6dd17791cf50212b2c0c078dc2de2ba23541049ab8f9c17d9806984003eebd355a1cd8d4b79c93227a250304b9799c87da37afeb077e8bdc123a2dcda733ae0fd7c01b3a7bbf3641d0cb23f1cb78ecfa639d52355f53accb284a9ef98ccf50bdefe0746b2d8d0736e2e7a77336e859cf2ed72b0342ad02069ae6254a7693e0d7c5655e8c79026c6d70d6068866b695843e70891fe7c87183f2f42fedac3ae24a2ff1b63a72ac4f77c7d53889d56627249b49570b1a67a6d4e89e503b2ce1f8eef53221421e5692462dcae7c40e576ca1d949f57ed6bb021ee5487de2ea042bfe4d56fe15a0c405fec90559d9c69039d2f4e4123aa3cff062f2e3811c0854be4d2ea1da41159dac58ceaf00ae929259c8dc4a5c35cabeea287795b5d318be361e70aa4c05bf1618e189aba5696825d3096f8e22a6c51c5455d2ea26953fef614c4ef655b02548b8788eb628ebaedb40c4562053eb89d8d7270a94a4191b123a1b2bfecd605e23a2355471067ebe876f1c3e1020b5e60189c52434428e866902f952c2269024545d210c9b9a50a3b41175148b36dc926a610ae9f827822a9562baa40829287580041f69a22898697f0ac3193b20951ef40d47cab50f0b8389c6bb8ccc90f67330371283bfeec4b7f391d9b9bf7f4ecb39c453e41b63d23ba0ee73a1a71f6b7fbc6de2271a656f0f61b2f671efbc36bdf3d86438e6b997ed3a2ceccbf65a1cd73b6f4def3c3557635e04906589af52af5ffd2b1b24fe5d3cc2576278177c626f3a304def3c343c333c32bdf3c6f4ce13d33b2f4cef307c81be7aef9d07a601cf4bbf6ad1260ba952bd52ef11f85a58913f7de7686982c132d8a7efbcc76a6ac16090b4730f24493b27e582783007f9152c7dfe89ffb6cb4ad8f816fcb75d56a29165efbc2e5cba7cdb7638eedbc6727b4d987b6399bbe26fb22773d78f7b32d993f9c2ce7af795b9c3ba3ae90bab407e057defa546bd77dcae6fe32ba70723141d4c10e1caf7e5f4ded65724ddb7284deff21ffadcbfc003d852406dc1e87365b46041ca3491a7e56a812cbdf3b0f4ce23e04aef9d2e8e0d87beaccc8dc59a263fd10efeff2258cc8dffcf65f0cf5f244917c7fe9f81760e04fe3f1fef617e67b4c21b008d57179d0dc4e9d20b27817801c92fbccb0410f20bef3a7e3ae0110602cb069b5ab4206f63dc004a087ffba2031471fd85decec10a9f2af7deedda814fddea3db76ba2b1068a09717fd68328a7424ffa52b2f4a19c7c281a3b87f3a1c2d287969d7c331b7be13b83bd97f27148db6ba7bde63353f9cc2cbde833cf7ca6974f05a4b236dea49dd376384dfa5430e95d056abc8db8cfbd19a4124d99f324f8caae6ec6f31ae37d3a9ecd6bfbe2d4c9afd95e4323edb93208ccc9ffdf82e46c93704c8e997d618edb353df7edbcd068d7a646a348e32ec9f2be7d4ce2f2aff33829d75ef6f690c4bd9d2dccfdf0df441bf6a48d07ff179c1f7ab2cc674fe61f17d2fefec42f2cfeb99aa689a4cfe582c11ca45c7b9cc6e97a2c80da8e23cb4fdff9895c2ef8e1daf6710d3bb6fbb5dccf8cad2c2c0c381c7ebbb0b0b0b0229e432e07f9855f24983d47e2bf8e9eab6d1b27f131b2946b9bc6653caf691fffd926f1e2ff74a55c90ceb6cfc060bb4ebe6d3bb24623f3dacbb9bd3696db6b3ef7666d4732f9e7344c0bedbb0d670017b3bb3f5dec6f3832f9e33484b94cdbc9b58781f2c78d62b2ffc2311bc650f65fe881f61c50163bf3b72f02e37a0c5530c8abd23b8f4aefbc29bdf3a4f4ce8bd23b4f80de79507ae73de99de7a4775e93de794c7ae72de99da7a4775e92de79487ae71de99d67a4775e91de79447ae70de99d27a4775e90de79407ae7fde89de7a377deb177de5def3cbbde7975bdf38cbdf3f2de7978efbcbb775e8fde79c5de7976efbcfa80de051187bd1be2d1f1e83d6d0c6e8d0d079a1bdb191954a3b106fcc1187b7bfba901cddcc6e2da68006d8ca905c960dc7b9d07b597b383debb10bf4bdf968fdebb10f73ef732d9af6a78f9217f099fac69922e8efdb82ebf10ae9c6d92cdc741142edfdeae6fe2c0a653e94f7c1c6efa8d830bdf864e47f8ebff9914c6f45790fc7f1e2b71bc48d3c322d1078372916884c9a3fd4696c1229ddbf81037922bbc52902b4814640ab28b6c4116e91c98ffe10aaf229d77c5431f035b90c7fc0f55a820ff6dd773f4578e1bef60304896453a87c92faf229d779160c7e1ed8734b136de60796ddf7330487abcb6e99ab68b744efaa1cfe1603048deb46d9328d2f94dd791207f6e2c12ed38181c23ff9f8143ff87ffcfc0ffe7229d8b89fdff02edff19f8ff8bce6bb5e3accbb50ddf79a2ddafb338f4eec31285d5c78735a563054d1f96cfa7a89772413240b9b6619fefacfb48b85e2a9bacd7c7d70bd27ba7d17dbd2e36123f7eba2fcc31543ac23e0c76fa188629b8dd5ff36128da3cc89a43f76150eb63f22f1669bab7da26b3fb6b66767f4d96bf2c8fd9fdb50bbe0be64ff35980e4b3c0c4820d9f85e21fd2423bd257c18e0d93c7d86eadc29418dd57c1ed1d3f41e7695f859e8f42250a6f7a698646d6f92830e925597b1b9d42d70451bd9fe8be097d680614e86ed2f2271269f21824713b96ff5d2c170ce69069b23ce23e8d2cfd11a63d59d3385d77f78dc4201ec4836489935ef2ff3ae6746d2412edb88b94ff171de368b54d6667a7d9361cd1be5fe0749a0d8796db6bb9bd66d3c31f8ee28def0111df8333df030e3e0711f40e0412e33b21ee853e072a7a89b7a9b99d91f5585effb7d886af81a28ee7746dfb1a80e9be06c6de4bf9ceab9564ee8b5e2e18cc01d3778c7f799e6db02faf387a3adb34cdb3cb169691e58fe9dcaef33f37a4fd7c1be7e3d0e7432391c6c9234cfe3f93b29dcfb85a990d72aea6dbf29826fafa28e37039eded86b60d93ff98d3607ec5afed7b5ed37565ed9ab4b3ef3912271ae3c832182483746cc17fd77ee88d3d6cbbdcb6e30f93b3fd87434fc4c9ffc1ee5f67df9e288ceb0fc305bd3d3cfaa2ff45bb3988b7a995d9206b5a76933d19064c2b7cdc19dce8bd0f7b4f4e4b5858fcebc2c2e41c0716f17fdbf12ab90f5755b8404f2f8376bf0e92175cb0660381e56dcf643048fa32922e8ef9db38e66f63eef1397be8c9affcb685786ed7244890376d9cfbb787c170b4b6b1e37098db459278db335adb586d178dc0dac7e53cfc784e7f1af7df8ebc83b9275bb420833869c465daaef3313d670f617b88e743da08df60b8271a71dc935ff2dc1f9634c8d2d7740dbb4d1eda76366d8793df2ecfe9fbdfbefe75f77f6bc371fc540f4f7ba62ee89d686a9102a6ec7459ae6db21e5d5c7aef6bef9912f6de47c8a6ce4c7595f264249276f699fc7123b0949e522e294fa4b490b2ebb51dfb7fe733d46aff89248ae3f00f6d1cc571e849b520d57bef41764581c151957a2fff9c1f5566d4dba815bdc43df9f17b0eecd7f44cfedb5623cb6fece18b3679ccf37f17bf106e54842e8a53efbd1465a78bbad17be915bceda0f1f6314ecba4db9ff36dbfb99a163521949dde7b290f6d12f7c23b14925e8602001427b0ef893ece69bb2e82cad27b897f634dd79fcced1a545b297f589ec0be8be4d8047d7a9f60ca9c6f9be04f80e153a6decbb99a3edef9bf73fcd70d3f4eac1bda5ff2ff79ed6f6f9c23f3db0b63e35bfee77cf1fba0dfc2c2e0fe9c2f7e22d23fe1882b8fc3201e1686078df6f138fcf4dc1fe272fd49af2ef91bc9e3ff1afa981692352dcce39a8d2c6b1f1b63d80b27671b1ffa1c970bce6cf5bff36ac11c353d93386d670fc9e370e889b73ddff4f741e3df68db73e418490f8b44facf793bf7c598aebbe7ec3c497a1df322f183d576dd25d7386df6eb68fc36e246df368487f4ed6fbb48fc70b2bdf6e77c9bbdf687b02ffaef96db6b68f6fd7d1cb922d2af7080cde9bde777bfaefb77b1a6e73e2cd7ffeecb35da9ff36d62622cd66ea30d0be7e85f038fb2ffb798d8f741bf915f2cd094869dd768e4976b2cfa2fcc713ffc3ee8b7a2ff67df07fdf6e77c9ba64dbdcb68b55d567ee337f6b87f3ecb7f6ecec395c7dad343dbbe71213098e335ede73c89e3bfbe7f1d69c465b2befd1fda7691946d61fec9bbfcfba071609d5d04de79626edb3710b87696e3347eff36313816f9c781ffdf391c1696ffb7fbd7766cc72f63669bd9ee5f34bec97f66c361e31b7efc327ceecd8a33db6dbfa0b36d32fcfe3fb76bf2ab26dbc8d22893f2c76ffbbebf3dac3f9168c7fffec287b49fc9db26f3182d3716bf7cac3d59db388fb9f20b83c11c0dff745efb2049290925b8dee5747c51cad04b2304164020a9cbe920659acca1a3542bb341f28410f4187ef224f1de17e8bdd3f59ed054a78b63fe368e95fe367a5298d376b78de33ffe3589d6364696f8a781b93dc4736f935fc7a1bf8d633299db43b277de5c4a8c6ddc9f1e16ff8bfceeafe16d3464da4cae6db232dc98e3f6196ecc7dfe6b34f9cff9ba3ffc6ef97f93693321eecf7033f9fef54f1b0ec764ffcf7e4cd7ddffedff17c7fbd7d1c36f26dfdeceeeafa9f9b43f2cd237dcf1fe75768cd3663ef766b2ff67443bc78d65325a9118dba0bb3df1feb98fc3e934fccb76193e9cf39f38f7df6a1af8a7cde4daa6fd3f8b7ba8f5209ae5b84fab6dda0c4d69d870f2d10f3f7efc3264fabe7f1d5b9118dbc071b522f13ecb6be3cf9e6bb4dc1ebed9d96bbde5cd3020b1e9bde7f610a771f9ff201111c6b927e23431ec512ae027edb9a6c9d907a19bef7aefc2de73642abffbbf779e1cf7ce837be7f9de794160efbc1dbdf3e47a3a7ae7e500d33b0f47efdd43ef57617aefc6de6be04d8feb8fe31fd8affe6dcf5f1224489030a1f664c7fca665f2df6c649dd3b71d3996d5084989df6670f2d019e34be08c17060c2a6008d224de8d4e3dafffbfe5212d8c43f5deeb7a6f9115fccfddbfceb651fc394e4793451beeea45299374d19341bad81e920149bcb473f278fb3abccced9abc6d12ffa47118178b63e427da6a6161707676ade8432917cc3f0e215123fbc3571212113b2ec6e208b795786de7b4bf8d635f2fc8f213e97c08d3f86ddbe146bcfef5c76d614cde46fb0659e2c6dcdfbe58f4a46cdf4512050a3b4f7e32b2c4659bbe7fd1b68564f0cfc0da16c6fe93b34d92f597ed3af88d771e24edbc2e8e2c7f5c7f638f8f93be775e1c4aceb6ef7dae771dbd77afde99f4de2115bfcb2f8c7d4c17db43b0346de66a7aaea60dbde9b5fd89366e88482f0db5956386b87a591be78665767fad109a5e162a76bb3f177251168a4013b20393f9899ab42344a413727bb7ebb141957aef7d1018bb416dbd3c7abbfbcbb5f1487e91f69aa054bdf78ed3c761cd2648512f6f9b44c90f0b02d34bd2ebdf36b18b3cfe5a90db8757c8623930d09b404c7a0f142ce582814a3ca76b63e925a37d7d75cd760a520d92e56dcf1eaf7fd1b6b3d3e2eebc1a8db9dabee3ecb5bb46bbbf7cb37dfab6edfe0bdb86b3d7e40fa7b6a7f72e26c622af69bbf889345cfd8576b73d76e7d5f09af6c43f43fe7479e1394d7ed53489fb2e9224c7fc54a27d91f403c64fb1773f6d7dac4faade4bb9f6b92f8ef5c1fb4ce913ecfd08e3deae8ff96f3e957a2f833f98d3645efc71ec716fc7c74e2ff908ff3df3318140a59cf6c49b1c43204befbd8bcc6f7b0c01612f6f3adc8f21b0d57bd016dad1d9f650aebdd9b14dfeff6e93ff9bfce9ecbaef061bdfcaf2ffa627951e3b7ab2f412c76123ae8748a9a72b0fa4daaef1b73c76f24c3143cb53ecbdccd3557b12bf8d716ce78950d3707814e5f5277e3c68cab91acf5defa5fcf198bd93a5fc85b1ff379e08bd97f5a7f3b9b07747d47fd1bb03e9ce9b3b446a3bfbce596ed777bae83b117aefc77ccdcea0f21b719cbe7fd10e13fcdb19f65e8a898979f9dc9b915f5db011c72784858991b80f0b8363011b7138163ef76673ffaed355a7d351d4e9a0a173d74bb9209d333abd39a24ab9e0a05eca05e780e9386cc4e7144bb9e01c177d0e875eca0545c9190446ce5d97d326878cc3a9f738834ab9e0ff731c3071ee781b701a878d78efbc1ae4fdbf0c76ac3d9ed3c6615cd3e4d71d3dcfa5fc3d4eced5f45739577ef26bb6c9634edfad11efbc1a89df79b55f04838d7859fbdb0c0d3f117bd888fffc78ff624ce39eac647056fe9a1ecafecbc55f34e672c1b0b01c479278c7f927bfc8afe39d7d178f76247e1cd2f2c769e4b5a7e7bcb6e3635effda1ed6454f5423cb9bfec21c37e6765df4443238b3793a181c921fbf7f5d5efbdb16da9144728c0c06493bae6d3ab789e4908e6bf238fc74f4b06be865dc9373344c1eedb5af991e23cb1a36e2247e22bffbc273fa480236e224c85f47e743b0fb178d387985882552061b980db63838b2248fb7279ea0bf5e90e55c93388d46fe727bcd5ec3ddec351ab9bd6676db2f7e6dc796db6bf69afc7f1d0de34817d3f9dbff2f727b0d878d6f575f5f59bd77dc68ffdabeef9f71869d9df6736f36b3e54636d9b661d476762de30f614ffbb6ff5f88e1e4d76dcf356dcf35da31c763dc79b5daa6f3ff6779f8e917329a3dd7686e637777f43c1bdff04fb71dc5f09f1fc958106d1cf8ff3ddbb93cb4ed7e7da6ad3493aa77f8cb327acf8cfceff82b183423346366e7edca5850064defbdfcc5632ed7a51d7f9c2c635706c7ed21991b6db29eabe92fd2ce1e7e98cc8d70991ed67b64ecf4deed9c0c935e12c9b8bd31a97a2fbd209563c004c71029c71c61321f1be37e31a94a2fb98b94c5bc29bd6e9c2692b73d8bb9ebbdfcf72ca68bee22c35000cb3fbeed17f2b7f34238f9cb9f4eaee918ff6e68f2777b23937f5ed36af217e27ef876e7bef8dde41cb7d372dc68267f3b5bae7f6052f5de7b17eb3d306f7a2f8362f2d03e836331b3d59087b6104c1127ebc8313067bdfb7c088643ef65f00b27b22f7dba9d3d24eb7db92b3f3dd3b24dfc32f4f79708bd9ca385a46de75e14f55e068377df4b98de7b49d3a9f0f9f0cb622ce25f232c0ceeff7b06dafdda2caf3f31c78d3ce4b19b96bd90bd940b7649d56550972cbd2e5ddc522ed82542ef5c26a17131d4f13baf561eeba137ca741d2dd7f49d57abefbc5a49e7f827e72f991cf16b3ba76fa35de767d23623c37e4d0f49a29de7361959daf7f741d3e46db4e93a2ffc70fee78e9e881bed231a59bed96624e9c9a291ac7fd10ea3c3e9fb36da4732f7a48d93b67cffba6f679f9141f903ff6d8c3f5ed3c14fd63efeb2efef8326511c8743ff6f14a4d13e92331a3982cded87835c1b3b8323dd7e70633f3718e48f8c847ba3a14696f52fda354d64906904090408297fb28518090408e9d585d3e5fff72c7fa25f234bba7fcfa4fc05bf0dc9633d4696c66090f424fe71236ee7e4f1f6775e7f99c6e76a7be8c96090c43ffe85cfb3fd657fe7443232f81634da37c86030480621493131163ef766e4d7dd467e89cdc3ffc682480bdf8a5eedcff9162449923f4892fc43ba48b463bb0e06833f1200d2ce8745a2bffb32e9733c2f713ca76b2369df1f87cf87df4cfeb9afa3f3d87f3334fcfbf8ff7e81cb43fbcc7fb33f34ca5f18bfcdd5748ec35eae7ff1eef7abd170facef1ef76cc699936f6a0e76a1cf1b937731b93d1e8623b0dc76fbad84e93ffbf677cce0f5fccf9e15c7f1ff63de3bf78ccc3c27864240680d47bf7e46d6f0d404688fb2f03c8666706e82a6b9b2e538513962a79ff75345815b7f752c6d7aa70e8e5d0c762773619eed1f44e8509152a2e955e9f924998d3761e381c7ae0afa3735f47df5f06e21e58e2f217c6b91f0e7d59e7a2428e878db8dd9c29bd4fe726a552374323d77a52a6f45e1269123f91d3a48d935fbf8e1e92b95d7f19528a2559a485b81417a7ed35291566dbbe8bf8f1cb080b838b02a94739a03c7eba14645046fb3282c74fe783b51d24f1fccf91391a590ae3db7f9c3cdebea6619af4a4d08e947d6cdf364ee6c54ff7eb86b0c76939a6f1e3a7c34f7c1c27e3645af861728ebced9826dab51d7f72aea68fc3fbcb3959e2f61a7efc32ecb5e39721cb68f2cf3d1ddb383e66aff1467479480bcb8cf2af69c8bf9ea3df72db76b3f36e764d0c0302d7d8d0dedc7e35803f18636e6c706f4060581fd1738204bfcbfb17875f0804a26034e07a29ff1e644977db76a49d933c483b27efacde73d2d5c930d81ec2e41adb5b8c1100740e73ef359972fc74c0a18fed6e34d3d7f4285598543acb13ecbbf5ce9bd13bafad771e5befbcb5de796abdf3d26e1b181656db44a21d036dd9d30dede2a7b38bc7dc16dafddb5804de3613b22fa954fedb981b673fb684ccd771b8c45ee2f652aebd37ced130d1e3b47c846f63911c5bb261cc4d96c764b9ecdfc636f92b99829ff8c563ee7fbda7c445efbdc4ffdc1fd275f45d24f19cf631feed7a38f4654a86b69d7f258174bcf3e43cfc38299725c9d28f498ab95d9349c8db26e5ff6f241774fcee0b717f361cfab2fbd776be88b3a7312c0c4e0c8ec5cc5634d2d9761a1217487abd1fe154ca058f0c3a02863e7277a4ed48979154dd48a3522ed8afae7ca2fd46e2c0399ac7bfc915262946ae90bf103716c91c37c670d9a010f76741f22b18246b5f7ab167f198779141d293425f931f06fb443a6fbbf36aa5cf7d57fd87a5575749a620d13448d2f99c0cde761efb175fb85108479660ff2e923e1824673bc76be3b048a2a92c7bf2fec58f7bb2f2f8e9825e5db3fd7dd0f8d0cbb2276b9cbeedf918cff6f1d37591b22712875f487efddb93388e7ffacebe8bf3f0bfd96b724de30f615fd3c8ed351ed789ac7e05f7deebde0332082d4d305cfe402050c5b138946de2d10fbf3cfcf22f1ee16a7bfe66c73bfb6e13e25e38f4ff168e7d630fba368685ddf67d7f392c0cce9e6b3451fdc7a0de7baf6db266fb812618fcc1a4e8edeab11f367aef9d347beff5d88f099dc4bddd98fce5eff687435a86dd5f937fee651cff716c7cf3c1a4f4d1f57b474efdf86445ef1ddb7aef65d02683ffb6cb86431fd3bf23d97b878dc7007aefce4e2f712ffc321dd3c6b7bb609fbb8d77d1bebf0fb0fa8e855daad2eed7f12fe2445fdb25eafded77fc32c48e9f0e3f7e3ad8887fd98ec58e5f06f1e7b45dd1eeac9772413b0ebdba4a75763a93ba609d8b5eca05eb7addc8c9a8a6cd5ddfdeee9fd3792269e7350d7bdc7f37b28c7f11278ff9fd8bf65d2449b82b8e9388fdb0f86fd25ddfe668fccbf8890f8384cdca4f67d7d53459fbd8e75e16e2fe4cfeb5f12e9239fee5a1dd4516ffa723926a697125fe8db887c930dc04499664f013edb7205906ffbf853989e7764dce34e9d5457e7ce85f90254e93c1a08d93b2f186cb713fdb64f0137d1d0cfedbcedfc832c7ed216e14e67373f49ddb77bfb6633a6847ce74d0eb4b0c8ec56dbfe80a0af13fdbc238fff36ce374ed85f127c6fece3f7de724feebfe901ec660b9708e1e92784ce7383d1c8eb1c07f1eff3ad2ffbb8b24fd5c4d178b5e8d2c739c1e9241313816419228fb7fd7f6c77d4cd6f46c83e5469bb4e7c8dcaeef6c32b2fc3e681caca6c93f77fb21e96bd86d386d87f66f7b26fe9c0efbc1b1ad91254edaf8d0935f66644996c1fcbf91253957d31ff6c24fd4c42e12274bbce8d5beee2fccff9c9d93b9b138f45e358ddb7064698676fba131a6f3db17c9e1d03817fd1786d534e43f57d3c2dc5e1b0e7dd927da6575eceffcee67c3d970b8fcffda27fab5f817df1880782041ef3dd87b261a08891e276fa36caf7dd98ec38e45fbceeb0ff4775ed36142dc9f8585c109712f94edb28f7b61dbc7bdb088c774d1cef13baf8d76d9fcdd707bbefffd7d006bbb3e064bbe94661094091376e9859bdd06e193396f5a09069966a80d9ac380a42a587824c8092a82e05227170b4b71018d0c04054618521cd88a8d3babbc200842c660432a394e6d74ac4dca12b42a0f07594d9405b66182b8201430616074c24709003910c20d1437a43c1b301d6670ea22e581a1140e4fc6f0e95a03200e8c1ccf063368a2ee2c3112fc3b903e4819ca79364920948a22820e8304af1b826454ba42678850c10ea60e246e221e37af0422764bcade31824064f01005817294a030445fc355101d17534f03054336fc0c554c68222ac58314413a1df4505ae3673d629a94868899a335884465c0d2a1868a4250a718a07a8b05008513bdbb087c80680cf3d85c875249626321622bc7151d07347c2820240c0c53553804512dad0252353083db2c451ec88db5e9e0a70781d6006c170fc036aa830d737bdca85b17849a21ca821dad7e28a99f38a02208a985a584a4132a86a0845c1b7625528588f87e752c25e193e51431501b136a5222cc1ec4f051d440ab1c24d05a44e0c89210fc91060f87cef8b468cd8120cb59c3e97b1d7d0638fa7421834feecb11407aee745a62e543da932cb43b73e02c8b16099232a90c1e0d63c4181b59a1e2a18dd138c437d41984f5a108aa496567d0e2a8a0d8d34529d0fba1021aca9597021a281eecae5c401dfdd950e2713449100b258e8000d5f4f8f313623d19b406d397f88b6f55071a2716e832010836f98bb02c5f6409ac9ca2512108a11f1bf6783130c84707104bd4c84d1a83a5118cb52acf85d702183116818223e4c3b16e4e0838814b5252ddbe1941381112d4b527140736061204a0ca54a4335826a8dd09643e5937bd64f653dc7c3a3a4160805120be0810c632452e5b707ce8f0999fe458e08803a61d204abdd1c23108ed0c8e1aa85440902501264c7f4a999d8109fb74f6ab02e500110f84a91bd8218ef51d2f2245e8e4834e87206aa3ba04e3e652215f32300235a84a06590c0726352c3ba758655253568238d66b3b2db5b5403300aa562146249ac1a56e75908047870b5c7ce2c38a002e4238bd1364886009930c84103949512c0d863e59c0d593331c4eaac522749992f4b3450deab4850746862b414c0b17e0aa4488b325a9a7e517d54d5ad567428f496360a49c19e0c2e7e1820242642d614cc1b9520b8078a37bd8212442a13029f492225bdc18b2d4d5b5329d60c20cbaf12c5a4043099b13d97d484ec4910326c7203464204072430991fee141994f7069200b91c2c80f4e91e95d035d1d51653abcf4f821a7cd0195b6de7da102dd4814448600174c71d12077d1fb87031c51c061d0dd25b0385ac0e0397597402530c1390878c1883348ae8276ab83265486e05e1d6062af51807490e1b3e6ce296f6489292e3140cc242c40216701462834848113c208cc644a880d76cae2680f320345918870c05295e8485aa243e396c8fc2d48cd488a25523829dad209121006779034b9e81ccc5c22f1821097609b24bd67d99933c741ad210e020d7a172140282611de70b91102d37b07b11b2f182812486a44a467382b55a0e9d108206a7aef9dd8a4420456119349ef1d1ce881891592ab4d2e7a8636a6eaa00cd43bbdf79ea0f8eae24db1d2fbd65dd9d1812e72c8deb5c078822288410191de1395e8815a03557af7b085c991a5506dbd6b1900e26e0e1417dd670353904a8bde3df821cead0dea5d831a97041298de7d808e6d2522fd03dd29136aef1af42410624aef5826974c2e3a882d2b627adf7056c7a9772c3040b28340f47bdff00849ef59588a7a0f818448e7c0a3f72c26bd8b70d13b64e8bdf7de7befbdf78eb54603144043367c24d8502543459225cc061a0fa83005e311284306b45eaeca205008448ab715a36e20ea24648b832446309440b05664705007893c400a7909ef8116e48206420e3c6814a58b122ac18736b52d0fccf80084edac099c381a5a8d8965cf63f47d88e0085003030650c0402142e8099380080d632044ada9c248025475ca98a12bb49ef0c0c01f3ab26382c958464aef819e3f3d7c3025f9c1843951082d39f268b0aa5aa295074b0b0802c0a47e4810974092323b4e1e5004a98056cc63c0d6a53673cc58a161a9574194136d3419d58a0ba45161f2618e1badf784a325880506d115a5399d00b8d4616b891010adec6c40eb64716364369228f5acb859c487d10501c078d5050af149025d863b9196d882169d11d2467666ce5008d481d30c2f197702ed89e182d095296d0bd8e99de89d44701fd8356190553ed0226986164384655e009459e275010289cf08221dd22891bd951a668874c4ec810ba024a02402cc062c4ea2606cf9b8346461a921139795c0053a0608f82ac6a02380214f6accd4e13007eb810216d48122279f629aaeb4c9212cd56062e7a38c9def6911054c189920596a755a31d89cf968287871e4e232b300079251015de21808202b85b48108a6c84808af0845ccda281005525f00c4d9d14c0c960365da0a7dda7284d1892c52935148d3862917c8ac3af3272e4b9f300f2a79d9f305448eb5d6c277c0044244113acb1288f8004bf8a4a829058646768d208880401a706de0b95113318711a1275f205cd4c9e100ec03a01b95e6c69ce5990015d7944c67a03b5f051cbe5c04b260ccf1d4459212c0070a1aeebcb46da8a62c6240820c54d20b972e7cd0a080022556230425f18d3943166d61c01765c596768ce68ac38a83cfbe1426d61a55c888031f2062a5555eb40c3dd0448f87ba0509253554b41b2d1c6c1163c426858f4bd33ac0a94a6d1e0502a0080433195bb46a117f5295b2e1805a1d361e4d6b47912d4267e2d4315560085302cb710b0e3a247a084450e42604049d401d216cae38c06920c3044f1acc812093c09a6947dcd50e08626c754da000914c164e95ed98f3c90f9d2b937a37ac6c294ae9ba13c3c3194715160835196c557fd20e20b5894b185624aa1a65b43a3c498552a2644098238582a459bfd6708800454100581e6d6982690f882c23765e54d6a91b9b10d0e4872d2940bf4e275d580ea4de7837607a1cc11307813a2d26303b2242850e1f5b6702604a1374f32d08af90c90aa2e5501bd1861b091e18b6eaf2724b38c8f50064266e229179632246ea28875388dc055b0b3591a8a80979ac19c0810489ac08684e254e0615a0c893f500b3b56a6c28b4a80527301f7e901c07b0705728d21a107b9420825d077a64c2824a91a355546a601190bb908b976c5221a4024b4a76f870b48185af2dd74357b260c79d2d2728e8f00404052d32543c21b911c60aaf4695fa020acbc4044a24a5689d04e0ababd62d3ba5e10d1a4e545ab5fa737c14194bf2008ed4071d8c48d019d22a00120e8ca0a20946a7d28787c1a90330b45a621424c702159f48c969e842522ac400ade8b757cc6b01a7d2948703cca8d0e4b62a431361c2201f96c2e0f8d8ce4c0a75e98b1334070ff6a421920dd01a43a501ba07960c25bd381b82e97b2279a850172310a33467581b222d19d42798d1db4408941e33344414d6385999d4adbc698dd0c3838e860e176b24c4e0c9e0e2cedc168f14491ea088d3e6d7c8106a69dbe4a76724470a40a437582d286018015c34c5810c6246b5fac4800e0d87d416495047d08aa183213743383988f361888741a6c41d9e5b4f841a86510ca48c4ac4e550202c0384c9339c20df2630c341951d6995aac55d13063a989c849cae4c91a091dc8a8234476c7e228290384202cf292e34210194aa5421ae46969b95ca29390eb06d406d4a35844087000e5afe508093c080e4068f30142c91406645883ea91c0c9d06f8b60231f2ae43166264b9645b13525c447c496b4cb40c61b2c6e14197ccc62e3b11801b09147c28f18043403820c8a32759a330985033c77e645601560289a298a1f3a92ecd1d0a385fd3930f1bea18dc6df2192b6f8e56393e41b04b20de90ac610ac2c05168e8cf1c15eeab030b0e85b3b680184f110cb901a7c51100226990200039314664987180920902caa54f8a3e8c91b2522001c19429352ee012f58153039fa6b788895386b670b072583460f91868000a8aa018a7452551804c5d2089802b651e50dd71e050250b37be4c9162810524cc8acf47a32eb24284383d1d36fc270290e9a2e54013b40bc304e21a117262a07a5848c0039b272107602192a0b5498da2c6c20cd5e72ba542858c3e25dabc21e2008a33373f5a35ec0a2c08f14645870f6130e491e67a6cb1a1a0ea8e261d619462426f6ebe2bb5de9a254032a85045c69017b9465931c028cae088ced161452a0bac929c42e30002adc1560506702839a1c027e4c4bd6507d7965f0f8611b614741c28040ad299305b8e22a890e1066c890232535aa889c240130f45cb5a073bcf16396a72d4b4d0249eee84e2234684213546c2f811411c434ecc68e80c709245290615320fc879c0957207c6ab4c8d0e874720d80b5996b25ec4a93128b532824b44054c47a86489948543f0cb878ba317314b786151582b265f30b0f0704828e30e260e64584a08f1e111881105127c8cec402317c20d4b171015bfbb25883cd930056e3956292f47b52e4fe8e02ac529d1c581524d36bc51b2214c03502f5070a014ca415b910e0497335d9abcf07a24e7cb864e81c84051825584d31fa3a14826145daa49e931f1a8d1061270a92c31456f927c8861009d29c0a00f9d2c3000d205240f9889e572fc2e8013868535496d93842c099b586ddda0b00794021ab0580913341477c8af02136aad0d8fba0f2d8e84ecb002e3e323888414246c2890e533330c91e5e5012c6ca294c073caeec797861e841259940cb0070b1c03bc0e68e0062a0f5622806285c665b3cacb9629114ede187d2c925c017a01300c614411a401e8b841d37a62a6023aa586304c0090e4821d3237246d819a72477e03c3462836b3db8ca8e8d66b600b8700d417962b86f89422e2624eb526f89ea33475f6fc10334054b06d489fad3455342ac0956013e9428e4f77f29737bda287064ec8c10225c2992adc90d8a50532402151a847983df6841cad22042e70f9d3c18014412e4cf82a748894830426a85246aa67e147d9152807ab3e1bcab664f8c1c32e43cf015507a022c5aa08224311070af86975d0eadd8998130a810a5c37c4b475473844e08023e0c418ba3652c08a13305d51189595259f04291000694720f38305889cb1e320a48ad61a2a3622b0481ac2c408c9005c082f6c0162e66039116411908798340ed26491b044968123e4cecd981f62caa419e36483a702d024020181864869389eb065a83004a1a9c81b2f130d2e5328f5284938806109d69b1ea30812d12812e989193d0d084a3367830ead0891ca50589a514e195278ad9000916ec9e8313a5540261fea920b1054a1c00a4054dd09c99148a261b09130010bf06848f4c949991258226000e328c1080561693e1cd9d466ad5ee5805987381997e2107af32d2a1e9ae160c79942521c49a9dbe41a698051a1d57f4167c69ef4508a86c988e60192a200c4b2c49abe88f071f141aeca16df9c91134b4488d99214d931f1e1f91146cb0f0c47b8e9028545095ce1a1c16bab8987338f1c20928128828c7812d812c7a7e8b5d2dad262ca882a1669ace089a0ed431e2db148de458f31759e3052258116320074da8a3245d5942815cad48352c9ddc217a69e96ad2d15d810b4e9b7d8224624020b0c19f878b254a05445202600ef02394146568750ef007550d8b911c524a382a6c2a447bdf5c8056e3ee2b4a920f0da2221c2843319c8305930d721e80095969c2b43312cb47578f312e682921d08b9a4113cb10f53c88840936410031bcc4870f3494086688c1c445984deba187123480146324e427d94cce81cf2a0417209c7b1ce1908562ccc33995c84e854c5cc87934389ad12410cb160008229596e5bce30e0c5800d665cfde50183145b1c4e905109f400c703171063bc1074e4540421ce2cb65d32caca0a265c201de55237b020607365490e051794596108322871e0b08180385e0e58cdb380113c4d4238820004881f9ffe900af3d3e90f00748a19ca953258445cd523f90e7aa7c6883ce486494b364450944aadc5a621736bd4787102d148820f861cb041013c708c002b72e0123100f0b1ba3476810d1d9298b0fa206a4fdc5a0d0d42b860fda8732cba1664be3eb519e1e94388b20d5b317c1b1e58b0e09e80c463f655910054b18ee1261ed455c6611319112d546478546832e9c60578d0374a23b2480f460190486103f7e6072704383992208e93cfebee76c0901c506a3dec662899e1689416ee48ca1431315e951035506293a6b4365b8a0ea5f95a0c3937ae62d89e122548bd3f43c074bd01f5a60e9805927449e1695386522298a09350e8c8d48477a2419da608b6546ce2118095dc54084f646f14b002464b4f4e9498393d84380cf026c1cd0f209882198c4343576b2cd861e7c4a1ad2d1d20ee3a5411b4ea8f860ad8f9e4438229c5e54804aae32a948b1d40ad1028391152018a4256056cc4020853cac71047936604d9634a100755716a899c146f883864a5cc24b01eaa44b46d4694112bd8737cee2482bb5bc02ecbc821b510d70905c03c6a34c28aa1221338c443c62e6873d691608190972a565e2d041020d60f4842b80ccd5891df05510526cb421e3a01e6d61cb5c252a0cbd09a9e061b1840f1a2e8870414041ed5ddac48d03900a1400ea9c2283a15a00480c3b0678d8340585b68081134585a758a035c13474e2e71d940567656e8c3963df70e9a4d1a18972320b01a6d5d30e60f9b052868b001f8321883952281299334dd607375e34f942d47c4bcd04067ce1c2da0a80d576f52944c7602e9831c93c051e7d3873f1f0260b568559b283e04f69cba3ba014155533ceb42a8300ca514349bc1d517a536767c6d72a832315583ce08990080a162e56b4a410202412853c407c70bf227520f0f380004704309cc1a0516aa5a961a984a3fbed0d24b001b66ea0387ac86253800169173875b9e0a2aa14cab8a1f74946a536529acc80bb2e15f0e94a1a155a27764082548aae0c9e381f8a9cc993e563ab072b0583f9428a17f092185f1a48377a4afe74a0857c75384a02f59331e1849b01cdfd05d0a43a2220b949e0a8cb21380f3a2c9202434e035c9b16982393f60b60128c1e005aa030e0a0ed45d00319b00646a7b40c5f4344397881a4810e2e52e520a003264a1dda2f9f1e643131014885bd7f80d9b1414492259b2288a98082ca8804c316136397ac38b9a86f62929dad347793e21534231cc0b87d09295e3131e22d518a4378b65c0a3168aee3a5021e3b0d9a3f14f091804c52560b17e81f41a6921492708cd48e22448843852901e0c75167583c81d4a60028162b426090c3d666a3f65170b3808c8a3614038b902238555ab34267d45cb4da1223e2c2062066932850406bd50c928a580431cc2c0291a386565e97034819e19c285abab429c1baa18548484815d826dfe348f2dce03484cae1e2cf057647ff227a24e46992e0c31ab4572acf95b83b4cc6d4c8188019e3ebd42a46161a2d6a303ad5a5088dcc6cd6f0f98010e301850d135278831c551a20e2a15589298a03158fd6a8c0a0c06de784926f48903548805a682ab48a9634e784ce212d4a3ac44431652118444f026e6344798887b8d4100aa767a74b8a53330383f678f16920b2a3951b3538bce2182c035177444b0759c7a7001abdb0427176de3035e2da8ad365c526d2090e0dc80466841048f8ea19a04a87026faae46d40656072e544013d1924a18a83ea431d9f03b416355713d8a5d8c23a05c6d4254c8ed812e8198c081b9deac9700089960bb6835191885460a04892ad0c3b1265e2e33641503d83ec39884053b043dd114a2a4c087044cb24cc000107309588465c8e2a10653ee2b2e34f0709262a0ab2306179a0c35108257ef2bc6c651028a0020e93f4083245c14cd78d02c21829e5981d115a29548dba20e58028729a40b9552d3291455c01844dd3219116b30154821e00c00687332739ccde826543825030de61f45586c0c1869496d08503ea587beb8281eac54ac566839a0740cda3e54d29555f1520d940e71108f2cef0aa13111026aabbb70408325030093709e27d922bc85a03468da504d2053f531ef043540d0b8cd1f85466435714ac1ea7b28e94ae3e146160cddc021f48c1c172e1b661a3869f58cc0b0d637eb036b8614543b06b5917821f1d22093a68e85200020cd06838602048cb51203f31f0c3ef8a88c4839a17667624a5ddf5d0d3fad690986e2a31e83a956a82c1100c2d311ab424002165edf220d31bba37043848a2e0614b2c9762d0e0eccb07255d6dbef810f9c64288d81081a536710f460e0c8fd0915a54be99499172d8d0b376964810991fa7ad537c7a57da48959ebc2406770488837b0e60e121e78645ee0d4497a5b75435bc6861586566ea4c0bf50c267c8b1305c3dfd6db05049c0c5428c2c02429118c5121d4e8e54126512271860100501c2778d0911090814a171a353ccd5080ee1407210c2265f274a0d3400d1b3326d840a47618b9114c84a2e7fbd369cda6479658c4fdf0d93d50e447060d69991a11208a648878a38106188571a083873e51d814303643c8d91b1932ce9cb08980df1c10d787813293223db023c4169b4b595ddcd875908e40508386109e458ad85ce090648b025c943184aeb85de0b504c9235f0833c1285e07a4e5a9e04c9e5482b982a3ac1317d88884c13e05044d03bd07a5410f368cb2c0ee0d2083942446135c4489c3030104281f311ad90911aa8aa0438ae04c80a609d69c0a7502a5b268e4d1538967ab4d6a6c80d99cd4a9809402051b0e0c285cad590322ec12312bcf02eba9b8100c10fdd17005cb6c01ae2f1ac108eed4b8ff04b5ac85d0e0e8aa4dcbe3ced6093618ee547cc294f9f0c4088724bfb9201c2c596c744239b9e07b74b2bdc90872a9590d7d8b68d041d390b66a4c570817901304206878e10900491e2ab5a040aa4420534422134990ca7c5ae41b9a386117c7c54602b2b1c9dc9c1c065a8254c0a10176a43e15a48a273f63611a78702de8a2e60e538c031e4065064e15093f1f832e644e9e44716340a1ad41a5053f435a664806002b6f1c39f484f111866783d8d695327552f9b8208ad41a42900809bb58e8755952c58234b41a58d6ec38112402b82b430212d8e11191834d0b0256387237f01cd08102001a407306c5926601201072de78017bafa3df4438c4cb141037484d01d54152863319ac3cfdf9a244e57a63af5e60dc3ae0d8c1ca4c1c18737ec01e78c2cb23cc89784301026dc10e63708e6f6d00f92610c95aa00096140b0c842e786a94a6a59399291cfeb848c08da1ac3c6e660801fbfc3635042945a7220581a4e644db8f3a6f849019cb8afba3054d94333c6c5451735b80cd441a0e60715c601d30c30c149d4a678a5812f516e2257b1b76642200859c850138071b21d62539132e6c610b1249082523938e32fc6ce012a642153200e46684c0125b79e4050e882384d8e82c62a396995bb0f06141891cd62dc7c0a2b23560360135fd0e9de1156cb870eac58b46043419d1527a14008e29aa3e2c3a000ba4267a52d0491e21c270ae2d160303bc6caaa1b56544293395bc84f829d380648b923029b65c752a4ec99242d063800f25fe08d1ea8afcf915e420e0c29185543e2c5a8a8075f27518724214059c920ccaa3b56a480447f90a10825113a862ce8475f2008492038ff6e0a9e3c88db088a11912c8f84a0a9c4c38b2728026b0ab1922b0cc40d03a46b1644279297db13356667ec4c664eb11a902f4187016b7c48cdb853e0200c0a317081598391308c0ca11540acdb5c192c8906a0e934b425148bc2a511e94d4656bb6584b9e3e947d95f17137242194d088801eacb668541a0b360d9f945d29f2800b820c3e2280e146ab83162d0590ec8a9ef5de79dd470f01de99f96dc3636d6242dce3c4dace9687b61ddf79e2fd8b40a2b1bef3c42fdbf51f028f37509817bf0c04de79e25c4dc7f511f761616c1d4ef4b76f238beb233ec6a381069d50518572a4908bbc17797e9062a4d52268c8d1241f5b5a6c3ae5a28f152f99584461734fe0c4a78b026a2224106a885a8548a1102825e6864f79a0c59d050aaa98ecf3552474e4b79671421311f314a3ce6e98415000efe3a0c7179c37a73ab4205a5c2d50800266b8c405503b31d22a2d4807084c6a8a83188dab274b4b191d602cf0081313012ce008abca4f23118f3ca638062a18a0c4d78562869ea924d30389180c214f01aa338320530bb6565120791952518285072b617c8c993834c98dc19a728f49a107220a6ffd48f77db2e3775903ef9fd340a27dcfc0f8177115f1afa304a4f72ea37dd92e0b0bab7f5d5effbaba9f4cdb35c2c27e11089c8026f6c5e2b687be2c2c6c4258181007d65f966921902e7a6011c76fd81d37dd6ca41ad5cb11fb6c74b2e1800d4136f0d858d37b7fd07d36ca74626c23bfb3e71aed8dc1231b5dbe383b403a1916e7a293617115c8b04664580d2e64580db97732ac86dac9b01a3406916134a0f44e86e1c74f07a461830cf3d1f8c0890c837b4386c199f5dee17a6498dc7d6f64de8664588eee7b8be07353d47b27c3dcb8f44e86f9dc5cb7069d0c9bc1a577196d9d667095f8fdf34ff4751869e7b2278bc354a8c055dc7da0bf8d9e18dfd9f3d89bbf8d63f9ddcfdfc6b12231b6418c6d10631b346e5b50efbc400af4ce4ba0771ea03fbdf3fcf4e1d33b0f813dbdf3f4e4e9f5d55aef1862f47aef573e35528e42c17874c74e010b7aef3c986e618fba3440a7de3b831b45b7350d646855aaf7de008d98346d597906b5bdf7ab00aae4609bd2a48b9edefbd5134f22bc6e072cd6f4de7969bf00323d39f10455ef9d81961445a0b064d1b3a8f7fea0802ba9ae1a85b172d17be7613a4505c805582eb5bdf7065b8210b4080df1a0d47bbffa160add6220ed79d47bbf6a04a30ae810a0c7a40e161626d6562c8ed97061615c24ee59a815e9fdf865c8b71de3b40c1b85393d77ff3ca7edf23fe789b4989c89922b5c630e16f79fabe919589c2b0e694ffc77f49d7b22fced8e7e58c469d9133d6ea403fe61d1fec5e38ddfb98a63b187e961e060bf3aaef0eabdcb755f9ad7599a60b96ddffe9ff9dbb7fd8ac4fbac0cad48bccfcadc865ef6dfed78e7f54ff6df4d2db76db7de7978ecdcb1538747a7bfe1c974e7d1283f6e0f63f22effc639922cda769c8409a5fcc917122694f87c43ce0e6ef8618bacf75eeaeaabac5f5970f56052ef851c4de99d37e7d78042035dba8fdee30105d4c088d778725ab58a7b41805a77f783644d97755ecdf30fa8ecb0f1c0a4e7e3b07ed055ced5f66d4796386cc48571ed6fb20767b018846860caab0b88d32378717ae71d1001429b6cf7ce83d33bef0dcf80de796ebe98b9353dace91a5778ca2a953ac67ac742fb3b5f31f4765edb244c34deb110371681765ed3402378f0617d7bf2d7d930da97ed3532b31f74b7fde27824c3f3db176fe3b0ed38acd97ceee5e39771fc74267afc3254f6eecb758da66bb517c2fddb56b38bf6dd96e3fea7e56344bbfe32d1aeef17f8fd61e257fb316dd738de46dcff1baea689f2d8c7eb3f7fb3a1a7635a36c618e2f4dc4f13c61feed7d1f7a7a36b5b2da76b1a329a7196e94fb4df7e6daf8939791b6e5cfd35075b824cf8fa6a21d682f4ba93e9ae7cfe69616e375b3eff349224c9093fc83b9906fe39f9031fbc121e4470a0aa500bb1f90f09b5609182acff100894873683490f7081f021c765b2450b32be71d824c51c707094f7debf6cd724182e2709d68214967f4efe9d48f73560e5061c5ad958db5819c982bc93e97e55f4357aa0ab287ae289debba02d264c9026d96204997f7c9e6dafde1d8839003361826c2146caf5ef0dfe3490d3204a83180dd01a9c3558e163a4e3b671153fa6878c5c74dc4deee7e83a5fab5011f4ea2afadbae36868505633cc5c3c2d4b44e4dc3c2d03ab4861a1696d6c9686a8db486fc716358982ae7b6ecaaa6a898dc49aec8c122bec7c2c254d99e6b3431345cacfe695fb6e1a357938d37dc9b58fdd33ed1afdd79357baed16e9b87277ea2afe9629fbffd21eccd6a1a6df61a5d6ca7e55f2db7d7f0ff5f0cfd37b3d7ee7ef2d068c77da25ffb0d87c617f21f0ec770b1f4ce1365b4a3fce55fd3080bbb7fd1888b797da1293e1c1ad78ef51831b6717fdcf8b656d332f022f1269385358da2bfe17e1d8dd7bf78f7b36d38fcff177335bdf68df65dd3c86fbb68f67dd06ff84f1eda677f087b1b4ef664c3216ebcf39a464d834d1ed271dfecc5cc361c8e0d8763f2908e13cbe33139f674e5d41fa3c1f6902cbf7ddb51b6c964b4a36c938989a1290b34a591e3b55de6a2a7d135aaac510e4d6534badbb6cbff1a9a1a798485a1756161317aef0cba8f1025428d7a27c6774508e9785b6343832b5ba3110368634c2dfe75403affedc4dee25f0777c0a0003a7e97b82773df46e77fdccfe9db4ef6ff9e6dfb06ceff46ebc2c28af1af81d3c5319c2efab97a5824d245dcce66817fd9ae81f855aa4060d4fcbf731c86986cd76958581891223f8024d0a8779fe3dd0b7e971226d4b65cfbda1eeb9d27a7bbdd98a4f76e771fa02de0ff4379689fd1a8bf0ffb7ef173ffef323b7bf8c98ec39a8d466dd3bfa13ffa347bcd2da789749a195bd9da0fe8c6e6e6f603fed26898b1a9016d8ca98585795c8e7f6f3fdb867feee77cd1be8b69757faeb68762731eae0dedc7b7d17ebb69d86bb7ecc9644f86e33fbad81e9209f39b9e6dfb6e933dd9bf8db931a7c7ea4f67c3e1b8bda626c622fe35f0397b98dbb65bd1f83ffeddee7ff44372e8ebb1db18c7b69d3d9ceb31fcb6d7fed028db4452f66445239d8dd39e58db4618ff332d7b615e1bc97ffb17786d9ca371f9e71e5f41972489fb0ffb21897ba317defdfca6e1b8f6640d7b7591be4613e2feccdfdfdfbf755dd7755d55555555555555354dd3344dd3344d51144551144551f43ccff33ccff33c4dd4444dd4444dd4444dd4444dd444dff77ddff77ddfd7755dd7755dd775dbb66ddbb66ddb9665599665599665d7755dd7755dd75555555555555555d3344dd3344dd31445511445511445cff33ccff33c4dd3344dd3344df37cdff77ddff77d5fd7755dd7755dd76ddbb66ddbb66d5b966559966559965dd7755dd7755d57555555555555554dd3344dd3344d53144551144551143dcff33ccff33ccdf3755b765553f45423a2f51b3e3870f75711d368bfa6e7eadfd0ffb77fb7117f8ed67d6f7aef570b10716f47da6785f0bb3cc2401cf745e0d0e77e3e7a3a1b27bf5814f11a3264daaec1a6b2b2dc0f07da1bd0ec87032d6d0ccdedf706fcb9d1801b5b8381f6e67139fe6559769e0d9f1b436e08799565d945fedcdadcf5edcdc7f1ceaece98e3778fa25d13e978d0c2391c376cc4d5a001f7e636a36d4d2d4d468c33182f7e666564632a4ab0af5629509018418ad8a0a155ababd9ce8bc73bbeed18ac880fd03bd1be5fd47f08b47360d10874e79cc670e8896fb60d47d682a7e5cf9dab430c28f2b1199ae5f6f00dcfed219edbc33760b1e8c3c2de735dd11b0f0bf3b7d18bdd391e46c4bd1d0bfbfe388e64b54de3741d6d26d7345cf4a421ff3bfa4504303e35a27aef6161c0224e92b73dafb981df2550fe77f4aca260319d7fa230a76f0f5694c000cd950b5ed7d5a37ec500a2ab4163d0f4f0bb94fdbfb1ce70b9ed58854d771dc67b36d6396c9cbf1cc3fe755b765553f4347918781478bc2b0bae509581d4874363ed2bf3a6f71e0c92794ddb65a6745f19b9f75e3ce6be326c59a6abf7ee45867d7d75f9ca38207341276ba27168c724f96bbab66fdc1389f6dd17ced9f76dc46b7be835d734988a14e46d936b7e8dccedb92ef2e7744dcf64eeede18cffdc36f6206bfac39feef8e9bc5e9ca669d401669aa669d4d14592411241e4be82614132fe3c609bacfded8b2fd87e43d8fc10c1824d9e0ea91b94a9100053bc869085cda88d3880678805141e3035903245c823b84b1f14dd91848851c316c3450e4b42889364a8e9033010d26262c1a41bb90861f061d5ab05d59b200b5819a4c30b4a5a902c760fde8c683121485c85aecf1696154154b4b199a78c4a054495851a76705382802430614d2040285c20532234a14b045701901b67c85e7058420110ae240b78f1f100f843141d053816b8693ff098513a924280173f9230d0c46bd262d18fb6449ed6302c927e6c69fa8d407563878f4c491a78f88231c4079c960502c0f0fbf8f1c449d06d63fb7821610511b038283e7c602e989db0291e1f50054db0f3a1763433e5cb8a2a835a1c6f0b692ad080398f2c2c650dc9532347081ec80ee9a0e0ea6e1190b51863c7dc5d97bb393b77e8048346f4fea8b26385e642dde44587dda0302d803e09796337009c81cb1ed4841d90011c9805478a765d89ea9ea8e082a3ae940329c44009a255c7c70f251e3e7c9eba267399400d5a535107f716c206183128752499903669ac1c193b3158652943a15146398958add945e8632462e653a8429c33c618d388529b01148c5a6c9386e07c58e411548083fe6915e76b6014e9c440162fb971d10234721f1cf231638f49140cca905308f5818038334a7047362ead39ba35c0c354a2434250ae081f16b0a7c10d5704672d998a72d421c2796b02e04080146e446b6e2c35a126564c35b9613e10c29451d0e80663756ff932eaad072a567f347410e0811e805015021f8f2ef5884207cf2a2a37e87ad8a8a2e21ccb50a30700684af8e9937cc550b8bd45b52241f18e97092d406ae08a48484f665c989415db8a1d00e9213248c7101b1317021011351cb2dfb4b07dc011e63c3862c5fe79084341c7a5cefeaa25351811a4024fa92ec36513160b8a0ca97bd42bd48448c16e29f5831170fe38f95381c84091c8054e439e2a973411e7346b0891b17922a2236a846dc10118aee2013025959d762828d0b0ca143c05b8821818ca0d4f0012c25268b1d295e219da61cb28e810e001c1aa210fd4d031a131e444e9f2d0bdd96531d555c3a41351c28f1233a2d27870f274e5261160028f38a154b0964c041e43701e68483a30f2412785075d09ee89108c99235a0d49c902a2b05174be89c3a347300eda859d4a6cd8ac19404ff033e7a34d0c38c206e69258b0a7011cc23022bcc0acccce8474bf50bb2acc8270f514e1ab909547c22b268ce222d865cd1dba1062d4192e4f7304f43800c727104de6bca928060010a3d1dc179e20991c98299929b0004b271e5ddcf90f4c09549e37aa660178b4c2042c22658e9b493072944a0a85161f9408047008b9f3df4e87af75aae2f48fc040d23325e8d35f83c4680d0ecff039b431422a9352265fda83aa125b81950d20e0c6aca7520df978279bb56579a93f81e4ded78aca4bf82576a0520d1b642e58c564e2dcbdd83287c6c5386c88db2f939844b1035811bc85448856997a23f8c3a7b76010235471d40a3e90a7e275e04d4a431698f226fe342a615f0028482ab827b824e81604d140dccf509d09809b2651a293001c058cb32153a8b038278042a08ce120e7e9069ee5006609b0966d0418b083d2190d0d9be286ec48f340cddd1dac433b720734c082921ced70d1c08c4b0dc89a1d12c0101f58f258728d8c7260663660726e1290e3d1a2d2d9154c44399595da0308dae2e4baa1e22219f85147214a5b9db0dc72e8b802448747c15c5900cdd49102894ae2121ab51c14e4f0c325c65b029ab0e48002567667c50428396ae420112148998d0b8ce0f81409769003cc0b8e3a388cd89da93241a038d49e9c39d561101b8e1b9638eda1d5743874c3cd980a0c7552dadcb8bb51e6e7c6050b7c776763ab0d4883220502a3a2b0318691259788571e1bf61dda542753c0c64b67a3819a1c3c950b15a748ccebd41f3850e2b4acc210aa0ba74a717221dcc4860988c499352ae0a2e7869db01635148861c2086485550d2a114c7c59d4335423878b16878eac61d528416354d1909c222b001a796828710bf5409083181a332495d210e705271a709ae00e406b53c20aa0207041e060c061e1912027a818e26d12054618529cf8ed4c2a394e6d74b0bde1601b26880b52e14dcc0d1437a47c9bb7084fc6f0e95ae372632446827f071208b72f6eb49bea210a02e528416e7d06211f33ac60e9504345316846f02e021f201ac419287eb49dd22a20550333b8ad4f9b13601b0d2c25249d5031a46dc4af8ea5247cb4b07962a3e3e1d0199f160d6c45d8d2d8d62cadb1a9808672e5adb06657e2713449508b35b22783d660fa22af59507ba42646ad5673d918481080aa536a0c6e7ac9eca9a42502612c53e4e2212d4b5a9ca642862a190964c9989246068e31195c0bc41015034f8c2431661410032d138e0647071a10b4176869670f1ccfccf8b37bd3598b326710602c82e10586f0128cf405ab17835e0cb0e105f08557a79fa95f9f5f13de0f6efd9154cc3a99cd31236226c3ac2c82b235657565636515c81c9189212392b5643c30401211a28fe51192184bd1588984482a1e8098487171c305570f4054efbd4b71907bd57f08b4fb75d7f1f6c0db0b63204e97f3f0e33cde830b0f2ee07759df3fcf7d51c59de3c5eec33205bfcbe3d08cd09a5f9b6b1a6cae69f2cb47c005c108990808d2bfdcbe67699627d897ef9fd3313d2cdefd3ad258ffa227dafd9a80dec92b98f2d8df5e180feabd07c9fbcffdbca67d570c0892b5ff43db868ffebebd5703e0ee53aea8370e2b6f84b92faa38e6678982d9734d830dca71a31b29cc7d911c0ec7c2c21aac58d31dd47150c72ccdf775dff665dff555dff445dff335dfd775ddd665ddd555ddd445ddd335ddb775dbb665dbb555dbb445dbb335db9775d99665d99555d99445d99335d97775d77665d77555d77445d77335d75775d55665d55555d55445d55335d53775d33665d33555d33445d33335d31775d11665d11555d11445d11335d1f774cff664cff554cff444cff334cfd774cdd664cdd554cdd444cdd3344d0e7226ac7d2a03e27617c15907c91ce965015a71d7e0121bc18898b2a1d6268c24c28b0247f60872c0e46c81b73e3fe244a2a0830c06d873d8800881425d4a80d78f5419589cd9218028064e861252e8b81ba1a2829e992493d80d2eb59e4624de04b7a00ceab0894598553ac08254304103b5794a042e32d859b526a3ed6105c7b164dc2c14e9bd0156416a0b63f53ddca53a923f2a60de5202978a43054b8414a6fa2c828382a28596cbe6a523bf6354436eee821a0979e49e2a48135c9a124ce3c3e4768f0803d3f1e0954383bbe9eac291079ddad6440de2b4f018605681db9c5822370fbe2300968d0f2ea168d0d8273480e09553985aed10e541118b222ee8a304ad7aa8508d0c19dad2e0c29c9bf10802f50bb801450d0b313f7c874a25f134e8cba84e1144d0026ed51aa10f3f44b06093a71fd630b8b2204f8929d73028532100a6745dd2c39bbbe00a1f1028b0c266d4461cc0c346688b92584dab184c40a0f080a981942943d0a47ae400826f666103dca50f8a6e075ae109b26900a7139747586ad862b8c8118116af4914033f4c821c414c92a1a60fc093c28042872f5c2c5c89b201130b26ddb8a50c970811a40179a40652d68755af165406d47903616b0c16ac505921ac0cd2e10525ed460732a8865c9e3888e060f7e0cd8816122a45d0a68028104c2a75c8aa42d7670bcb8a2db5486da9188c34f910d1c6669e322a150a0d5ea5424020e2118a0e166ad8c14d0562e2cbd39549c8104a701926ac090408853b8c74015927cb9c56d68bd0842e119c2a5106985b5f474f45b6c319b2171c9650a096a903201f3ad668da9321c9025e7c3cd841a60e8c44573484f254a84747018e05ae0c3aaa1e04a0e68e4fa806b6cc281d4921c06f5494e29f24402b4d24b41868e23569c140140a028488f1a895a7b55e224f6b1896489024b480d3c0514b130a5b9a7e2350ddd861c2a8c248a8ae5368b0b49234f0f0054348121450847cde50dd41e36b5920000c7f4ba305a905832affe6e18993a0dba64600d420b5ab83149e080d125610018b7b6288d40be80d46992d693e3017cc4ed8d88e72781ac3100990161f544113ec7ca4394991e8c2900c10c04a0d53beaca832a8c58a1a01881dea39d883009685341568c0981798b5fac50a0cc8593e58ca1a92a745060893454c5a046c10706cf0407648070557649bdaac8dd9740fcfb080acc5183be68477e2ee0f77ba6a8001310093386acc32790e3e1f2af013892bdd9026cc0bae549d2968ffcda02d1924008435c1a011bd3faa5c84d5e90306482f0f2f049a0b7593971c5a5041999bfbda44a50b87302d803e0931c00d704c924f007cca8564c119b8ec414d94e8c0e6a5c61100a6c82218c0815970a4b822c701048862601191301c12d53d51c1e506210d5d777dce482a602bcb811462a004c90006022582ba12b4332d117e28f1f0e1f114b08a4c8f028a4617243acc65023568adb4241f89a2652281742dc35b081b60c49e706aa3c5ecdc58293d7a6442daa4b172f4862ff95f630a0410658bc12a4b190a894a92a44cdd868df0df6448c46acd2e421f1e0ccc2811b78318c244cfcca7508538e789746606161c51983c6d8d6944a9cd80098150945943c2b6a9111b2db64943703e2b18c853e766808b9854c357010efaa7557c418502a61249498383e50146914e0c64f112a4030b3c990ec8b076446bd10234721f1ce40ce6152451eacab03e638f49140cca3a5286c3c742dad1898a87501f08883393c4cb22af395c02c86a8c68b07169cdd1adc1900b4b1200d1a213099eaf121d12827245bfcc4bbf6105c7e9ea43017b1adc7044c4843965dcb40ace0cadc192a928471da2b54da8a82891cbecc061ad098003014e28a30478c60b1d2e03d48188f1c35305a71a31452d154e2e303b7b36d4849a5831c5a448a93663701c890bc40a8b0f8430651430dae21537c7128fcd971304ab7bcb97516e5424f1694277a9c48ace06567f34741040d2194badc28c90b1f57764a12a043e1e59fa34478b9a1c165a203285a0836715951b741968fcd19ae00b14012b385451718e65a09106021582b8b812661764a129e1a74ff2c1c10194098b0d08458444e0f616d50aa725461845005149859cba0e5e26b400a979fbb2e5810742d24851904006d293191726649a34a0793154fc0364d0dba2a128c89b28c45d58265b00611a830e80f41019a443081613098849d3c2d93090810b0188881a0cb111c1608e04357f449de905f9f5e0c262d1e4005a2e0c0d611f255b7084390f8e58c1704412211e8931758296873014745ceaee449720a89c54af303d4b5640e90992424a85395fe4944c19b1e6a1c1882015784a3260306175c104222b9a16974d582c2832c41e12b31012d35184f1c570a374c19c9612a2e2dad41e521a6a1ed48448c1ee2863b64a5842532004a84b1a46c0f9e3e40f85396e90cc81a028d3134e3e3951d6150bd8093ce922f725d20c16783ec069c853e5922608bf41570e4d295201200d69d6102263f3f4360063e728d2d5151a6b448db02d38092b0ce20c8075766506078207c0945476dab757c40c3a0e6c01a364832a818b40aa147800ec80330af8b0a46911d6143c05b8821800322ac71d1e83e6243182902307284a0523dec8570e082c845a016a0320212c8516ebd6024d2e71a05082d0932c9ea11db68ce207a49aed853da39610820704ab863c5003ecf346c8230e46d0d070a031e444e9f20c4174a315968fab464ab2ecb298eaaaa1424b8f0c872e0cbaaa5b24a2841f256644a575c9019515c3812da3da3878ba72930820010f0a1b18ec0c40fc58c80aa582b564200c1a51a9828d496601451199c8b31b0f6e07121daa14a5948362ad03920e8c7cd049c960a605911e0850c0442c03ed866c508d0a3d24ac3a8e5629c0a03db8274230668ef02e59fad921129aa26c91942c200a1365e7021373a44aeda31819367178f408c601464012115a44bed8ace8d9a9c486cd9a1b271028caa4e690a82684b6fcccf96813e30d04e71a0bb31f5b7517b4e69258b0a7011c32709059c5e08a9b0420f944788159999db1383bb28a8b1d1f06953cfc42edaa300b602e18a908f2c9f220d5f214e1ab9095477173186e6ca1951a50e063c2282e821d161bb7bb8d1b291dba50f97021c4a8335c9ddab4d50112438814d888861e07e0f80482891333aacc1559ee39abcf5414030088c1488c08b03e2ada744d41f5014f904c0ecc92283a2d21eaa065410e1f0d1660e9c4a34beb801f232ddaa8e921f7b1604aa0f2bc51f5e34a65c5c504079c102078b4c2042c2225c53a8200309150c859b581c9213a072c5081c4944d6be2449007d02a2c468e5249a1c08213fea9890e3904b072081108e01072e7f14f6dd0588103c04918870e5feb54b5498a28271394d519696441160c243d53823ee1261a70c26547a21ea1109018adc1e1599e7ad0503340214c9bd0706863845426a58c841f1f8db2087544e0c9da83aa125b619d3337e6e31181695644107063d6538946280a5bd6789c65f1b1a4c32f839b19c78e946d400f50608e167cc9d096e5a5fe04ca01054a8e126a25aca9f7b5a2f2127a3160cc1820201ed9600bd1a1520d1b642e56655af4e5eb82277d8460c910e7eec596b913099a2171a68d08c5ea491980ce80247ed809503626f83cca41b635c4ed9749cc02089ccdc8ea81924ad1450b45d376e254e63f3843d6e7549426317aa7de80a148246d8b44080bd841214c040f2442b4cad419c939f2731426d616175a72326941d2d3c8ad9d00c19522d342e49343e243515f1224813c89ecbcaed64cf0308811aa382a850b88aa648c92b44260a721acec4b8a0e47f113304739b41280a3ca3768dd1340903b36314f7c96ec1445097ec09b94862c28754097356c8af8c8d970a5e14fa312f6057f4ec508855b98bdd85c61ad75486e60e1c9350045c7043b236acc81201117d635aa0b1cea852a357dd6380a1bd6d8944b4ec0f140ea4b492295a3c402ab4c8d275fdc4c69c871c093352942d24c100dc4fd0cd5f924aa4a9d5f8c21e671d3864994e8240045f5310279846975c30211591b32850a8b73a2cb6502b5a9d50f156921a08ce120e7a947012a1cc9a86028958c361c8a468e98f4e088800f04628a63c024c46509b0966d0418b0d52ad35a1f234e8894449cd1d0b0294e08152d35a6b9b6cc52ab0e0fd4dcddc13274a60da936b72a5ce664c9e08006585092231108e4c08d641a50b5e93530e35203b2262d0b9a178a2dbf2aa33a80213eb0e4b132989064eca5b26714c94024ce9db3953fe0c9520216068032a6f6663660726e005d0ac589cba3342d3aaaad1695ceae601a7ed1e4a2025268fc16ae0cacd41e40d05643d30c4457a24cb065e948cf5071910cfccece580fb33bee6c0ebb4569ab13961b8e3ec239616d4fce30a9a135e42ccf98a41f88c82916e0623e11b17c28982b0ba0a978a4e68290171b004e8c1e90a8242ea1497be266810b68847c2903a581810e4e74c8162c9e40a2708755a644a37c5c62bc25a0094b3c268b8515439e2af8f900567667c584278bbc2401c34309021f893438e16245c58a311732b57183e2708003c08a10a4ccc60546ee3655590f4eb5f1f03f44821de400eb72448e1f3b1448b8a9c262839687160897101eaaab60044e4fd098587667aa4c10e796548834119538224d807872e65487416c405340c658ea5143cba30d623e2590014c00432828f461ce89bb1f59589cf6d06a3a1c9a811134a0720b34e88110632a30d4496953cc5261d4933a64f20138a825caa4ba4799a8340187a3af23538c593a3a7902ebeae349536d806f0f6b2145080b7c7767632a9b319864b05d01e0cc8cc3a04881c0a82800a0d3c622003546c0b4598c2cb944bcf2b02950e1825679b6c4018ab8439bea640aa4d53fca9f4a5508561dfc88297de531e6c91504ea5410cc9425839a1c3c950325010b3b4381fca610593d31af537fe03c9980902a9b814d9f3860e8b00a43a82e9c28597ae04fda910a6c4aa56528849bd830c1104e6fb614858e44fd19d30b73ca4e16d7fcd607c88d09eefa6ca1b3c545cf0d3b612ddc100d00482b4a570580560c1346202bab243d4a238480425a81115f04135f16f50c697831828423468a055b3cb86871e8c89a6f4f8b2b441234e850a58ad621562d564817cc555b28908a3218c97c4543728a2c3101b018c062cb454f6e010f9bd630ba0b510848894c5f141cd27441100d6ea11e087208738127107baab4484240219fa4521ae2bcd8b48a09262c68ce764d031f0608e1c44e0f5cc518910f5e84141b261a1ee050ab32a5a304a2519f82ab28a28858686d4a580104c41385134812588042292720c8dc8809ad6987f7e6e7e5578d4f7875cf16f5de3d0df8cdaa775dd8a3b3fff0ccfe93e7e687c2e67a7af99ff05f513555d503786d7ef157d1f574dbd464cdb5f52b9b5f7ba2f03bbbe9fca2adabceed9a5f1ab3abaacef1fc4dd7f46fcc0597c65596e7093c5594a7e6a7b66b9ab6aaea533875d719e5a5f9fd1876e19475597736d3774dd1fc4cf94d637875577345d3d345cbd2059ee9d9aee1005e0dc03bf393e3d7cf6bfaa2ea3fbfe9cfb5f33cddf0ccfc5af7a3718ccab3ccceafebd9b26cf5f0cafc50173d5fd7fdefcc9e2c9bc6647e72fcd778fd311cbf1e4ed759d89ee9c9c2e08df9c13e66e5f3f4ea89baa83ccb769979eee189f9996ddac26eda9aed8fdfd4b77578617eac0cb32b6bbade6cd5d73451d34dc203f38351cfb26aecbeaf5fdf18f6bc2f3fd5b7ad2b9facfbbade95d718e779f9a1ac67637745ddf46dd3ffbaaf8b85d7e5b79af12b7bf96559d95ce3962dcb14e571f9a16c0ab7aec9b2ac7baa5f5d7deecdcab20b6fcbcf6d5b5696db9fce2e7bf20af8c9ae29b3ea9f4f9ffaf955df75c8d3f28bd3f545d1d66d7fdcaea6ccf2b2fc4c547dd7394d5f0f9fa7899ebf2c5fe0b98587e5679edffd2febe3f994d734655fe0894ae111f03bdb3376631fab3e45cf345d51f4ca0f76dfd74465f7cb672c7b7335adfcd6af7ef84d59dfb6e7d9aaebfb8537c0cf8ce7554e51f34de1b475bdc9abf2835f5896e759fef11afb76f5547edfc3f18baef2bcbea80bb7316fcaeffdef475934864f0fc3f1da0ac093f27b57d7c3299ccef2fa59f94c5173092fca2f565378554f7866d737455f14e509f093d5f68ddd6ffe178ed58fca280ae537ab687cb2663cb32ceacefe449ffc4c39f6a87ab626fbaaaddb9a4e7ee8d9c66bec4fd3cb300abb1e459bfc52197dd3949d59f894d1f6fc328a9f3b784c7ea8db9e6a9cbeb0fc4d399ecd253fd355dd574659945d5d9785794a7eadfc53f8fcb27755ffa62f9a9ae125f9bdfec368ebca2fdbba710cab6c78487eab0aaf6c2ca33e56dfd96d659777e4779aed6fe59fbaa7eaffb99e6278467effb3ab3cab673cc76eabb66eca2bf28be1d5bfa96caee8ccc228eb8547e4f7ce6bfa61d7fcabfb5793455bfd52b63d59b94de5777ed9f6ab60ae58fdcc379d3f9a9ae99aae6ebba6ab7eeeea61363ecfd49c7dabaa6a7ac14f5ed9ffbfe9538faa707b9e5bae2cf87d779dd1573e53d975d99f9eee0b3cd50a7eaa8ca272abaeaa2aa7f13bcbaa7ee9a9c6a81bcb66dafa3476592a57a97ef08caeb3c9b6e9abc2efec4d54bf346ddd13756596fd6f8bca28053fd3ff369de79fc6e96c9a667beae755d64d63d87ddf1876cdd474d77000f32b53bf1f7fd6bf697bc66bbafa9315b627ba96fac9ee6aceb3eae3793e7d9caa29a9df7cbe712c7fd97c4f566dbb1af58b53f44dd355765bf6fdafbbeab812f5fbade953156d4ff5fcf19ab269a89fcb7ef4fcb3ff73bc7aafbe2aa8df8c7e37fda6299febacb2333bc1cff5ac4fdb76fde9fa9a6d6b7efac1aacaba2c2cb7712bcb2bfb534f3f3695dfd5b3eb8bfe754e6157d8ae6da75f1cbfec9ac22e8aaaf3eaaea7043f59555d579ee3ef51d934dd97d32ff629daba722b7bf5b7f0dff433cd759e51b39d53337d5717d6f49b65f8855d977de339d36f75fddab62ccac63e5ed973667385e9b7b232fc5b15fd731cb75f362ffd5ad6bfff35e5f78c637486554bbf788557b37dd313fe2d9a72c9ad91ebdf46dc1ec65c706be402ba689fab087eace9cd793de5b4d2cf3c7faab6ac8acea9ba9e5e5e7345e9f75b733dcdb75dd7f63ce73315b667eade7911821f2aab2e3ab7b06fe1ef53d74ffab93f6de3f7447dfcceb13ccfeafbc0ef45d114655d595e5798357dfa4afabdac09a7a70bab6f8abe2f2aab6aa49f8f5dd99551736e4d34f6f05c9679a9bec033ff38ee5735cb95033f3f9f1e8e61544e7fabb62f5a96e6093cdd3157907eaa4767f6fd291bb72afb9ef10b3cdd30578f7e6c1aa7bf85d9dffad64c65394d1dfd5af49fea9cb627fae3165d55e0f9a60dfc4e143de1ef7ef4cfa789a66d59a656ae1afde018f59f55dff7943d2a7fb82c53463f5636657446d1378dcf59657f9a2efaa1b2abbe9e9dd9d73c6716fdaf01570cfcdcd83ce3f7655dd485cfd394f1b2344fe099bab952f463e13566bfcbc6eee9bff94db6b75dc301acaf12fd5a3736dd34fd1e465f7475d5057ee93cbb32aaa6aacb7a7545dfb24ccd13789a279ae60ad14f8561797ebf2bb76dfbb6672c6cb9dad2b8ca1265efbc9806af0efd54d66ccd794ecdbfc270eb57626ca32c55770d07b0eecad00f9dcff49de7f8c3b20cbbc29cb653dbf34dcf423ff9fca89ca2acfc617386db3f8c7f1df03d57f75cc3017c7145e837c32dcb7a15fd2decc6e89c0efab1e66afef6756339564f15f5aa2ae887b66edb9ee92aab710a3cd340bf559dd15935633485d3d75dff70e8b9e0d2b8ca12ad2bcbf3049e681d7a96b952e007c366fbdbb98d51544d638f0adbd3cedf047efe3465d64461934d51359eab81c4f8ce448b2bba8603787605e887cef3fbc6a89765146d61d544affefc3eea619455bf67d7f4754f3fbff3bf5ef6eeecdff8654db9cfef3d3ffb9e6afbc2f2f9591fb3956559bac09325c677ee952b3ebf3535e7ffa2a9f9baf2cc9a6a59b27565f9024fb60ee57285c00f75cf0fb3e8ffeebbe7f7ddd66c5fd4345f179d5bd3855b5b22577a7e683aff553e5f934d67f36c81a790ab3c3ffffeb47dd1f59c5bd4a37e7e9b7485e7c7aae7ebd1944567b56de1532e4bf5049e9daeeefce2b7fd3efd327ac6b2abc6719b1b17195719d718575b9a6abcb2f38353d874df186ed17885d3d6acf383618fbaab4751d5d3f9c129fad31fbfecf7f25fd359462bcbb27c81a779bee81a0ee0d59bab393ff4645fd5cb1e7ecd199571da3df1219d1b5b5cc9f9c52f8ab22eead9b57d4f739ecdf3cacb559cdf9a9e1e3de3347e4f1655bfdb9e8aae0ef8a168ecb2efc9b631dbaea6fcaa2b3e2c12e915ceaf6de55596e31365e1d87f6fbef9a97f4563bffe977dbd876558d89e40bb5fb3a730f76daa30f745f598a3e6b98603487665c02ff5f20a7f577dd3b47dfd1b0bdbd39eeb970b0e0657f1085796c0133d81a7dbe8cacdeff4eeaac233ec9ef3dbcaea5b96c0b23ccf351cc02b28576d7e2c0c7b5385d7f8cbfe9de7380d72c5e637b7ebeaa62cdaa6b1875ff9aff9fdf975bf2cff79764ff69f5ecd2f45df3546e7ff579765d7994df3fb272aa36cbab2683b9f2ecc0adbf3bd2a7285e637bfecbba6a78ba62d2ba7aa477d5c9df9adab6cbea8ba9affc768aaa6b899df97dd545ee31fcb1f765bf72df343e5797e4fbfc22beca2eac992f9c5de9cfdeb3feb5dd6c7b12c6ccff37835e6e75f9835d35985d3f3c3b09785ed99feb812f333555546e3d47dd557f5b03b0bdbd34cefaec2fc7ebaaae6ccbaefdac2adb9b6c2f63c51fb0accef6c65b565cf147561f7546356d89e5f7ede84bd89ca2c7aca70eb5d57d89e2b8a5f79f9a171fbdbf5f5ec4f55339e6dbbcbcfafb02ccfa6eb3d3baba93bbce2f24be5365553f85de5187ee31516b6e74bbcdaf2f31e664ff5cbb22cc7726cc67305fc7efb7ab485cd0fabf28a7a1367795c69f9995f56e71696d1384d61f76dff8ddbc2f6544ff5a4bbcaf27b5b73f6af2bff7546d9577eb1fc7efbfef79d51747567364d4d027eecec59384edbd66dd1f4cbf095dfdbceef7f7daac2f1dbbaee09e3caca2f964fb8455ff47ff34dbf390ff0f3aec9ca293cb3308bb6f17a56f99966aac6ec9ab2669b9e711b0bdb33bda2f27bd1b54d65754ed7f9fd2b1a0bdbd345e06aca6f355d14765d177dd1d7bb6fbbae77aea4fc5035f51f5e67b98de1734653617bff2f8c7d59599699ad7ae74506aaaea2fce0cfc6f2ec5d385e5defe554809fdcb6a98fdd533e55785edff30acaaf55637786dfd59565566ee7f5c9ef9be9fa9aa78c7e75fd71eacd13c795931fcbb2adebba323cc3a937d9153d2b4b2eb8b4b23cdb3b2f5e35f9a1f3f9caaa4fdbd77bd3afa6b03d87431fabf50bf4bc62f293d9f7bbf1bbbe72ecd70fcfe919d3c3b7b5b22c4b563d4ff6be5af2fb7f865dd774cdd7f4b13ba7c2f65c6b3f6cfbb2bde6c272bb8603985e29f9cd73eacd5796553fb7b2cca6c2f664b9e060709565fc65b834aeb22c81c0d3547295e4779ab19aa2f2fbd3765ed5af0adb33ff73e99910f7c21f9d2b243f739de319f65f9e5918465555d89eed5959c26e655c675c655c6f5c70695c649fbee14a22f0e71e3dd77000afc45c1df9b56c8c9e6bbaa69f6d5734f5c2f62ccbf8d71dbf0c21eecfcab8c8ccd4ca1296815c70695cc09a6ed9f3ce8b5785ae8cc4f685ab223f38f56d2bbfec77e5f5954fd4444df44cd770008557447ef27baa2b3cafebfca2703c9fc2f604dab22b37e4e76739f6ed39a7be75e10fa7c2f664cf59c8ef7fd98c5b7736ffea9eee9f93fffd892b6a07f9b96f2acfe77fcd583dfdd9c2c2f61cfa9fe340baa1115e4f2e381876d95c4dbfe897ed5afd407e671cfff65457364e4f177d5d617bd6d10167ff8740f5e482835143c6ec7f5a19576e542bcbfbd3dd9e387fb72fdb6b67e58aaee7c943f4e307aff3cac6ea8fd5565d5f5815b6a71107c6e9b9d6f6b0ac2c6b709571c9e0824be32acba227966559b2ef1a0ee055141fbff7c3abfb9efe4c636fbaad491f7f6c6a9ae92b9f266a7af4544ff78d68df2fcab22cff6db344639dd277bfd5b7ad9759987de1bb7f767f3b3b6d87dd0ff6727c9aec4fcfb56d7fbcaa2c5cf79b3d2cbfed9bb2f3673d6bf7ebf4fe6f77fe769eed9de3e96bfc996b0bff987ddd33f62cb0fec3f63c16ed78e5925723171c17bc1ab95ef4e73f785e7d0a9feafbc6ef97dff40cffb5fff4b1d9a2702cc72b7cce5ef8e2feb9f0ea573fa3aaabbaafabba5c7030b8ee64342eb834ae3f577bb7b2fc73b5bfcb122fda67bb860328f7f8cd6ccabeecd9caa78baeb3bc02dff3cef1b5f843531435e5196565b675df175ddfd6fe99eac9cea91bc7ee0a7b3486cf3bc7d3fa37aff399be296aaaadebc26b2a6ccffcee03e78cf09781ecc9050783ebf642146f6f2f8cd537e22f65e1179e573456d5394ed533c7d5351cc0dff0f7cab06c7e597efd6fe1373587b60d9fd1fdda73fdfe54e554456156555923f0e3b72faaa7cae337a3ad9f5b18855b36f5b319bbe84934d62990fecdf0bc7af8a3f1f9a2b0fc9ec2f65c739c4e7b85bf17feb2ea59d53d63afaee7ffc3a211ce9cfba96fbba2f35f5b7475513676d373fec9ea7ab2f367ddf88455b5fdbf9fb63f6de7396ee17fb2694ccb3ff77c55588dbf397f7676bdf9f3a297c764df56962ebb86033817ffda1645e12fcbef9fe5f7fbe1a7e7f5ed3cf1fbbb39716601ffd6184665d9fc2efbc2ab9ba6c2f674e7dcf8e279ecde399ea6fee7a63e65bd6f67757661f98585ed0934d3b1e00f56e55666cff54d617955d155d89e40141d0e7facbec05fba9eff4cbf1bc32babceeecaaee100ead8f163e7754e5539354ff784d9f42dcbe1f0c726bb86037843eef75df69ff24fe7b9fdff6c4dd4858e9f29cfef97db3fa32ffb4f753575e448d1f2a7be2afa519365ff8fdf34763d8edff7feb76ceca6ea39bf72ac7e1f344ea32cedfbfba8edba2c89c6fac6cf45ffd9a2f129bb287cceab8b8fbd366cfc52d75c55754de33345d7d3345535eef755f55dbd7bae69fcbaa629bf70e38251e387ba71fc4ff8744ff8b3aaecdf15347e2a0b9ffe4555d4cfb1f95f54d89eb22fa625dcef3d531736d9366dd1f89b3f96ebaf92bdfdceffe5398ddf1895db765d51617ba22fdc7e26dbae2e8bb66dfbaea7cac6c2f61cfa7beefb227ade3f7ff1e6c4397567fcfcaac6b2daa2e9bca2edfba6c2f65459233027ce6ddbef8c65b535d7b6f5673cfb7715b627db4f6de3176d59d87dd378765157d89ef51f0259745dcdd67ea6cab2e9fc7dea4f786d6756d89e320dfcc5637eacc7caf2587b38365dc301fca90181396ebc7d69bf16f6a81caf668abe736ab2b3b03d7f5cdbef8f6bb6fa05ebe2453b95f1f3709aa6a80cb3f069aea80b9f668c9f19bf27dc9ea7ffdf455b154e51b45f1ba767eb9ef16caaeb5f3d1ad3b9cf71f43ccf7e1e5565b55dffecc2edccc6eaebc2f8cdab29bba7775b8f7e383665617bca76d88b5fdba6efe99aefcb9eeb1cb3ae6cff7eeae965173ee13935dff9c3e8699afd7cabceb1bbb2ab6aa2f1ea4f617ba668d9ef7b39fd661bbf2f6a7aefbee87992fddcd75c4fd754e53446d3d45c85edb97e8dfdcef7f5a97fbf2bb328ebd553d89e45fb96cdd7c5ef34d3af7a3945e7b89dbffa0adb735824d240f9df5e88bb671bc08f9d613fc366bcae6f0bab306ce728ba42ecf7c2a8ca7ad6ab5e955d157685ed99df36ec0168f1f3a7ebbe3f46bd0bc3e89f5921de9e2c8bdf6f5173565bd33ce734fee8296ccf5fdbc31858ffba0fb489f65d3cd1750d07306cc58f8565f4fb373567545ebf5785ede9fedb2ebb7d0d18554f760d07b00dfbc9ad8f5f73665f1975ff4ffd3cdbc09c1e16f137edfd995e9ed75685e5b73553185dd1dc5fcab6b3fff189be2eaacae69c9e2c7bc6bf2e456b7fb0ebb629cbb2ac0bbfa60b97e5cbaee100c2eccf8cd119f6a8eca6e809af2ebce6c4395d7f2e0baf5e45d559f672dac6a6b03d85b8b108bced19c89e69eaef3461d9bb6aacc6af89ae5e16b6e7ed85b17902d31faac62aec9aeba9bee779fa54d89e778e03df9fd3775c5996a5bbaee100caa1bfb7f5f19b9aef9ac6b00caf7ece087fdca7eb1a0ea0dbf99b4ff3ff194d3d6ca2f089c2c2f604a6673e34e2ff6651f3e7e79565e5f68dd9375de7d80bdb7335a1e237bb26eafed535d9198ed15315b627103dd99c38a76cf9fbb2fcaee82ac3e62bcbae7b0adbd3cebee780270af683d5787d4fd68d4fb73dd7cf0adb53aebd2d9f68cb0507836b8cab8c0b8e0b2e8d2bfe35ecbcdb7be3ebb7a6272bc326fcfed484e3b8956bdaae36da35d03dc352fc7caab272dbb2ed6a7a189ecf940b0e06179a1a6f7b2ecb9c38975c266ae41a168934175c1a17105d8b443a251aeb3427ce298ce227cfde653deabeaa69a6ac6c0adb3327cec0b99aa67bff6dc7ea1a0ea0e9f54bd53fc7aaf95b177d3faacac2f604b667bbaee100ba5d44db060ee51b089470e206e2c61b08dc327102ede19c3dec5082e42201400a34499c18d1457689f80a7102048a0fa607afad131df00e1cb636d0c51e1e0e6d141a64ffef2dadbb5f6738817fae43d6897fc0eaf2a145123d0f18ce0f174a5840e59fdf7d14154ee0177ea030e746208809314e13494840239c400020a0443b06fe1b083ce9d8152dc61f07b60f423870d1936ca0b2c03bdb2e07c1003857d342dc0b49de87ab134804de76eee3fcee87e83e2f3d5656ae3ed1d70d7aac0ae1a0d0054d1235d67911f4ceabd43b8f52ef3c087ae74dea9df740ef3c49bdf322f5ce73a0771ea4de798f7ae739ea9dd740efbc46bdf318f5ce5bd43b8f015ea2de790bf4ce43d43bef50ef3c43bc371e120a5d90a44f63570fc67c7a24759f9e02ba4fcf8d17224cf40daf4f0f59f7e5b9a0fbf2f8e9be3c62ba2fcf5df7e571ebbe3c69f7e5f9d07d784e751f1e3ddd87874b84b6ce22abfb003de8be3f1474df1f4fddf72753f7fd71a0fbfe20eabe3f7ebaefcf9ceefb53c64205df1a54dd67e877df1a50117aa5a3de2b15f55e69c841061168dd274245ef9d46ba4f8487ee1311c11701abfb22f0ba0f02a8ee830041f74150a0fb20d8e93e085bba0f0291ee83c0a3f7a034e83e0839ba0fc259f74150bb0f4257f741e0d07d10aebaef81a85ecf82870d157c50cade83d2d57b503cf4de2ff45819e93d5677efb1927b8f139cdee364a6f73845e93d4e407a8f535def719a7b8f935cef718aeb3d4e69147a0f12a0d07b8052f51ea04ebd078852ef017a042881de036440ef01ead27b80a0f41ea01fbd0768d87b8074f4de316061a05081422f4894de0b72a4fb1285e8bd203e7a2f88dd7b41e682d8b8f2213041f721e0a8fb1040a06f4080acfb10d8d07d7b22e8be3d78ba6f0f98eedb43a4fbf6cc75df1eb3fbf660e83e3d15a43841b65a367ae98bb443efa1ad7a0fe5d47be8a5de431f755f220abd8726d07ba89dde43ddf41e9aa5f7d025bd871e7b0fad7b0f957b0f8deb3d3446efa12c7a0f6d7b0f15d17ba885de431df4de5941ef9da1306c39a8e0a360c10116852b79ef5df1bd77e5adf7aec0e8bdb4edbd2b2c7aef4a89debbc2a1f7ae3ce83d2ba57acf0a04bd770917306cc0d23a7275a9f7ab017abf2aebbd977a63d02002031e0308bc07101e507830c237e2ecfd9cd1cf9e1a14bda786ec3d3559bda7a641efa529d57b692ef55e9a47bd970650efa5a1d37b69c0f45e9a23bd97e647efa531f65e9ab9de4b53a3f7d2a0f55e9a16bd9706acf7d288e8bd34bdde4bf3a0f7d05cd07b6848f51e9a4ebd1704d87b682061e865d010a1f70b167a0fc38408602a54c8da1a0ad07b4320bd372cf6ded0f7de70adf78667ef0d37f4de300218f7ea8d03072e7a6760f6decd96c01032a433418bc0c5172fbd735972d6939ce5fda6d5c87c4d932b50b20459ff61fd87aba5432d2830d5db7403cedeb54ce9526af4b600221083dfe51086e9086611cc8c4450571344da73a507bfb58891451f03ed7ebdc00350775faec77aef6e947ae9599e60f1af1b0e3d51cef0be7fb13d1c8ed573f4d07f1f349e1beda34f630361c77dff82643d61128afa88fb26d989efb129be495df6a5de7b044b7daea681431f42157e97454f746db436581bab0dd5466a03b571daf8f73f4353f674d5a3bfef31f9d7f4fce59a464de77f383492fddb2eab693bce69329906128dbf383bb663db4dae7f8eff384ff4b8518610f7c2fbc301a443a8345129d6919a041942c81802836a0600200163110030382c1c8ec7c331d16c4e8f0114800264a672a6521b0ad424c9614a31640c013000006040004064460d4020604c91dbf556b4b72c5800ede52ccb3cd7fe5f4fecb7b817f064571880e895de38ebd1c3aaf8fda00b8259e2fdcf546cdbd14b7269be90639433ad79fa32ec7ed15b5e4aac1f16d6893d0665c2e8922e21e329219760ec4cc72c86b14f899418c0cfd0e069a89ecc1bb087bc3a9a66a7037b1eef3ae29b4f0b21880154a6b34a234d9968590eaf5dd2a0a83cf93f5d500f605f95fb4584ebe45ab25a5c6db3a16802fc6cd2b14b2ed2a92885906f68063c137172fa448b154e5a9db2babe411cc01d5e809f2b013c354d7d38364f4c9abb29bdef73ccbff449b4b15969a13c75bfb31f1932f53e6ee74ad9abc03762ef80c59aa77ff2633a7599de53d23f7508c099880f36f37891ea9584fef6659c8d05c18ec9e7a3fc03a5a845b08ab49afeb37f52637c4b4854294339fe6ff15b4a58d13684bdab74dafa5d11b9e01ee23d5647215b881fc4a86307b5c0a2d0fbce0e924ed7458ab790a267ff7fe1a68d392084a51ddab31396ae6224287b8bec46e13e2365feac664b752bd5e70e854bbf70ba43431f00f573ea85bb9c43f21fc99bccf19e4eff3eb3830c4e9f5e18bd2fec502adf4a3ce8c5b9757f4a05c03d5b54c41c41aa45f2da8d65c2aab437c1cc5c0bcf48cf0a82016b8e4c31c3e6860a8abe5952c510def5b9ec3a81628189ec61e01c6802afc365ed7ad8ccacf684b79c0bbfff5509a5eb261ff14acf7d906e895971a3dc583d35524aefb4a648b51c456f295055bd9436dfada4a23745001c8aa3180b9c6e16582c5f966890ca1fd5cce849458f046831a1fe3d9a79507f6d9eaa6e20e9cf920673332a7e992a8862761db8d1c11cfdc5cb0c0b1030a94752ac681ae5f6a41b5c73d3b82d921e5f2a248d7586a37f3e38119424ee7d102237205cdbf1a08dbca83be26705c2a2f330ecc3d065c232a8186123b6ebbece41cf45f47866a6f5185cf235450304faa8136d0322c27f5adc47ad0cbdf7a32556dc37c00508808fbb64965e29712fc466592c882ecc4e3ff0d81c33d7685e68e96816aba6fd951a4948e155cb6f8188e5df0dd33db06a73f77bc4fea5844d8a931a6a831ea3a167747821614560f5a3cc2036be5e944f8a8968512f9661416a315131611b77d0d191287aedd829f31538693149dae3fc1a4ffd47dfb88612b68aa474449ff9b5f4a16046ffe3750c79094c24f4da31546ca2e1f9df3299ad8c131b499d9817d3fff03a1e0ba3029bd2c703c38a89f837a8ccfcfe72652b0cf3f50e2ff3a1689e5ee409cbf803d36d49c727f490369c1c1a310a4217df341bf9cbedc6107220265a1779fe94684308c3aa34316e05bdf79204864c7e42cbe5f41543e43f3f1242ae3159a1e4033738d2ecc5752d8137f6617e9b1d9dbd8fa320cf575fa2451bc6bacb2df35d959e7d5a25a7018e8541def3290a9b084494eb6297f336326f4d403d85c80cfc4198db84f6ed08bb37146852345ef49f27ee1cf47303bbc85af0fe1746f53111a87fafe2051601baada53c75251c5ffce6aec153a632dc940dad16c346faa4a8cdeb17f946b118f76d55ca9cc381d28f598bd0525e87632ba957e9133d34689f1bc83fb2489c03268bc57dea0d3528e22f97acf01359163423aaba0c45c1968d587b07f849a3e4128aac52f2df70dd7e65e67ee8d23ec3d4a585157d8a969a468c68ddc263c190442232062877926f66514071007cc85e72b5762b8138c31256fac0a1ba04b373716ee8898d73e0475d2a1aa416983db3d60d9167d58bf4c0f3649733b45753eaaaa14baf44bd98dd2bdda4add0982fc95f1108a37d6b4200925a43268bd92df0eebb7f9cd376d6b34487ebdce1e8aa5341aef689075f38f5a6144d06e9b1cb18da76eef9fbb83124d2a73b0e2986083dd929ec35963e46176d0a2dce113a4713b1f312bbc29c0edc276da5b1734c344eaaf13b0468029f8c9a32e19d4c5a5282342c8d8a0dc2089695a880391da5a47b77e097cc2f3b15c6df59f0f52d51c6d3ea0e6f35e692b5050069f30d3df6710b097d155b1af2608bddbcb016ae85252d234122a27920a3713ed04d414f07cae73eb6034d16a7d5145dc680bd98c95a19e181c16d68c1879ad2e28efe02d75b7f800ccfc72d00a805eb91a74d69e8df0ab58eb955db761a179c4d9bf92573f559fe88918c31c7fe753897f418b25dd801f2a2a7d667b200dca52a4c488ecb3bf48328651888d7ea349a8ef8f36e447bd9b2284668bc43ea7d4af7ad0b4c0364c5f04092ffe2cf5ad3d8d6ea8b9ebd61043b2faefd56a6e0fd7fe3b753202c8cc089de02a4f2d246fdb9e185fba5f2a4ead6684a4629f4beb6d9485cceb57dc1e513eabd1d909ea2fa1d69c8d7db482e906711ac61773021fc437d7488750b06a33f1dbef9cdb7ac714d35b5c943f6c30b7fd552f5fed022c2c63a74401fe29e54e74f204bf56a4c3478d7b24054c5a37b5a5b8717399680629918ca1de7b2f8a0735b5760f1d551574c2807ecf2d53153edcb83038bf16e9e851287921e3178975fc767a3827edee74b21d74db10b385483cec1e26582988ce908cc2d19aa9c6b82c420222afb731e4ee782e2269c762f64a3dd51c1c81a67ae0a3151a558469b89dd16f5e3160068d9fdcf5bb7652da1b6ce0e30e2d9731f1a6029c68954e2d2bccc1751867cedf1bf3ef9497e6064b0c91e1c5894d4b38fd54edaf370b3cfaa852647e2539ec397c6feaa1232835c67f4e930f28303d099800bff0d3eb8302763ff77fbf7221dcc52ad31a5da23ba3fc00c17047a99dad5645a4ba92c6eb569ae9779b3ef2e48d99847126a862fdc7498a62cdac3cc7d71e28d4cdba8bc5d8e483227bf523921d0fcbb639a6d5637ddce8b3157e55505eed5bb7a548a1dc35f50a2f6d86e25f4f8e21fa0bf4f0ff71b804687f7ead82ff754e3994be4a771cd5d4e848be4c517d33d54c7f5f28d69c23245efc0d784dc1263a633a867a2d9c0421b7dd74aa6ebf59856af626a7ee291487441d53c11fa0bb3df4b682738cca2ca1be4726dd6dcb56127450cae144c807d823367ffe603447fb81f97400743a3d55640c6b8a8ef8181f89d09706c2d7962562f3651abf24ebcaa2adebb0aaeba6288e90d6cbb7075e9007c53e4577167c8c45073447385aadc0ddce9917c40b7f398a4598c2c2d538af58de664150cc8557022cff54c8b90193186ecc3d3774662baeadb12395734ea6bae8920013784230ceddb3a0e1aaa8d4e5a7e1d5b32f4df31f2db659002932dc5d2cc2dfa115c2582a3559539abbb534fc83c57cbfa6d1be4408313a8e978e47a5c9db660f49de679696e7035627bc0b8aa8f9ac00f05cfa54f64cc0b079d68cdc9f69b86a93974bacd72587b34d2334e198521ef4ae4e3e881196ff12eda6f6da4c4a701f719e54593b11a9a4fcfa4020215d0dcab7007d451fe4c2714d17328adb36a30402248dfcf033dde53a61420ca9129128388c4fb2c1c7fce71ba1b23b0968f69f58a5aa38bb3a687a41c0839c679c5c3cdc118f99b310ada0bfb0e76179282f18c0a8d004706185c79571f80302f6918bcf4ede1800a670d47d4cb11c4bda14f5ea3cdf79cbe0838d4fa8d9b62ee0da331d08e627da53bbd1b4bb7a5243eee57a6892a3e1bcbad896bd302b4edd68b0b5b7b2f8458a88d479735e738ec19018698f88b2f00587806c7fb67d4f44bb195cc92cbb71406bfedf7c8c3a31774e0b7b06da3b37e772dc44631bf451367f7f33c746c887c578ca2e19a9b1612f58e0248f4eff8dff468c008e0fa021641fb0006aae0a65e839e295ba750820876b8cc2620326b91461838903f3981493c29453f62107fc344d06faa8ac0d67016552ed005a6382b07353bb3b278eb3e19623e896fe8553ce798b4287a3056cac6c0e5baaea7ee44ff31d5f1b4b78553e2a34dd16c02db0eb5a45d1113de7cf9d7bd1cbab02288431ef609a72b216e47a5caee47bf457a484bbb0451ff86d37c52e0bf34bd5abf124e457a088ed057f8314952ddf6af714286577dad1a5adbfc46dac52a3cd0a327b5f2ea90d449940a8a950ae333468d9cd8e79c36725495bec88825081cbee07a625aa25a1dee757edabb490060feeb1265e78045fcac4746f5763e653557717889f60be78f7ec9f23dfe2c3843d0f38e9721d90ec620d22f3d928377d5f740ddaaaf63fdb0a74626bb4b8242378bd845870d742c0f9c32222792aacff37c9248e2f1e092da1e11d905d02d21d5daf41dcca76399511827576f1d7592548a30993da2140057e7fc6b0e140c8011b386abaab6b53620fb45eb28bccd1a4878ada1b70fb18221719958e766177c34b59f2623cd133902e59ae9dbd130849678f12e2786295bf2b2d37968b5ba1f544aa362924867d462d43ac3bf13a85b6779a77d401bd4dfdabbee1fe8efd6b7e7f8ac364cd28b1027f00e5af94486182b562735673883c80fc9aed667e465c0a26e9bfa111fb608db433cc23f5bb90bd6d911134d62bf48c03d896eae6d3a4c02328d697c9f1260b11c32f6bd80be24fac5370a78bbd9f57d9b80c59ac5715f95dc977c5af3742321990380318be4c3df1c52547fe0a2d20067ed8c9f90cecfa77ca2e72b3f25d498a853891c9c5af4e8671017e5a75c511f113ea33b3c82d931922f7109e1e60e003ab87fa54f5c1e5672ce88d57cb394144314d95261dd04d46aa0e88dfc32e8bb15fa39db1dfde9cf7d867415429a989aec3e47dbd3f6d8508627ba61eebe811d725d3a85f489da85f42584ee066f8d1afa909fe0b5506b2afe3fc615600238870323a2685d3d5166bd09c4b87cd6390e910e6d1f314d1b4c4a90fa85c724f818ba48314be2a822c2d4bb5bfbfed6fe19c22f931e272b92f6b7947bed9500d09a40b7a264ead6572e7926b577c56798ae656b838656efae11dc68db0e59d072b8af6018385abf4187a26de5d9ad8e77b83e8f01f8a41df362b1431f74947a674b0f8ccdc6a0bac863330f3f311a95b38637ccc6091bde5db765eed7429127b36f67d2b4bdacf4e7bd721e77e37ae6a51c90ac89a5523e1e0b636b1ffde26abc21d133efe73a5f16c6277d38bee6f98916ef21f87fad2597aee4c432b9f89eccbf9c6b7347a8e6fb41fbdc01c829eb864e86bceaeaef04c95da6ff9a726eadb076fdd24467fd656fcdeba2cb706ba09943538dce13c7887513e6d3107f539ad547015e8e462ec4eecd6bcb7bad83cc17c261ed5b5371c11225ef82dcab9d8928d67511c930fe07e8c467b9248dfe28d0c248f4af9631c8a419f0ae9651df1dcc98e75e2eacbc3e379ced255bc47948bafcc32692d902bccfc4325adf3383f810f2ed03f30919867f6b606bd1858e0de3f8bcafe095aa3bfecb1b9d5b790fa34480c3cef18b73a0690d0dd9ffbe8e17cd24f26ea7432b3e41ccd96cefc92ff87fe8436833ae8fe3f6b7e439e64bb9f57670117ab3ca295bf02172e17c6eb41a4272d38f78040f559f1bea11fcd982e4574a33929f217d3aa8eda1e3a8cee920e9603deabaad6ec9f4a5a90fbe6ec05c2c1c0698d127d1a347aa5fed7ebef96901933ec4dfb1cfc379baaa5a7e97d51f6a33e0616f7a4eefd8568f3c9cf92edb9d4c8b24e5eec158642ceb91cb92e3b2526ecfcc1f8ce8f5639ddceb9a52a2da5b193d941777b5870565534f4f3c96873aee1ffff0dc86cefd859a7350431dba1a0b51237319a2e73a1f5466e69d2eaaf6d2701aa0f2f8f795c8737707a39978d1771f05e2b2ca4f439be6cf3f18ada7246c9a033da6d0b7dc172a2d94c1ff90807c49c24ffc97c58be072c87dbd71f4828332badc891f5e43d6ffffdcd8613923dc82e98adb1bda3e74dbd543ae24a8b33a5d2fb468df787ad7c0372566af76ce77b8a18cda361cba5a58c1fa792ca4660f29c9b5270e2136956f0ec1f9b672f589a06bc580ac09a5ecace20788c45763b3af1492f5d3f8a2d5d9599f0e94bd2e8eb48af211ac9401b59bcf12e914473e3eadeed7757a1a6bc5eb7413cb91bb4f1406023b6aab1fd5cfa8843e4dfa74028f506bd7133d962f0a313ab768877f414e7d585d9743f4198642d787fe40114b92a2e25957a8d14b8d8f0a5f005a945b997ff163962aa7e66071e6e3787e184a9eace9b4c775dd1e87117e033a8e8ba9e7dd47f9b7bf4e40da22ecff3f514a1bff8b930a94b80f8aaa47adb74574a7fd396b8572a97721bd3ab82edd37c2cda4225d6b3d84cc92f6fdafc6b1b1df1807089f3ffada80392f9bcc858af3cf22b1c9aada7bb6f2add61131c3a71c1df7aa47e3127207484dd99cbcbc98a08e08f30cd109fb26a41f8c8efc52acdba3224f68bf8ab7960b064d7bee73bef5c57dc7b9fe5b8e5d28d63694ba7a80d98c460a21f9d5438b8cf13f154310d9fa81a753bbc07f87413479c775464bc7da04d71df6dc18bf1ea9e63a52a23b15665fb7db86f7e34172d98f735b9b819bb96186ea68338b785f79ac19d0a55cbcaff41fad7f1307b70afd42ac736d7cd7e419be55347fad6806da380859fe56caa3fd42ed33244f6f1ba69ee37f3b8decd32e55b681dec7b8379a0e9eef8f74e0715dfecf194eab99e6f06e519484c5d8029039b5c4a192171159230b045594415a22daa230a8a174c6a2ef5b29278040212c6420ea78c81b2f37cb8d783e2c8e10bcf72e977f137d2ba47ac00f263b2c0fcea7bcbf7ce432221e655cdc3e16b074a54321f9d105c5722e9effacfcacae6d5a4697c531aeee59cf43604510c34b2cf8d0ce43fc54c14081963c73a35add148b4d91fb02a1ca077fca2b2fb453405d67ec3a039cdfb976e66e3df22c5c99cb9955ae5dc909610056f6865e2c50dbe4bfe7efa080292dfd2f2a3e2714efdc7782c2253759f3b91bdd4809421f72c1e5bc66209b92141ce7c7bf1724ed7f881db00ca6822d74e6e99fdc7a7b44f9a81503b238ec5f2f6321b33c0ab60b60d34c13b9a2da13c68ed218758fb3f21d67661d773faacea51cef787988c4cef6aef7cd89ac626b063639aba1a466a53b890f63345b0d197cd7ca36343d12ef314dacf3e02e1a236d1121add527a070b69c49fb5775e4205ebc274428bbd515faf1331de54a05245ff5f402be9c6aef3a050ea79d2b87d93e1a8850124d2606800b23049981afdeb2deb9b8d292038b49f05d1c6e33a053a289a8f0aea24a3730896658e8ad894ba76d42b9412d1def126b6944330b6a44396d5e76d2462b7469a3cbe8d656981e698720fbc8586b6ca054c3912f389b8f6c44625c2a5e60ae3a9ed5589ce312e595d7bad275bd80f4cc938e98581619e341d37ba95b6f5db5bb7a5acf358468ccbf12a0aba706def5e399c3985bba83738af3f314001c028cea1a9e9b30abf945041f466bfcae3311be08d2f707ce6441a16b600a0b202f66716c80fc005eb57f84a448a0f6ef6679e98db057f0d7dcbd1e5277fba562a62c990768d29de489588046658d37fd71d8df2bd81d2467aa030b209c5ba5a4cce0991e5cdc9bd2e3a9ae3e9eec7de8e0af674a0c2ab3da856bd133738d27c30534a6f4ffa42da9a61633e5b99e425095c6994fbbaf54adc29c1bfecc265275e7a5671a308ae7123d10c55585d5acdae1bf9eadcdb9074f374dfe1c6a1958ca3b98e50bc21459bf9a70b91a4329e03708ce20cc06cf3ef27bbedf7054cb94fb30bfab9285dac24f4fc5099a9c75847571c92f1d818a7f75edf25c15c40ee5fb7c064761954e9de443ffe5e7aefdf10d0cc2b3bde4fed1dbf8b9aab6ef314faf2470043b4a08a53bba91143eff046c7ece2cf27dbb5e434c847330b334abefee0f7e776377fdbddc9f9627837d1cd8efacb33ee83776c1d4606896df901c69fbe4a66fa1bb6f0ce7580f663c2e837e0bd57f7dbed2dbccf11e9878010aa18de483b903c1d78d52ed418c822f55867718e80924c8308568f685812c330d4dbde85c15efeaa5fcf84db10e5c041105ed611453a152c5f6718fca9fb058d0b77062d6d8b3a07baa67800c55b4a9761870b98831be0d3562a7789c59c839c0854171cb1ce1495d534024185005a4e556a388bcb51be5d0775489b7ecc889f15ae361e57aeaee502ddc6cb1ca024cd57bc23bd66af0698d1bedde42a4c4766535a2d8c8e86437ef53e394cb82d0c8418b5eb5b5ccdb4eff6ee751d0543ce4a9c725bdddacf7ecf971ef8715d1db106fee9d683ec6f22ef71172d4ed7f65eae0ce2b91152f4c9681452707553a64d1f38586398452cbb155902f99a1a1c5c527caafbb57c05c45c6172b1702fc732d645c279780e11d82d62e4ae47b55f4cd62d78492fab335abe0342e269d83e26a59d3b027f96a5c1d36048d22856234d2433f89829eae88257c48f9c1030e6bbcec2f893967dcdcbda74d25a738c8035dc3b55d7f32e1f09e551e2151eba527b01709a300e0579f7ba034f8a37a8e90404df5fc1b2da8a449d5a51b6f85b787c936cbb3751a1c4ce0049875cc836c274201daac2846575ad5207112e05524c44d773a81aee03d675b6879fc621c1f4bef32d5df902ae1f8e8624ffd80803ddc86d469bf02762fb3d6d457afb855026b8b0ca8cac91246cfec1deda7a939168f8ff14119b504317ea2865f04e081bd897d6a4d10297abe36aebcb855809d2cfae2101d7e7775f5cf274613f66865db5b9a132eb7de366c0fef85db48e4a2499e761bdaf43951da6ad1b577d38b8d133b5a621caab45760ea7007aa9af9a32c1a1f9c05e18f313c05b9c002622b1c696019fc01e49e4209a0b84e4218c94817a084370899c6240223a0af980c52a8442ad00d18964169c408e2112d8701e447460287a1e23ebb1420248717143ea3120410c623501613a4600aea23849d8c44214af102916f401a3062fa0ac8220d45a8321d606119974680285ea2b2982104a35837319844a41651841f80bc4692c122d055941c51680295d1050e8fa124a248711197c10c3230657508c14da60be192b69619e486b3cd126d3566a38a2d9bd750583353ad44d488fee7cec4cc2b00a112ad2c3d20e1332d91502471102e9b61680128af9728bc4948294e29ce40c96940327084e92b403e69a8c456420f78b80c4b4a0441dc84cbcc0c42704aeb25164e12d28b52886b10321a930c38323a8a934b1a5a2295d0cf741a89c848b510844f03ce384d9a4ce52e3b87a023394f208250568f802041898ce28ec41a1ada8f4ffc1ffd3343e0ce8b3958e42ee2d416b8944d0e4523425802a574e5c8f0096a22c88c8c9f9cc91e710aca95d02276f8398b24c670d49161e27ebbc45d5953936d9ce76871145d75006db9d39c0f570ac337574f07ad9df7b3c3f39b876c4b90a63dd942d642448e9e1ab4528b673a9a5ca22e3617ef3a729b6d4c83c902f329907949f8a0e244e9759632802c476ed6e6a12c1bb71709366930e381ac6ba811cef870c87338ef7f5a8d5f2a1a336038d77e2c90e77fe7a10bc0ff040c61a53be4ce9cc14a7ffd4deacf1759bdec73a07f5031f65d2d8f5fb49a6186fab17134fed2f99da23c3ef947b97566c55346fa1dcb39683baa04cbe5edf753480e2ac79df58823dd8ca3a9c79015ba398cd1177193cea8553b90fb815eca60ea49ffafd36e22688af5b7e5d1e8a295d0f69ddaeb27ee209339e509969acfc3aa59b6393e24264f373e236c6dde129d51b4a6db43f361f161c0ae8bf5410267c2331cf3cd74f0b9d0a34cb8baf418fa32c7808903eeecba8fe69d92f62ec5765f17171cfc5e23f2eabcde7b8b85b9cabe661171dda638810d1cf143de05b6bb0752ac5b206ef749c3c9a05bfe06d8bbc56c5c49f1a07d6f45fc4c2fd41d1578ec386fe4037a93749d4792332a900fa7d984a37b534c1b36c03f268cf1b3d8a82e234025828e1da55fa1eed05ee7f22cd76addd7cd628b961b57e15e5b21e0aa1f6369f5c03360db22fcb3203a5c8b8a76053a7f4f71c7115b27474e50c7846ae7d50b635f64774dcf5d15b460c1d86051d1864715c0a35b718c553f1af01ed8742e4711429082f0c56d0536ea62f6b5b1e53f8a7e600bd95c0c9d4b8cf46df742772129325255500060c83ff3f6e0f8657e0a716906b7396e1b7fe46222e9fd263a2e69368aa340ad897c3d963635da2b0c601fde5aaa6dcac4969d7f79e72c3b12a491e61a0ea0972c9b0d6e91d4090e0f32eba3b0842c4819940cced45433b0fc9b9cf07ad2323eea02b70acc28690cc46d3253f46b0d5d47501b5c5f7668560ae199f30b5204e89f268dfdc204284d75466de2a84e28a33c3114a88941a1e08bd472950245a60a40d229b2ff8815b27f9ac5f9956bfc8817cca25fbbb484610d152b52c8b8f22919aeffe48cf597a64dfdc206642d6d73d50d71c95b8102473256854356e91893d46d2f76d057ed3657f06094bc02a8792457f6b02f7cfccab758fa40066adfa4fa872080755740564209c42b830ce9e07821044c09479542205a58871892a786b8cb21013ddc5c106129e26e49c44413ab2b8a5caa88b62c52ac8b0b84113c65dcaa3482d5c6bac491983ae2238f1cf471ba40024721b725125f8d2c5824a957491c3249ad4e6e144a2028e538a9444b2b6b88255f6a89442e59d4cb05c1049362ae904ce09a59976892564d8c6493bb6eceb67082a18ce6514d808556e842bde1e496e345eb83fbff2af2071dcf72a37c7f8124305c5e276489789cf768608b37dd1dea9a66ec0fcf4ba55b26669bf2bdd958a84fbea0ff4a7b5f20db3e415a83b59f18eb41c7a26830cad58e52f6cca5d7a8c7b5881409f9f8c8a8b326c0ea40d3beef58ee441747ca88f9e313e11656ad185b5e668655840fbc4b330a10073f26779fc418d7f2ea1d676e343792dc3417250e170048f834d3a86b5e4be26ea1a77c350f7a7678e36b3bc2171cdc9685441d3d079122aa5ded316337d6ddf01239a436d20ce817f4fabf8d26dc006fe873f060fef6b61d1e3f9c87cfc6b23e2a2c2ae42e2e13024519b04a4d36e6b0e01a0f73e198063876e3edd4e66cb854594e0063fcf571ef9aa3b2d3e3c99a6259f7390cac612056a7f790e18a21d0adc365864da8a3a10f863e32f4f9f61897ade73234167e97b1bc69b8893b0e3bca156a04948f8020789d784bde623409d2d7401b0c7032a20481437a1da0dae4afaa378b9e724559ea0e5567f4fb30bc40db81aece2211be34e322d596556b6a4b8df098f51681ce277d2c7d9d6a8581babed73f2191ee1294b690b6fa7078034acc2bf00000cfc49e40c7bf64f3b81419e2f252e15b8777d983140a8eb4da079c1759d596e009602ff7ba0055d31d7fccbce52ab61dbc4440518b131351f0de147d6fe8157fc816e85ecfc9561218eef7f2c85fc844b618b403eac64878235847bbef67e8183d67ff8035535b2187ccb5d64819ba9c3cb44e83b4425b198f95b50b659ac4d8ecb4469fd8dfa77733d937974939692c50689e4f189d18e661486f4a73746cd1476c65169f48950b265baac243a62e121b1737b8bd121b10d579d94161130a5c7df24063ba8fae403777d22905523f0a210b991247a6283e096d999e40b3f2a936225a28aff1c7b8cea02e716ab4a895207b5806419fbbc0041637b773346265849dc913a430603a140ca492e98ed82e4808c221d84513af6124d914afaf4f469357ea9c68ad26fc93dd7930bafca012adde566b077605d77a70ce0b82fc644d9bab45be28d2d9a63a0a87d50706a860a9111e2dd1b213207d057c514e9bb678bd6aee15045d5aafadb6905b0bb9a910333be412a1225e7bea0429dea9676e4591abbe146359c058b80392a07e1df2ba95bf6f11b30f8b8010f77a469a9b407716452d4eb962fb75a833218841aa3b8c74da97abe7648a96c510be9f2125ecf6f4e765be3460372d9f9d813ed91e1ea813df194dda484d4dfbb05180bac4ab37250ea06b171568cb23fbcd74923a400242d07d119447f1d446e288df76bb967a6f04c7d837dc128c63acd1246e2a5e25eb6d7a516186b306b9afa5fb7c7fd46fc43e6eceaa7d6566dd20d0782836d23410803917e805b89da30024dbdcb0ab0104daaf9c1681c571cbfe6fecc30324011f60ce8851f8bfa43c5b03ff5a9aff5adeb0552b5fba6634bd50e0f07fe6818def32b644a3d20322037d907c61f3a61c316dea35ea62bd154e6800def208e7bb0143905481f702b3c5f8055d043728774745f90ed3970d525a38ddfd4551629ab6e2f38953bfb6ce40cb7ada7ba652884b8dde0af9c6fbf5bbdee2a2e6222e16785cbbbb2b99fef10dca89b5f47ba0ad1c3d47d609d7c6fb80d5df3cc503174276585cd0d47ef7cc777c69c4546d88bf9050fdce05aa36c2d4c57d0a5d8ca69bcf9e130be799ad336b971f7974a3a714d983ecf02e2017349488b1b2d35de684ae0088d8d359935327f19c48b94cb405330bb5f655eed47253cec1207f58a27aa047f6b5246114e0b855b3f0baebf11e1045741a32413bd53147e9780eb72a04c5dceb3711f2276f3674d52ee3fcfe238e32e6420fa87408fe1f956f2e7cbacfef979f7b5b98fadf8bd4dc1fdb24daf747d96ae4fc5d9aa4b4fbc83a1e708bae164edb2b1ed09ad387eb0b9839a7682390412c5a2439091fd43b317d78dfacb0e698b504ad32eac3f12b8867faa588f7b2841ee7c98bb0d075f557c530e8de2c9641aefb577b2a2c5f31188f595546c7cfe6f52e290aa701d78500a02326ef7901d78340fa054d73f86a970e7cc5d853fae54980217f66889ffb18888feb9abf6d8a8a19f302896fb83c4eec0386134ab47c0f716176b2f0e864ac8d3ee97d93af84d9130dbf4b281ddec1fbc0aaaaa345079f97198660437c8ba4d7ba80cea5aab178c1dcf00d725542961150e7a9612c16248e44429681ae1f41487f84c7afe7ab63211d3506ab9bd606da496125e93d7dc460d0a7b6e9a14e7489cfb31a14152dcd39fd520c6b62c8427fad3b1604af6ea8631a8185f3fdede488a3fbaed77badd27dc5d7334e43f104707eda89a79a53cd3467cf4e4c37db9bb4109ae6f38c17f9ea7ea11613e4ca531e3b4fbcf93b8f14720e014e84f29036dd9cf86e392312e67d1b489803263904ba76c31a1fac959c10cf2e98f3ff0ddd651bcec4898da3d43bf64d46f83623ff1dea8660ee6c2cba139cb7ed31a5ceae49a5dddaf94c7eb188687402db583bd2e685c92f9f763a713b8cbbc633190028bb3d1b2af9cd4ae42361dc7bd4290fcc6bd023065e6c2587e29e0a4bf7c46e7f1c356d9dbaf1241b76bad0017fd691ae88de05cff31d1335e3ed146476e8385d3b83f5d16e2bafd2799ee76eb9b1667af6f54b98fafd0a9d5cb144045b870f1298fc62c46e414da512aab13d7287100cc10bfd1104c1ad75f59b3f98950cce8c5935efaef8cbe3fac8e56d000c0321e7ee938402ea9174ec3cbdc42b3910edce9a3e8356fd6034feaa7c98bb70064b0807198e8ceedabcf764e08184ec75adc78ecf671de43369c7bf335823d7cec596c79ad0cbecd8c56ad53206bd8c45b5d78eecef3507b98b37d6dfff8f81ade54156ee8062eafca429bb4d23828e260001092e0ab496bbb1fc78a33861486c0243d6f077c7c6617ce9e9fbcfc81d7c7b27a279236388bdc13e8b030c6397d48e31f05e859cff8248f08ef8c17a1e69e8a0fe12cc4a3d3ccb980d545a4ad7354d0c8ccb9c853bfa73477745782411e54a478e080ae549a0959b681231945fc860cacaa7da0ed0b1770046c2bfa5cecd555ec894435458cd02738f2d32639f649ff5026464f67ffacb7584417106f762314bcaa472e07f2a5cbc2bb7b03dcf39d13ea7b5749ce1a632147805435d50ebbd2965391eef59f064b7ce8db5c32fe38a7ff4306504056af9fcb3f212e656f7b80e873f4c35bfa47fac40b8558577cad5ddb17623f9c963cd4857d3e93f28f7d5e1ef1aba25f872c284f62f917ed0d7d97d40cb3701b88fb63710f173551b31b66c9121c5558302b6567cacd354d691bce5854128f0a62c96d6cdcdf911f069adad74c154d5df663f19a9bcca16c1877cbec11e4a22986659ca60adf9055141873487a115c30eb5f30b931436cd9abced3376e4cb74a07324757299057b2298da6ddb313dfdec0ac64ac8ae3366ce2212250fb64139c5256f029bd6eba925b251fe577b3883d33378906bb4651965ae4ebbc145d86a378b73d5963ac901290da40b73e265fd7ad594ea48e74300052900345a6836040b45e55d40d603459b3d25f08d74c05de576075ade6271361dff757ea61b46259eed97bb1ae6a5c1e37693ce68ea999f67ce3b60e4dfa3ae1ec0820b9882d33014b341cfc5cbd10ec3e217055477f10b98d0dde2a2713e8c7eb04dfc7f851c3ec5d816f0ca53e18920eb1fc9281a18767b42d420ba438d77af5494374954d2be885572a9d7453abdff71ed218696114c47b544677e57cf50b6960461b27bb628ef8c6b37d08f61fc78748d0d8fa3a66012ee24fd403cc1eff0daacec41cf64fddbe95acf19738a75245f41f815a9415a813e6451a7486f9b3df0a150d52f9544db4537db82105d47c55f51226655004f1d4c7ecd01d0086cec9d85f1e00667c1e54b69537d91877b36a6b563a8bc33f13432f7bf780eda46fa6d854f4bb0fa543cf40d9dfb091e9663bfd78522a9c7ca58caa36fe298013a48cf033eed60d1188ec797957a6903e459737b52db46c0e594f6757ab5a01927769b2edf24cf8eb45b97545726a33b9814b9d01993ddfaffa6b01d10a02293f3d53a61cc05498c7ad087d5743e8cbc3b566cb3b4deca277eed7660b46b7b3481ec9eb6362d532c5f88a0ed05336441727f8e9e9917b7ec525df587930b43e9d4a08667be9754db97360c3d4d148e8fcf39c07ba7453285de4ae7e4731014b9db47c66ef46dcf91c3dfbd011bc67568d2661e415e2b96830a8be9f91f59b8cf0dd3fbae925af531e86eacba66793f2399a68016fea8f586ece0b5121792b5439ba42d09c489f1c06576f784dc487ab02d5d2b0c6221bb8557633641d9e27923f6f682a6b506e78a08f5bc8becc6381f8c52f7ec17dd0b36a9be768fb811fb600a9ce246d829b527eab774f3a857e5b87f28c9f67a0fe190100af22dc230f97b26c3923390f758ae5ef1ad05c987210cdc65b47e096847581fb2a9979977ca7666d407627157bf06cead4dd6fbc856d8ec54862ec9d2950751a5a1e479602c4d557496fe979ba52878e5842a02aed9ad1dbbf745d97fe1bd5ee1f72efa6d65f77a56c3ac6d42bbc01c4fd5504773124bd7b9e595f808d028b3c7c60ecd4b5a208d158474b6bcc8fbdc61b6bcdc0fc6230ad81f75b93c4bb5d30d73402abd212d9392c2a1b3ef733d9bbc2c1324fb3c98f72ace60a7f8f4622c1771de46e80d87342da6927060f593d4f7101b1895593a796efdf00ab1e41f02e76c0161e2cde8a60357149f179e6327ad5b0cfbf16ab5b78a44745909e8f7c7aff3c449e4183c844e75d345b8a16193ab847c645a61e415247ee41114aa88082124650a8987c8899884838b2a885c9e4d34a3bbb2bdc994704946b2db383a3f77afd48d6310a6b920315f719773ae310bbaf86d2ad87443d9f356a9b06ce3524f41760afc718f3294fcb163d8a0fa66291ff3565eada10776202e08060a1efa25b2e49e7faf3c676cd3490bc901f42939779fee0c6b369dfd1841e9236589f44c78a44a45fda4bf6864dcb2b0de8dbdd2ae00b765041d59bbe94682d6aea7687b94b98a968843c10f854b92fa9048656e88d1fee766c771a7f98d083908f3764baf9cc564fa834331d0fddf5c106e28d4c27651ee7699cd6741f55481e1d0b56ed27299c8e833819a615974171703abc57b392ad7ba36c0b0f42e90e6d3122c607f7d2e5e21f56189545b0c3c0ffeac3611e3a05fed982c87dd9533b2e5a0bd50b028e8148d23bddb950e3130b6a3a0eb93b7a68644d344244fba0d7acc7c83cbba7b7db963f835e00172c7be9f920a755cca73149ad2b3f04ef2a62964f4c32a84e40e8e262024274c7a3f305e0d5c8150682aeddf77b1b4189c9310410c4e1c9343ad19cc42f771a5c3baab59d2c500e1a7a22a87ccc270fd37dd00a2b2ab4347fe29f67701226d60eb009f7f012e93f6d656d612a60f4f6d767582a5784c8aa40ecc16a76458825e9816f1e967c42fc854282752d9976ad7fcc1e455c13b3381c9e03c650b4555836a373767dda2db4141d757bc9fdb66124272af38e2f8729998a6cd2fe095734f37c4b5aa2d09abd966cf6a70138cf7c664423f25efc5b479c986360e42561e87912940fd662700eb8e422c08d7f04ed8e6b89b31858142017d553ff66a0875a9b8476605fd9bf87f5e64d3d84c5a92abced709a6826a3820a97a6c9b1042bf4c36fbff3877b3e1331c70853b0943c15b07c13b58b54f65508aabf775cc3134c23238eac2820ee6488068d63d5bb2ce21dba4ff04f0458eebcd24176afa04a2977a3d9416141cfef94b05052666205972bd893e24852838f34421bbfc320e5501bd389fde4ca6611fc0de13bad0670093d4d171cd6dd89ca9a247f8ae15d41f3cc6489328d21c83cbc5b59ac916ca649d9754a7189d278f925802ef8099401018a2451160e09ba95f8c15273c7cd80ec5a99e3d3f1707a6f0ae6ec4c91ae7b49ad77c4c9c0035bf2d93be638196d883b941cfa910f5b255d26b21a306926ef19aed64169178ee285d053d84ebe5a64f23c9082174d05152e61e48ddb4b60f63a5adf41452dabbe252532b88a3e01318322c70e7e335dcc8f08b23b58461a09dbca87dd2e2afadfdc6eae4515f4348ef1967a0a20e4acfd113132fecfae006ef37a5a0913fc89e07c7b370c7cb1458537cabfec0ed217fbab1b03b210402f68adf9790a84202e3d789517687c7ff1c8839f3877b79d1f848962e1914abaf03a717e1bf12d0a3b20388070c41973f7a648b4fca8f7b7ebe70df51e57e06857f0c2da7ea8746c830b63ff92f5030e3db9c550c36d64e97318ff0b7aefc10d22435e9c0cc3a5f7bdb804e0d0195ce67864ef876b6b5678ee0bd96052a53f49b8d39e3cc69cb58968f0ab6e80a927758e4328002fd111c09ed261e3a766769aee66d483cf2e02e7795bd12a3b3a300099e1df09a1c78171980fe4c0e7734c6d3313e51ee6baf29390a1d730fe74d1553ad63c335f314bba190568346aa968151fefb5ba675940c170db83293926ecd182009ce01fb1013baff1c1ea4e5b723d7aefce71a117e4f2cbb9b9748b6df46d6ec100626f7591f75876bb0a3b158f0f14472eebabb6e638877a8098056a94f9f0cb9d227b51228be9bd01356130c89c6a5679820597e33abb472f522ab45e19d5e4f911a21a2b9301bbdf302d8788a7be347527ed2ba58705b8cb973031476c8261fd8219c981265fe2169020f45b2f5e06fd033cb0fbd27b0d93f978aef9982da6754add3c6e907d91e9569100e327daa7f5a92d9236856747dae1c35ba028239d0c782b72c07cf7799a57dd70d8551e4254346f81c4ed0210e058623489e304a9e13f3b880b2401664b2d4055c4cc3c74424dc6812fc6b81cc06408116ae59cdab9606c39c348ff970f0d671205d112584114078557cc03d3bd1acadd01cd7e74bd51823db71f5afc9d12753a85c0f8fd8dd9711a5cbf5309712b598cabbd5f789345127b280e973600c896cb17e94eb8dbb7a3a11242685bc5d321bbc2f65b052838eef9f69e238eee3035b054ca72c22a254938fb76195cb1d8756bcc4703019e6801cd47332e0c650dae2101962e0462ca57d71e3ea4a77ae05914da77101d7e383d591aae1a6314e33ff10e568171ee3b60bc6ee6d9a6a6b9306015c03fc37a20b5c65e91d8eac1ac3b3593f0a633f0f434a76f9344509402f0815dbc93e89836aa5c1a7c854e4503007533f5e7660b07a12803d718ba4da8974714f4fadaf0ffc89e60f1ea0174be4e4fd9521a09318a0fecd0b43e2ee8468aa04484e2092ca194acb18681b6dd84acc87f0c5e1fb2b0310713b290b0d373f393df2f024a1c7e0c185809f0f21723388ae15526c5daa7d8a6c471c83459c0f41ceec84677e09ea49a789c832bc2542c933a214215a121ac491e43e80d669f9fa8aca0d42f2cc2043f9fd1349e76678ce6f79eb3eaf961fb83ea307f7ddb032ca874baa40f4be73f6ec87b1712566df8b1cbfe5591628a7012c5096d383735412c42311a93482f956f1d74ee4458deb6e1d3dc3547dd472cbf3a075c1c82831ee84aaafe1dc246343d264b34dd236b71786ca2de103ad505aa5253c679fc9407c0b93c64b1cf2ce50d7c7f2c0d5e14f73e1bc03b14800fd18ece040bc2e03b6436b6377d8a528707882042aae2562c04ac7256bb8171b23b8fd15bedca50862c9d9574388cc99f0e4003ffe65d3852e1fc6a836528fde6b98743c34e58210f8667a88212d93ea66ce128b1eba292ddb22fb90e97c92049fe25574d2812f8392e60b37b6624d8e47da2dd0343a66a9e2a6bc2e4710f6fd457b0e15b8c0aa2f11d966bf95a61b8e58bd1d4501094f1a63253fd5ac588b4d51e0cbdb580cbd1381f1dc702ed677324f95a561f6031bc46e14c79767408012f93e1f17813816cb1bde16f1113a6d6b6de6acbc8b868aeccd98c8d86b60b357841fbf28cabcaf94b565ed5804fd5954d33c6ec6ca0885819f5ed47a31e8ae582c147492e7550306ea8836d0681ab6b3c32d624e9db32c4cfe6d01d246cf0217271bada4a7fb655c853528ff28ac56b414b8fa0508a43d97618ddd92a342f2ea69794cde3cf75973467804f5cb76d9e2ec2888a19e95b2ef0a09f64f2ca961fb88e0b3989c80dee10b443587e336ed6ec55bf175cf254db5eef3eaee5e5771bbf06e39fe4f6bded6ee365a621540d978c3b21ed6f71b5ef6df29ca3d33ca21ef108dd4ab835825367fdcee65edb17345c67950ee205ae44a1ba4b79c5b02a4654f437fb44c98626ba9b8ccad75bdf53cfbd0ced33060eae8fb79c2770b927564673c3a93643b38163d6b72d2d98167041b261f9bbbcf1bfca69ffc5c5ed26591b9d08e6e954e21299ddc7d11df47fafdea3c5a78a7677c4b9b046acb8d1bfc430d3560bba314d9a73aba9af562eed567c2ce75c5463f52a1add4bff28dbbd42857623f7bb7326997517004c13243bc0ee255084d2546914423f6d68fccd6201339983c3a56a0acf386bcf557ab594ad22e28eb56b08fd98a90a407a443d067775ef833aaf4cb7743dd91934bc8bd9a5d17cfd24587f51a0844304bbc98ee6cd5b5e858b0344bfd16ade640d9ebc1570f7f9602da052dfe997bbb9d99bc1ed51c2b636a2424ef415530562042483a06771d180a1110f7b8267589722ec4f5c0a2739f0364fc926239285a2da0f6bdc3b504114175e0c34e29673a84c05808addc3a4e48f8391d2969d50acf0a17c829a353e8276dc70148a24063f35fd0483ae3e13649007ec8c29535c675021c6f8ce9e091e0f12f7ed311d82accd0b7279e49cc6878d1184920f781a499806572d443eb9475397e4362932811b20a1b1b819b80d4ef98603bba038e2a2677616f8087d1832125e0ec38304c04277efcdac7a837c40f3284a83a2ddd956327e9f4e46a8284ab6d3b75f47c66f6a5a82acf40d15f6f9d046c28f4a8c1c408f6c6c7664426491facdc371bd4a66f008967efbd8262c43541d50088dc2943e0a99ceaa94b86be84f6ac4f61605c5e6ef8d4203f316035376ce9aed32b921fab07b3cd97ba1e0054f4cfee742d14463f1c7b000577891c42e3d0d159a71ca82ebb0b6579d769d72e0ec4a9017881b60c4e1c25f2c873cdf9df4f2c689db1687eb05b8dca1779c69bf0786f2abd441a78716209c7c9b8438b2d23ff3b4aecc7acef3eb3f6d6348e257098574f174e54c47f48677a4b53f7cbb65b58fcd4f2de739807da7e0d2049ccf7203f13a7869d490a4f70c32a9b13cba0b1fed31227b0ba49afcff23f1f468d26b5f6a8dfc61d679cc7a12e831382cf23519911d13a5b90f27c08d9d9b2741dad88417fae4ca694dfce0e7cfe0980e8cb980249c71d880c830704b9bea742c45344aaf6764124508b113db8115d6166c527425ad214e3ef4836638966b58742ad85750bc17ade634b6057054d88099c0106405bbc0dbabfa36039de592621e1167b9b895ddd32e7a1420d55c88aa7c656003023ea3d485396464d4caa7eab6358a833a44645d3e1a01b4eb6c2b1083dccb7a46e52f05ad9df8eb944e09ad636755cc3301b1d4226889dad1a4db85a47d39ee9c73471238238090c3afa8e2b47b54c6de0dcc76a9903ffa12c060b3b1f818b6c3c4f12bb6411a65685a9b0e889e1104dc1364a860450ae8612d73b712f4796f6f08c20cbb3071b7c38064753c66a07360f1c7f2ecab67387dc9f9a40fa9aeb904c2d464717860cd0b19b5cdc0c234104144f43709f022c19aafbb3e1c53abc083492412131c59869a92f68cb842948d9688e492b823a5ec453deabf93a8cf63cbbdec4c3d08f1e1770785271a8dfd0bd3a5aa6d04eded1956c8123913d147f8812105939ab4dd2b80141f80cc0422c759a994c3db115398ff803a270662588f6a23c5718bde38e9f0bc1767d5a279e101fb35c70ab30d8e84b504355ce1bc89af23fd369c23d6066d9b2234edf2c759ad69a31cd8204104cbd1b3e848bf5129af3e6f0116adfac93b188a8c97f41057c03035d555deebcb3ec29c4631d3e6be89f316a1f6f323f530c55784762fedf40ac3be4ff6dac9a7182dbbb66c73e74f893c25528db3d520227f21c147c10df9a2824ea3808f76ba25e36ca06a789b912db33cdcb59cff3bbbfaf9192b7d7748ce7ce6fe61cf2cdea914e1e38ee6a7070ae151d3aa94d86345012b173d172d51c41a82e7eb49ea7fb501f72f277dff1956be74d0b090d323d38240575d8ce9723c4cc9dcf11b0ce983221b86f4c7982d9e08b866cffbeeca58b16e472fdfff4daa0cb82973622daf1a5ed71fc3f3b90b66fa1c7caf2eb31c5cbbb7bb35ae2b8ba179ed05c9425505a8d6ea169bed39e91d75ff04174a2611f62a372a345d84f94d5d052c64ac19adefb9c0928355e8909b432e8fd84fd0e239a90454ebcf5b6cc8912abfa9543592d516f3b76f1ce67e335e63cae5b5e29ba731beb618de38c5d3fd6717c9646515e9d5031d05d98c1b5f55e899accc56e4080de313327a3c6e8035f0780ef37b98bf7a4cd5257d86eafcca00638e43983b679adc653f8c7e746ed9ff59afa37f64b2fd2f9af8004f209cb400a94aa92e6e9df9fd18d03c05e8086f48fd306f94d76ec3ae8e08f5befbae28fce42b6faf48ee786d6a404475fa53b362a3350b893788d44c4e3351a36cf6f40f88954793240b03bdfd2078cca5cf341c1a8359771448fadf4fcef5e04157dc528f281f5fca30e58e1701f2b280f7d9c1d1607e3a62a3ed462960fe47802ad8a8fce04e719fe0567c298163280c059472efa33c04acb53ec506628f144dc3a8fbe72adf0d4b214aab14b5b3274167472a95b494242af20070d09c9c0b8b08efca65c65f37dc6d276322d3c2ebb5c8fb7b5ced251a4513b4ab889bd72c36309e46e4e3a60e2754ee8c525db0cb0c7fdc1038a677934675d164ae66511a4834904f595ec39ecab04ca5fa02c36f59216b715da10cbcc3aaaca09ad25022faad87abfea3d885ea68909252a5fe8fe39aae1fc394905fb91302af950c2a228544d664e8a173417d5c484bc402f69b9e3a3abf3fa74bb1b7b0eb6c8ab0b90d8065236d971429ef382e68d6194d71d4dd8345ce3a22e5dc14ebbf7d402c59c6bdff5d7d94861a814b2ee7d9f6b19b54fae2bb792a3c52abf736ce4cdd266da0f1807d4aa0b50da34001373c03a8d9673bf3e10bd8c630e97730a38de32b4cf15766757044d7642168419dc12dd4285d62b1ea4f00bd133b16d48fb5d81e10ab8b1109e0b2574430b4be463ca66b4ac08471b877122ecbf661de113a95c6982af38edf8bb5ff7635da62712a718c700b7a382c3c63ef2cc0ea10ae2fb8a4761323186f24669296332ec1597d97387293ecaf0fa573813766d57f5f2675d9e32527771dac4ba1a891412266386ae32cd697aee4659076d00821234e193e688a6a973627f1a4e3fa90a5181c434152aa9fa60156d5e053bcf6316c2a688cc9f42c2a155dc12a5668504bbf863dbd3d9002c2a94a5aadf139489531203c46302bcd68a72f2b66aa56326a39c863402df8d46c0201220595950d1f96e101a153d71d89f72b5ce35a404e8444dcc3d0b4eee189670f44626c72e535f5c5229cb5f3223d4ad01a8df72c847a32c5e624615d6e24c4896e0baa0e5149cae14b8b0197bd9c0d53993062959d664a6d6c24126ea1b9d2c9c97da4d04e09119a6037dfc48279550321ab7c7d777f31c2e9326ed5aa2d2de2f144ad1b26521d89c56329202f623ffda1ee87ce8fc373a7e41a2bd9f02c9e232648abb229c99416c330e0f6ca10fa189f0e10a7eca663845608317b34421f4bbfb44524a68a9c9ad007d0b7c3bed115efa4d268834bdd6446721d60e5c9ebef44264ad4c57d7ef20b8751e90c8421b5a0bc3c2262e1324b71ada9903dcbf10f90590689262e4c0fa282f24673ba4333467a8bd176408f67b00a3c16696ddf69de72ce428b272fd60f086290d670812506d4353264d0e0a5340ad411862d2bac1a3980220cbcdf3390bafd861617b8f70c66eda6928148d843681df576c1116821a5cab3ed6767adf29b723415ba361f7cd4318a9bfea7161253c25fb3254bb88b372659f4d0b9179f48668ca495b99bad48fa4fbc176e1db55c03631d0dc6b17033f3db4b5ea758ab8eb4651e004911f22505679d2c8a1676f97e3b993d665548c01ab42dcf78ed0b93bc4fe74c387bd31fc0409ccc3739d3bc5cb15a34dabbb566c9d570e3d0d1c24ee3f56d743cc0439ac071dbffc491f4c5255834938750c41e28fd54c124ddc8f31bbcf0f0d9aeb13ef58babe918d597960041ac80ac03ab8e4649a01dcc3593093898c646183e4ba2f3af37387759dcbbdef94bd329fec4072e700359d57f4d4c6d7270a589cf9d5c26428d5ebc02550c1d9d82670b8024d8841057f3d85e4cd758c3552534d2f0b3d246121e014a7ef5aca39d760dae5a252564863e3017e6b285547371bfde928e7588a6d907552e31a047fe2753cbbf3215b50418602f595c2165f0573a0f45c8fa44947c2c3de031b58163cb9621e9513489d49fb880aa6b20b0bbafc4da88122e193c3d93b5f998c6504d63b5c347adcfe879b7adecfd20b5476834616bd1123a4c2c9023fd339844ead4844a147b0fd4678b02bb324548debfda963670f4d4b2ad4ecbad109d19d02dbe0439ca68521a8533361f5f4943496829b983b745d3975a39b55a107b8dba2ca2b96827c81daf0154b6f5bd97e65c45038e3b3ce77ecdd920e56614dcb683a5f90097959f73c861362562a4673cd8f852caf057006dfc6f9c3618d3c33d497acac2414d2242ad007743c7efa4b00dc3632f9a44fd1bdd96722ab61bf1bd5bb81b32c77053851e8cb5bc810622b6dc39d62e52904c2f6cf9dddaf45be556ec6eb4fe481993b382f6de470b521e408286079b353da4dc92a17b1b2ffbf30fc8740e257e7b2409a02265bb4524d8b1c56590e8da18b551533eb33d96e3cf535cd50bafefef0916741122da620b5161a5b4ccf03499fc22309449e4d0ee11b44a373f27d2874866aed6300b3f98d2a0f21cbc313f2288a95892df83691d24b6f304d25ab3ef8ea8f95cd67bdb02977446ba7a8ac06fb6337f9fd7dcf9d48432a47a2c26dee9471252e3aea1129b5dbdb1c89dec95e51f870d10a9724f6d0179f548ff04e6b15efb4c9a86524951c433852a852526d308eb7799002f94809409a80510c81746927651a46d4c5a664d56b642575c50bc9722d5648b2d63916eb60c0129372faf9c52153cdea6f899826ccd8195b99315aa71e3dce35ac87a7ee8ea2830f28c1e4f42f6ed9808b229eec441dbb91c770cc17f8dd9e672b49d573820a0dca7123bd112da282337590b82e149dd0968a4e15c5d13f4d09bd5125f2c86ac50bd59865183b0008fc497b4c4a0ebd4fbb517409f138ad85d8d818a9e849cb1a1998c6c735d692eebcd76ff060e05286fd3a1c1317bfa860cb296e9c34797706dad0b3d4b989846de1c322a53fc12baeb3ac2f41ef780247854779c0b3f187d02a767a718d8d64c3653a3fd063eab280a4d9c8dff263eb3704f3db30cad2a05f72b657f1d81c895031c0b894977cacc618942e25330c6d56736affc61815798a7eb98c18cb3f00db5da5df122cac899b973cc21d8a4f526d1b76698d40195c8ea2c2fb1f561ff5dbba09715b4e7cfd13adfaa82d0a7d5334c11d291b26811a4f21a823fd84191df959e7b1538eff36c2ecdfd81761a95be1873f6c6fcfcf01fcc9182f3ba07a9297ebe9d51d86fc970dfbed49eaeddcff81070ccf766a3fdf5c34b464b086523ac786410526273ef14f7d3827f23cd938676847a4eda93d8e1a52a8e5638b8c39eafb04592fcfecdd68183f1036e70d27525ab010a2dcfb7fad9df5e60fd962e2b5039a873eb33d85387e8202ef670232243dcb08895ae11bdabb7eb92ade29c2dac1ee5e132ba1546ad23981e0bafc34a9d74aac1fece1d018dc7f04a48bee769eb45660cad4fef33a21146bde4ff9b95965447f0b0a92e79a16370891c09cc99979607ebcb085995bab1301afb7a6729e16e3e1666bd861951ca238f882a0e14f5787ddb5cb978edb755df38bb133c451c354e0787d810c8c20fcd2130806bc3280cb3aadfae4456a6c105ad629670733173a26ec6dfa477a8cb74c8f5da56bcef21a3dbcc22765758f197868d45fde1c6d0e71f81b3068a14e0a3f6771fcda2d84c55951e96e90b160792c8068d2a161f406122991f067853dbe79cc2c5400b7ade3e36df029a92adec86fd49ddc23aba2846608c840f0d7ff96b307c88b5da0b7433d34f7adc06cee2c5e295277a0e3bb3fbbf6829bac3fdc73c9af9719df85f43424954ad3cd8ba7d93b24ed8c7dba58206701c80986ad8c1a91e8c07e755fe4860d90a10a2bbdd4a446f08283612c843f6963e87b4297068c7d758953772ee5dee5bcc32959de876a2dc1c855039dca3fc1705abf3c5914075b2a53be607bcebc27a5e0238d6c71a8cd32b288ff2893452846035d112792e4975211788917afa358526901cad92617be9dd6231aeda8a800287408fc664a5db7746c89674a798a7151c2a880eb4545c075764d1c8d307947ac2e50abe8ce633b2a6209a85163e3e676790fc9ca73a8cb8634f38619eae0a4a170b071870a526477efd67b02193f77408a0f63e62302d36ce6ea9dbe797bb2040eee719e0913ed9b2d2081bd787731b106e5a82e4ed37fba6b43abc978354a86869669a71f4152e0f09a1db1196afa4467d2fe59d185babf053ff7e6e031034246c2847afca4d6911e9248d5d29b23ae6d700a2bf74a3978b3961b9a7be71feecda769f85973afb84b502017531cc9cbc16b4a04ccaea061f0f3678faac2f6b32230cd5c8d312af733c1619c16a01f2af2034c76dff3edb9c4609c716918cd0e590460fe490c3e326ec521515ac91846769a691291c576da6c2e0f4aeadc06a48805488427c4c486008d3687aa48dc46be88a94e82b74633e3e1e63ca45f7baf89e62f4be4cbfe616e82bad0b93dd038f32454654d63b7be09e0d4cf0e4e634d31af37b8f718ce098a6eed60d1fdd106890ca2646328ec4096acbc99ac07421d72ba47621917b45e3b6585b06cd62d8405c976e845d36c1f0c2f59c2c1126cf7c5b4a55b613dbd467ddae939d67c76ad2b9fd9bef0d1f7a831e5b656829ccb5e8cac7e5632695079b0279b7c9d2637845d2cee961e80f0d40c4e41c362cd2c0e32451ccbeb8429b30c09d054309a885965456b5913bd2a204211f3f36fe7e27e82e29d982335e6abc268dc93399d92485a4387ebe9c4fbfdb4afd2006c4f855b37ffaecfd254e517cffff9363b811599ef833d6a204073d7c2aad424e7da781bc1c803964a0683d1ac71590cebf88438179b1943a0d4c2eb8531adf12537bf934a8ac624cde30fb8579c04a9ef522e90a206c4a7e87c00196cde6e2252d4fe826d3913176f8c0fc6a6f1344b7603489da5c3b01d99b5c49990e5066538c48013227d89a1cc7d681900ccce199eaf6bcb0d5720afcb15019999d85a07582692be54263cb49b4fd31a3126e4dcc2758ed385841d51dce90a04e4a298c14e0c981c2b9bbaaade121ea36247f9082aebb51562108f10ddee2fdbd65b8238ac9b97643cc92e69a7e19315a6cb9875cee36f973b34de0fc7b303c9beccc6e5fc3d00c0ac219bf1673e421c5b8de1affb060d28a72cae8e864aae7a9a808018e72ea09bc43faac09aacfe7738bf738241458976acf0c5ad4f3421fb9952f78363a27298cb653dbb54289f0bf391e565890c6816476d7dd088beb3a4b724f84151422b560089e72d33e284127ac09454c15a1fca5bfe4a1e10430423a4666956442dede97e931762cca45927ef079dbb61824895a30f22f904cfc4e83d68bd4133a720182010ecda087e07d60f726dcbaca43f703aa8c00b3d5c36052e8386b0b590bb3899807972a52e086c43943c24cc9d163e70816f51517fc93594df98511552611db4742273dace6fabbae40c51801d7ef45907f329ca6ed55eb43da08b3e4503ede23e20599527b0ccb79ebde181ad5a59aa3d0f77d6e4c9b2852322862418cb3d9a7ea549037e8b54ad46f93918f8784af604fbe57572159979eaf1be6c4168f3789099ee0937314bc0ec7a48a4b495ece16e75348447d2403ad3dc4f8583cc39e1f46966da8999d0f41cd0c731911beb14810f4224f9c1b949ca75f79981c01684b031a79e1af0cce080a3f93575e8b245d1f639d5476f167242844263485df04c4db1fa7ae6414a44085cf6aa9ad91a069804adbb04fe22daa973629dfe6dd0203f53a546ca8530a811cd0c3d77b50468f3ef38027452d52035c4187d9d96900fe09e2a115ba46de4d29ca927f5e67a332a728896aafcf0f3a9aa60316c0828978c919e64656b617f76f488abdf250beec58d90f9480c7f85d589577892666a456d16718b9433f9a713c98c11eca0f2746db383c1117871b67fa7b13942d38d05f7e0f0179b5124267435a8fa62689d2a67ffef886bd9004fd439a5861ab0f3a5b4bdc29ea3d6aa0e50c3f93f101cd06c0e2495b30c8d3d6e7708d8f5615b04e7a06cf98a58611a1c37e5ed4e86096ef6b7b2cd75514140d681d9ffebce9d61fca4e4c9f721e23211b6d271b0ee64db53942835da43d472e3ad066f400f7f5cdd7702f7089e3172cce192bbfd5fdda918d941f26dcb8f39b1e0e9da326e4b8afb4b6196ca1690a0592cedb6770a8d9239ab94d0d00b77ac074ac428ec7f1a5bed0f320333fc8340ac6b46952f694405d2c183a53f3d75c932e15a1506ab83718395a32d0ed088f3fe012dabfed987e48b77569416730b9195113dde652810bbc6c0046e7aa63448a681c949c338dc4c0dd616bf30d276cb7702c99d48482789282303238fec9fd5fd60ef2e25f69a2aa01291ffc0478541968e252b6034a16cd10a7d4bf1fc99cb20f2ffcf14ba2236f033a6f432908e562fc0c0c14548a438382196f5be2f864ab9a006d9d617696be47c0f87f9ef364a2748443aed37aa44e891643de5f755302078e0406c1d2127e037fc63dc35da4d4ad1ec5f40386ed93de5edd9b6e2369bb6935cf2c4e96ddcb7dc4df952a568f53d6e4245ac7e8ae37c7a8e03dc9fb0b0c0297a9757b7ef55a6649302e7bca8ebb280d1b6c991b59c2fac48bff5a01f27c350327a0d472d076839f1e7eecc5d9a9f5d7ec203bcea9cf229927dd2cbe8881eeced15c941fc0a7e8828f905f34ae04e354cc9950739f3a797ade1dc069f6e4917661dc54da9f2fcb4a9860359e74a995ac906fa1c34b04a9a4321048581857456c6002032bf7ae0e99c9ef07e32acc6852f5986dd5201d1ae680c22428a69003ec2615b3fc9d88bf296402540dc264d1ebaf1800a1a17fead6ed8b9c290396f189cfaeb4c3a24cfa3f9aefa63c9912d76f3219cf1d386b6c50324ef856934763a40c3532ccb1ba2a757d016de2fc9b87f067203f178f4ee26cab848a21ccb4dbf42d82bb6b10fa5e40ad1875261a674fa12ef2cbd6c7d678b17f57e1a224d30f184b4e28f6ec188abdb8d98a2eea8cef4e67666555db9f595a451ff913187518f49211e78804e527fcd741eebafd00b5dbfa2ad0a5d8f753dd18fa9229d0097fe3ba07b549a2652438fb0f107ab0a57647101030ad9f6863b162fbc2250958250f7bd46adff6422f0d563d97fed8c40b7062b5cf3389337a573d6e959b1ab648f8cf5763916820ca5ffd94b328eded46fabb48ba29b390a4434886149da8b9086b1b980cb1703c2d050b9e2fa0dd31532baad12516a26b714d7f7ad93146cfb4aa13f9da8b046d76f3b0929d3ce0c2d774949f66406553863893b1a07dd72b7d0fb8fcd38e854d22060e58e66d28e537461f0f374c7ca1d1305f81c079e28f13b327595314f4bf9b7dccb56a5b749ebde0cc8095918a209e880f140e5efce3e48bb447c7cf3445c730a29e443b87d46b371db183b701398696572ec1ab76be84c1e665ac65a2ccede7be4819e986c2f4e1009b025519ca04dd5596af053b93edc008fb2d17d0c1a45c2590ad3e3ae33a2b9670120b208177a7a7f49d878c4ac69692b6042d44656ed3a4c8885f0cbcda15fd12e709757853a0f41466ee4bb7f515ae927ba299b875d56d9b8621aa58a508bb9db57cbd43f0d8721c22178267861a4e14ce269cc8eebbfde87ae5a1f07580ba88a59cc735046cd396f310e494448a92f858061f77f3faa58d65f5eb392cc9261c854431fc2cf7c2aa4a1e2d3960a068e8e5c1bef190c202e454dbaebac61cf41c342d01e66159f11ca0dc9ec2629bec07a41eb0b1a2f45b5554e3283059844720059808c3eaa0b8b8dd569a2badb57a23d097686ba061b4934e044e96477df980ff80e48f21031f887b6ba3df3518640241f8db507381239d48ea55af318e6954a35f8002d55d20bb06150399ce1273236963902769a72b85bf16394368d29aeb04b3a90c705a1898636795faa30c3e204ba5c4d9185c5c577495380ee39637f851750682267e7ca121cd1d6fc7e135645e58b80c2e2dd25a255195dc35a6c690235a8978633d094c9634d46383c042207dac32ad1c930149503e0694744999c2c41799d8a67318d4a4ba09e33dd1e8d10600402725caef66a579e2e93e1c84c4b2fcf20e094e337cf236a34156ed14655cb191038cccfad71736291167e287bb7941728ebef774aec847b5532e6cf68b980fc2bc0ef66a54c1644ff903f3b872c25795d8e38932425846c022776b8ebac8f276d04d9ac0a85fdb992be8c62bf5c118b63dd194aef7fe6a8706fe6fe7689f5c812f5ccadc3985ef6312b1c6f6929608ee1bf92b84fc436dcfe34a4179fb362acd61c50eea323144d21adf51ae6e779ad11e1de0c3bfa31fef866231aec7e18212471fe9242f23e20b3cbced45198f4c104e2d4f5be1b78995e99a430039da2ca3ea7da163f5003ee58942809bd3face4e240f1e770ed17617f343f528188be64c2a13866955ff142d8de445159abbef4c0bb9df1ac1aa40c3cbaceda790558536d1db26f5bb692d9f5523b5c2205b8fbebd6c0a67c7164d6dcbc65a2c3129b3da9549b21e3442ed666054a91e682f057fe6ca9f7cc5b7eae982c4aa11839753a9dd5e1fb8e086ac8a0f1df293304991f800b033fdf736802571607f86f4dca083bc27540e128e65f6d42e2b88b2ad053353ce3f7bf9abb33ee0c59b618ff71ff5b47a518c4e0f22fe782f3d0bedfe0f152d75b78638b0ae90bc7118396d39ce5b116a381da034c6d70570802dde18bfba829982989b5d46c371e7682c623f1accd52a82b09c68ff50fca07f63a9ec569555add0950c64ca93a73dba6206c2eab182790af5937be7d2807616e1a62aa8b942e24d3d7c3094a428d2e8254a0c0aa810e2b43ec26c62f9c9e6d0ca2e279cb351543a9d5dc9dea37b1fed70a2933e910ce4aa2245fde80a86d20a8027a583aa181bdd4efb25a011535aba8543b0c34d7055799115190a4eee26d6fb2bff05f5b808f8c6509402a1df785184dc7fc405332663340fbd2eb8ae630b6f60c78383c4ab57a241febdccc645203f5c32f73d31962fe2bbf7be55171115a34d234ff700de7cddfd5f43d1fa2f279593babad715023f8021290ffac9b19dac0cb5c9a25f793e0895bb86dceda58ceaba38c3e0b0c440dc25480619561521314e33f4750723a4ae8d14c39ab3a382922e5eade7d13f9ff0414df827edc77e13ec7c6bbe9277da311c959ff7f9944770cb6b5176f5cd6f2e8f9bcd6414e80610dc83f4f2674b77d85cccdebc9c9acfb8e18828894f5b5b6864de96ff87eedb0ed82c8cc950dc3d3dd9d760b48a2d9292805703123f60f7abeda8f78516bb739ca61448f82a1a7b6fb548f8f18c3f20a3313346233a947184f2584a1b3d59f2573a3baebd45248648d9adfabb144fb6f9c3984f001178d6a9c1b1a929c3fee15b398a66ed2567c4a57fba57fcc6b77c0347387e56c573dcd65a89327327814e135e87f3fc947eaf3339452b1eb97f3def404051b1ce0e0fbc5c7c98bb241778deaa8a00314469c3638b2f27ca6780cd31cb0398bf626e12a6d0a17bf9e6a24a44d286bb79a40350f20c4218845a6d92937e0434d16625715f78f59ba2886099f3b463c86bd6773c5ec66f98469ac2c227aa22c567a95e7786c5095c2ae7dd407d71b005506757346a72c803bd8be23dff2e1dbfabe31c0f35424bc97262597f9556e0461e322d3cc1577a77611be3938f32e660fc1f0b4f5e9a7e4dba22d7b8b4ea3cd619b7d23b81bed26051ba346a9e4da832704771379776d327a507225486dd5a2cd315769c336de51f52f307e15b6a0405054202932c618a63314f4413ad09a0e567863d131d1db864384fd571a1f59518e3e4ba468a98bd610bf08a5751049b11883db0129c74d01b99d9412f0a2ce2f55232adb4a95d8fd0fab4c902fca92aa98ee1aec78d98101c5981ee560f073914c9a7cf542cbe014263996b716508f7525ec476dbc5656ef228351de47f78be49b5dfc0d8e4884a708b9ebb554786205ddfb753be0874898b2ec41547fc5e7bd300abeaa0443291368908e1117d636f890c3415f92f543078ea53043104d8b4cd0767dc181b9cc97e9330da183ffc60b5333e6f07083547998f487acc75b7176f64594060804f4c639c5607c305d90e866b7d1d7e8c2ee4660009ead109f3004228ee483d607b5b801ecb8890ecd491f376b0447c87d1cf31b7fd522e8c8cbe315066d7d8f55e2b9df3547c50fe4cc5bd63a7279ac3abab91dbae5827d94dfa809df56f2d5399aaab9b79a1c2a6b12a5f5a9203016b33e6da36079dde14c43fa4533ffd243e467e9c504b294b0a63c9b6e638de2e1d752bfdd87e68f10cd305cfa1afe3248aa9fa10a36bdaf41251c42084feb74b5c5b4c5d8424387e11b3d3294dd2e58410d71c9927388d944d9c24de03efb435c34a2be01303d07aff53db79b5ec080e4ec19840bea0210014ff55dd68c2b3e47afa53ac20969c80ccb3294e87d2129709b11d987fe39be97f1997bc7cb43e3aec053c18057d1fc728eb45de16b434dcd0f8ddd0debd18bd61f5a25824f06ad682c307bda8712ec3b417d3a8d1f6b918299d774bf13a3d5e66e5b0383191b4cf8eb3ccff3ea674820b246d45db712dc8817a48ee9f3ac5f6e5e5d02467e391024d5e98441a4969c763f5e0e61c57cd58dbc064b610078a7eaee1a7eab9fd29ec11f3f12c9a7dc7862a1be6822ed09602388629b78f0aec2c8958066145f97aa7e400d21e64b82d4d306979c68bf6e19501d0952eee3f52e4dd3da26b4c98311dacd2826480315855fb75e0a2f40c4a9c3f46edbe5b4ee8d3e9108a0b71462f5d264ad417cfca403b89340e1528f7a68fc862a64238ee361c63b145d467999a0adc682193217e5dac5d4fe01e50087bdaf38a5264108721a69e00f08720f6efc16675fe288a9312c9381f9643c7675ab967da4a5be6d16d641ecc1df47b49a3d27257a825c67384b8caccbe7a1771872ce5239745617797d2a16d012007b5d9de990356b5f1880414f69c3354db9571025853017cf958621260cf8b23ed8042601f93de4ee6c25ce36b73081420637497c830deda1cdccee42e60a9ef8be144a0f14cff27a503dda7da653c9eb6032691ca1d7112099df77a85250594af01610354c84c0cb4c7e4bea6e6001cdd4a80f143a365efd5c2defd5fee964bc62ac0ed68f3c6cdb8b06ba23add24430821f80ba3d5d9cb46676f1c7f61e0ee4a44aec82ea40369a029d64b78ddb9fd96cb3981a5fd919234ea2710a21e2475ec254ce49775e00d125a2f607b90d482790ad86ce1db4615ecbc2796b9706501f8042bd829449710e035028fa646ff79dc8d5498f7f1e323d4791c64cd81137e57c55aab45b69d06c12d4252eba3a4dadb622f71959185b5144f789bc50bce76181e441deb70ca86b26ab6b25bf564d4ddb1dee1a8b5ca6ab110bd5146405c497ea963610c1e8849c87163da3e01f729750238496eb22a65124c86dd488410cb7e2defd7b4ffd3970a40035274c3ca10bc96c255e4012a78b705515cfadbf7e62f7afb2d788f2feae918a57e7be67286a4c8a84619dfdf380dfb43a07f23e0f63fa71a7fdc8854920fe7c88039efea5fefe3df2390176eb598cef05fefe4bb170a6c04965b2ca57a8117e399300bef731ad415c02e3739004d233423c5a270ceec9a199af05cdd561e54f57537112709e865e430f1dc7288af3ad094675f094c81f32594ab6620038a574dcf4cee5ca17dd8f1202080d53c5641b7b61537c798d82a8ecfe9e58139258e766d9cc3638e5268455b993cdd4b2dc6b9a0b54ded6acb2ef61eda07e2ed1469bcde72557cfa78859c29b2c16228974993ca7ba18c0115964d712b2e4f4de52209d45acf10899bf8cc22509d0cc27d3a42e7b71ff5154bd2f4e9de9a127492e37080bcdd3f89655380e141a64e0cd23fde69a75150db227b2fc83475a301c9d36f2413015f096727c21a91e09adbb2c9d182228fabaa4f1003c2b860cf131ba22a685ac460adec1614e6923fc3c1203bedd44b30c3d60b224c301ff000000000000000000208ab546706b2da11291929452b90c1a6cc069714652a624534a91ec0ede05ce4c7c3a33f1e9cc1c34d208219897cf0cc50c780c7789902a87e80002ef965bc6a8eaff019bd14784698a596b14d1d6d0e1034677e75c0bbae4cb949467878e1e70e9733fa5fc4c16dd5372e0d0c10336a459d467e983f6b45bc70ed852d57ff23476d4de221f3a74c0884e324f65ceccd86229e68097a5944e2f57b805a9eac0012775892c5959339f991d3760437f07917ff7a9d51f59cbd461032e7fe61853d73b8bceda29e9a801ab3da5d4a94eabcad28eac6d8d0e1a30f23363cadba6a28cffc89a990f3a66c0be564ae8f68d3219320e74c880d3faaaef97f693976b6774c4804dab41dbf4e5369d11d030c064b27c043452ae161d30e0fc569467775db7a45a0b2844c70b38b5a44d9ed6f282fc56870bf8b72c3d63eba092ca515b2491bb1914984c94d0d1023eb450aa4f98aad2d96430d0c10236850a224dd525912ab22a74ac80dda0d3bb149da2c2f4237b4516225b74a8803fdd57a7c57e47b33852c1e514ecbe7674d2cb71a082d1762e4f68886ced1f740a6ef3a7fc39dba7bb8a99a6e0a33cf51a935a4b2da514fca607a57eff21113848c1e9aca8d3ad4e9674161147c1a68ee9e38d523a5e228a82d549a3da183ae98e23146cbc1875969ed50ae9de85e040c1e6649b5450b5320bf73ec1b6b0b4d2372633791f4ff0aadbc63528d995d5da094e67fc1013f5a773908313bcba081bafbb1c53d2e1d80423aad9993948b5594a444d302ed5cc936e5139fac69109567d5cddfee9f5e2a9706082d75a486d39634a2735cf7109b6e3e9944679ae14a6b604ffa35fa8c61e25d58e58093e43c99517d5f28b881c946083a5746f5fae59af67129c78f7eb7e9a6c114f126cccacf3ba8ca751a594094482db8c9762aedad7ae960157e08004db21b5ab6e309929968f6085bee8d2fed2a2ec9401381cc1da0ba5fc74fe6b9dab46e06804236336fda042c67d37318237f5a9e2af1499414639816311aca8d4cf3ae7290dd9e25004ff32e551774206a5524b042fbe3af5640ead4c8710c109bd0fd24cea96d62f8e43b042651552b73ee81c64380cc17e7235dab468a1ad5185e0378e1c9deb4bc5741b071c846084ce9e925097cc73e53806c1e775911ebb9554eb1b41b0a533ca8f69b554a174130836ef68dbd1db6a1e5d23f03503069a881d1c3800c159ca595daaabfc81cfbd6ade1dfb89db8871fcc0ca786934ea68b9f9b2367c0236bca40f9cfc38f641b3cc69d359060e3e705178109d772b94a6d11e382dae5275053532dda685160d23091c7ae02de7d2b7b9ad6e1ae271e48115efcb79ef47b4bd161eb8dc2946adb5b9d5db4402c71d184dfa515c9a6e9176d2b003df52f86617935275528fac211438eac08f8a2932a708d336a3c0410776c585e91cfa317b23724fe098039fe5caac525fbea6df236b4b050e3930cac592365f1baf8d4e81230ebc52995b79c54b1a143122382970c081bb4f4249ad36bd94c9e378039f83f9c96fcd0dcb311c6e605d834e0d5d1fb37c1a59436ae06803aff752d037b25508a99d81830decc976f5975bfbe52e47d6ecd8c0b106ee5e6d65536a55538e856091801211984c03871af8d4d6fad72853257911b1e11d58b3e1094035e04803bbe54aa8d21d1535ae37e04003ab964ba653d3ac339e0c2838cec027212fbde7bc99df4f3330a6975e06d3dd3b1f4796a30cecc552964e3488adaf1c64705cc8df5615ba1b1c63e0a4560da5c972c78a510e317051ca8a5acab52f6867c4a8e20803173baa9872b24b16756b64f390d8a811020e30f09eda3d4268f6a5bc620e38bec06793a3d9843c9951c94c2693c96462b64d72a3370b1c5e609576aa8a522ca98b9d2eb0524c2b7f2dd73da7242e30b6e36117a59a5e2e6db16818800c1c5be0f3a98a9993d03a425b1a0bd3060e2df09ab276a765a1846e3bb266568214c09105ce82cbd68e69437fc3b5102c1270001112378be0c00217a3d242ef6b2d25f466644dc4865a0816568478089448e2198c90c22110b02244111c57e0ebf2476f0f5253259504f80d2dda90d04056e0d35d8c6f1f9a5daf5222f3024715b8a8f7d2e5a9d7af5646056ed4bfdb267dfd2c7a8e29b0b6f27dd46a3ea5d71b59b37143c6b171c30133106038a4c0cb149d756a7bde46978c182325931094e488021f3234ead44cf7d1f4c81a89dbd0c249ce62340916060546e6cba35eb8886ae83c814ba6a57fe6a07394269c4c2613b573022f75e7acea83ba53deda1049374af642b048c0029ac099e6f32f0d5287686c64edaca430815fd1d2727add3996c06e6bc5f05da13b46ed8d1a4ae0553f3f092d85ca2ff49115d9e34802ffa1df738c4108ad2e9533165042720306ba220b912d3890c0a8d1d23ce772ff57e66442f2001b33bc03317e060d2522438d60329941a344e5c0710436c75ec9a0de57980c0f871178514adf8bf06d8bc08adaf0ed5ddd770b7a010711588b25374c67ade466a3c231042ed69fce369a6356917208813bd1aded25aa693ae3080297dc6eb7f2b7bc572107102c5db9366e28211a33387ec007fd5aaafbac52fc770e1f706a3aa78af0cd5f527d038e1eb0abd95d0955ea4bb9c6c1033e7d6e15b4766a95328563079ca51d1f8d49a666af68514252003535638b921c00870eb89844691625b567c6e4643299e4c91cf07949fdbd958e32b71071c0dd870eaeaf94d6adb32570dc808f4a684d4ae6f3ac5ba7030e1bf03dfa5d79b9cb2093364adc465bb1028e1a70c92b6ed020c437d7cb93c90c3868c08bdad1d0e9bc2ce9f88ad8093866c0895629cbe0f144ad90cb80d7c1830695b4fd67f91f470cd8ac5d3ce56d1e99ebe48001a75b9eecf7d8f9a3a9a40d385ec0895abd251633b51ced0de3010e17f0a93559fe1ce36a1d3f395ac099262ffdca7f39b70a0bb88b4ac79c319f1c2b604db392e3dafcf4aa1c0e15b05a53260f52a8ec97f954707993d6f36db56df947055fc9a5e765bd42e8c59c42dbd5aa2a8505d5149c880a325f8a276e1e530a56aaf292ba62d6ac9423059b5b3fc9cdb3ac447da36065f667cf90f97e7a1105ef9592798bf62cdbdf50f0efa9a3ce954665cd1b28d818b5cbd62edb63c5cc2718e142bd50de299d129327b84f9d9b53fed7eb979d603c8a7a887e54f92be504ef5bf1c63f3cb350cf267857523c09d9a939c58a2638a9c39568d2410aa58399e0cfd44d864615cca406136cdb97b9add2f79e4997608594a95b68f9a946972cc19fa991fd1595aecb9b4af072fc44c5f3cb14328612acd9bd67bddbdda38493e04764904a74f586d64f129c5aae515d518904df79179366ef1f998404b74a794b8fadbcc6b747f0afb205a12a970c5f8d23b8cf14a5ae0faaca5caa116cde77bdfe9ba52ba97245425c46b0ee212b05b7acf4557e117ccc8d4a57de88681c15c18f5cdd153da6c5b7d3c89a86609100922a12c169d5203daf7dd0752322421588605fc95b15b42a19539d87e0567df3b7770b75a9637650852158a14cb96859eac964323922664c211811964e3445ad9ad21a594302a882107ce977367bf3afbc392db468049889a049105d9185085731083e09fd29b7921ed4ae96c811042fb3768f6b2f57cf0f04e339346aed48d11bd1a00a4070be41dfe80fa662f668498f4060456c8b2afec07994eaea5a796f8e493fb029968dab9715a5298be9032f65ba7f7fc6f8c0a68ca34f86b6b70dd3f1a08a3d7041cd835ea1e48dcca21e78ad43e90e3ae3dfc7d511a9220f8c309d954ca9f5a675a119a9020fbc0edea1d3bbac1bbf91e9dd81b3ac9d4b9976329994d8882123861693c956610746e5a42f3288efa999eac0bf6a8ecb1c3a7bbe7c323113b133862ae8c0ca18d48a27d5f9399d93892a8921633251253164a4ea15aa9803bf27d5752711debe3993c964828ad5a00a39f0abf247fefba995a79e1f541107366a5253ef0f7ed23423c68888932046091cf8df55cdfffe516e2a95b416301010aa7803173f6b4a3a424affa0966cd110984c2613113b6e6055329d858c9b5bb4a7897645162203a8a20d6cca6fea76a5cebeabc9102c1210528306c90126931a3448d66452b248fa4602487c8bb6428b6603df49e6555369ea85cc1b005d91850809aa58039b4d06ddb27dd5feb42ad4c09e7f54579116b5a467640d2d20044608163268902040798d094c26280d8cbcd8f15f65512a9af6488e94b4026cb49a410346ea086888008bc964a4a447269383065694320fb522a3ea32cfc09f7f5cf1f06590d040800c121a8fce09559881534a068d1edbb246b54776324186c4460dd440156560935465a675320dd54217b8220b912caa2003179434f7e8f1edff75558c81555a5d8bde34aa4c53f48a2c4456156260b3a225614253a41cf5c89a0c1a249fcb2dab08039f548e5949a9788fbf22364868948898b34142a324ab00032f6bb37b90372aa66a236b1d9811638b558cc46d2c80868d190b3057a3656006aaf8029b717b75550a65ba59911a2d63155085175893a2b55bc1a3543a35b6b081b605c93907a8a20b9c0e51dbe0226599b247d66a20090d08d0b031630193c9cea00a2ef0dff9b29f34574d2793b4104c2688c4460d3c41155be0959eb9ce57a36cf3a6049c36157b4d088f9a3d9ae1410a4645f939bed0b993de7d148c65b5af4cc7986a4c2a0ace63d2f22de65bf09c0e05afbdce467bc5bc99f5a0e04db69d46a192ce4d39f4f804a742870cae532821ba829ee057aaf8fdff771e9de06b83cc5a06d5c1846547d6b4b82143242730994c262ef0e004abc99376552ad4e52f6d82d751075dfb7ea34baf34c188885067515acce0518f4c70afdc2e89d4c1928e6282cdda41bb5c3b7956f625381d84969ba7d0c9d267c33ba034de8627a00e1e9660c5d225ade32e63d2fb8b14f3a804abf34b136d25843af56452a2cb83125c90297970cb52c84edaa403336284c0207140088c90102cac984c5ac44ee13109defc635cad349aa57147d644205212438688fbbb2320044648490862348977a067b403dc11d0811931dc7ff5e021093e45fd52458f955c7f6acdb8418344648b24926823463a6722256959784482119e5995d4f05ca95c48f02f555fbdd2293fbbe7f1083e7dccb25588b692b91f596b12115c8d26b1c06472030f47705ab4b2a8ee35a133d4467063b175fd9b45ad764b46f0ab37e9dbbe949e3448c3101e8b6054c7cde9d73eadc86dc443119c2efd9de32aa8c8f047d60ecf0d1810b02204460804ac30791e8960fbbc4b6c4367ee30868c185a88e021221a1e8860c7ed54fa6fe811a63a049f4269a5fa73925a7f66643b302346893b0226130f437059c7a829d69db42d8b4721f2f098c92f17a3e418c08310ecebae151ddda3fe98e42435cece20f8dbb60f11f26f5d2236483c04336220033c04c1c7fcd35c2d7a5a8eeb1108d695d652e6ac3ca6b4257800827d9d52e5d6b45e41a9a4b5287fe0d4a7dcea9298ae4b0f4608498c864049890d2f292185871ff8ce5153a34e59e674d17811b4127581b57c8f3eb0de414ce5d05a2a95f38750f0e003db7b52083db615a3bc6f0f6c8ed1844969593c3df027833a7125aea91d9e39c1230fbc52955493fadc1cb987400b1ae75cc0030fbcf012167589109e95740736d767e9c14cea7e8d7ad8818f9dbea592eb119d94eac0658daeffcc53529f3e746075ce1b1736a294dfc7630e7c78961e432bad2178c881d532dfaa99d069de6b123ce2c06ae95e1555df1f2a070e6c0b75a2725eec130be2c0e30dbc2a99a95f6f8e2d94d2038ce0e106bebd73a9becd3244a6d0c0a30dac25712ddfe2a9a8a18511e2c1063e4f2ffdc8dcb2bc656b60e508fd514c75728f416ae063b7b2a02f0997cafe3430ae57a7ce59b6213c4403b75957bdb4fc91325f0f08c1c28a101b3468484089e07106366e7ac71359ae8328150984c00829110881801521ea61063eea92a12affca1cf45506465384c8cf5f1bae3132f023d453da865e94ca1d03bfda53a7cab9973495626033b3561644c534ae8521522e040b2b42426098bac1230cac6cfd521f324bb9ce8daca12dc04310c34677c0af984c42b0480005663c6032e386c80c1a93898c18304248dc060d2c2693122d6ac88871f08a2c4438a6e001062eea513a4999bb1a4a1d29692d4a52091e5f602cd8e9d64795b3d2a9177899829866e524ed84d8056e5b8850af3a69cbf9c30576e3459dccbc354b6f5b60f3d3bf9d7be87dea688117255f2afbacf3aaabb2c04879ea6c94688cab42f6040f2cf0fa294ad7f93e93a9ff0a7c6fd0f320845852b65a819177da85b786b9bea44715788d2aa38fbbe9eaff5081ff96aa265b0b8f1957236bfa3148bc0257642112c3630abcd2ec5f3178c6d5312b055eabf690aecb734bdb51e062868c2d94bca063050a9cbfe7ff53a1f7b20c3e81fb93f6b51d3a236b2276c3c3098cd4d3d641f587597c8dacf907da46f2c0a309bcc7fff45283942dfd1c590f26b0c1a45052c9d7d729374be05f485d52791c9d950c1a595be7a1043ecb8e7f427eca4ab45412b81885c5b2552b4c4b2181f74ccdd5517d37787e047ea48b542f4ba29e2123f03a792cd12e1581d3d9727efd15854c7d791081754ffef599b3ee1cb51e43e02f68b9d9d7f2ebe7ef2104b6cd53ccd599dc4dba47107891dddd9e56880a2a6764ed69888c94b402723d80c0f8e64e1f2c69a9d5ca0fb8d17e39dae327a39b3ee08366cdaa5e547ac0e97bb3d89ee5885295070f78db556a757be3c9fc8fac39c98d1a67b70336ddd3976a954c2999e4a1032ea74daba4d672f333e891034693a74a224cefffba34d6b90e78e0808db9b9f1b3664fa64d55f0b8019b4bf458d6aba754c5cc990df853726cdc848bc7a05e03426084d8133c6ac0cbfc19930b1da53ebe5a78d0803ddd1794fbe98c1bbc91351212f79801a7f2eb9ea994551afd461679c880bf8bb995b0fdecdb5c2d041e31e074e9d6296a3c27f777642dcfa0c00306bcefc7d317a57e5bf0780127c4726c3f0b6a3fbfa4000d1b33167045162210f07001a7765a457d97a34afa198f16f0aa53ba4ada5f67bd92070b384f4acb525928adb552f73c56c068d128a6b5879aecdf0a0f15b029943acd5759f3643702b77143c6b14b059f2cee486dafc64f9f7051c1a9fa16d1fad4bda27c640d4fc1c8f3f22494c5ec235aa6e09514157cdf831066674929385f3f99eb59d345759082f397a1db398bfacbddc89a93740d27a9814c86ba80171b05af4da8f3e0dd22c3e51da2605c55d0cd9c5a066d6d644d613820048605d68c1b340c40e3672ce042c1ff464bab2395abe8d19135efc08c1e5123706306147c2c137e5f3a6b1d9f60dd84e57c5affcd53623cc1b7ccdb425db8dcbed5b0041d9de074f011a1d525ade31d43a4c4fd39c18be54bea46c5cde9a4f68a2c443ed0b109ced57705ffd5573a003a34c1aa14f4a7368b1f74a56a6c81c5647245162229e8c804fba5e99ff365feb0c4fd1351d08109467de998d876476dd7c8aa8e4b304ad89652d74a9f465362095edb5dfbffff4eb668646dc4460c11a8a13da0a312acd4d30c2e7c95942da504e352bd6dcaea82fac85023c8ed98049fdb3fe3c8f128b4bc2b92e04baf8ea582169abb957335da010750abd1328a4582eda0734d55e4906055e94b4fea6db3561f7c04e76d59ad097d4949993a47f06f1a33a9979ab34ef18e46b0abe9e32ba13a2623f87e15baee93afe5a872b808bee37fabdc913225d35204a753e524c563498f3a1b828e44b0ab1f7c54cedf424a84c63a886095fcbdd1a24d4acd2f0a1d87e076f47cb5501f4f5a33041ba4f48c3a4a1ff52c8eac7907487a4459073a0ac18bccc16ffc549e68c60cbf018218332830622386052693c984071d846094f45c4fe9ce65783b083eeffaaec8b451b3e78cecaa200efadbed694985190836c5a8a24b8358569ebc1018207400821519dc4bffe93aed76c71f18257df7a579c6506a1c59db82c4c6162458e075f8815bf16f4f71548aeee0c81a081c04ac45c7b05143c6d92bb210f140471ff88d97556f058b254ce7032b9346f9a2554c931bdd03a359844a2285ab1172d4039f5cba07d779737bd0f2c0e9f374297f9f32b70f1ed82cfad46553f1e2edeb0e9c96ab53f54799cc691d59134943d26107c69408b9adb59d572c0b1d75e0727a15a45b3a6166b10e3a70b659773cdb27f5143407360bed4a42ef97e6556fd490032744a58fa7d85f6ab33870a39598d42355998c593870de19ba54efabd74135b226848e37f0a2af5b32756c751eba81b79c929e5032b6695376b4811f213c46ad41e68a890dfca7ace9d47a56bd730d8cad304faa392af7bba88153417abe2ff314742e0d9c68e5991d262ba74afc6ca0030d6cf84b535a6e87f2fccfc02ba17a35a5b56d514966e07296089583d20f5269cac0679585f9b8eaefd1970cacd2bb64f79d4efffd876fe81803ab65142d4a0a75a25f1a59a3c16713e8100367715ff8e9a9e8abefc89a12a0230cacc6d89ddaf48abd3cd7c0c0aaa816d523aa62facc17f81c957e99524b559e6444b620b151cc0bac5ef3a0ad9edaa57df7858e2e7039275bd34232746bb40cece0025f519aa9a464054bde405b28d722750848bcc46e0b5505113ab6c06750a5da25e5a874c20e2df042b6dc7f1d5d5a70a191b5650c6581959bd2885629e816d95a336e9c007460814baa426b995ccf9cf5c85acbb0abd1c56ab40c14e9b802affdb2ffb7f28cac699162a81bcb496c28af31991c5a153fe8b0027751fb55477e46d68edb681b371ca03be3c61f0a745481cfcf2df5319d9296a6830abc5e2fef182e2be553cd98025faad1bbf776958a76081d52e0a5de34ca4f85a2c08a4e3f0b9a3eb7788dccb4a0030a8cbab7a8d2ad8adfb22d363a9ec0c8f528de318950a985236b22349692a0c3096cfa18daaee34bcb16b3ec6e7434818f6fbade7da392b29891b5624b2386488d12eb6002a7d2666c21329688961d4be057bb84727996cf94e9846091001b3e810e253052d7b9da7c31a8dccec89ac88c5649602dc9358b7af9c55da948e0ed95dcf6533245e921921b2533dcec3a8ec0064f1b956b289533741881dda8ad64ebd4f4bf551c3a8ac0aa1a19d25df4ade62c2270d284b41c84794b993243e0b62ef6add4964d06770434486a0881bfb8af7e478686df6a6ce80802974d490fa105aa89a636a93aea8f28186179a4ce1a2a34db2b14eca83bed97f4f75bd640c1a5e459fc63ec3ec1e7984ee4a57c7b82affc3b5aebbd34bfb1139c50765f516aa5bb5777c109f6bd548eec51a53506e126f8704f7af5a3a65a2c35c1e796316a29eb4bd5ca33c1cad50dfdd2e1bd310a13acbacb8eab75eb53fb127c52fb9dcbb36a8c956209566b519169ae32473555826f57d5fd69930b8f1e25b8686f4ab554d4097d9904bb4a294ddec1925019240946c7dba02f474d52662712dce5cc68a7bf36ff4b9060377b47932b5f464d9f47b02fed345da9d42131b870046332555049fcb369f51bc1c7142a269df5a6f0f518c1eb86c5d057725f7f8be0d2ea5656662345f0779babaee2cabd984f0497d483d0af6e5d4f062182cdf73ac928cab2e51c3d04a32ac80d1e2a7dcb0c0dc19f56693ccbd2f9f29a85e0fb94cac1eb345fd08e10dc47aff7ce3154b76406c12631b7d3398da8c78d20d8944676d0b4f94030324f840ee222eba448c416e1e002108cfa1bbf242a7fc5b1ffc0c81ff9eabd51e9d3ce0f6ca7dbd1ec7732638ef6816f7d59e996361fd82cd74b7984b84bdded8191af55fecf59bf3226f5c067d4a79ea3f450224224b8c803b74297f21c957aa5c34428b8c003af29bd0e952ba58a19545cdc81b1d3d9a993c778ab2a7660932c4ff1bf55d7f48d580756e4e9985a50311d440736def64635ae35cafc55022ee6c0794bd1598ad092032f637e2f19b42b330e9caaf49e7fecd6a39282039fad5445750ddedaee1b38af1c752ba1627453d5851b380deab375671dbe77bb6803ab5a5d63e5a82dba842ed8c0b84c77c16f2f66485dac81d39e3f0b57d37722a52ed4c00ab758510893214d49b94803afde25335568e9d1655ca08157c1530afa3cbdc960bb3803174ca724a48be66727d5e0c20c6c26ffd651bae90569d6c04519d8fb6d6f19b45a29bd3e1764e0556f8da97b29b5ead018b813733d95969214e28981979ac7524ed7ba1fba30f02e540cd5499570d558155c8081dbed93d264e7dc2cff0becea3d5fa933aa18548e1778b71b1579a36d63f92ebac0eabc6c9bd467555315175ce055e7962ff30895e1ea16188ba5774af62ba5366a81335761ffbe72b38594115c64817fa53d2d6529f73eb7b0c08f881095594acd75f515b8a8be7408ad5e5b05df0aac6a9d7579c56ce3eef9818b2af02abf65d55a8348db2015d874a75629d52d43a6e9620a9cab5025ee5d96851247d69608d22ce0420afcc7e4f2636fca45145817711dd39330a13177800c5c4081152253bee8f71fad655c3c818fa5a5b53eaf4d32756d70e1044e848a773a76c156d804f665105a654f2a4af7980b26b01b4be87cef42089772174be056ab51193be8d7593725705e6fab6fb4ce319b4a0c910f687123ed69e122097c6e7f8e16167473d4b84002273595e8601fb3bcd323b01eeea35576eac208fcc954a1b6354dedb25c148157426e8c323b4cf596d6ea3205174460b596baabcb52defb281743604d7e9e58526b0c174260a58c1d2a25a999fe5582c0078bc144efe2674f1d174060454fa7561d856bdb9a868b1fb09d4dd7630a5eea55e80324344460c3af385c0b98d101449570e103ce3f34a5eaac52b41c84111282851521250510299c70d1034ede98aaaf6815c1050fb835d14c5159c77d8dd9017bcafe82995bf43d950e78a184cc5fa6ec1c3072a4c5129e515b0c4ab3121738e093a80b39aede0d781944e6ea8f595cc7930b1bf0eed9a4f02def132db9a80123e358d4b5a3b5c50ed180972a9deb4e5d4fd59b8b19703255ba261983aa10a11b20706380102cac28c0880b19b0f93c64bca032e8d249d6550c2d26a062685152808cc1eea9aee73fbe0b1830ee669ff5e8d56fd690a190e4017a451622222e5ec0252d743419946aede66452a365884c263c70e102ce9577d051a6cbbb6af581b67122e0a2059cae10b28290392c6074c6b715ae3255efee62059cbb3ccfda5737e78ebb5001a35aba255ab808098d35f6910a7e5373df28552293328dac8990d010593387c46dc448181fa8e0d47edd9dd96fbb529f62d78cc6872918bdace3f93cd5c956b231a35557e05c8d9681a56073db828a12f9a23d11eb190f185124ed25fa870f52b0b2d534ae76dbeedd46c17d68d9a63efb6dce976ce10d10056bf153ca29e5b84a974a28189951f6af6b6e86b6236b67256732d40840c1c5f233552d5a260d163e3ec187d69016b39bde8a9a8d92ac005ee1c3139cccebfd5f71d40946bf5e61716db34969d828587c7082f1732deb4f08fddaa53e36c145f150ad184c83ec8c26f8d8a1d274ac24f4f36701336e8c4c40c5d04c30ea3253a728858d5842e367c43021582420a400c8ccccccccd059355ac0f08109bee3db685ef0a8b46596053e2ec1a9ad2cde39ca98a274d112ec6896b54134aed4311f591163ae9560fc3b6a6d9949c5144d1f94609526a15a45a52b4ce5120d2d3a20f23109f62de54fea2ea768fa4512b09260652aa1d5de4b7d49ab98e02312dcbd904afdc8b859e8038a8616f70145c30a912bb21011c10724f81e1d63eba7a847709f75ea2085c5d4bc1a912d486c9c2318f9af2ee7eb4ceaf434b236994c26c56cf0d108f654aad9c6d01fa32719c1291d9a9ad4a9fe0ecd2c82752547ab349149336e5a68d13042b0b062c4460c0ba87d2882135abb8dc7749a9644f0296b66a5d5bdf0a84d477c20823d15552aae12baf2854af07108f6735b901f95db059d1982dbd741e95ded18fcb43e0ac14693ff2563b0514286108c125a676d51b7ceaa93239b828f41b0ebba1a3ceb66b7ba56109c8ca72f07a9bbf3eb0e04176dcbb5b0bdcf1c521f80e085b69c9b2fbacefd3253818f3f70224f0a253cf669c8a41ff8cd6afc758e1574daf8d107c6356f6e1dfc3f67ed8dac2d043ef8c06ba996b5a39eb562c8bf27707b60c365f6a43c7ea7249eddad343df06e52b4e69c35c34bf2230fecfb77774a494aadbf8cac911c127ce0814f66ae3c68b8262d5a67858f3b30bed236ba1cf93f424bb303af6c3d74b4556a63f647d6cc42b048c08c074c26336850e1a30ebc69bf1473329d8407251d78293533ea6c71b5905a227ccc817da5830b7deaca569a7d3ee4c06ab55aaf1574b298e2329a04019389b18f38b075398616f37829aac495063ee0c0a551fb290a295ed92b49818f37b0af6fd3ff46d5524c374a44969b49e0c30d9c5e9daabce3defe8613f868035b9a554d592ce0fe93c9072693121b33da46c92236b05abfad0efd9b79c394b906c6dfa44ba19f5f835f10d5c0ba1a1d854c4a95071bd5e0230d8c4a175b29592a8567990f347067f1d2cbcca8bc335d821f67e054980cae6263a33f65640f79e0c30c6adda8e49ada33b25622429276818f32703ac5bca03468e7a0cb354706360b53116d2ef48786808f31f0deab5b8a8a92d8a8f12106569eaa3495d5bec9cef908039f745ee51e73d9986a7b451622fe01062ec7504947e5d7af7f45257c7c8151e94aa30c2eb4d2cb0bbcc8acb5aa069d2ac9d04717d878dea74be5577a2fffc105ce4cca374f6947dc02ef42542c99b49032068d16f8285410f2e35b32b3c0b8bb54b255dad0eafd0716580fa6f583afaaf0ac0a1f5760a3ee523e5aeb5f86d20aeb9c3d262d7d145e1518d56f265cf3f969b42015d895514f77c6565227f7a6c025cb19328e794e0adcc92cdb93f7ebdfbe18055ec62cb43adbd3ea756a64ed030a6cd768798c999b46059fc09dced0a15d6b6fe3894e60b3342d3dc81e69fac52670fbad7cf5856e12aeb226031f4ce05fe51dd51d75cef755a2123e96c077cad23fbf5529299e12d8fb31712dd7965b6712f8d6ff607ba7456b7e4e0b1f4860b5588c7e52dfafb23c8c838015211f47609436cdf154cd4323704265562929152fc5f49e113e8ac06b19f75baad4d27011111873153f67fb13eeab95c1c710384b237fa5060d0a81dba846fdaf879e78d288f0110456457d59679992e9fd0504c694d026b6da6a5da6fc8057fd173725e1f2016bf194ea4fa384c2470f58d5949b94bbfa57d07ff080cfa654aa96dd9d2ea51010022364012533f8d801b71a84f0cf72a4578cdfe04307dc2a5d3125cfd1aa62aa091f3960cc2f68145da73f69cc59c2070ef853d17f6b73936a537fdc809317b49d5ef7d1ccf1c306bc5cd37293b71f848f1af0de59682f95b2dcecae0f1a70f92fab7a534d9fa17fcc8055135e4a7d6b8e8c103e64c029cf24ae3e4df3ea2d3f62c097251f35422badf5a40f18705aef7372cb3ab51e9d8f17702eb45217734f5984d2870bd4a0c9470b58a14f9d7fd90561b2fd6001a3da55aaf4fa93e9a0a29d0f3e56c0c6549d2d37b8d6cba10f15f0613eb27564caad4d425378a4828f2a2febac69b350938c1b25e946c91a7380072a38e1dabe5d860b8f76512b760a46e6daf40efbd6da3ba6604cb4b68eda2c9aa94b119c60b3121e3fff2619a4d22ab709ee46a82c85fad20b4d70b1336ece9f1f5fcace48492b200446c815239a095647f3d55a9b98603d87ac71f7ee17ad92c18b4bf0eaf3eb9e8eaba5847232394bf0723c980ea2828ebba90e81110223040b2b28309964175e5482cd54c2c7559bc60f8f8889e00525b86c6e2af89acea85d4e82cbfe9ae1b943f4a9921a192f24c1b88e412835d3651b8556bb889948305248b39cfba1f1b2e84082fd959f9eecd5f578fd08deeefe7252156aef5d189309175e388291a236b34afab5b7fa9de1452318579953b9ae28573368cc3032bc600427bf532ecbc27b742b0d1c5e2c82959ea2d0d25f4a9a8c998818aae18522f8a8d4de63f6682927dd86cae14522589dbe6550d9f5925669113b86083626fd41ad5ef96432995c493140bc38045b71b4585242f7d7d6355e18821f971b2a07d7160f2f0ac18be73d4fc95b6b75ee1adee105213865a2ef2b7f3a086ed4b7d5a53d69abb582e073aea83f6798eb8f36107cd82677a9ba4ab67880e04cc88c31a9fa2475b97fe04f2a7dfb9c738aee427ee064da2b9d298fcb24634078d10756b4a8f4d1c14669caf8c0e87a95bd54e6edc68b09c28b3db03a9966061f111d75ad07be7db46b9ff4e4523779e054b36fdccd71a5592cf1c09ad4294bede82cca477760632ed1b3dfde68b137b784177660d4e2b62b0dcd51e6fc19e1451df8d28ff9c9e44a5fef1ce1051db8d57e19a49f8ee975690ebcf6e74d8d5aba8e3fdee0851c78f3689e2674ec0da92c36781107ce530c4b51552ef966c281cdd598837ed99ff3a6dfc08eca3244bde9a4855fdcc0be88c71fd91b940aa20f5eb48131f58ad992e6072fd8c0bd4e223c7e36a146a7a9f0620d7ceafc6dda2df927b5ab81d794622e6dd7a45e96155ea48151af63de7bfbc17bc3c20b34b0529530a9e6a5339b0589f0e20c8cd6fbd758ee5b9682ccc0768c52b474f5e1762a59841765e0ee752b5b4c8d396d90d2f8bb176460c45c65a5d93d268417636037879b4525a6e469a11878a53fb6bcf452950557c5f0220cfcbed69ae346bd573786e10518187f197cf3be94498aaf3a78f105ee47bad427a53ca5e45ee07c544d65e15a9770d7eee0451758d31d37c68b596ec7950bfce80adb17423554785be0df33673a598cff1b1308c1c28a9063a6f0420b8c99d639e54f9f73a8290bfceb522d4f691d7d1b8305bed3764de36767e6f415b814a487c8eca4eee5c80aecc6e4776ad9cf64295581735541ff594c6ad55ba8c09e692c213c6f53e02f6715661b5f83689d8895e185147899f44af9526ab66c5951e0c7d6ffde7269cd495894f0020abc6baae6de2cfb71a9102cac08994c9ec0bb4eadb3ab969f7bc8098c6c51ff6a738c2e1a6f022f5b6f36999eab4dae2130420eb6e1051318d94a8ef929ad65c2b2044e5caa51c192f0d617182130ce162f94c0e8f89637ea9dea14a349e06252636652a490c087d615b54bcd1138977b5a545c4468d93202a321d2cbc373dd842762fb861745603faa4d9f53fbc6b82522305aece4d62af923bb6583861613984c44ecb8e0c510385d8faf94a8326d2d0a81f1d40f519179d495d48b20f05ad39810a62e3a26028191f155fc0c5b7fc0bb6e29da47573ee0bc4b5bb5666a19b4df0356ad6a88c957ae535578c0b88f9061afa34a2ea376c0b6ab2e9545371d70aaf37b3ad15b4965a51c707a32afe73c5113d3f1c20b1cf0ca825499a965392c3f994c26ca861737e04e6fe6524acbb6552763c20b1bb02aa8b7a97f935eb77ee0450dd8dcf255b69361265585067cfe4d3ea672542a938a0de1c50c585359438a68ef0693bf90012f4d84fef4bb5a28616ac28b18f09bce82d4661a430ad1bc80012b947c8faab77643682f78f102465475d0c2dc548c9fb2f7c2059cd629d7cf526c91b60a5eb4801d1db9317579f6161d1114bc6001236e31c83d5d69a49f2b622978b1025e64743753ffa94b765ea8804bb6edaeea9f7aaea204905430de7e595ed4b9ae82a8e0b26765318abdf6eaeb145c5299517c6445995d05c414aca814de2977fac71fa98ab1050820a5e085ed0abb18f2e58f66866b216243d929008414dc596cb9e7ea2c897646c177923abe5252d7ff28818882152a7c456306a1d59842c1661ae55a5c6b7735060a368fb7e6ce51e5243f2762ea24209fe0f38a1e2ffda642695ccda0714511403cc19810a1472b4b2d354d27d8cda8d59679ce4965d4c81a490c11b38501c2097ed43d5b471945b9ab37c18bcb742555525559a62800d1043b9e326ec81edb8daa162099e04c459d2a660b52f6aa98e0b4e74c1b2dd495109e4bf031a86059a8f0d8ef424bb0513cc92873e8a8a2973500a904abb2ccaa72abeb8c490a84128c6899ee21a45e3f4b5e918508034026c16e1442ead08a9a31a5926065f4dacf298350520e1209eeb49a8ce5eafba33f209060531695215d07edfaaa312cac08b9220446c803426084b00c121a0ff2082e2bad1f640b0fa1f4e8083e7b89ccaa5552b12482348213fa7365fd6c797359de2530994c262ac604a90084116c65ed214df96a8f4286208be07c734ab5de426a2dcc45802882bb7b11d2e47f5e194d04afe1e29753e86add0e12020411bcebcca979bb560a6519591389f15f43c602b6304049494360d18031994c14e4106ca79896948a6dd679236b7e250031042773361d1a74d50a91a342b0a294b691aee37aec0e84109c26ad51fbf5ebd2ec47d662b81e4006c1af14223449d5af54bc0882531b5d319d652ffd2d108cddea092f91ed264340b075f2d3fcd4be8cc9f3074e68bdb718c5b2e9ea2233627c9001c40f8c8be67e4d7a79b44f0ad8682d103099cc701b365a8bec03a3ec65fbed9bf8c00715a2dd62b63a6b86b300640fdc96906d1e83207a60d553f28ba5727bff089207ee3554d0a51a324846d0cc0340f0c0be6e9ec552e239069d3bb0f13bf575caee6f516a07c693baf1cfe9939100a903f7c2e3becccb2a425703420776e3fbe9dfceafc784e6c0ffc8551dfde38e452139b0ab3cf5a8649fe94cba0711207160b5c5f2676151aa2f191cf8537aef3b4707f20646db0b2155ce4be739ee06c64743fd736e13aa62206de05e7a3e6f55ef5aa66603afe2a26d27f6715fbe062ee78ff134756b1d61f10ea881175349884ac94be83ac108c101481a183db9d93ef6978ea386117258e3ac072068e093a891de1553bf8b6905c819b80fdafd3ef556eea0998195bbad527d6ba96a9032b02de38a4e6f2532705b31af56fc2c5455670c8c909b621096bb63c9241031b01bb51453b55165942b4818580dea596816aa9a49050206568b8ae2ee32e5bc9805f902abd54ebaeb7a2929a55e60f7bb941c11bd3a9fb20bfce66ef7e966565031102e709f4c2b7910a962ae1c640bfce5905b2b4de8a76946d6cc0e881658bb519b9466a9eb5347d6f2072059606408115599842058604b694ff5f0ac1f950be40aac16d39f4b370b62052e5bd0bacff5df8bf6aac0a74a164d998ea3523449dcc60d2b0ef00f20f1111b3158530c2054e0b36ad093d1734af6e929f063fa9d2cadca39e282488111d54ac895494bddada3c0baccf146372529533b50e0923e152a35ebf71ccf1a22365a44c46dd098612130429c043126d08186c05e833c819359698d96377f537831007102ff9e7b5f677e7972d4921b5d43a42406428f00690297538c5a42b5e67b6b060d5dde8119331e3099d0c0820609495f3199280284096c964ae6a81d9ad26b13c8125857adc792adfe18fca3042eaa1c5c46a95b69340a24096c48993e2ea350baf30f82045ea4666e4b21744cb5408ec0b85c13aa31f55ca8c5086ccb1495102a2b39ca3345e0c4536875372e835d7e32594080108135332157df95f6514120436053ae509d4ce5faa77b640dcd001102b7e934beca32b3e63b08bc7a51414fa68a318e3e013ce521304320406053ecd8b5a1a57c19ba14407ec00ab9b7a6c6467da73701101f307af485095df1b45452901ef0ca4f542fc8246adc03e101abf579de0d15bb3e45236b93c96432994c265af00f203be0b6a28ea6ddbb6dbda20356a4c6574f9a2e8bc972c0a6129d42f5855697351cf031a6a0e2c99cde3ab30ae40605994d18d3a36f4294d6cc290a2507406cc005252f678fa26f39066bc0e907a9b4cc4ddac22b34e0b4dee90ef51164066c7ae6a7ce2343ad584064c06b955f57495dc185f40f24067cbb9dcc2c4477cb98bd8301e3aea2aaec8d1dd5f5772fe092e5949a7f2f86c698d204101730aea26b0769e3aa238402480b1879aa43294f9f84cc196405101630eadaa2d6ea6f94ac0ba20f4056c06b06df529af4a9da7007202a602bedcb4d51a6ecf459a960454b3d2dd4ea2e2fb50b54f06b975feb57969d95e3e214bcbcac356ad742e866dc852938d7af2dd3fb25a3ba4bc1c6bc51e9ac31349d3c49c1a6e74cc2d2e6172952a360740190c4a8f45146a3501c0c05822084410000a3e7dd0073120000000c148fc6431291603a2e3b1480044a3a305c3438242e1e120d06649138240a07c3a150300c454118035110c4b134c773a4034cc89c9d7724a9d6126750f1d5e05161227e40d761aa3afe55bde0076c7dd00c2ef6b6474b208ac30868bd8e316e3d48039449ba572a0ae9587ab02a20d2d49e9dac008ce700c868b5dbdfa9331938501fe5e7febfd56e6a1d3d5e0e0bc2e7ad84b83467558106181e2fffeb167a331ffb5e167bc302bccd7a846b83dac079f4c1a54b1ad0794728ec6a68edcdc4416a464e1bcc46814c4f5bd4ef85888a05c494e864c5bea83d14a43b0ef6133c9921ebee92fcff2cd910f1bf255228048e0c11743611c306e1c8872097892e6e40da854484d920441ec894956bcd46886e49de6a4a968f86889a60982111fc7800ce9572332228d474e74aa1d94a1e45da8b4be4fdf21c1bb29269808206a0ca022ca2240d8b08a129f427cbfe38f9b117b5ff78e4176cc2604d22e68ea88fc8b9c42801bb7432b55391ccb96681669f00ff258360c34af28f0a1dbd757d7f4c87b73dfe8e024980e70767e363aad0431c6fcd7b27f94dce853393f759a0ff1fc03fca40d834a6fce3763ffb46dbfca0b461dbeaef1874006f5708f5d0d61dbd3b5ce31ac14fbaba7eca92e856b6cfab86448cf976b7b02b0b0ec66a00b722ccc499ade612097b990df94d6dd9fa5e9b157d1d834be0ea99f277361985729fda5399b3cb55b00d0b3ce0d3a48e36033aff1adfb9d98cea413b59e610fbb94113aafeacb9e91378477466640d071ac740c7e655318069f3d3730079c20239669f2752600cb282b4ca28cfe323a4e16c01fb825289c070808604cc918e96809e48e587b2a0e6a61088147524b4e59cddd5c2f2f445369fcceba29cc0904dd2e1b76ae421993192784a712796e9c1a45406048b60f68a726d06985db813788637a6f7de3bc5975c7cb04a4593530812d9a3057a40a286255d603d22184113187fae13e5460e0406c0cc0a90f2914a643035e5455846ca2973332221e267295b05a7e0589cd58ed872ddfd6814cad389946472a8b60b74ff76b6f6abc5feba8522b3ecbef67d822da7ec2fdc114f3f2096cbefafbd21d40fde1190ed303f49828ac6c1246b93159d5598a8a42a4945b856e098890a39469ace4d912f0f07ba054c01295981a1988063130d31ab46d0b098e22adecab9faac07854475c6110035e06a3279d3280fe6070f379347e200917482a4de30ec89ca3143b1a4dec1d25978c71942fa2eb153093fc6e3da334c43a2a642459bae5ed227689d95d3a338e9a0177615ccf02f559bb00b91545277476d756d5a9a5de8002688f82d4d5055186bb9ecd85f944fed04cf56bd3316c24a279080c53183fc247e48ef20b655fbea5c7dd9d0bf1dd3a536249803b7b80bdc717a99b8c07d17af322b6a95d5074aca9b27303e3d5efffb3fd68ef390efbec93cf2460113d0de8d35f018d06c8466c7c2cd87daa22da1fba51f92d91b0f625dffcc4136a3a3cc3a53e4a3d4a71821c00b46f60d9819ad34bcdf31f64d2b73d60c9da7f0ae312eafea696c51f32c9f151dfd9e6ecbe93968044f21eb5fe236e8fdbdb95c1514f16bd463d2a48fd71536280f1faa3d7ba756c9ff037eb0686a072c4bc9c9b202a2c0b0d478cd287139fed5b04366990800feca20007c76d472782204754e6bbb81a4285fd03b28c85e3ab22863dda9ca3b7f6c2df76b77621ae260ed2b79dfa1db586ef6704827ac1e76ed8de52170b8a892a3c25c8634d55e6c8c94f200d74e841ae481f2a793e3cd4c97be6a87d1e716f59ca8e23e5a5d82d6a88766aff41ea8e8bfa71ca8b19b769966ed48c0d3891e0c38f473e442618199d15d66148bc84f7d7d870e07c5be3defa0d267b09837251e195999511b15e31d51c1c0ff5f46a134827c376cfa8743de6541ec2322b33c90685f5a78e5ef52727ac0bf318ef9a8dd1c3134754eb956425aa08d5a1883d367cf0abc51a46f060b59205a227c7b4b7d5606466312c606ab75d028ba880b7591c964928df70c053ae3c9c3624aa29da58b73eeaa9086d4c6c42b1e24f653b16d7be8595a86b5f0dd9fa14914ac79e2bebb17d7b95e756330726bb39dbfa307cb2df4e5cc5067386781447842635ac4e9cb52f4a470e898e4fe331aa097294f3d73845e1b4d087821843ea973477101c02e708e25394c4fe70c0beb8cb10f090b2bd00a44302404ec723cdef70f9bd9fe0f1749a226a165b23732b60738f6e6a30ce952e3b6aada87938e2c5fb0cd528d610eb5f689d57f8a7071df4b663edcd9659ce021839c852941a87770c26e3b985a6e45ffeae8291f8887e0e71327f2812953e2dc5996ea04799a50d27c15fcf320514438b1a3bca769572e12f0f67ec578e4730cab25152ca12423743ba03635f0088b4415cd99c727eeff5839dba65e64608bb30ad9253a313e2f05b051226b6683c76cf5381120aac6669dc8c71875038046041645471f723b7437d600713a54057b18df61e65fc94c7ac57b904fa0fbc23a0f0f1b020400fbe5c4b5f1d52a5acdc75b134811601508387a717f1a93d2520451d9b1a198a63fbb03bd71e7ec41fe331771cb0af682d5617b4248ef6821cd3cf2ad94bc534b138369606aadcd0017e05085026e72b52397ce0ba458d002bb007160740f2ea95e9695cac390aeb5492577e3664e585e336bbdefdb355e2e5a26c19d4151a1ee4f8fd89df5e3afc74b3bd16cc8772579ac936a36e7195fe1436b6b8f2c83868d63a807dd79c47af12747b7bf1de335e32c3603f9f4923da0d5151bc33a72b1c6f233a7f674decdc43f8f41bc677da92a8bbb45bf09b591c7bb9cbd3a1d8e70cfd7b6ccfeb5b839b084d70a8821a421300b22018d5ddfcace73f419cc75a86413192789e15d35ec56633c77921949dfd6fa70e50a4c6666a8fcf873d9ed730db203a0995dc6e19f39d29c609aaee548582c0f23e1d57df187a04855bd21d32d9f3218021874b0872f6154ef97a1c56aacd461e7a17904ffaf26bc4ab000a336a677a9450a99a93684c8976a619a324823e6e6a73b17940cb145e12d8123447f4af5bb7e7466c05a88a19e4a820458540f58cbb253444d845d28b56ab898967687593daed2dedf88fb6782a7b97ebf77d7eedd697a132b5db7a471aa035881d390285c8859a1343aba29f9263c737ed4e12853e1c8a837f72de7b7cab484aef863f91fb006552897961873407d019f3d72b42395b3ba75d78988751530e0704a52bf46f2840e821794ee76b0ce7713ec168399f4328da9012bd81d5a0f3c4c9c91256e082cae9019c31eb37407bff237784a6fecb06739cb11859ac402423c1a098fd0d3e6e9e20550e9ed9c6cff4300b194a985ea2994a51f8cd20a2df3bb37baa5f74d8137ecd6d7ed31053a9dcaee064a3e6f8473f3e031ea56a10e5e871cc3011f0f8a868d22ee5cda78a22c27ed3e907b8fd367a13039cf497342b609034314f2d6685ea1eec2f7f7a30b2fca732ebc81d644645759315fae7ebd789734ce83817b59b663fe4edf83b3b1c3e8c9e79c969415fa7f1765a8be4de0abe4d991ccd57bc8d921b20cc1a425966c9d24f077614dcc15f5d3b561553b53aa2e6beb2930523b199412cdb6f2390a10631dd59f8e16901cdd52bf60bffe939989d644e1d2969c35b07cb26cf0d7bba3e90a98e2e9428129a6544e440ac7abdc5d72217e093e3c00af30b17b0936ab75d8b7e44ea9aef1c884975d666fa58578919f1fcefa90482c379e02e2c50d955836c529c37e1474bf5f3c1c0ec335de2b89ff179c913b494a9f6bf2c8e5ff2b1f701bf1248ce8a54c613a52129c430203c6615a2ca2e5d25c176837c3a61af5f83474a30d660eaf1442e919afb6632e999f94a4c4b00bcfc943e51d88139efea41c8acff24a19c59c2da706d34cb01c7a65c6071206a48b75f3552b236a494481ae12d24b57f34aa1b0f81494250906b9d326758542bd288a03427cdb2491c525db0ba255b45d4a87e8366c33d833df7f98597a998c0cd0722692ca38705696cb68eb199c712959c0c1a8ab06f3b25f73ce40b888547ad31207a9eac8312212be1dc51b4863b8d2e0219559eed306328cd7d122197fe523c858d43fe68feae14cfe07b3f4a2fe1ae30a2677063268fa024e8eb175464d4ffdb5354bbcb34655a3e62e81a5e961c0360b408d3862be24c523dcdb147b480a19dbfb794eca1e163dae99034b9340a300baa1b0e9d63da24ee0a9ba697d0d96eea8fa8deebc36d65b96f4978a0f5660de2c0688ef9820815aabed9fd1900afcd129476bc57a4bd1fa5f4596741c684a4c2dd883531dfc738258d20ba3c914c3bfa9dd82b62fcb63d61f4881b8ccb841f17e99d7517aa59bd791a8f66afb09a0bcc0b1095fe90ecc11e9c936f7db30a0a01c1e20712c782c71b70fa6c280f2f8aa78307f7855ee35e26d14d27cf75ab4d88bc47a25ac9e5866fe5b83fd4841fc35adc21ddf207126dafd4ab88a565e44476c04648c9c6083536c2b9cfbde66086ed1714e3c3fab1b14219e87d35c6c9b4997568823132d0cd2a24cef7b1af27238c9a286b029504123744c96c440462aff5f76450c57294b99f7deaab9c47c1c1ba32dca49c334a0d09324427f5b33bcb9994ba41819baf2ca8e7f1d23b37688d5f43ad6dd8be6d057d987b5d3387bff4fbbaaef143b430d8ffd2f92705cfeaeb227769f558dba6c37b506c407368f789ed7615527147cf71881f5b0db02beece717063ec97d737716c17ffea2ce03a2d2f68702ef63fdf80bc7811386fa93c80adb21f2b9c68f1dd59c9f9a143cef0d896143051479ad75090d179dbe4edf65f69ade77b9bf2b624ee74d2ea4eef6026268c4024561d168101c8640387c366404be186471ce8dc16470e7fd0603c883455c653a9c8f1e62dc55c17986841493b9d2967f48946b5fc75ff837f218e65229e682034c2aa61cbf3e1288200aebc71e7cd621086014e44400344c6fb6787a3482f4deecedff42a06e646aac5d4be3574efba47b88f76693f830661f5c961125587148bed34c86c9b9b2a76caa9ff5fc3381576e38fbc2a104217868a7deaea962c21df76cd1f622981ea52909e61ad4a4fd9584f58ec1072d2ba9c2351540fef08fc4b3a4ed8a1413dc28d418c64fe6061656a9b7e7b2330a41811b9cf57001aa263563ed69802a3e9b985810b4e40e0884c071d9fe760b6127b221aa2563aad4bc91c76705824a18a984867d70ab6c5ac255860a4a44e6e7f051616b7aea00b988501f351a5a3a373f86a3a034846630a054a08c174b750e0b2fe68b575679f7b7126c1b86a1f41591da69a8bcd4d919d71fced94dbb188881ee124aa02c083faf098670d154178d9be684fae1be431c9cac1c0aea4974ead8b83dcd7d3113d78b4a7ea1338c99d2e0d5c21e8574722e37d9ecdc008da63e88ba7a419f0196147066a443e074631bb00fc956e0cf9ac099eb55742bb7fcbb2111b032ae359d0b0350c734f3cf43af19f73526472d089e5ade31a4ee11f31b52cd53621c35529317e57a6f8e60a8f0389a727d674eaf7c17479ed121afaf88b2f0d5fbb7686b089e784ab778fb29b0f2486c02e620a62893973c82f2ff3a575793a5cfe9c2e8f86c8aa2cb85277b2796139cd220e4947fd9b1078a67c64456bc1940a5e6e7621af23217d819dc6937ddc9bf82b605e98de6d5d8083434807478a89c0b02a0cfcc7fc98bd05410bc1ba5aa502f2d38da737a2a8f91f081d3b56f067cad6ec6856a9023dee1021d4d128c90ea7ffd59f27555c51282b876df6f8c610c369d95ab7b1020a5dab65251016d514a7d03dd48cfb0d0192c0a0f57f5ae3735eacdfbc1db2da1593b9d7f254e8c728d809af8e0aba9486874f968029b072182adaff3d88b54487941832779bc412010e9aba3449da013cc6c12f34bcd51391d58daf5701e1b3379ba5c1d7ab669a8a5acf3fe827388bf9c6f4db806f47825f83944f0155e6c062fe114f21e3b2b09877a78dde7e9b8f7bfb1246fc5c25acdf1a3196259d5603519555224155051c677d70e8a76edf375ed4226f9d6f7fd9d248ad7b386513ecd466c645f54dc3a67c0f72dcaee39d1ecc01bc62284fac471b2d6f7a66956648028c38e39a5d4f7aa88d1978a95e0b3fcdb98e558914950899346294b910a35569f6032aec75be3b2bdd24d136de5aa6e1c18c6f57874292c452226b50006d6779d21de5fa9ad1b105bceb2a26e2aba3936a3164d0687bba58faa659cd4ce7b1305b71a462390d3d6ffd134ed32a555fcff1a1177ede4259bea96aa16999937bd4a3fa56a585096e67c59f3c6ab1f01470f4a92c32131eba60871885cca2ba328f7d57cd5984a4b8d7f4f1f540151f30bf3778141c35cf863bc701511ecad7d548838a0f51399ccb94bfcb2f48f35fe49b94b0f572a56a5955b39a990ce956f8b8ef1f4f2472efc63e5826d58087d3e30f5694a8b2319213b202f2e4e842da0b61468f16ef10f105133f6beab918f7fe1de8c92f78723cc87d023666fbbc615ca3e29d4cd06fbdc3f67814ed4942e85701c038a326459ac7061307cbd6aa9575162a01267adf48a56af486ef879dfdb7133860ddf409204de853a83fc4c079145e22b680f7e753bd4ad5ebb5191b0b346e189fda126eccf4206bb17701e8db66b678a7ec29a6ce931b0a86426223fe2aa8a01310363a0a81bfe1384a4a89c6540e4540dd055af072e8cd51eb609ad92a0b4a979d84c7cc5aa86181016389d7c53849c8842130d80e6071bd542dcc4052a97e70875d177040a85ab82812c88e5468aaddf14f2a1fe9f020ac21ac2fc00cdc293d1e911095b981748ec87f40e479aa9b30836d4c0d81d2ce00c1d15a96fb4b8f96ca1ddcd4be4ab7b61f6c648ec8cd848efb88359f0316943fb5b844bfe9f6258fab4381739c4e1c2f33f88c860967384f8acfbbfc125a98bae8d8a92ea25089e9aa49872e9eb9f750cfc5e3ad6f5cb797d8560164a163493409b9c7f36f1c673798ddd83272a2a2c7a74dc9c63b1dc77408bde869d8e8bc2c19275cd468a3ae542e86cafc241602af8c46ece63fad06f210e4d20879924340886d67b3c4a491d4dd54c47c769dbb7bbc91745baae16d823a36c2db88e9044254e1ca8e29444c658c52116e0e52af3198fe77973cb481206ac00d8da29b54b62dcebdd9ac4676c15a009810354f5346a81811380f86fc8fb8207196f0831f20683210416cac3d74bbfa69165ab694420843e902c1842748e7ae8aa08e8f6972ad8f9f0f97a2b6e7bd63b1a9552d260dcd4a5039c50d6c35e326900ab75874854aabd87ac4f370d32f0700ff512912cab1c5d4c4461aa48675908321b144ab361fb044a74879fb079c8ba7f415d9bfde4926e3e83fb0226040154ae6e31d6c290a503e445174a98d699fdf3a055c0bd94aa8b12fe2c10afa4c7b5984831ef24329922c32589235fc7f694a4de00a494846243a28d7eef0215a3112b9c30f4301d66911a9246bb6e7819982ca1e06d9e80fe3d6e012df31577b3b29ae523f7eb275df8dfa983871858b2288e11cbda9eba6e9bd5dc9d4a0222295bfd508259fbd53b813a9eb35cc467a14fb3f56fb048e1f8be0c74b7517529e666fb98a4677b1bc39a8e4ff63e2e1d280d26caeebb7c600829facc51a02e56a4b3936da43df5b72fbce9b50f6ff8303b482c8cf09b651824b0faa0dd87c78063bfc28fb747c9dabd29905cdbcc0af38a312522729fac46310564b26ba11caa5579427b38571aed8df3e8f820429f1d9d8ccad1cf01eb05e15c4fe69e6cc00c485aa5fc213b257e22288fea1ac1762db2d6083a381a084be3c0976747eb47d61c5af366fe4527281daddc35bf415d25441ed2c4e3018ad6e2c816edb0ab0cf5fe6642e1c935328120b869f51a94241f456485a11c9ec210da7cb0bcf02d112ae72e617b72383dd0281de4230232e6716a8cae9447cd43045f81cd3ae0bbbd7b74dda9594fa3919c942e84db0b0343e6eea1815611ab22d24a8a2279001bf6f856b09d86a661430a9c700864052d657404cc2f54547d452ca152132c7e0059bc6052b889ad29180036d3e201c441b9c1b9df0987e6527aac45b5ca025a069c8d9427872d1993d5b644420ea9000d0066fd4792c04f5ab743242c0de9b1ed56b3ba7bf8aa2420c1084a033d7b1a8bafa620754e79697ce4aa56dc4fb29bb74aa317102b0716f59a6cc9a6d4e44c4f52d16a28070bcfad4c5f88479663df1a8fb2242590a1b04473e90aea8afc6d35f86ccac5527ae22d463a001cbdf19354c921e7d3509e4b4590de6e64389a3777765e87a0b04b52e975b133d46008dfe1448ccc9a6c0de0334b276616067c27d4c393968f1cf660e40c910d4450bf9687d6ddb81bac64d52074a90477e67eb4ff802c5a60008c150500e35f9f3e4c7cb8c690212009901a74d3edd526112e015d9062bee8dcecc1207f335953123cee0720a5c0cbe759edafd42378e19d1da9a3ef927a8791fbadcd38a0af7a227487c34bb8a25c15ffb44b58104046cb4c9212278246801292c34fc97c8db3fd82722ae766632925f53240db60a677dc9f77266b1f1b8a420e558624e5ce95ddd50ff0b9742d42740046302d7df5e85fc228438c68b7eb3dfebe2c7470cbd42e2b56e4b1143ef291b2c8b9555e3a1f45a7dc24ba800b55825b1d67a039ed782447cf3215f65e74e05adbee922826eafc4d75a93b98b37fa7df5a9db55351b5bcacd7b6b8c7c6a86bb8a02aa1e7ce99890b7fd8504925c4a228e1d3e6b0a1c3b14a3c22cb61a78761ac99c6d19ec5ba9c26ba273d35e698714a4a97b0a7ed301c6a452920358d66b48018e5baf595304cc0cff2468a24979521e1abee4d99b503bbb224c0589694eba7c3f05bee5dc53491fa0087af8c6ab272ec36ec0761fa7de69f8cba4cb5661f42e79a174d8559817ddf0c68628e15d1d166ed6be49c7943950478cdedc5c07894ee443f629307f7a40a8a49a042e7db875b5141086f0bb35032889ae9555112372620dcf8761bb7b6e65e3a887a832d5cd661e596f6b5b5645bb6c82ef65664e00238ab1cf4552d770da89c406b4932ce407802ce7486b12f34c98ce9025316b91d1ae3c13077e87cd91d3432ece0c3b4ce4957ea2a3d63e5e93f6c6a92d28e42c4a52810294819224cac9e2b0c21001a3ceb1497436745d2745a75ad3f58915a0fb3c0c2a01dd197786579dfcab7a2288d6cbf2a979018a50231443e77372c3d2e8a4c4344d1d38d80548376becccc4a91fcdea24181a334ae85ad84927adcdf446d8925a9e34b908cbaa93465d7f11bbcca2dcec6d6a9bcd4533f22c99e8022f8ef93a18fe9a89519ecf8459fc6f0733853d67c5a4013196094eb8c26ff93ce4c42ade8dedbd1193cdd8d287385c37e20a47fb07630dd1cc0dea43a4829e734ab60b7aa9d3509560282eae75b67665de72c2ad305641f8904b74ec400e23b351578c1931f299d5e86e6c0cca276d4c191427398746b0f7bd58786442d4987904ed8e0daa05e72a07e4723ed2371562dee352448524b23cc20bc1b61909227b90afb3ac490ae70b7fb2f82b48df6171f9fc2a2b96496e9192b96928b35ea9ce00043f5a29b48cb2197cec099b5494f6c9e0176cb52fa738f0c768d2760f7e86a6693e9e2544dd43a960ce7e63ddc05abf828ad91a4bf3fcb06e9d73fc2ec31f9f4a638613efb13a56250cc0bb66a1dd024a73fb2637138a3870c131710f663f610768007612f61483cbdff7fe2234ec8b4112d34dc5f61f503c305ca6b42aa7cee3641f991eb85c107935732ced84c01dba38885f6fd2bbe1e0d26ea04b16829100c02301796a8559c2eef8fa68739e93b82971ed35d1beb9fbf2824a78083632e36e6acf1242428e5bfa96969fda73db8180f68f6228fd3c128030ed7467a5955e8c0ebf2670fff89100c3d4146a480c4f37a087a2f7afd4c7947073780a3169cefe00642ecd5831782ccd4a6d13518d2495e46212e5881efd1195ec889b4d0ffc49800a5e2792226f18ab1eb69e140ecbfc008b4f59f3e164301b3d92780a20ca0c58f48468beb119629e9cd4685eda8dd39d4401067efd0c73cd7438a9e98d6b228b282d22d5f59487bb6d60a3d433eee597a0f3c3a0953b838ce6197967c1ae44c35a657fe9d7588a1cef2682fc0f7469b68ffb34635399f9292a8688727cd6016c48a94caa6280e58a3971713875cae6afa9a1ec637fbede9308e9c25731f63a9fbc4287c9a9ff324fa877428de1f828d0d14fe53657241b63cde3699c6c8c6df586ad1004fe607fc318732b3eaa7ad0a8851c2a41dcd96e6f1d82daa27d307d7c59a6a9d19bbaa7fd720cd6b280eb409bad0d0610e7cf3270ef0fde16117e3df396980d69c5f8e047ed5be617b52e368a0c6338f1a3982a936b348d9c47750b968a36a9c1f06c8d0e0337615677b27ac6ad56bdc57e555d58a4c2160278a95fc004c62f168fb9cf70a3f4edb2f7f9fb17901904f7994c398ccb922ba90527ade8c43af41845a7b77e34abeb909d95a32c2d14a6d7743ad91ced91bc1ccae073ad79a45c29c4f1a8fd544da6b75ea185269d4c05eaa0251a6e0cedba1ea0b46fc112b43a32118c30c2b6dba70c6a1024cf6badaad7483243ace3a5e9ef362cd8d678635a6d8ba65532dd6e44ecf650895801fe6d6a2997f81946330b2d5a5be6ceed0d38e9cd8a8dda7949bd08fc30a3e3ea88591a0715235743bc1ce157bf2181107905bc20cc8455597d5b301642cc187d92addd199c35daa78abaa9d7fa7ab2ca1fac1c1fc7dac502d2b3f4599cd7527b560dc69c41b11222ef2b3162ea993b5a3cde67092aaff0e2191dab55224b6afd20d6d5143c874b742d48ecb8c122ae2a746acd6f8d2e12c082d80b96eca4aee401f820a38e2e7f5cc7bbc81714ab4711f5b7fd702b26c25917f3c9c9dc0fa9e78f008d1356b5545a315d716601d8fb18a9043dae117c7f2370dd323c72140ae0e318bddac9bd1bf74ed17124401bbe259f3507c851769e32875aeb577e24afc45289289676c8875e6829fc04ea1f6d4ae9ce79b91362c9117b4e9a3a12b0021b0ee61b6d2dc41913d4204e2a6cee3b0479124a0eff42196e5ced3859118308c03f23ada615066246480f1ffe4252b6de82b6b6ff27aa01c0d0d0690a4b5959768b5aad340e19aa8b466ce2b4d9c7ca9094ae10608efeb2245e88929586ce2708ad9adcb49b8936e1ddb3ae1ccedf5c1c2a2613eb319e600ee024fd130519f4981b2061b301843cd034caef5407c3912938d1342e0108fa4150f5872344b61ed74a81a1a0bdbc79bf6176e015ca5b2daedadd68ae28ef31843bbdf13983398d404d9d6deeced15492f92d84ae389344d266ddf2baecc684aa8ad2ac6b4885d82e264209ad904c570c8745c9f6fcc91baaf499da9a99b0dc6da8da682de10f71fe82c957539cbe16800a04bd8786617b2d3344903399f59284a8a08b398a500710dc8523644dfe70820a4927fe2f52173fd7c32661e7bfec5c92202e90ce6494e6759c979c99cf2c266270c9557c1f0aba6674c74035281698007555372d9eade152cae282816b678729f2d6dcaf9a3f8292bf6c98bd734259aa660bce4db2b606ad3e31b1b8937499cd04915e5331fd0106e7cdb2615ce5c0384752fe52fe0e26ebf6d3e6f189293bba1827404462b8c4d212e8ab337409e797548e06c70d184578f03b98977bdefe8b29e9787fd44d811cd708ff10aa3567b235e745b0fa2a5ed8bc8ec8a9867e9efee4a1f8e7eafcffd05d8f1eddc6a4cb7cc9284d934404a0d3857faaaf01ee9eb44e5b41e79d807a9f65d2181bb8f024f0023590be08bf35585d0957d8bf007047a16729b5133fc405d21dcbe6930e19e5fdf6e1dc6839dd3893a298500e4ad18a83d6f43e74cea68ff1ead6998faf6a0722233ea02f2177d93b515f3bb127cdf389873130638c0ac073766e969a632a5ceddb710c18ed89066d8511609ba7bbb86324e429e28976b1a1f4f6026a69a3f1ac4f30db2929f54dda36752eb715dc643b5e32a278ffb1cd7642ba77c6ae217c4a2be8c6213263cf5068106fee7943824ba8fe311e89a8a3e273259b1cbf35502c07863b6f74b245cee7a84bf15b6e7bf65efa8b4f1f4d565578854cfd202319440e832152f717cf4c9fa99990aa369a2fc0c09005fbbfc6840e98744e1d4dfcbab6c36a413c11237213577c49bca466780b5c487d09c5eacb400d38cd2d93065b762fe89c9d9c538acae5adf048663dbea78cf7f810d0dc386314fe79c415b58d8c21f05b4553bfc49f911c27a9e9ade20608580b4f2ba69520531d4016d204cfe59a99c34d82d9393ebc61ef0e18ad56e3743a5f862b2970982a5f90875dba298d48ee959c2571d5dc0621fd00b5df403e6cb528219be7b8909e183941a24789547f82daeb48e33334c049ca23a9ceb2e249cd3dd1cc8e13e90d460218500db501727664014759c694ad7d98ffe2a7c92bf7aa9c0ce189bd2e42a4cf7190683f14ba46985ddccb042d67d045924a213670433d9e9840090e70be033b8ad3e566d3b9afa91335ee154254849c3677d93079089f5670b1c407e39d02e53a058191693bf1f27e77b940837474eaa785417d9285442ba01e728938d3a23b0943f84e4b2029c0275c320639632e410db24465c5dc5586e74ddc0684ad2326941257d01151472dbb6e0ce854e4f1b0c7728310a3565b87737e85a4b4e99cac96e0cafd0222581310ed3740a721a427456f49a921f7138fb4be07d75f2adc813a6a93181a3e5d5cabb29697158cad6d6a32645797d4fc9cd8dc2856ec53d27aea5c1210749b12fd5d7076cd7edb44b8cba459e1e17d6a29451544037cf62a990cb35bd6e70ebea1fb5c454751f66a82ceca78771a860ce281c22e5f1917f2910f1e00b02d1f110af41d14363031c38eb5f129381bd61e7cc52046ae2b0c96004cd6bdab8575d6bff447ee2e61262cba8a686348e54e16d62105786234167a25e9123c815320bf8aac363343db4620e1d399068349eb31b149af1439ac1a9cc3f0e6e8db102247372df351667e86fe735118c3cb20ff39dbc4fffc09505792be7d67459b37b9a064698b300f6595c8e8aaf9d8e7debf5956166923d2aaec8d1ab20ac207ce47b4924269278c7d174db8fa9a0217435782af78778994e8b411780da6ebd0c6836d699ae2d374801b3a40b0c515b71c3fbc6ad76f473be166761ce252478e46c566fde3ed15bb51bbec0db628f508b81bc54cf97878e3d661d29f4f7126b164ef1dc14ba546f2112f76e140f34c73cd0a6ee9ca3d1cd5712a7a7a4cfb4ee553611ff42b4b2b185523dff11b7a77773d83d5d89d0d461a518d6552312d406807d9d72821d7b6263d130c7058bbdeedcf8f7520416a13f03011417086b56368d6f7083758079c4bdc01ba82af6ac7e627501c3fbcbdc66d432986f5b4715cadddb50831672d87c7612d9486e9135dc8ed3ea8ad89b3ea7cf42769bbb5234bcedddc4241647827bd5041aa100ae7a0bbb0594cc058d7ea03cdce625832e3e06f5a41e65e5f585b7cc4e542cd9617ac0abf33e49af4a27407f0fca20964fe4a442285a8d5d72fef9638b6eca9d1cc6322c2300d38599010dcd1192648b759ff6fe77045056111c26c22de9ab88500716241d83ed0729c671230d461c7f2f0246ecded0bc7078daf91c9f5818f5dceabc30abb2a245c50071e058d7e521eaf0224a6b98054a0030cee412105291c1749e1a83a21cd690e07fdaa5a882aeb629a5d0eb7d7a7e9d03507b56c86d30972001003cf289f598441f8b05c3b1c6795ce0b02d7b260343265c18f9efcabf1abd8a8a3dd39c5760809e02eca3f2fec96434e3646261c4b87d9923f93198cf6e448943b86ce27c909a34d931d663cae3149064278da609d7f53da77eeb438d99616c7058fcc0e75c427aa8a47dc67374e32c06e623509f7bb859a82b3932784094b6401ee15e5b947de631e48413a3f7b31ff6ee29a50f7a60702e9e356eeb4e6e8314e344dcaf5b1cf887dba9f1b92831975e27a551df6daa69602269a33173502c12751e206e0710615820f90ab56699a38bcebd85938e0005d52f03c74de0622554e0d9e5464759c022270a061d541add244db3f08c75a9c8d32246fada43972aac80eb9b54a773c7aed40dfd15415ce98474f5dc3238e2f942ef66e0a614692773799ec154fe2be142fe3503a73fde4c284ad9ec2d58ccf2139f7648a2cced95e4aea15a62480681221523f32683937c116a2c8c4bbceaae8c48213a59bbe0b8109e935c2c5df7d5e5b7190193704c5e3452279657db772adde8e8e943409aa8ffb9d0468cc72005115890145f969a459f4392d3c657a0e5006e3fb4f5fef24e64b1ab785f21160b870c0e3df3ea4a25e97c6dd8958f09c79c8b6f26f13aa713ce3cc1b20c67e1371df8d90980fc427c094515f8366fe24b98fa669230c7e6218f42f875acaba0b8a3807475313fdf39b0c079fa5d4a1e0dc7f3692b703f468fdfedb9345f69d3a5fefb6e00f7711621b5a6186d24ff9240a286adc4a07e0026073bdf70e8fa051c988ddbe008685cad3c013d0ef00eac10389efbfa069a79970d563410840d20f013b1db10bc04e73f7b2e0024ca1451f1f4d6ddf524e99a73a6cb3aa81714da646b3d5d71c6e2509dd3be3037e13bc86f3c0b86e6c6a187d51753b478776598929b7bc6f503f482e97d20b94717deb30d6242f1acd669f400d814f8d46efc0e2217138e7651d96397e48941573bafdcd46bd49ebf3f22d37402e649df9046eec9e66d182cd58885faa155ab1fd10f813ee39ce76575482ccb2d84e75420d5e5b629935332e0d13fcaa0a3be4fac4636472549e709f88ca382af5e5c029f8537374501d17b1bc0fe3c3d698ccb4ba333fad7f012919528f594a8dbdd49239670dca94f938fa25298c78aa35a10cd67edc3ffece81a7c66b1d2c29cc7700e6d76c6b263fec352a9abf8d2ce960e675bbb36f21021f12ebb23c42c015be37c1a1b90d40757e304a01878464908ae7a3b20c9cfa1769ecf010611f525708a79a42de600296a85c46ba568a4e4affd09c30b5f9b8cbe0a8e17be98a92522943d38f54bdacc18563ecd71d77453fe7c08a273cde33a6c74432135538b9cf6c1913fcb1c67253508780e73421aeb5bd3a2acb55428a40016cbc20217032d8a87bde13192e09f9e113d5f3a3bb2f28706641e9c8434ed44c6d054dd52234b68d86c46df9c25deb313e4271607c40b35dfc82e2847e2fef50221a7fc51cc902d381f0976dbda114e5f9038115b3748daf6a69244653cf58c2920e97f748bb029a569ccca468c44f07ba674273b0d23588394a8b4bd7df059188b558f4effaf9490156d619a2b638054dc04f110d33aa945e820e505651336ce6da7579855b41c965da71af3ccaa85ec010618ca0851f0e9faeb5ed850590bc7357d60522c06d1b63bb45e605bd7acd2278ea4642d4b04703854342538f61a95902a6f7b39635b53504dec1f75efcb343b42f5edda7dfd254f70da0e64837509e5091d4a9bb00ca57a11b7d9fe0685feaaec9afd8fb39abc946a892c34cb2bba6619842173ce422e7d473164c57472929d20010d5fb39fad31424a27b009dedd5e7c106190aa9a4101396f03f6117d7828a61eb2073d176271cca5f1330602bf62dda29fe83c99ab9783a807fed170dc0b302ef2faa9c97b34c414d82fd8c9b70e86b9dfb4bfe5f10c0f38016a62840e34887e1acedb886f7706ab902fde752928df19819853cc9c2b66d7afd82131c35815a91ec09ac14682b101bb3da639d633cc905861d894304e6227c26cc36a83d904eb800d1e63387665989358916588b2c560c6f43fe3a60d166320766a1821a745faa4d605e67e5147e24eaebdd32923cb092b35a0b5950237d481706951c4a0ef88f6e8cb7566a06c5bb479b8dd311d87cd1e21f279382e5238f6fcc8be0e0ca4f068e794dbf8f6b13188ec9d131300aff00e814f7ae7b9b6ef3764606a898e58b37aee2c12b698833dbe1103e78abc29cbdada14200c559a6f5e9ebeb84774ad5d84a50f4b5ad39bc2ca1d561c3d2a7d9dec72cbbb5f15c1ff4cf6f00c3c92851b1173ce91552c170280e2bc2e241607d23801ae87151a3de5fae9ca94d5c60faaad2f67b2e5c7c0c544094b0004198d86a8405b44cc6404c800e56544573425201ce7e0c24c3a045d1a63f9dee880349bcd9353dc85df95ef71a8b54664263651a305a5a8670cb080e93b51c669c37ee5c4dd74f7ed95d728e3df615e6055d1fa631ef92e19e30dcaafe89422c7123386e99edb173708aba2dc1fc1491f3b9175bbeaf7c4a6a972951c3bb38002ddede0afe1eb35ec812518cc4aaf1b13ee8377607ce2ecadd14d2991a93a1634c47c44cf87f6122e860589c6529ee65397725405d010852acf52209bfb3b9fb0d16bcf51d95414cfb4bdbdbbb228af72e61ab4b0c96496a8446221afb809365035e19a577beb267bc60f6635678356e25cab4aec4cc03175925b691ecfc7b8bd198a31a5cdd9d699f591905b601f149935c538cf4659479eac8924d9f056a1025b90364202cda6977de216a77614f05f94755044d3107bb99cd89d5206f5c6a6237a73203832bd22e52dd33198807c69eacd39ab72cf96f7aa0493ecb9843d9b1038c0d0aba8441bee85992d06e1d261ce59e0fe47c98b0f127ee9dfb14a09560ce5be6ccb6700870ff2ef8886268d34982117aa4902764fa5af4686481e09896917bc8fdcd468bd13cf622bceb972096f2d51612d59db86033a957d5808e540b7217bb3dc448a5497427955eced417da5f7e435e4f71edd46707d3fd17466c8613e4952fd34eddd84c67ffe94351a2978a4b99e03bb97326f4a409a93968f3a49c49a9042d62db60a7b7cd86d42b2f08fea9c7073a0c4ffefcacd7a05cf3e0e7d6841ab9b7c32559b8262d39f3cb6de38a328d202b2468e6358a4594dc83d36ac3a2e819bb182af0db45c9f4f98cb6ddc34d1c10d723386c1193d2da6c5416963626ce324972f45d018d92697417b360b4664f5bf023e7004b10b3730eeb4d0013cc3333cc3333c1a7cc15910355a23dbacf94b824c69cbf27c62114ed22f28294999644aa2811f00f63d0221fea989087a0f7d0beb0b840b9ae036ad4c27b392ad6bed4cf0b2ddcf837671a5b39c9364430561d8480118609861a6b2430726e00b1f98e0a474b15567599ac86df9b8041fa2bda4963596e0c5b47b42db675914b72bc1d9b8aefc961bda750ba204ab4cbeb8999ab9ac3a0b728c61038c8f49b02f9d6a3057b5a5f43b50ccfe865a3a7c4882cd2865ce185d9bfae84f52ca8e1c2650f98804a7f32ba5494dcba132cb0724d857af3bbfe46a0f4abc3b7c3c8293f742ebd6a89a546a47f02b3db7d0f2efa589d7083ee711b57fe9c5284c6304ef39a7d4927e0d523ba3554cfe9789123e1671cba9f429f93945b03aa37ef1e57698e2f091085e945fbe193a88e0d6a3bf27fd82978bccc721d82cca9cb39ef057172243f027d4e5297d6f388a498e9464821c639c1832301100203e0ac1cb59aba82ad1f8a17442b05ad6d76db2468b12fec72038cdc9759645eb38f021084ecb71a36b39cbf84184816045a631d5e39de12f0b083ebbd34d6749caaf171da0b80e5044505272b20345a54b4a566e7cfc818deea6aa9def596bd449322363a58c9494120840111f7ee065fdfac25fa9d2f2acd4075e3d4be7f2ca8c19d2d6c1680b1f7c60b50acfddac4d4b953a43f48f3d706eeffe62f4ed6f5d4f927d9ab9f5a1075eac8f326a7174304dea3cf062b9205ac8133277a8375427e2030f9ca6cba4296378ba51f7f071074ee5bddeacb54c1b13d981ede89e1f8367fa8b4227c930c718c910f151075eceb577665aeead311c7cd0818debe29bda94318e6a7dcc81d1f2662c2d6b5c29422907c6543d47f52aa3c7288f039bfae9a956f3695da99364267e2365b9410e943252529409c2547cc081f70d42b5924aafe61c1c010b6ce8e1e30dbc1a6daa3b081d3dd9981f6ee005cd59dfab762dae37f86803abab3377f8cb546719292927371ce52e0d1f6c60cd4db4544f26b50f1a1f6b6085dd8a521d744e99bf9364a906c6646b73ffd6e2e8320d9c0c3a66d5f5e248efac9364e8030d8cc6d213ae329feae018609cec4081c1ca8d1b20b001860d1b60d800c3c631f671065e7639b8fee052af2ef32419173eccc0eba4b41c6588ced27d94815152f9b9485dbb39a597850f32f0bdc95b7aa9ccc57d19032f426a90671acc4fe629860c4c5cf021063ee6578ff52f66312d7a92aca464e59ce0230c8c8f287f4f52b9686d3ec0c06d67dda05fbdef5df3054ee820ba6c8554a2f6f9f002a33a77f505f7b6914935f8e802ab32731e59639b232217581df77d852e13eede6f817dad5798fefcf3575b0b6c2aa9ffa5cfcdf225a118288d5651e97c959405c747167859576d949ffda2fa8e055eabd2ae25b5597c194b57e093dd8bf5715db42d2d2bf0a3c245edcac58e2dd72a303278cc59fd07a9b5eb830afc86da2c4b7daab3384a480c1998cce0630a7cce626acf9a2fc88dad31c6982de2630df6b40cfa5679ea430a8c8d2c7d4164a67a29458117b46af9429f0651a6f401054674b81275ebd25d684fe0a4ab96528896a7edb23e9cc0aeebcf2964d7caac5627c9ee6c90418256d9f1d10476b3e5a4aa852ced9fe524d9199fc33e98c0ea696e9dd1346b77f36309bcd42cb56ba9e58da7f9a1045606194d061db54c3e92c0491b0f1763a70d3a5f1b6490a0a464a58c949493277c20812d6dabc9cdd5ba8cf711780d369e748e52c816e6871138d3527a9aab4bbae45f045efa90aed406ad5e54bd0a1f44e065289df4ade97d509d958f21b04167f9a6b4dc84c0bf8b6efed3621f41e03cf7fc7316f63d3aeb0308fc08ffacea55b8a6674a4ac4f0a10623c293667f4ff78213e55afabe73bed1dbb5c18317acd0f1e5bda855ba56d72e182d4ba559b554aed4a7c030b13278e882d78f2ab3d3576b569d5cf02da66bf174a4f0b60d176c6ada4c17f37af8676ec19f7aa9eb5f4c15172537810d3054f0e0610b5e4a57225c55ef3dd7b5603c879dfccdd7cc59a5057bb6b234e697446b179d052fb6b6a9091dcb05f14e16ac52aa34d8c997bb58b04a54c6dacc315f6be91d2cd8d4d9c5f8f26dcb77fe79c1e3158c944afeead49cc4a4e6ce15bc745f2175fc846affef5ac1bfa06cdc34a3b8cbe277ace0a5b0974fcacfad82ad9722b52c07a141c6a88235cd4179a82c2d5d2e53c1482d4b7b0e9a65765422a282d1e65a5e97a56941bf86780ade74c894e31fb59c3e341ea6606434a543c445f4058f527052cb3c75599674da8c23928235d7ab94f49843a9f3208ee27cf59216d456bfa2e0955e150fa2692858d37af73444d5a77241a060b47d6ccfc275b4cb297a7c827f97a383527a237a82133ff70ef275d34eef0427221accb348115d174e307aebe2f7418bdf426713fcc6740f2d6b46136c27ef249a21a3668fcec904efe2282dfc75e7d899c204e37ff2ce4c78cadee025d82c279db5f4ca5fec96846809debc63f6e9777df44c2578ad35e86a51778beb983c28c1bb2cbb98efc5b357f55ac36312ac94374a0bad5cf6b83234828724585fcda576f3c612614682d39973678bfe3b72b4182578408297efaa3eb775d62b3b28783c8253a55e5ea95eaf8c4194040f47b01f3c9a6bb59d3af8c9a311fc07132d473775ddcecee0c108be36aa6ca5a965d07270117cd0721475ba5e8fd0ef3cc143118cd2622e47f3cf72e89744b0a9a5cd9d6446993e4328292f402686c303116c0bd5e95afc0f0fc1caf6d3a6763d43f05a3a9d594309cfd6973b781482f10f9ab46c1b73bd6921049f2ee8e43a87102a473808368b71e346ed04c147a9be2e4fbacba27ab135780482f1349e955e51faa268e7e0010856941e9d055b595af5a6c22525adf2281e7fe0ebc595c2755a136efb81917bdb4a43ef6939675df0e803afe6e297ea9099d328f9c0f86f7ed69e5f556b760ffc79eec910aa5c9f6cd103af377d856d5a7b596bf2c07976a9a5be363c306a5d54959f05951fbc8341fdbdbd989b1d781bfd7daf4ae7a85099e05107ce056fd1558d6755fa5b82071dd88f9a2b33ca8cb1c56d0e7c76b832d71b3b8e149203dbe993bb283d8c03e7f28bdda965ad6b74d4113ce0c0ab3e7d9f65feb42ba4c7e30dbcd0f55a9e7a0d757043f070031b45896a4177ba868adac0e9129a7348d5d9c0bda471859f69f184f0ac8175d72b639650d1a76b35b05ad68c79b59cde5e0e7aa481cd3d29947e5739ae231a38754ad428fda029789c813fa9ae2f0bd9e28f7031039f1d44ba9c84bbe99c2f032b6fb45c705d9181915a1e5ab51cd3f49f63e06bcb7547674162e0d536cffd56b701868d1540788481137a74b297f91b559ec0c027cdb270ddd99566907f81d1c2be64909a469a8a54f0f002df510b9edee2698e51ef02db4abbf851ee4935aae2022f7ebb79f5b627cddb16f8ed16c7838c7dea9d24070f2db05ad6628eb6bad4be8b9a207864819784d249a5e624f23f080b8c962fc8ac2e352be19e2b70aaa7b3d279d5b3cbb402db1be548535fabc06956e9ff674afd7347054e67b1fbc5ac25ff251921784c8151e6499310ae4147cfc282c71aac165d559ac876598a3601c1430a7cd2fed95c7a0c5d5f14d817940c336f515d561e283022c27db5a8bb1c470686c911c2e309fcbbded3ecd9a9256f27f072d82b97baaed7c426b0ad7632b496b5a09a2526f051d9e9fb30a9e95c24068f25702b3fd99fd04f5b6a25b0f17c47c79665fc3dedd1c12309ac50a3b15473c77f59460d0f24702f086d695a4b9da9e5c1e071045e16d35d1c9de56971311b648461d0e0610436c735796fda59f87687563c8ac0e95c4a4bd5ba5bf6fbabe041044e348b2f6e6ebdba052d59f018021f55dca3523a768c997a0881cfcdb25321db94cc790481d5ffd15bc6184d355c7ee0010456a56b8f8e969e5de83cd4e085d4b9b77a1a840e2f0809e805ab5dd2195d4c1d8d62f3821111bfed9242280a09d805aff3764bbbaaf5e9a54d75c16739cbe052689683c717096c8061630460d81081e682737da73e499daac36f5cf02dcb18f79478cadc2e778704dc824f225b5099b1b705abbc656ab9fca705b525a016acf6bc9dd36b7d3135b401c61d2201b460b3fc9d931ca53ec7471db3e0364b0bca847469a23c59f0d2457dde5f7e2c58d9d9d3a6ba2435e8cf1286d0a4c50d519f4670f662cb185cb6ace4a63705218ce04dff2bd1ada432972e5c04bfe99fb42c8f4b19b4a88483104570fe2fc66c4a7ab69f9a501092083ecb12ef14720f41049feee55f8db1360bc2c50c8d430ec187d8ba8e56bac3e4b7e36fa036c820818d475121034788213811425d9f0b5942cbb9722b042fbecb6e15f33dd11f633b4208c1893e2984c756a55cd61142c820d893eff52a3f75f7ae6c081104675aa7e597fc3b46fd4e92a1ad9040705a52da4f576779aee56a47080104274bb71c757fda8716ff03af3bb6b9cc7c1ebb34674108f10377abed3579fc339989e7e8e5554c6ed15c481f1811524493d098b32c274d42f8c068e9a7cee49dba293c493d08d903fff9252f1d74c3bc4df6217a604dcbbbe3482dbf62ee5176a02421240f9cd0d24d37fb8a6731f38e073e9a7c61bba25968fa310c2177e0368792ab7e53069942315126a792b2a3056fa26325043bd0e092921d68bc1542ecc0b6a0e4770b1763bd56aa032f47a5ee2b42798c1242e8c0bdd2fcd0427bb4e4ef1c1891c9c5131d5246fd9224089103efd175e997e9751c5fc58155526eaf961e5cdafca21b84c081d32a342619577396d5f8065eb335cbf1059de3b86f087103bf26eeae253b95103da40dacf697397496b4eef64f8e33c6b811c2064e93ca1852e934640daccc392afd5a94eeb7cc122342d4c0099d5a3aa1ab39c2f427c95410868d3684a4813f2dec4ec54474baa404cd10820636691773d2abdb74502e2167e0734eedfcd2c95129fa1033b09ba54bae1dd26d5f1b5206c6a3d04aae6b0e5a8a4b0819380fcdded267fc6dc19463e06599ec4c6a6b634421440c6c7814712dc91b6d6f1858d932546f8e2564262a292667b44ada0942c0c07ee96e793af5d35b3229215fe04508a177637dd607215ee084693bd79dcf358b2d3d6382902eb0a9c5965f84942a4f996e788e2ec1182c2809e1026f5a7c59ba8c2efda87892ec7780b2621bb205e36acc92e897836008d1022f9bee119a258fab859f05f6b34ffc3f699921a4586077a5dc973eb82c6de715186f2d9fd49feab5163756e05b2aff903a8bf7d26609a902fbf173e9ff298ddefa102ab0e9648c2ba3d24f81535f2f376dd3d19ab306ffa55d8e7491141817f44ad5975b4d741605464743a8b5db57a32e2150e0a496cbe94c4cd4e51df2043e77b5a465943ae6eb98102730a63999d27cd15d6526a4097c4ee3319752f3cffb843081f5f4fc1d3a0769a35a4b60ecf34677faceefd10a51021f64dccd13dbd1db584812f80f91f9597452da5d4c08121861a32f3b9e8b9d7492072147604c488d5a5c2793172146e05c6a796cbd434beb31252525480f01901052045e837097a347b9db0a4f564a4a56fe06296b841081d749adcc4a68ab37e1870c8171df72d7bf39949b9eb712220476b54b2373d66aed525e0e4282c0af877695d935d528971020b0ee2d35fcb4f849b29323440dce3ba308bdd95fa88ee37798a0a464042cb051520206905ef0392ee63493ab438ae377a0989cd12a682d00e105a7596906f5ac2775f6bf7276c18b6c59cc5950591836c808e38c66013a2d01882ef872d7f1655976b946f52b7de30567ff86522839100e4072c126d150ee5a4cff18a327c94c3e478a1d0892a91832303901082ef828b524e37db6db1b794a0ebb05af1aa5bbee7c79752791310214d800c34609406cc1a8dd14575799dcf6ad059b844e42293b4c6000420bd6dc5bfe6f90ed2e894e92ada9a033360bb66588d4da62723987ea24598ebea1a30420b2e05d7649cdb3649ed5b920b160cbf48eab2d97a9e59d051058b019c24e4fe816c82bd8f2a4f3cbeddb966a82b8827df37c2e6f9449089d0904482b1829b4988489085fad5b8a00c20aeedc5f16d392091995d22a38cdb2bfc67454f3e9270944152220a97800082a6c809c020320a63020a5b871a3c120c5282e00220a5e4b51a1f44a17fff40f45054040c14b755b2384ccb2e5b13fc1eb95224c4afdf184490e4c2600d2890880704202209be0d5c52434b6a0fdb5189ae458263856fa0c93dfd12a3b561035b192c6a380022099a0000826d87dcd5aa49b99a697f91c280a47ca72862e618201104b54820fd342fa66b85c953a20946035987c695db56779e593e0c75c9641a792a6f17d494c0024120f008104a3aaa1640a9df4be500204c8234c2000e208078034829732eb4cad5c50a1c2250d29803082b373293fe650832c821f5b293fc8f4ed822a4f928128827d9983b8ac3537089044f02b7ffd5e5afdb7a93f496610221a022087e03c47a499d413a159e6d80b4ca08262724c07a88262a263e58018c2e40b9042b0c105b7cfd8b5265bf224d98d1b6d924ec73b1a20846000c820d855f6ba3b67700f2082605de8acedcdc9b47d4d079040f07216b7a595e75a72b9650710402800e40f20207e30a900481f1600c207141d2068153340c000903d305a9870f1544bc485aa0756a8973b6b175ff0953a397a59c903e3bd5a67df77579a2a1ef8deddfc32b38be37abb03a783b6a04a8b769b74d00eacaa972f7f740bb2745307d65f4e6adbafe5286a9e244b3140e8c0a6d4ec83cc81f7f596a3d9c99367cb81d339836dca975433e84d19207160b4e49e1edd0307de4fcbeae975c61e11be8151da827aff13ea37b56ee03b6ad5fd93b7a6a50669031b958caae4af78144a0ac206feb3482195eaada4c46465e555501a9a2b2b08b2064ef9689df3b96dd49ce99d0840d4c06ddaee96b43769e0b4bbada87f4b264fbda0dc5066a800040dec8b3afd48a9f5af960f809c815526fb4db75c372d3c666083d2d6a33ef6e748175f005206564f66ade5a0490751aa3b1780908111f98246f72cede4ed50691d07ad31b049282935a5eb2062e083ec6fa1b3ba3cca460f12065e76f1d4cbab9b2ec3e50639526e808081ad532eea8c3ab34cd14f92a1f12705205f60954c3d295b7cb14be7e04059debdc06a8daec1948b2fd3b8aca0e8203700d2057644e56b7acdebea430c03840b6c4be9f7239392e6eae52459198dc3d81658fddbd75a96544b6759c6f81c639001a205beb3e0c2b75dc65753b3c06fd6a2718374b1c028b5a994dad8720b99bf0227b57ecedc2c35a84f4f92fd590ebe05ab2056e0e39f1472835e55ad671578a953fdeee7a7ddaca1022b5dd699459b7fef8b9a022f7d543ddd1da164b83409206bf02eaf9d8c6d7b9a562d054eb8ea95e9e29e9673688649ee3003878d11b0c0064814585d2fdf7e4cd575211a804081114277697fa55c0e1f419ec089cba875694bbd2f99d0728038817db3df16f47bc9d4e22abfa2d22a387bbf10803481ddffb831af4cd2c8d1680c1026307aaa93b8e654ead474e6204be0ee2519844bf6dad2a527204ae04b9eaa119ec54092c06d8ac8ac5b274f9299a081b2ce3a0082046e54bd93962507bf72045668b8b8f175e97e8f1d046204f65468693a991a2d45e724798e4f0c52043eabd4514729358472bd1944605ff36b214c6b59d0ca73831c982043e044b6dcee59cb0a81d77266218450aa554c27087c66dd2e772a2d20f0a1a5fb3121b3ef6635881abc4ca745e5e90f3a85965eb02f5a26759e232ff82cdebbd0ea64bb60bd566b4396decffea20b5ef76a2d6452a5ddbdca05e32f2617cd3437b966df82929277fbc0055f1b2e46735f7f97ba91b298e80a3e6ec1ea9751a8539975d2ab99a4bd5f8a210393f4610b6ebc764d3486e693ca5f51691d6b830c12f4b3a0a4a416ac76dd310b7a574bc7d14932347a478e34565026faa085b2ecbfb5904ae724198a4919ff3a120b4460f77e2af898059b0571a15e4aad85cba5b1ec053796f78f237cc8824d2363d2d532dbe69c89052f44dfb32c5acb7cc042d34af88d5a6e6c2dfbb4ec5a07a18f57a4b492e5c31528ada43f5ac1c764a3a544bf74ea69c11d567066bae5983677a534b60afeb5987569bdbbd668aa82d12d73f6e8ee53a2b754f052ed6dbf286f4bc74605a7f3b7e93cd527b2c5167c9c82d1747f793d9b67edb19212cd15650a3eb3d4b9b418b3a0f5a9313e4ac1a76a8fab223794eb9a2b2b26293bf234575ab028f82005fb9af3b7b3ccee90e68afa1805a3a3d61c3db3adb9b2a21af810059f34cb55a1ee756edb829212955f29297957f98f50f0594aa1b47442cb5a108fbf8e5e56de64a9a9fc0a1a50f0b7e6fa4979dbd7979fe074a3dca4a97a4f70b6b9a6f9772ed7da094e9e797be72c7bd29288136c5add51e596be09467b0679f77dbc6e59293d4f777151080edcc7ee902eab96b494396fe05f6e4947a5ed94d6ae7103ff2d3c93cb5aebfe0edbc097788e9f474847d8c0caacaa43d4e84f32ca8cac8171a5dea30eada994fc8ca8814da1ab6fdb4aefeadc481a38b5a3a6b35c772c5d8ea0813317caa38b59ad4ee58f9c81177b73410ba9471c3103ab52bdac5ed0d64819185d2943a86d5973dae4f260840c9ceaf2b5d5a055be6db23a063e9e5497e5f84aa11b1303ab5edb8a1ca1944e42280c6cbfda4eaefa2b2eaad28181376d975d76965b9bcebec027a566c2858e5199fe47bcc0bd243747d92a44a5cc47bac0698d2a838a6614cd4a2e70a6ea848929d362d051b7c04ad15195ccb252b61f8446b4c067cb99eb64ceb959ca029fcd4597b5de78be5773308205bed5b9ced3265ba9d247aec0694e9be4deab46acc09799da1cd3659d370847aac098d4ba596cf96529b713c20815d82cb949780b3228fff60c235360f5dd6bfc2c8bd97b700d4eb5329944bf7d7f909e388c48817597773fa3b62866a384361205fe858c77324d6d26991128f0e79af35b78697bd08c3c819746cabb7bd9ddc25cca187102bf2fd5dd88f2e077bb19234de05e5ed7eba693e917cd0813b8d57a5f6a3c741693ba32b204be6559e7a08536d759fa72c068185102e7a6dab2a85cfe17549bcae88741f29124309ecb33b7679d4c99c63be5064ac10812f8729d3bbdcba59ae3a6c30c933252526ea8adc006186b23476093270f5acbe7ff19422346605433dbaa9623376bfd4811d8ce2eba983355b4410609d27814e81821022f5a34a993a83a043e6b1b73f5927ad762a9831121f0f1e3d8b8e0ea5acb2f41e0bf655a5332c776ccc7f1e98c1120b0ee5188a88a964495d60c236af01f75eecfcfdc9fb516915eb0fad495a98c72d44e080d115eb05a996795ad6ed50795d176c1bd963b95bee4ad88e882d3606ebb2e3b4b9fe59c0000412417ec676d41a933d79a85d44932e5262b6d6c0504211081ffd23a5a90c6a3c00722b860a4678c5b5ad6ee4ad722b760a3de1cfd75707d1de6493251498984882df8da6dc1b73eb83aa1b42609915a30263f74b9ec2e84c7d288d0825b2fd7b552b72c3dc64e92cd82d7ee597273bb0ea1b37ce53d25c759424416acd0598ea26b5f291b993146091e45850c4088c482f1e8b2958b3afd74765a1081052fc3e5cf9d2685105ebe82174adee95c2332aa96ba829372b51c63adecdd16b682512665fdbfc6ecea7e56b099ff9d35fc55bcb555b0bb2973525a965c4f7eaa60f466e936678a0e0d2ea9e04e7ad041a84a4ad2f820820afe3ebaa8750b5f4ffa5370a675c6d014d114bc34a569d5be5bd2fc2a05a356b8bde44a470a56fdcb63a23a9fb770146cee68ca3ceecb56261205afb5a6636a35fb1ccd50b02ed3293bf9c14ec81528b8f756ca0513e159ff27f2093eae6b144fa7338ae878827ba9d56e92418b4a7527f818659674efaab99d8813ac72e91e6f65b809b646bbe89a522b71595644139c96ee1d95d4b255869b648451525252b20202914cb019b4e39a965c30c1ed885ca56551b8fdc8d68e17229760958b6efa64eee8dba513818825389783dc7349cb5909991983482538f55a96b5d272bbd64619084428c148ff0ee5ae99776c04e35154c83078024082c824f898e528fda58f6a65266507da7b8a18474524c14b23f7e556f7a9228322c1291531edd6abe5ee28020956e64da349a6896c45cd2358d91a6346db7cf7a24e8e33525820e208466e4c2fe779f76d944943a411ac470d95a9a56c9941cba1408411dcc9e8e931baa435e58bd98a2c8277d329d47bd9a80ffd249989e7e81b7da8868822d8ceccf2c89825995e4433249208366feb4ba1e7df651a292a3b56de1322582d8469599fc8ce41a827c9cca02072085e68fe671da3de2ca3d639113104fbab74a6d7a75eb215d1405985e06f7532ed9e5284606fb32c28293be67d29640e182360810d48880c82552665bf14b105c14bf245a163521409041f5ffb67bd19771140b05a2c2ffdb965565ad4aaa4989c1288fc8197838e5ade9223836eaf66fc8e34427043c40fac8d16858c99b3c47d24d20756456aa9ddbda1398bc010e1036faea7eab5e8e9525b640f6c7ef9353766d9dfeee780881e785f1dd3bfeade60b27b9563649cd12cb03ba355c210c9039bdc6b5fd4f82d5a68272b5d028403113cf019736ba5a5b44dadd228ae41e40eac0829437f4c4ae8b4c21b2926c90ebc2c7db7ef55646af6769881e3062275e0464bb6db2ed49dc8f324d9e210a1032fb7efa930ad2aec95a3554c6c0e8c10cad54dca17d3537923109103e3a173fad00ea165d7e5382325310e7c77478d71f74fcbd38271b2d225d0d3d1384e2002074e3fa4f294da5779cb02069137b0ee1fa3268f1a34c44531b13144dcc0be6e5954e749ab887a120c9136f09da55f6be9f3780a9b0d6c94b72fbbdec870cdaf81f30cd36542a4349d5303aff531bbef979605ffa48197dffe45cba774489784065e7834cfeda3be94e8cfc0af867892723d3fabdb64cdc0794af5ddc97d936b4d186b9e2052065e16fdb9651fed7b51c9980819b82dd5265f54ca45d182e9296298639131705a481995f0cefa950c5225220656efe3e9966a1d94dcc238b624100903efa2dea5532f26b5241130f0a290aa65d331ca2c63e6e4e045b0fc0becde8c1cbc9b2caf835581c81738d952fdb9dc207aa5d40bbcbbdc4c6ff20557f5d20576b4eacb41b56ca225e3027fbe22858dfc34eaa2c816f82cb3a8abf43c5b8592d1021b45a7461da931559e59e0c5e4df8beb1c529f100b8cba1a3f2d2e2d720576bb5d16d4c6139a65cb0aaca7667539ba73d3738fa24246182255e0a4f9b7cc0f1e15d8d6a8c5248316d35b0a9da4a4bf03e5884c814fdafe258da55a3a3d8aca0e9301913578a5a369d469f48d5929703a68a98578d778ae1d05de4c6b317e8e21b424f42250e08374517b7d546b883c815b5b21f65aceac31a7292b39521633742b860c4c4e20e2047e5dde154247cb72e9a709bc5cd283feac56b5bc322630f649d53668b804be5c68d1e57e54abaa5102ebaf4ac9e0b2ecb29655912470a31eb4b4cfa5f7462582043e065ff58d2245b534123902afe59b256f71f42246e065ad37d536c7a839f422f082aaf08fbaaf3963274204ce83283fad9d615ad04486c08bf1d3bb74dadf7fb588107871fd35b78d5edf7d6d201204467ac62c2b0fcf104480c07b34cff4e8deba6447041135389932edcdb6d387bc437ac1c70fc2f5c8d287f082d741672d9aa7dc927a2442c82e7893aa5c14fe1e436774c1773673f19c21b45befcf0523947996859e0897366a84e082113ab6ec7bb7d5a2105ab9059f75ddc8af935a767b05e5c6ef4039b1059fb38ad232d7590bceeb57af87d2795d1665468a89f7abd082b16ff972bcd3a2b4201e84cc8231a574ce2854713b59703f2ea59716a6fd2eca19272416ac965dda6f6e397366677c8e378405b71a8390dd22ec4cf6afe03bbed6cd5a0ca693d67105af32a71731912942bd92b582776d6a84cb372e6a51a12784b082cfe972b99cc5356fe1626e158c48e57aea5969d1f347159cacdb2c5ccb7d2ab891d9b1655b7b312f054d0841052fea63942f7e927a3216720a46482dfef62684bee43921c414ac9626b4ac6932e94625c5d89582f7e449bbda92d2852691828dae3a77db8bd672892769474a8a0a164246c14b9ee926a47e8bf56dae183230b91051f05a145accb275ebedee6f2e65e530c18211120a5e36a1ed058fea73091b149c9e4cd7a853e7e859ec137c7796f00ebab476f4049b3beb106f9d99caed04ef25c75edae82783aa39c19e6a998bfe1ba366dd2638a9c24e666126846a4b13ac967332d192a995a6d7410a8e5731c943b6038d471984648211c2b3fa1cd5ee5b68414cf0636ba6d6a3468dc113720976a4b892daffb4d096156209fe657e47195b7d922cc719ad63c5ac12ace6a445f3a8934691a79364376ea09441093e68063d1c4226c1a95a8d6a5f377596ddbb25844882fd20e52bada7e3328a569ba099b13d844482510d3ee251bda81d5b35844082ff987529e5a6f165e4408fe06469174d57f906d33a8ee095703f17b0cbc05906f0cc4d60b91a647f6a81094460d9b162864a01029086ca00480056547e31c353547424a0032b283a1a2400670040003270463c0080951555420001f48ef6920204a077b4a7a8941c00000368400254be8ca577ac98988c0020000a38800e1c5b6083f060fb5a1c757ab34e92e9c0b168815be1e9f9375b1e9362160ef00516f88cb6f1f35f8e9ea4128ec791d017574843c762056e94cbbaf7d4b8669f27c9d2d0b1e0781c08c7e3c82faa80283b3c0507151065870e50dc0c1393047c31053ef8fec7ef189e243d33e30cc7ab98e800c54d7c791d2b6b3b72a0e04a0e941d3750be58034d10f08514106587cac9ca0d1393047c110544d971e364a54d4c12f0051476fc0a8ec761802f9ec0669ede5e6d5aa8fefb0b27f02f5b16bfd7558baeea5dd19162628c035f348117e48b791f954be1a6d5c19f1b8d822325471a375254f03f02bd95117cc104ee733a99f4e60ba55cbf04ee339b4c3a474c6707298153bb6974fc2c8bdde14a0227b4996dd64d6a842abf40022f7314fa9386fc929dffe2089c52a995dd98d01746e07452952ee67621b5ee22f01df7848b3a7ad2b1435f1021a94abe204b8e76bacec9fe6208acb7e898dab5caa0a215022b7cd5aa3719b390990a029f2ee966b97c73f63c0202f7a2fcf3cbede6bfae2fd4605bfb57b6bc318a5052bde08532a1b2b4ec4ae76be1052f5a4b6ad7ab233b47bbe03e74daeb8eaa3ba95d17bc0e7eba330ab5a656940b76b4e8a6652f8b3a2a71c1be98ca252935c9979fbe05db2e7e7ce9fc6cf34d5b70eaa35797c6fb975d550bced568cd204bf6ad56d202a95909affafab957b4ceda3c8b6416ec7f7e905906dd2cfa2291052bd7c55cc7a094f6af28166c49ed5c8f755a7aa13c49564693010bd65ec811dd42a98fa393bc826ff9b316cdb2eb8cc4157cf41757ffebf0d25989a415eceb1232e596e8bcaf3409125630da32e9a4346bedf1b555b0295b9b8f1ef92fb78e2a78b3cdd23f75cca95af09c5470dfb9d34bd9edb7793f24a860f4efe7ef2cb34ec10995652f0719cb955c99821765e999bd9d667459a5e07b547bbf8eda5222450a4626fd1b5cc385eee8a3e0056d49c8dfd244c1485b9deb4dc64c9fdf50f0492bcddd7a9e6571a5a0e075ea9750a7356a49d127782dd5ee51bbc6e8ad95238d154fa4ee75b3d00e529d60d347914a6f6798e96c0a249ce0bcdb34c64dbdad8d2228906c82f10e1542eb4adb8ca2144834c1994ce97a9fd3cb942e138c7e761937a3fee02e6282cfa384ee952b3b5bbbc881e4128cf616b5aad34d9d5c95c412ec8b7f7fb2b464ea5e84580946b9acb3fc3e1725f8a4dea6646649c449b031890e77417b889260a5cbb156be89aa760d31128c162e4b1f5f9992f51d2224f8ec3268377d2af5eadc23f8d55a4797453bd362143a826fedbf25bf3bc446f05e3287bddbcba459102223f87ab973163c467ba5eb28902c8297429d543accf45fa314c14a2dd929d78fa6fd454912c127eda1db3a6bd2fabd6302092238e9b229dd4278f61fad2e901c82ff1aa1e5acdb62ab54278921d8205447371dcf2ed42f042fb8f298daca734742085ef75bbdd4eda8e19d154806c1b6fc183c4bfa4f09db90088215ba93dea4dd2509042f9a36cad190f93184f7031240b0771e42e69c5d66162a2048fec0c6a0c27567cef6fb6b22f103afdaf5db673a53ef5bd720e903235b536d9a67befc9a840f8cafbd5077d16d9ea7044193ec815d91295f14e12dfa2e891e18994ca44e9d41454ba63cb05268f9c54f13f235fe78e075d9bad8e2f96e643c478aca32496290dc81fde4b2e538a645edc0b8d07773f30d5ad6fa5407c6440ba62eebd5aecf111d38fdff514d789773e0337b5489b071d9a4eac881d5b2f075176a435598481207b6348bd1d3d607e1c0bb641f42bfa7eb175a6fe0e576cf5a48b575ef326e604b698ba1a5ccf592c81c1a90b4818f99c6d427992b546a900d8cf6aacc50f92ed76b0ed7c027d5318b50ded156fe246a6035737671947e19ff83276989409206f6bd379dc67639e8f8224103634294beecf27850a2223903a3c26b84c6cc3a86694f92ada0a451018919d81bf3d74d327d2865e6202903e7be1b3c9e4ca3a32e123230ee5198a7b9cb423206b6ce5c68d6b9eb65374f0c6cccbb41b998a1a133e748c2c0676f9b6db6d1e5e289040cdcbbf0d61aa3f4cfe199e0b840f2054637e7eebb7669e93d3c122ff01b33ea156a5a27c94c50182008c118619000254917389945e92fbdb36b2c9d840bbc989ab5bfe620922df041988efca095da6cfb8c14304a4ace48515121d102ab51b53017a3970965936481117ab3a8c5f4312458603c543b97d42eb63a13c91518d7ddd9b43617345c5e870e33acc0badeeca4856d8eba9dca9f9172e3d44052057eb3d7cfbcfb75e8f246935081974747f52e0b19a23bc6039229b03742eddcb4697974bf063f2ed9feade78ff682d806122930a65bf014aa2d48f1a889ed80240afc66d09e95549964ea8a040a9c96a3f5b620c75df0903c814d420a59673bdea9c556489cc0c85aa134cc43e714cf49b2004913588f2d32aed4b2283db99030818f194c89aabd0c5ea7dcc0c4244b60fded6d55a615427698021225f0f7b974abbfa71432ea184912d86477af65e5aa69ff41290309bca83fad3a15a27e63b772043e46a5f5e8332132b433029bdabcdd93672c256a17901481132d0a29da2e75c99813031222f0a984729da3b75afe9621b0b12597a3e868aeff1f1221f0fa84b02d35adb49dac062441e0755d939ed424bb17900081d5275d99cbff252383440db6fb75ffc6d36ab47c5ae905a3ad95ddaad2eca27479c18b51ae69d3a268179c8eebfaca452d6d165a5d70db6d9fb4ea970b763d876652516a5298b8e065fe8e8a7790fe2b8fdc82935a33d58b35da82131199fd835acd0523b5e05de71c65ecef17b26e5a30deeb234c53ed7dd642c62cb8cd27f74ce3b8a0c5f41823b2e064cc49df471d548bf993241889856596c08233ad2e5467fde9362bad2c137425187905abb524854a5d7fc415dc86d4752eebacd19516b58213a5df65d9e5a35f23ace0b4a5cb276ea79fc57215ba185dd0bec2a5aae07b579454dacc5ef79b4652c1fbef772add4dd39e194105ab577688faacb55eb9f78a2f9f3f183905dfef39964bd35a363ba1f125282941e34f464cc1462db7dc39a6d6482d5263a414dc69f318d328ed5e72c31152f03aa6af10fe7214baa54f52c9c828180ffabebaf9b39c5c296fa2926223a26043bd750ee6ff493234fe44652414ece7285b699d5b32295a188c808215edf5afa596394bd12758f9a2502e86929983fd239ee0b58f76414bdf419a52473ac1dde773dd99e5e818db114eb0ebe1f945a5fd7f32cf91b27282914d30a2b4a60ddd11917d8f6882f5a842947816752651a69309c625d3ba5dd00462902185114cb0264bd7adb96af6a419b9049fa5ce5f72e59a48d91ab104a74be8d041ff4b2ef33e49962ac1f7ad50a2df958e9e2d4ab01ff7b5362f175bea5b979149706a946b0da15cd4bfae931dad829292931d3d22093e7892657f72b5fe1b8d4482f36e41a5acbf53a64d941c287db28c4082bdefb4e75ffb516552498e9147f0b2a0cbfec5b55e5941d991a371681a3b76bc8a0e64461a2a28860c4c3e30e20846aa70a13a4a6fa4119c549fdf3fb75c55a52c29413c8c30828d326b31e4bf2cd7d4ef16c109b9397fa7085e752cd5b6223aa9d677896063eedbfff451cb98308c20820f7d2b5d16c43c57662119460ec1e91799e5ceea5fe38d8886e05d4ea5f96d755e2de48885e05c7394a105d5e6b27b8884e0fd74e84e2f6bfdb2387a616410bc365f0dd32cc70c79436144107c26fff72cb310caf4371208b6b3a59694abd5a2df86531801041b42b7963f668df10577e40fbca7d3db29aadf45ab47fcc0aa8fbaf45ed44288129ed3073e4611f9a33dc33ba4f8c0665e2d4d5c9432c76d218eec8111a64cca3dfd42374bf5c0492dc9efdc74afd5c7f3c0ca60df39fd359acc4a786063084f9db5e4e9c56cde812d6d2b75b79cdb813f112137ead4a02dd73a70da3fcb945916d3e62374e0366be7eeeed7502ace8135d9d165e72c4af95267440e6c7cb9fdde5a6b8cc4218e10a8045186f250200e0643a1400c03001c56bb06017312080020281a8d8663129154d5a61f1400045140264444302a2e20160b47448140300c85028140201088612886a2180a03819247dd06822fbe2a97396a9c6bf8c1d11b10e16002ce853ecca01d6381a6e8876cad9a2eeffbef0ca2e99f1fc7251b01f460d17388c012a41a72aa4146f87e7aca97fedbdefaeb9bb718b467e1a77f7ca6583fffc1405ed1072c7704341bfaa92dbb53bcb51a882d4f7e9fd7dc37bf4851e3a10b15d75115e50ac94700215aec70c2b7b5a2724dfb1459e96999ca1599975743953d67b448f150f53fb533665307cd019cf50d728603eaab9e973e4c1ec7f436faf22a4f965ebdac69e8a29500beb7634b6a79d5d369b38bb9b6d463aee4660eac5a022ef04951cc643257e90b6ca3ce891ee396c0c52508d5bc366d1ac2ebe791aa5e8e5c1490a550e634a54275eec6005224a6e7be6ee02d35701990aca5c2279f44d57829f3c9f577313c98824aafa26b8e38d8cbe24823ba454f7d497129f0ea243b644280a9467263c17c1b23a80388e13dc7ed89ba335b603fb06c1e5ef025cfd1fb835b402681af00229ac36725137aafaba52725ed0f6a24f8fce129f20243d54884fa05eae592de32041ceae1870a204ec2eed8c6ee008383245a2690e2ea0bed4c43c8c811c3ac33ce437fab5bf19dc830b9ee8553ab4106a70fb5e6d4795ca52f8c8177d721a27559010995b1e864e0533c2df8f503df98232199bc7184d9f83c903c5d9d39180c0b38bcbad091a753a58f0964d2eb8736baf0552f3dfbfc209c285fbeb86736a0bd404b84dc04ffb3c90ff46ef51a1dc973d0be99e2842c536931f7936cab22dfec35acf19df7a1b2a1860680951bba87eb59b8d4f11d2e3dbc85c8e9a6121afb41daddd6997210ced801fe95b177f6e123531227b5b6f7de414f7a57ee089aa5f59af64053c1a85031d04b46c6e1f3a8f1713550b2e686cbabc563af23835820d68aaa2cee1e70574336d902d83446382a7e9abe213e0ae6f784764745cb7236eadac167520d7f14cdb99e79918a50f6454e82fd1c29e125c23589b6d298297327c180db9016bc4569843a9237f94526801c27ee280ab1387d724c48811e36dd56dac5d24f6385fb114687c065cc36168c89ce6008e2ea38318aa04774c411c0d72d6346c0e39151b67e02ffc3dc8c56a254eb6849fe8aadb62b3fb322090623f1bd141f56f001855f94ad424b5dc917c66049b174c993af70ba2e506176917d01a1e94ec0e7d086b8addf426650b8f504e7885d538183d40a5de29153b843b512711ecdc34e4b8aa080e9b89a1b5a8faac4e3b82d2566955e800a7547a1f74b6f63d6fa715c21c4a914710c3a56eed6468061b0884777785938396cf6427cdbcc9221a2ae652edb07faa54678b95959fa54ce55b065e420a656b171dd8bb4bf65ab4ce1fef7fca80fc75d749d9357e117eeac03ff58a741e98e0460f895b82edf1aa089fd57854f5dc4b055d9c155a07bee0f3962e654a55f023a834a6ca54ee47c2f828cb21d7727bd2a3cfba0f5f0d29509b8369b0ce3162cb02a1c6ba168d39346d5b6419b6dd11ebfa20a51b13121de56202ace6aa2a1696681222a1339494ee37f532982796ef26e91d23e0fd0c73c1a1a2040a2c3ecfa2dc2069fc9a778d999b2d4be69a8f640508197cd662de5c84e9811c6774c7c04157dcedde866cdea760dcf499a38eaf282c0ee918e51050c37c5761f58aaf8173eb090940c3571e840131613172e64da669ead18915cd0817763aa6a3e35d4c8733e44d8b6702252282ba056e0a2de6859dcf78b183c92d3e68dd3e2b01d87f9824fc869a780649f60bda5b5fa7bababa49a4f456763edf5d261bdaefd24b0c680d1abae3437ad3c0552f8afadd3e55b108904bbeb5f20a8503cce435c341b963173d10d9801d1c6f7658ef783030d8e5045af6474f1cd0de3ecbf402f79ffdf65d6257f8543f2c0f770d50169d7cfba011ca6c210ada2556e4cfdbc06611a25207a52264841184e5b1169813c1d990508406f0dacd69c978609d3f9c661f9506e16da1877a82078162321735b2666c9cbad5aa4c3df95ca36ca3ab5e6f2f54e8eecede2c8279f721cb6c9e734e0a528e85f28a6c73b67372fa5e165f0278e5cd0719d01c3eee0d72d324e21220529043068d82df0944c9ca71a86dfa33c05fcfc7c98a4606883fb94aaa0d7489430df56a35d04a9c5779beee50d73648f288a5a92190b5403a30a950c274f87634d7e44f23bf26db352d8dbaef085450b95482ca0623096b9c048990e8e27084a1310e9b6dcbfebe8bea95d1b4c7978db772cc2d5e3989e08f9bee61bbad126c48e8de11f068f1b4ddd3a0f8224e4294f073f387d24f65eaa305ad820a2021153979f2fcfbc5c2f60b0115e380e12443c9443549516dbea27f812edde32ce5336cada26e2f07e6014c25366179d33f4fa26f666c58539d3a1c39f8174aa84359ab00deb85031b0730591d96a28a35f73d775bbc85c5402f7952817bb6f33541f58d438777c6448bdb889a1e6e5c28c1459c4256d47f7ef9e5ffaa87a1bf2323375a5af6d3219d498f9fb13a1da1ea0ce5ea5d4b78cc9a34c89f98c1bcaf73d76ef6c4e672d06e60877ce7d0b888909e0ed258e3a24bc8a87e3e0f5fcd8cd685b371ddfaa59d63aff17a8b043ab35b380921ed2e05bc25b2bb45667d72e658a4138ab5e70c5018c4080ebe9cbe6e19a71bacb6ed7194f72fc5b04f28a39ed969b8335840f5085c0dc72895f461720c73e99e1a56b3f199ba58e1704d87602997853ad0b4d1722ea3f0f0be45790dd69eefd150a7ad8982e789566f9ce09144d5f0daff2bbe306eb5630a9ee9666c50bbdb0255bd820a2ed7b820099a5ce938510db629786dc0ed7a1428a5b01fbaf3ad2f4834fcd9d963c3de46e7ae10d57baee2a341a94c5ad926cee9a65a52daae14998136d8db8c2151c088035e27031091d96d7ff38143dba946041096f07b4f21a22c978f92c9eb4e4b84a7247d32eb5f5da0d10e94d1d28157e58d007a3b1a10992251a8020f82c9e6e0b480b805613d0c675bb8a621efa602e8952dfcf4315e8c53e917d1e8d73854c69e2725ce2ef660636ddec04f76c22da5b110423b6f3e00b7f8220dd8d135afa693d7a27bdd0a12c62b75d90b0576e78c048bd9d8829679a18faa227671bfd00d084a7b45a304000dd4260d96cbfe5702e825963eaa74deca740478d4ca7be7f6bb512fdc79811eafa3f4d2d71d9e3c4a4ab86634baeed275545d2eccf590053460b2e88580f423998acb2cfd1c45855b33a7038e18d3ea789a6bf1ed3af83dbbd4a757b89744c1f0419b1419e40a3a147a2e662c16658b44fe0cb4849c38342d3b14103cecf3b24b70b046ae8fa19c2af802a67fa2f34c5e81f3739ece14847018d2501b56b7ab9d4ade7ba251b7a0e9c4c267e346b8c8df93e99b0d7cde6ea61b4e630e9afeaf6ba396327251150dfaf98d7b3a1d7578c87bc4587f8d2bfca698f0a35cec03fd79abf9151e30bd8a7846294696c3839df449262690c1c7d0bf6a117b47b8320efa3b2aaa2483a37770aeb09d1e35f0e1ef70d26f428700528fabfd2ea0546307ea9adf5b28fb2489796f4486dcb4ae86ee7438f3f9c3fff683e6c660a56f90db97c799453677f9df9753ccd9ab1de69b9e76149b71b44eb8bc822dd634e6185b53f96b4a12c78253bd0247a45de39d74439e0c441329a6610eabc514dd9f4743e962c9b4781363e9bc7f13504cf600b1437c7edc31dceec2891cd286af49e31e65ed7e25e8bc5316a742fe16383aa71243c6111b144aa5ef0a963c2ecaa122623c3d921f513c570db2b47f9fb5679ca7cbc1e1abc3eb59d9eed6dd00a5bb3f05b0afa2c9409f08c5b8bc35629c5e2eec0693367034ad178f6001aa0b92d0002ac30c955ad45ca54da94f3d94a75024fa8b3fd0b8e0eaa458aacc06cdcacde70c90cc7bc2c779b17b61437237aa20f0620d0057846a9eb41a76f737f082515fc2aa5ba80c510ecefa4f3ebcaac32bf73a47b33d7352df0fc39cc477b8f2c9964d7267114aae1a68b2273d892f9c7f3d2487ea8b6d481e0c6894b8d1c70c858d6281f18330f2cc7b5d855986b9f75a5e6012c1f9f32b7ddce5b019a0420450606d71fcdfa6c6283d365919e3b46d1880cd9d4ccd5484e251933726c95e8c105aea2d2703a1ac4b0f42e8243c0b7e7eaedada5d95a6e6401efb895c5e6aa3238e4806ad3a4b95064795e670433c4c1a31feee4a8f8cdcfe8c59a1da97e07f353895fb8a723edced184f0d52a815839bda91476314f452cf8b3196fd5ced5012c7aa972d1a542b72b8a940a0c52db5871a7b87184fe0c9d143515041648a1355cd10d5a68becd2d0ae2594cad646fe6a8a248a98b71237e7678c2849c459f9e5236313a820f791e0b68fe7bbf2a5b2a16c9e54201fd416c9128d7c142337dcd69025597d306a436eead88e241cd405eb2ea8205b7b6db53b9d39e562db6cecbccf21fbaf30cc56f9c4e0fd1331d2a15df53766c16c9d44574e68abc16157b81a1460f4fac8fb0b2d51e294565feb05eec9e2e80f467976a6eea7c1296c9d4d00ee3daa7f1fca7470112fed2ab5ff4e53a6e906d9b5e006695f48d12b7f39be071f681f2d2cdfb84606982eeb9c4d95851865fc8451bc2178a21896c632b1c6bf634f9e837981a210ae68d0618456789a90827140683ed1ec812c44cc3fd1b7d5f22f706f7bf1f29c9a43f857f37aab694524954b6fe2802490083c4b7a5fe4375d9b11236fa7b6240a858f3e0a9e39441282bcd8d20ff050f13b1f5616c29da5eec87474c873a0c2d0dcc7690a829cc333c08cb8f58ad46a2d1add1800996cc0dc8a9baab023fbd7e61fe72c47865c8621ff011ab40429fac01cb7697c7a10fbc43401d9605c27c7e5ffa7ac0506b12368573708a069788e5861856ddf9f0ec2003309c1e978ffb0951bd3266372c02ee26a23dd7258331f6e2058eac96945391a30ea1f05914d0177b66be1ef54873b4320b42703fd8c1d568d68e6a985a5151e524dc40961e3ca851a308a170d3700cfc144497b998f00a1a0a8c76715c8ab2678b7dd43bb8dc03f02977bf1626b8628d309b3196232ad2560d12be5ce9fc38dbe7a39ff4ea7415ef441f88ac0a93f15b143cb7ad168dbe45d5d02d38f2e8e3297294a0094041c0c39cd7b1396d27522c12868949f7505ee5d983a62b7e49da6a8506a037b9f748b2bd8d816f68d8d397001a5977dcfbd5dd643f09635619430d7ee23346c82d8292a91518a6fda9e8e6b0793272e47481606834df3459dc36c7782688b9b07594c93f1ca8edd1549ec2b4fb2e05282550b25d1c31f72e6fb9188a04831a1f6d163ba94e4a623457185539792a08a1852e103139308b0ab1bc1ea98abb232e9add912dba517853393f14580764559a3df53b4846392f5ee0c045d65c8563b7ff52729865e810346a01d29008b85befab2d37e9b687407b2a8e9ffe217851227109bfb9a295d1e80970633cab115f8a56839c9eab5915b42d5bafa60c26d1b26a23be0b568d6b61e0b74a7f2db8c009dfd1c8c89f3073bf54bdd3548de220eb987b349d79a48e4f25d2bc339430cd4337a6347ffcfc14db3b36658db33554c53acb1a5ce504d28f4e744881d3b09221f9ce95d429a2c41e6ade05ed148d220b4b7a6f9c90149983d03a8d4e5f6367ec885645611216c2b056858afccccb32d1cc548b334a07586a4d2d4bb19f618b85359906ee37223e266ba3719ac9db73cb6b43157d83fa1cc232583ddd099a4f58284368683bccbad16290d9739b409f8b1c4e6673d81d7ac982890be66bef502c33c2a518b69b5962fc9346cc5c310a91d89318556f589032dc4577627a99b657119ce861e6a3577ee0ef138f8afd8ea2a596b6d75b9d35177fe311500b1865b1381dc6719ddaaa880cd22d143319164f5462623511712adb678e1b7aca19add91b4c53502ff3a51d2e48f92c2d3e8a07c0361c11215015fe597e54358515d0412b44e771ec6f933805a9e68ccd7e30eca53edecfa1a3c258cdabddc5c71a415c6e322285ba110051cd151bd49fac422f31ea120922696b5c4d29470069336ea81e4a0e47a19f1232169b73aa6ec25dec51f01985f1dbaf05af8bbacbb36a969e18f3e893fd849b119aa32e9017293ff7138d63f69ff8a8016024aeab1fbb41d8798ecb7762825ee08a1f3294de953d938206f17538cc0cc5f795b1ae7e2bdd1f85edd3e2115eb1c1fa784412f8c05147878333a5e664ae4badc9cc368406fccee9dab103b29d15139a50553fd1cb5a258fd197cafc86b7ee9caf79010b7842beab995b3938970927710412876569dbfb8edca0713ac18f492c6637acbbe3b1df72cdd9b70dc28e1bd8d6a3fc3db249212c4a9966be5cff90d6f3fb3eed9ec25267c5e32a0dcc3b722a50d272f7ba0ad31e41991dab02e0704de819b9fe96ce2172fe706dbeb781229ae3693d45e51774575166b0ff1463cbbb69c982656d84954178bfe9212041d5cd869c927e42ba336eaab331df1ec75d0e3703ab6d351d69542d8f7c101ea7a088c171fbd680444337b6a807bffd82629fab0001a6df3ba5f7443df6a30374d68f7e2a248298522f89ad6f627474a041a13f858119fd526eeaf358031f9925d1a095e83c1775b7e961108baaccf09463213132e64aa4b7495ce6b75278e72971dbb8790e06ace907ed15782409bd852874bb33901d9e6e9f2db801abe431244375e55f0dbdfd8c5abf9e878c2b8f9304a435302f7857c51420164f420010ad6c6608b52358869d5d41dcb167fd343805e1379f5734128c943bca2ac4a8992900d809ff42c663b4ae95f68dc0fd4f7d9600d082be668597253968dd2943fa163612881e0dcea30c7610273f3c14f0431ac2eaf185bcc7815db25f03c64a894099e2495e7e6cb1e9acf0ba44f5c7c6ca3f2c4632a58911c760a6403afadd5c8ec40982f54010940e1ee70be8a6fb68af7d8d37c61b2e18bcca5b99de944077780fdbe330d82b9bbfbe0e72bfbb267ecbc9ad03f9de34639dc4ad60eee09c17182a1ba31b2a3c3a5f1c390cafdab471c01deca30838a457495366f924e05c01ddc9fa26882879e37e6a46e87e18ca506632ec18e6c12ce6b44f8b7a94b51ed2cace0c11854589cca0159e8c64b1da2cfa03b06585828f8eeccaf5cb7693553ac0738d6cfde3ac3e300571d17373fb8f1bd35033f040f3cb59e99f00d4afcfeec4fac63c92145a21aa8daf44ae7cc9f17269524acc94e396bef2573f3823f8c1a6f0aaa7372e136d0c36235b50b279b5b23a538648542ceaca3203e34426f343766a1068cb93add97657e51348fcd78802ecf94afbf4ea5c951d82a8d735e35ed73e7aaa94a084041582833e5e3b6360d9db031b0ac4d7616e449699bb52d6be46d0bac3073c3f789fb91cd327a2834bcb9c153952a6774afcbbb7ea964a0e03f5e9a5ee4672570f432c2463f1ef220fca58ce7a66208e24cee2939398e2421cfdf0e5648a5d6a8994e628ba8b3fce26423824828dcfcd28f1ce1c5b8f2512d955d9a5ec815ef46776836159b33d652cb30fbcd3092c904d0654227a5c997273454a770dea69832233b2313f39946026acdae8cb9e25ed685219c6683cfa2c1c765ae54984ab832bc5185e861fbdcb3e97aa0566fc44fde60ca1c61622ee361644796706a61c88492a7cdac8a71804963f5724d41e5f30f444aad092eaf95566cb471d5d9504ff88961684573ae863137ac5e12bceb2ccfb7d1bf0552c2188fcd1ef02ad749ce5617e48d270660921e4f15a54209b3958d11260129c25d31d5420a3df3e4227d5261fd553ab8f36c82e16aec4e4148ce47c6bb3531533f9e5d9d06b31a408ced402efcf95cd08ab8553130bd59085ad192f381c9d0a14cb90e2a16bcce95ab5437d488fdd84d8533997cbbc38d7ac7c86271685c2e0aaca4945c7055800223bc6b047d61ea0aa3d02d367d552de22028a01f058d2458fc64c843c5a747111c89725cee6a97d18d72a15924d92e90ea381056df82d4341359ceed5b10701a23e293aa460a528f11dd2a37b671994a9fbe1552466d18ccdeeccacb129fed2dd85a26a3ec0117744a68cce91b251c453f5a87115795d74878dfcbc0b3a858f170c72215bb25b82122b03491616f225171ec283e22b95820bc10b0a180a14c2c4da008072f598fea80c3ff174e7f3ee51410119c91ca464184458c499e1382a9e95ba826092147d95ce7e9d27a0d3267368e43bfdbe300db2ec50c27d4171ad393370065ed3d372740e6f383f0b1c94719f538e337746b30d179f1da65583c4b1d133552ae4985731f0ef05fd2e280a70f9714d8055805b61a43d56b29feba04f3997ee2338b0fde98340945c4e5d0c43d7dba301a43dd93226a8fd55e577216efbbdb174c2ebd968ae70453506920fa558c3cd492c0ff8860cf8e7a7b8e67bb078368b11142561a47186d7dea84fe249b21d67d27c61d5c5024c4e2b515f6585b3d33642be52ff2c509bb02c4dd713000d98d2062938813b8309b4e2f135ef6dcad8705eecccd14ba19a983e0e122d971bbf536e86b3d79756e0b82c7dbc7e72f84130d773983a7ebbc91e12022bc1a1c24e248dead54d40ee05662a5821a28975aa8fc80b518eae74b0bae62bdc9c4955279116adb769d680be30a85dd45c6f128c452397827240af1fe6922eb8106db8b9e62df083d75cdeddb3c1ec88a51b60b270959448b39353af3972ba094bb7ae3c91a22a4698ca86cc27e4141f955a0f5647e4c02a12440222af34803bb11dd7028b4af78ec03fc6488090c21877a8f39b395863983c47c0edb0423f7aba508f981e95ecda6715f3995a6fd09751ada4eccc73914201bd15468a25f8700183a2fc23a5e60891af7f578c61dcb03442cafe416b880c77bb4ae2f934705a78923aa08f388d8293d3e3d56066457cd166cd82ef4713808e28d63c0499e515954d6e359344a53898db882e7c76252a906e2231c27d5136d8c7e409171b5fc963a44c90434f2a90a8a928fcb8c8f2ccc99906dc7e1f81bedba321201c53b340adb81732e559b39686734b8f99f94a82bc2c9a4aadf7cd5121204359b4b58de2aa87068cc7724e53b7a2680ebe16b99aa00d09e4903c1c45af0f8bb149a85914709d07defb2f2ceafab015d9a2b61282d70447da4930ef3a88d92cc9b546a296f35fc04d6f416ae46812ced1e5ba8baabb3e347a791cfa5211bf4134133eae70a3583b200e31bca875ab978c4bf724671432120ac8b233b07b2440b7b2fc74cd922e81982a5584713978827064cce2e26626396a6207218480e6eefc68d30f721b8f900685bab9f04405808a1df22e1c03b04d11e40ec4707718516076029f1d774b2e84c435bd219538de68ef8882821123f7aa5277c18c0783cb2be1c1c1351b23cd707123ad0d23e24f38b0b2d76bc9d1da912d30b1f1f324a33cbd38e06e35d0a16310f83aa7293525e0814806b77b1872a311bafb14b818fff7e9de735e3465268912f832932d011cfdf3b8d9739cf27332326294b589ec3d549147bc876fd7f6b94bd9bc42eb43cbbd194e97b9b39ac0ff884ecbd18c1d0d378e8684db27f661906043df4a40daf8ab3fddcdaa56aa53cddc2649a76e44df967d2699d93fe1a124e9727600b3c1c6d00f51d2ebb39f96e14f5beb36204bfd7e406a099990f1e6b518a589d8c77d325a290fd415ee2c216d4de92d16f0f2e7eeda3baa24f85acf5bb4396ca190c701e3ec719009bd911ac14774c6ccc1a1e0ce84e7ce0b4da5c1244316cd1f4f0005fb6566bec6f91fbd460b707e4f6d40f108950b86d1bdbf5ab8ada17b85c16aaf4181324606395fee45b70ec5c1a633115ba620e4f975c205d784a1f16650dcf5bfbba40b642121710184315f048218b5c4a6402357be2af093e38464002205f812d21d8ebcde7b13df465d573d1d4d272d23dff5294b9fb9adef107fb2fc768d80454c8b69bc60b264b7959356eee038570e69c1ec9c72e171014dfd90c0733cfd5842cbe7cc46c3e00ae0c9226b03465dc63e69aa57af0f4634cd8839dcfcd81950515273e0ba206d6e1cd80717a0d39bacfbc7abc25aa1b70d4fe6d3bb508cc0fa133e93a2c6bf0d072f3f37b16ab158b7aa8f5968d20a6dad5ac7947e0aac0f327852f453abbdc2903fd403085b8c9e353e9854c99ed3fc61267559b885db1a0941c52faf4ebd0a679e083fb649254b7c555a4c78f98d7b05254baf1d0a6656c9eba38028bebbd4d50adac2c37731d2cc40751d30988f386dba7a088aa62fec7d911e14ccf7c3e95aa5642ab24c0de2c80d0b9fc846935396a752d78f406ead32bf23db88c1697fe3f5ef84c770beb7aea7d2fa51079500ea23c967195f0d4925fba82e04a01eda1e38618ec289e41e69b2a447ad9d12af6bc4c5ee7c5069a933f3b09132a45669f712df525d8ca08839e5940cb534ee26897d9da71304a6b6701266f5bb8ce2e6e5cfdbfc403d8c65a56e37755b54c9f916f0beefee389606aa3b6ff44e0ef90e77d15f1dfcf9affcd0c9917df92e71e56e47fad50b704a12a91db0f3cc21fbb4a2ae6429714c0aa16812e27f9e8a0446239ea442c12a5ea3ea60804e94ee2fd74172310340b2e87921f76ebcd978e6aa29ef3bd51dc235944b9ea519518981e62e3814d221058460f78551300671c9a2be2d163840604077eed122b832a8b8886d98454f40cd6e8f93374eb9a935d686e11163403021514f6962cf379bd082568b272551bdd1174c91b3090c513d8f14d2deba2d38750f4003b5d294abdb9405b0061ebf497c9b603bc17287a02c07027df8406c0cc2ed457ec1f65a1d02b0bf4d3ae1f34482680b76839f7dca853ed5be73d4388d21dc9d5b09b94b307dc5098842000c5f12f3119c2d1c1c35275f4fee7ee1d57e8bbb04955080648b16009b5700b84c58fc02f3a2851788050bdd0bafe01fc560cc5f5b84c7d365f803908c424e731192e96b7b9cb52702a64c1356ec48d5787a087fabfd2124614103e125c62e1d48641d2e6ea6ffc255875a4a986f4a176fdff044a429fb19b3889e80a5c8898c413725f54adeaf23c5606b2c4e47612905a3a588a76b62def0a8e38d7e604d81f8c635190a035a20a7c6ca729fab69bd15b77dd21afbade460d1dbbfbf8d6d476e9dbdd7bffbd3b475c1dda9a38746713aaf403a4960464365c3e9f698872be5a15f75b0ae94736518680fda1e701a8b2bf83d57568b722da2395e0d662da495ad989446fd2bc833ebbbd3624ed746388579a372d0a1c5ea411c1d180abcde3ad5faba90e4d4397b6275f46101945db198cc9664bd1e30d15844225fd2c26bec1f9a4b8443c9fdf666d976952993408cdbd86902d435a72ee4d5e1ab733fde92c8b939e1f4dba523325fced083669398365f1c5c4847f8902855222d06e0132645dc64ff7c30825f6feb36eebeac50fc2bafe0018ac193ab5aeb9cc21665349b99e6fff18826fb766be9367a8aac7913df63d12bf684ad82a422f8198409d8be6342ad9d8a045dc8913a3b5d5ace19e1fc01cfb4e4b7980c0d76adff3729259e7d2718a26ba999e0bacc4d71d523dc9ebea6694f87c276087a9a037dec28cf85c826b5ab379dbaf09ced4de525bad8fbc15d4733ce9485e49d1fa98ffeeffd9c93fa5d709e392dfd14c247cd2a27863b31e0f50ccf9ea43dce490b6e68fd9362f65c35d8e71e6cd065da13996bd0ade38761943834496e7a63f64212d0ef4d7eb87f5efcda71a2047ad77771a6e66200ad41872215184fdbf91a9e1817dc23dfb9ad38c70f685c94cdae8f2840604cf42f4743746feaeab6d671155385259baa2f08a28d621b6cc9bcecddfe3d659d0fc6bcd85ae32872d6e7923e33e48318cfc6de888fed6825f3eb05121d16f26c94d25992733aa7f38d6d6eab8ef739860a6b6e654eaf89f40066b8a2e6ac27583e924f8a36eace9733ee8b7592d433cae457cd51755997d4fad335cb03119f1be1e0ceaf1f86a60619633345b0a4ed63bb1c8f59e61285f6afa5c953288f2d229aab62c79874bac59503e0be754b737f93d8d26862ffa564f9f6ca3df554aef16183652b651dbd0e0e5774c2ed89aa1f91155b0d746c069a1f7b8ed0ef4ddfa1a63da72078cc827a093c06ff6d330de30bd9c89fac1d50cb8de80321da17ebf251cde69e6719b94af3a78ab7a77463f4357ef72571cc5a9aed8fc4a831b837d8bb7c4da5617d057254c97a099e7baf3a26f36c45b3d14fb597468dfafda966f5f4793ebda8f000073b0c6b8550c5c561ba6407936ff5aed96eb7798ac42b23a7f0b065c31a551772cb39400ae3b3f9a52990318f2064385aea687aa54de4dadf741533d80a1d01d2ea98f2419e81ece4de00b4f9cb2e97f542b2d25649bf0ade81652ea7a6e12f6c281841c182da45881c48f134847fe6310a1a14773552c9c299302d8489dcd880b15c6320db6cc02379065c485679fc92ef21afde0cc1d01ac4b6fe0a5b00740883493cd296f9f349fb982e172d60df1d8a00af73a1c626a76e54ea0a6f094b2ade96c0f527933f384426634535e7fa55896e2bb6aadbd6895ba1f4e79d3796134f84b133d4bfd6e39d79afbc58a038f070189ebfe68ce3f226e39aaf08dccfa4885cee1bd5dfec8ac140647cca7b85ec4973bad899d06e348c0806a291e3ce4c09103e364208a06f09ca6b9c75ba9c98c2e986402bec9e31fbb929c24e94e21a9d04eb86e6e60a1ac2ba9036fa18aadda28e8bd5d4b1c842840d55b8fbc365ec7e23f5e9a9af407f5a1081eef1dd204747504f5f1643870a403700391c46b01c7dcd66bfc0e45ab5eb5effd183d8856f6b0ac1e627b33e2858b516144e70be0d0f2ff75fc550704dc8b65bdc403dc4c869a086619113ef69f811ad861c82b5763f8ca11f1cd476e4045af96b7a62d910931f89c521f96b8e80cf5599caeb217d73110ddfcdeab20038e39a84b6e2183a3197413000e93aa255caa039768e0595ac9c234b7f64b3281e1a1d16e642ee218c0c370f44e90acd7e9da0cac47c7ab1675733636d73143a344dc3f9b57fd3ac67ee5b1f2b369c18a8d8248a73e36be818ea2efa51185b72a85730745ee612e05793388ab3b3af3759c084b9e81faa099a024834a7fbf38f757b532caa16028ed4f0e26efb508793e6046c594eeb2f5a217cdf2f94bd165d88572feacc6f406d4ef409ad42978ecad4632b8c2f6675c71730d841739ab2e9c8f555529b16d248f16dbc12617006cfcdc5b7652b53824b45455f1c3918541bfe829b699a78655e80cab829d4384b68e6aeec3c5c32b8b5dcaf44b4709d4a4c0a30824f6e11a3cd1056cabdf1ec9d9635b4ceb668fbff1ff697d73af694212096af601022649b61bd97e6f8c3d61e60535aabbe594c0d3acd3035b4b4b66d5a2183ee0db0698e173e80e491be68154ea7fd62eb4acbf0afed3687eab641ab0547b2847182a272fa02d6237735ab0817f26f22e08d5490c7941b8e44e06a3d7b36fb370e91814b995ea9e92a0eeb4bb3dec0fb9c63677ed9f9a621df51985469a85e0267b7d316044c6fe195112d6131a2c76e306bf4e31839d874f071c81f734b971a20e0020407d0a2335e7b2e6f84a82898da32119ef72628571438ec736019cc193deb59f9db09c7133aad71ff00f3b5cd1c10213af02d15dd74a816ca6c7ab20d51c7f27a36a949c24a11ba6ff0a71868e5e74782bbb2c6ea65c94c1cda6c2896a0680197f4cd09744abdb4c84a67c6f27b5c794ee5a7c29ac754d7f354f403db011f0bd40943e34a1f9f692824867b98cb38fd58e2533adc5468978a85344bf953edd49c71c3458bfc9ffe42fde433267488650c6e3f92bdde25229059d80ef804a523dd7521095eaf8e2630692f3e3953481fe27bacf84c29a45d72a81a469671c2b6d0cd7aa6ad1865840c404f3c3b7642844e068e42f9c4d78200d356554e4e854475d2dbbb04329e5e577e834828522f358a6a9a48c06faef731952aee790c5511054e2e567718c64de715f6786acf0564415a157679874aae128e1e95fd1d8af690dd26258463b27c2489b3586183dad5ee8283666a24b0721473c8cad6d2c9a046ade361a3d9ce2c458a839d869cf883b3492de7c14891e7a34c3c9f0cd31707c2f867172b282ad00be2823b3508d7df324c972ed091235cdcb301af0f4a9a9ce34ea24e8a12c827831c5631c74e8a3f33fb00ceed39eed40c37c9187b388b2dcf710541f954f4081a4ee43681489998b162f9fab1903e352f90001c1425f0c30eec310a5687b2f5d4f57b3de754e98c85cdeaa7f0bef9805dd1918643fa8ce15b55d2b92c720c3907c66abb8966f63c39d467e0850fd69f05015a03cc1a30284df637c8a145cee4e6e8ffea498b781e0e30c234685843ccee199098a1aa861fa48dc09201ce43926897b679f420ac21da7d85e8fba33c32d2132f5aaef532211de0f905f51988ae18d18d2bd32cb5f948ab0103cadc850e8cee64403efbcf7ae4d83ec9eb884ec06c16bf4f042519922ba661398ec8ad7e9bf39db83ce68d724cc3603b6070fcba48aaea7011eec0f6688a616381716569d9e7f4b130971cfed9815c00ecac819e5d15e235a9304660d07aea61830a6a5466807cf17e9fc179dff67fd232ed6d457d04790073c2714fb9c30106b2d015ddcfeac614f499d5d59f8d65a09c51f44c83ed8f0ef7cf80a4acf5d0ec7fbc322f8302acfcf7eece15863b24536f5a113bf92041d0a1f1d4500e4010183acb3b3974a6f93c593258be1880511e7c516cb51050ab22752c6d6ee88d0a3cd798c10359c07", + "patch": { + "balances": { + "balances": [] + }, + "collatorSelection": { + "candidacyBond": 533333328, + "desiredCandidates": 0, + "invulnerables": [ + "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", + "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT" + ] + }, + "parachainInfo": { + "parachainId": 1004 + }, + "polkadotXcm": { + "safeXcmVersion": 3 + }, + "session": { + "keys": [ + [ + "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", + "HNrgbuMxf7VLwsMd6YjnNQM6fc7VVsaoNVaMYTCCfK3TRWJ", + { + "aura": "FF4CWRg8eGk8zEmGxswx4ppBQN96HdZhkV35YJU6rfXabpV" + } + ], + [ + "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", + "CuLgnS17KwfweeoN9y59YrhDG4pekfiY8qxieDaVTcVCjuP", + { + "aura": "HEuPjdpQ3yv45zwk6h6985PNK8wszRyeAjDd4GJW5dZEpNp" + } + ], + [ + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + "J11Rp4mjz3vRb2DL51HqRGRjhuEQRyXgtuFskebXb8zMZ9s", + { + "aura": "H4s9sGNMvzdjFMKi8qMBqnxhGJR6T7Ytx6foFz9CVhGVyQn" + } + ], + [ + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + "H1tAQMm3eizGcmpAhL9aA9gR844kZpQfkU7pkmMiLx9jSzE", + { + "aura": "Eis5y75gUQtH712YCyF5q6PjE8UsZzFJ4q3tSYQv2QifZKT" + } + ], + [ + "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", + "CbLd7BdUr8DqD4TciR1kH6w12bbHBCW9n2MHGCtbxq4U5ty", + { + "aura": "E7XKeXCdv3PF1UMmBMU8qH536LKvpwHcgFCVSUbYwK8QrqY" + } + ], + [ + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + "CdW8izFcLeicL3zZUQaC3a39AGeNSTgc9Jb5E5sjREPryA2", + { + "aura": "Cm8X6ekpTVidkFPUmDF7dHFLeWQyrdGW1RhEeuijeR2Pntd" + } + ], + [ + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + "HmatizNhXrZtXwQK2LfntvjCy3x1EuKs1WnRQ6CP3KkNfmA", + { + "aura": "GRvavY8h77mnRHbEQsFvUzWpw3kvH8164aVUgKqoyMW8rpV" + } + ], + [ + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + "DtuntvQBh9vajFTnd42aTTCiuCyY3ep6EVwhhPji2ejyyhW", + { + "aura": "HeSr4JUpXgrfKNwZGcJYU5FSn3znDoZaXnYxWB168bw5WUM" + } + ], + [ + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + "HPUEzi4v3YJmhBfSbcGEFFiNKPAGVnGkfDiUzBNTR7j1CxT", + { + "aura": "HppWoUUWibaZn3zgmcaWZY3BLbZzRktLiNK5e6DUBxHuniE" + } + ] + ] + } + } + } + } +} diff --git a/cumulus/parachains/chain-specs/people-westend.json b/cumulus/parachains/chain-specs/people-westend.json index 29fa0c9cde79c0daecbce029c8fa377ba1ff6918..61a39159ae6d19b062583071665dc68c081b92a8 100644 --- a/cumulus/parachains/chain-specs/people-westend.json +++ b/cumulus/parachains/chain-specs/people-westend.json @@ -12,7 +12,9 @@ "/dns/westend-people-collator-node-3.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWCF1eA2Gap69zgXD7Df3e9DqDUsGoByocggTGejoHjK23", "/dns/westend-people-collator-node-3.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWCF1eA2Gap69zgXD7Df3e9DqDUsGoByocggTGejoHjK23", "/dns/identity-westend.bootnodes.polkadotters.com/tcp/30532/p2p/12D3KooWKr9San6KTM7REJ95cBaDoiciGcWnW8TTftEJgxGF5Ehb", - "/dns/identity-westend.bootnodes.polkadotters.com/tcp/30534/wss/p2p/12D3KooWKr9San6KTM7REJ95cBaDoiciGcWnW8TTftEJgxGF5Ehb" + "/dns/identity-westend.bootnodes.polkadotters.com/tcp/30534/wss/p2p/12D3KooWKr9San6KTM7REJ95cBaDoiciGcWnW8TTftEJgxGF5Ehb", + "/dns/boot-node.helikon.io/tcp/9520/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c", + "/dns/boot-node.helikon.io/tcp/9522/wss/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/common/Cargo.toml b/cumulus/parachains/common/Cargo.toml index ebc9f822beb2c0069276876161158243501ab288..fa16205d0fd1adee1491cf3abb92a55829b16a44 100644 --- a/cumulus/parachains/common/Cargo.toml +++ b/cumulus/parachains/common/Cargo.toml @@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-support = { path = "../../../substrate/frame/support", default-features = false } diff --git a/cumulus/parachains/common/src/impls.rs b/cumulus/parachains/common/src/impls.rs index 6a990740f0f1930fc259726fd85e966ae48887a2..d70fdfeb7095a2dbd6f5fd9a53caeb1272476743 100644 --- a/cumulus/parachains/common/src/impls.rs +++ b/cumulus/parachains/common/src/impls.rs @@ -17,10 +17,11 @@ //! Taken from polkadot/runtime/common (at a21cd64) and adapted for parachains. use frame_support::traits::{ - fungibles::{self, Balanced, Credit}, - Contains, ContainsPair, Currency, Get, Imbalance, OnUnbalanced, OriginTrait, + fungible, fungibles, tokens::imbalance::ResolveTo, Contains, ContainsPair, Currency, Defensive, + Get, Imbalance, OnUnbalanced, OriginTrait, }; use pallet_asset_tx_payment::HandleCredit; +use pallet_collator_selection::StakingPotAccountId; use sp_runtime::traits::Zero; use sp_std::{marker::PhantomData, prelude::*}; use xcm::latest::{ @@ -29,16 +30,20 @@ use xcm::latest::{ }; use xcm_executor::traits::ConvertLocation; +/// Type alias to conveniently refer to `frame_system`'s `Config::AccountId`. +pub type AccountIdOf = ::AccountId; + /// Type alias to conveniently refer to the `Currency::NegativeImbalance` associated type. pub type NegativeImbalance = as Currency< ::AccountId, >>::NegativeImbalance; -/// Type alias to conveniently refer to `frame_system`'s `Config::AccountId`. -pub type AccountIdOf = ::AccountId; - /// Implementation of `OnUnbalanced` that deposits the fees into a staking pot for later payout. +#[deprecated( + note = "ToStakingPot is deprecated and will be removed after March 2024. Please use frame_support::traits::tokens::imbalance::ResolveTo instead." +)] pub struct ToStakingPot(PhantomData); +#[allow(deprecated)] impl OnUnbalanced> for ToStakingPot where R: pallet_balances::Config + pallet_collator_selection::Config, @@ -47,25 +52,30 @@ where { fn on_nonzero_unbalanced(amount: NegativeImbalance) { let staking_pot = >::account_id(); + // In case of error: Will drop the result triggering the `OnDrop` of the imbalance. >::resolve_creating(&staking_pot, amount); } } -/// Implementation of `OnUnbalanced` that deals with the fees by combining tip and fee and passing -/// the result on to `ToStakingPot`. +/// Fungible implementation of `OnUnbalanced` that deals with the fees by combining tip and fee and +/// passing the result on to `ToStakingPot`. pub struct DealWithFees(PhantomData); -impl OnUnbalanced> for DealWithFees +impl OnUnbalanced>> for DealWithFees where R: pallet_balances::Config + pallet_collator_selection::Config, AccountIdOf: From + Into, ::RuntimeEvent: From>, { - fn on_unbalanceds(mut fees_then_tips: impl Iterator>) { + fn on_unbalanceds( + mut fees_then_tips: impl Iterator< + Item = fungible::Credit>, + >, + ) { if let Some(mut fees) = fees_then_tips.next() { if let Some(tips) = fees_then_tips.next() { tips.merge_into(&mut fees); } - as OnUnbalanced<_>>::on_unbalanced(fees); + ResolveTo::, pallet_balances::Pallet>::on_unbalanced(fees) } } } @@ -79,10 +89,11 @@ where R: pallet_authorship::Config + pallet_assets::Config, AccountIdOf: From + Into, { - fn handle_credit(credit: Credit, pallet_assets::Pallet>) { + fn handle_credit(credit: fungibles::Credit, pallet_assets::Pallet>) { + use frame_support::traits::fungibles::Balanced; if let Some(author) = pallet_authorship::Pallet::::author() { // In case of error: Will drop the result triggering the `OnDrop` of the imbalance. - let _ = pallet_assets::Pallet::::resolve(&author, credit); + let _ = pallet_assets::Pallet::::resolve(&author, credit).defensive(); } } } @@ -313,8 +324,14 @@ mod tests { #[test] fn test_fees_and_tip_split() { new_test_ext().execute_with(|| { - let fee = Balances::issue(10); - let tip = Balances::issue(20); + let fee = + as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(10); + let tip = + as frame_support::traits::fungible::Balanced< + AccountId, + >>::issue(20); assert_eq!(Balances::free_balance(TEST_ACCOUNT), 0); diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/Cargo.toml index f4f8b3603ba61e44195d6be8151b296f002ac720..98762beb0cb23132c3880515287328bb09bde032 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/Cargo.toml @@ -17,7 +17,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } cumulus-primitives-core = { path = "../../../../../../../primitives/core", default-features = false } emulated-integration-tests-common = { path = "../../../../common", default-features = false } asset-hub-rococo-runtime = { path = "../../../../../../runtimes/assets/asset-hub-rococo" } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs index 2acccb9649b89aa8aea6349026fb72ea511cad78..e5378b35f5e484e10db94c66bc5244099b682604 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo/src/genesis.rs @@ -20,7 +20,7 @@ use sp_core::{sr25519, storage::Storage}; // Cumulus use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, get_account_id_from_seed, - PenpalSiblingSovereigAccount, PenpalTeleportableAssetLocation, RESERVABLE_ASSET_ID, + PenpalSiblingSovereignAccount, PenpalTeleportableAssetLocation, RESERVABLE_ASSET_ID, SAFE_XCM_VERSION, }; use parachains_common::{AccountId, Balance}; @@ -76,7 +76,7 @@ pub fn genesis() -> Storage { // Penpal's teleportable asset representation ( PenpalTeleportableAssetLocation::get(), - PenpalSiblingSovereigAccount::get(), + PenpalSiblingSovereignAccount::get(), true, ED, ), diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/Cargo.toml index d4764f63bf64d3cc650d53ee8c637129448121a2..a42a9abf618d403852561d5d4b20e7fb6ad576e7 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/Cargo.toml @@ -17,7 +17,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } cumulus-primitives-core = { path = "../../../../../../../primitives/core", default-features = false } emulated-integration-tests-common = { path = "../../../../common", default-features = false } asset-hub-westend-runtime = { path = "../../../../../../runtimes/assets/asset-hub-westend" } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs index e30529aff42ca02a02ab9c93dc502f7fd50d02e4..219d1306906cbc6c20609870bec496c5bd16eaeb 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-westend/src/genesis.rs @@ -20,7 +20,7 @@ use sp_core::{sr25519, storage::Storage}; // Cumulus use emulated_integration_tests_common::{ accounts, build_genesis_storage, collators, get_account_id_from_seed, - PenpalSiblingSovereigAccount, PenpalTeleportableAssetLocation, RESERVABLE_ASSET_ID, + PenpalSiblingSovereignAccount, PenpalTeleportableAssetLocation, RESERVABLE_ASSET_ID, SAFE_XCM_VERSION, }; use parachains_common::{AccountId, Balance}; @@ -72,7 +72,7 @@ pub fn genesis() -> Storage { // Penpal's teleportable asset representation ( PenpalTeleportableAssetLocation::get(), - PenpalSiblingSovereigAccount::get(), + PenpalSiblingSovereignAccount::get(), true, ED, ), diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/Cargo.toml index 322d8b44e6ea6b293fb1c2f52e0de80fa9cd29f1..789f10a35f268c62e0cc9fa153c99e7e5282ee8d 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/Cargo.toml @@ -17,7 +17,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } emulated-integration-tests-common = { path = "../../../../common", default-features = false } bridge-hub-rococo-runtime = { path = "../../../../../../runtimes/bridge-hubs/bridge-hub-rococo" } bridge-hub-common = { path = "../../../../../../runtimes/bridge-hubs/common", default-features = false } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/Cargo.toml index ec1386b7f6e2b231e7f9ffdc925b3d0c802bf4f2..d82971cf55aeddf20032be952b8a980014434f6b 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/Cargo.toml @@ -17,7 +17,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } emulated-integration-tests-common = { path = "../../../../common", default-features = false } bridge-hub-westend-runtime = { path = "../../../../../../runtimes/bridge-hubs/bridge-hub-westend" } bridge-hub-common = { path = "../../../../../../runtimes/bridge-hubs/common", default-features = false } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend/Cargo.toml index 03f755b666afbf87e876a7f7d5111aa98a1bc727..4c2a7d3c274dce6eade9c9d42be00301bd6dc462 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend/Cargo.toml @@ -17,7 +17,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } cumulus-primitives-core = { path = "../../../../../../../primitives/core", default-features = false } emulated-integration-tests-common = { path = "../../../../common", default-features = false } collectives-westend-runtime = { path = "../../../../../../runtimes/collectives/collectives-westend" } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo/Cargo.toml index 65a358d0ef2f6b697453f2c1cbef20d3b2cd93a8..f7fe93d27775a28cb560d8791a3b0d8ed49c9d68 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo/Cargo.toml @@ -14,7 +14,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } cumulus-primitives-core = { path = "../../../../../../../primitives/core", default-features = false } emulated-integration-tests-common = { path = "../../../../common", default-features = false } people-rococo-runtime = { path = "../../../../../../runtimes/people/people-rococo" } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend/Cargo.toml index 075698848bcf0705c00ea46e3443802ca2fbe6b0..57a767e0c2a3eb7d23df7f8d95fd78128c996f35 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend/Cargo.toml @@ -14,7 +14,7 @@ sp-core = { path = "../../../../../../../../substrate/primitives/core", default- frame-support = { path = "../../../../../../../../substrate/frame/support", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } cumulus-primitives-core = { path = "../../../../../../../primitives/core", default-features = false } emulated-integration-tests-common = { path = "../../../../common", default-features = false } people-westend-runtime = { path = "../../../../../../runtimes/people/people-westend" } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml index f47350b00eb18f46ad33f23ca490664c726dc878..2ac508273c6158ddae08615d8574102f98e3e788 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/Cargo.toml @@ -20,7 +20,7 @@ frame-support = { path = "../../../../../../../../substrate/frame/support", defa xcm = { package = "staging-xcm", path = "../../../../../../../../polkadot/xcm", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../../parachains/common" } +parachains-common = { path = "../../../../../../common" } cumulus-primitives-core = { path = "../../../../../../../primitives/core", default-features = false } emulated-integration-tests-common = { path = "../../../../common", default-features = false } penpal-runtime = { path = "../../../../../../runtimes/testing/penpal" } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs index 48901647fd052ec1499461ff7cb1dfa8cf797e82..d81ab8143ddba678617aaa67db122298ce29606c 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/genesis.rs @@ -31,8 +31,8 @@ pub const PARA_ID_B: u32 = 2001; pub const ED: Balance = penpal_runtime::EXISTENTIAL_DEPOSIT; parameter_types! { - pub PenpalSudoAcccount: AccountId = get_account_id_from_seed::("Alice"); - pub PenpalAssetOwner: AccountId = PenpalSudoAcccount::get(); + pub PenpalSudoAccount: AccountId = get_account_id_from_seed::("Alice"); + pub PenpalAssetOwner: AccountId = PenpalSudoAccount::get(); } pub fn genesis(para_id: u32) -> Storage { @@ -66,7 +66,7 @@ pub fn genesis(para_id: u32) -> Storage { safe_xcm_version: Some(SAFE_XCM_VERSION), ..Default::default() }, - sudo: penpal_runtime::SudoConfig { key: Some(PenpalSudoAcccount::get()) }, + sudo: penpal_runtime::SudoConfig { key: Some(PenpalSudoAccount::get()) }, assets: penpal_runtime::AssetsConfig { assets: vec![( penpal_runtime::xcm_config::TELEPORTABLE_ASSET_ID, diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs index 651b3a52306767446943d43a6616193ca8205838..0b49c7a3e091a615632728b6ba74ca4dffefae66 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal/src/lib.rs @@ -14,7 +14,7 @@ // limitations under the License. mod genesis; -pub use genesis::{genesis, PenpalAssetOwner, PenpalSudoAcccount, ED, PARA_ID_A, PARA_ID_B}; +pub use genesis::{genesis, PenpalAssetOwner, PenpalSudoAccount, ED, PARA_ID_A, PARA_ID_B}; pub use penpal_runtime::xcm_config::{ CustomizableAssetFromSystemAssetHub, LocalTeleportableToAssetHub, XcmConfig, }; diff --git a/cumulus/parachains/integration-tests/emulated/chains/relays/rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/relays/rococo/Cargo.toml index 2d27426cca7599e3284caa6c8ca69a2d546a8da2..7ac65b0ee1ded60939072ff61d6886fa53a10b94 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/relays/rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/relays/rococo/Cargo.toml @@ -25,5 +25,5 @@ rococo-runtime-constants = { path = "../../../../../../../polkadot/runtime/rococ rococo-runtime = { path = "../../../../../../../polkadot/runtime/rococo" } # Cumulus -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } emulated-integration-tests-common = { path = "../../../common", default-features = false } diff --git a/cumulus/parachains/integration-tests/emulated/chains/relays/westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/relays/westend/Cargo.toml index abc40c2040681cc4cb41246a9872d557134b6dde..12a3ad60e0e046f1881d322118d522da3f9b52b1 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/relays/westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/chains/relays/westend/Cargo.toml @@ -11,7 +11,6 @@ publish = false workspace = true [dependencies] - # Substrate sp-core = { path = "../../../../../../../substrate/primitives/core", default-features = false } sp-runtime = { path = "../../../../../../../substrate/primitives/runtime", default-features = false } @@ -27,5 +26,5 @@ westend-runtime-constants = { path = "../../../../../../../polkadot/runtime/west westend-runtime = { path = "../../../../../../../polkadot/runtime/westend" } # Cumulus -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } emulated-integration-tests-common = { path = "../../../common", default-features = false } diff --git a/cumulus/parachains/integration-tests/emulated/common/src/impls.rs b/cumulus/parachains/integration-tests/emulated/common/src/impls.rs index 5fc08dff32c454d053816f547ef90ec9b70e8b0c..618c3addc5d0c67c3954610425345d3ec8b2f36b 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/impls.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/impls.rs @@ -114,7 +114,7 @@ where .expect("Bridge message does not exist") .into(); let payload = Vec::::decode(&mut &encoded_payload[..]) - .expect("Decodign XCM message failed"); + .expect("Decoding XCM message failed"); let id: u32 = LaneIdWrapper(*lane).into(); let message = BridgeMessage { id, nonce, payload }; @@ -265,7 +265,7 @@ macro_rules! impl_assert_events_helpers_for_relay_chain { $crate::impls::assert_expected_events!( Self, vec![ - // XCM is successfully received and proccessed + // XCM is successfully received and processed [<$chain RuntimeEvent>]::::MessageQueue($crate::impls::pallet_message_queue::Event::Processed { origin: $crate::impls::AggregateMessageOrigin::Ump($crate::impls::UmpQueueId::Para(id)), weight_used, @@ -343,7 +343,7 @@ macro_rules! impl_hrmp_channels_helpers_for_relay_chain { ::Runtime, >::contains_key(&channel_id); - // Check the HRMP channel has been successfully registrered + // Check the HRMP channel has been successfully registered assert!(hrmp_channel_exist) }); } @@ -362,7 +362,7 @@ macro_rules! impl_send_transact_helpers_for_relay_chain { recipient: $crate::impls::ParaId, call: $crate::impls::DoubleEncoded<()> ) { - use $crate::impls::{bx, Chain, RelayChain}; + use $crate::impls::{bx, Chain, RelayChain, Encode}; ::execute_with(|| { let root_origin = ::RuntimeOrigin::root(); @@ -370,10 +370,10 @@ macro_rules! impl_send_transact_helpers_for_relay_chain { let xcm = $crate::impls::xcm_transact_unpaid_execution(call, $crate::impls::OriginKind::Superuser); // Send XCM `Transact` - $crate::impls::assert_ok!(]>::XcmPallet::send( + $crate::impls::assert_ok!(]>::XcmPallet::send_blob( root_origin, bx!(destination.into()), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); Self::assert_xcm_pallet_sent(); }); diff --git a/cumulus/parachains/integration-tests/emulated/common/src/lib.rs b/cumulus/parachains/integration-tests/emulated/common/src/lib.rs index 40204ca297a0a2626e4c3946a090199c3269e7e4..cbde0642f1a2965579196cda7e7ada4f291e9d98 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/lib.rs @@ -67,7 +67,7 @@ parameter_types! { xcm::v3::Junction::GeneralIndex(TELEPORTABLE_ASSET_ID.into()), ] ); - pub PenpalSiblingSovereigAccount: AccountId = Sibling::from(PENPAL_ID).into_account_truncating(); + pub PenpalSiblingSovereignAccount: AccountId = Sibling::from(PENPAL_ID).into_account_truncating(); } /// Helper function to generate a crypto pair from seed diff --git a/cumulus/parachains/integration-tests/emulated/common/src/macros.rs b/cumulus/parachains/integration-tests/emulated/common/src/macros.rs index 6951de6faa728d1ea88bbbc4cfb7f7683ab14935..6f6bbe41e01bd208ee6d40a9f3b4ba8f98f7975b 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/macros.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/macros.rs @@ -115,7 +115,7 @@ macro_rules! test_parachain_is_trusted_teleporter { let para_receiver_balance_after = <$receiver_para as $crate::macros::Chain>::account_data_of(receiver.clone()).free; let delivery_fees = <$sender_para>::execute_with(|| { - $crate::macros::asset_test_utils::xcm_helpers::transfer_assets_delivery_fees::< + $crate::macros::asset_test_utils::xcm_helpers::teleport_assets_delivery_fees::< <$sender_xcm_config as xcm_executor::Config>::XcmSender, >($assets.clone(), fee_asset_item, weight_limit.clone(), beneficiary, para_destination) }); diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/Cargo.toml index 13eb7d8dfc49a7010f61c2f106c508a7f9bae031..9b519da4b1d82d5536e21f001cced0cec37197a8 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/Cargo.toml @@ -30,7 +30,7 @@ rococo-runtime = { path = "../../../../../../../polkadot/runtime/rococo" } # Cumulus asset-test-utils = { path = "../../../../../runtimes/assets/test-utils" } -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } cumulus-pallet-parachain-system = { path = "../../../../../../pallets/parachain-system", default-features = false } testnet-parachains-constants = { path = "../../../../../runtimes/constants", features = ["rococo"] } asset-hub-rococo-runtime = { path = "../../../../../runtimes/assets/asset-hub-rococo" } diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs index 21d858f1fe514b8005c968f670f7ff05714d2f79..a5a4914e21d826ea6c70af4ae31a0d4dee43ef64 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs @@ -63,17 +63,13 @@ mod imports { // Runtimes pub use asset_hub_rococo_runtime::xcm_config::{ - TokenLocation as RelayLocation, UniversalLocation as AssetHubRococoUniversalLocation, - XcmConfig as AssetHubRococoXcmConfig, + TokenLocation as RelayLocation, XcmConfig as AssetHubRococoXcmConfig, }; pub use penpal_runtime::xcm_config::{ LocalReservableFromAssetHub as PenpalLocalReservableFromAssetHub, LocalTeleportableToAssetHub as PenpalLocalTeleportableToAssetHub, - UniversalLocation as PenpalUniversalLocation, XcmConfig as PenpalRococoXcmConfig, - }; - pub use rococo_runtime::xcm_config::{ - UniversalLocation as RococoUniversalLocation, XcmConfig as RococoXcmConfig, }; + pub use rococo_runtime::xcm_config::XcmConfig as RococoXcmConfig; pub const ASSET_ID: u32 = 3; pub const ASSET_MIN_BALANCE: u128 = 1000; diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs index 705c9613b647a03c444fa304d69cb046d1df20b5..a0738839087a51e87df3187ac6f06d2889cce64e 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/reserve_transfer.rs @@ -524,7 +524,6 @@ fn reserve_transfer_native_asset_from_relay_to_para() { let destination = Rococo::child_location_of(PenpalA::para_id()); let sender = RococoSender::get(); let amount_to_send: Balance = ROCOCO_ED * 1000; - let assets: Assets = (Here, amount_to_send).into(); // Init values fot Parachain let relay_native_asset_location = @@ -552,15 +551,6 @@ fn reserve_transfer_native_asset_from_relay_to_para() { test.set_dispatchable::(relay_to_para_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = Rococo::execute_with(|| { - let reanchored_assets = - assets.reanchored(&destination, &RococoUniversalLocation::get()).unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_balance_after = test.sender.balance; let receiver_assets_after = PenpalA::execute_with(|| { @@ -568,8 +558,8 @@ fn reserve_transfer_native_asset_from_relay_to_para() { >::balance(relay_native_asset_location.into(), &receiver) }); - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_balance_after < sender_balance_before - amount_to_send); // Receiver's asset balance is increased assert!(receiver_assets_after > receiver_assets_before); // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; @@ -595,7 +585,7 @@ fn reserve_transfer_native_asset_from_para_to_relay() { ::RuntimeOrigin::signed(asset_owner), relay_native_asset_location, sender.clone(), - amount_to_send, + amount_to_send * 2, ); // Init values for Relay @@ -634,15 +624,6 @@ fn reserve_transfer_native_asset_from_para_to_relay() { test.set_dispatchable::(para_to_relay_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = PenpalA::execute_with(|| { - let reanchored_assets = - assets.reanchored(&destination, &PenpalUniversalLocation::get()).unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_assets_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; @@ -650,8 +631,8 @@ fn reserve_transfer_native_asset_from_para_to_relay() { }); let receiver_balance_after = test.receiver.balance; - // Sender's balance is reduced - assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); // Receiver's asset balance is increased assert!(receiver_balance_after > receiver_balance_before); // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; @@ -705,16 +686,6 @@ fn reserve_transfer_native_asset_from_system_para_to_para() { test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = AssetHubRococo::execute_with(|| { - let reanchored_assets = assets - .reanchored(&destination, &AssetHubRococoUniversalLocation::get()) - .unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_balance_after = test.sender.balance; let receiver_assets_after = PenpalA::execute_with(|| { @@ -722,8 +693,8 @@ fn reserve_transfer_native_asset_from_system_para_to_para() { >::balance(system_para_native_asset_location, &receiver) }); - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_balance_after < sender_balance_before - amount_to_send); // Receiver's assets is increased assert!(receiver_assets_after > receiver_assets_before); // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; @@ -738,7 +709,7 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { // Init values for Parachain let destination = PenpalA::sibling_location_of(AssetHubRococo::para_id()); let sender = PenpalASender::get(); - let amount_to_send: Balance = ASSET_HUB_ROCOCO_ED * 1000; + let amount_to_send: Balance = ASSET_HUB_ROCOCO_ED * 10000; let assets: Assets = (Parent, amount_to_send).into(); let system_para_native_asset_location = v3::Location::try_from(RelayLocation::get()).expect("conversion works"); @@ -749,7 +720,7 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { ::RuntimeOrigin::signed(asset_owner), system_para_native_asset_location, sender.clone(), - amount_to_send, + amount_to_send * 2, ); // Init values for System Parachain @@ -788,15 +759,6 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { test.set_dispatchable::(para_to_system_para_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = PenpalA::execute_with(|| { - let reanchored_assets = - assets.reanchored(&destination, &PenpalUniversalLocation::get()).unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_assets_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; @@ -804,8 +766,8 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { }); let receiver_balance_after = test.receiver.balance; - // Sender's balance is reduced - assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); // Receiver's balance is increased assert!(receiver_balance_after > receiver_balance_before); // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; @@ -1084,13 +1046,13 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() { ::RuntimeOrigin::signed(asset_owner), relay_native_asset_location, sender.clone(), - amount_to_send, + amount_to_send * 2, ); // fund the Parachain Origin's SA on Relay Chain with the native tokens held in reserve Rococo::fund_accounts(vec![(sov_of_sender_on_relay.into(), amount_to_send * 2)]); - // Init values for Parachain Desitnation + // Init values for Parachain Destination let receiver = PenpalBReceiver::get(); // Init Test @@ -1118,13 +1080,6 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() { test.set_dispatchable::(para_to_para_through_relay_limited_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = PenpalA::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_assets_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; @@ -1135,8 +1090,8 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() { >::balance(relay_native_asset_location, &receiver) }); - // Sender's balance is reduced - assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); // Receiver's balance is increased assert!(receiver_assets_after > receiver_assets_before); } diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/send.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/send.rs index 364fbd0d439f62ed1fce356d1935331ec8e0d90b..1d120f1dc4c7ed4f923514e0692f3a4beb48103a 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/send.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/send.rs @@ -75,10 +75,10 @@ fn send_xcm_from_para_to_system_para_paying_fee_with_system_assets_works() { )]); PenpalA::execute_with(|| { - assert_ok!(::PolkadotXcm::send( + assert_ok!(::PolkadotXcm::send_blob( root_origin, bx!(system_para_destination), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); PenpalA::assert_xcm_pallet_sent(); @@ -159,10 +159,10 @@ fn send_xcm_from_para_to_system_para_paying_fee_with_assets_works() { )]); PenpalA::execute_with(|| { - assert_ok!(::PolkadotXcm::send( + assert_ok!(::PolkadotXcm::send_blob( root_origin, bx!(system_para_destination), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); PenpalA::assert_xcm_pallet_sent(); diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/swap.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/swap.rs index 87f0b3d9f90a6f57d61a6352233db4858ba64ca3..e13300b7c11426416f543c2ee026702277b695b1 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/swap.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/swap.rs @@ -370,10 +370,10 @@ fn pay_xcm_fee_with_some_asset_swapped_for_native() { penpal.clone(), ); - assert_ok!(::PolkadotXcm::send( + assert_ok!(::PolkadotXcm::send_blob( penpal_root, bx!(asset_hub_location), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); PenpalA::assert_xcm_pallet_sent(); diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/teleport.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/teleport.rs index 0cc5ddb9f64d31c93fb73a6bbacf1844b5e161f6..1cbb7fb8c193accc65ef160a3a09514bd51debf5 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/teleport.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/teleport.rs @@ -245,16 +245,6 @@ fn relay_limited_teleport_assets(t: RelayToSystemParaTest) -> DispatchResult { ) } -fn relay_teleport_assets(t: RelayToSystemParaTest) -> DispatchResult { - ::XcmPallet::teleport_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - ) -} - fn system_para_limited_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult { ::PolkadotXcm::limited_teleport_assets( t.signed_origin, @@ -266,16 +256,6 @@ fn system_para_limited_teleport_assets(t: SystemParaToRelayTest) -> DispatchResu ) } -fn system_para_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult { - ::PolkadotXcm::teleport_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - ) -} - fn para_to_system_para_transfer_assets(t: ParaToSystemParaTest) -> DispatchResult { ::PolkadotXcm::transfer_assets( t.signed_origin, @@ -322,7 +302,7 @@ fn limited_teleport_native_assets_from_relay_to_system_para_works() { test.assert(); let delivery_fees = Rococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -369,7 +349,7 @@ fn limited_teleport_native_assets_back_from_system_para_to_relay_works() { let receiver_balance_after = test.receiver.balance; let delivery_fees = AssetHubRococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -410,7 +390,7 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() { let receiver_balance_after = test.receiver.balance; let delivery_fees = AssetHubRococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -421,129 +401,6 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() { assert_eq!(receiver_balance_after, receiver_balance_before); } -/// Teleport of native asset from Relay Chain to the System Parachain should work -#[test] -fn teleport_native_assets_from_relay_to_system_para_works() { - // Init values for Relay Chain - let amount_to_send: Balance = ROCOCO_ED * 1000; - let dest = Rococo::child_location_of(AssetHubRococo::para_id()); - let beneficiary_id = AssetHubRococoReceiver::get(); - let test_args = TestContext { - sender: RococoSender::get(), - receiver: AssetHubRococoReceiver::get(), - args: TestArgs::new_relay(dest, beneficiary_id, amount_to_send), - }; - - let mut test = RelayToSystemParaTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(relay_origin_assertions); - test.set_assertion::(para_dest_assertions); - test.set_dispatchable::(relay_teleport_assets); - test.assert(); - - let delivery_fees = Rococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - - let sender_balance_after = test.sender.balance; - let receiver_balance_after = test.receiver.balance; - - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); - // Receiver's balance is increased - assert!(receiver_balance_after > receiver_balance_before); -} - -/// Teleport of native asset from System Parachains to the Relay Chain -/// should work when there is enough balance in Relay Chain's `CheckAccount` -#[test] -fn teleport_native_assets_back_from_system_para_to_relay_works() { - // Dependency - Relay Chain's `CheckAccount` should have enough balance - teleport_native_assets_from_relay_to_system_para_works(); - - // Init values for Relay Chain - let amount_to_send: Balance = ASSET_HUB_ROCOCO_ED * 1000; - let destination = AssetHubRococo::parent_location(); - let beneficiary_id = RococoReceiver::get(); - let assets = (Parent, amount_to_send).into(); - - let test_args = TestContext { - sender: AssetHubRococoSender::get(), - receiver: RococoReceiver::get(), - args: TestArgs::new_para(destination, beneficiary_id, amount_to_send, assets, None, 0), - }; - - let mut test = SystemParaToRelayTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(para_origin_assertions); - test.set_assertion::(relay_dest_assertions); - test.set_dispatchable::(system_para_teleport_assets); - test.assert(); - - let sender_balance_after = test.sender.balance; - let receiver_balance_after = test.receiver.balance; - - let delivery_fees = AssetHubRococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); - // Receiver's balance is increased - assert!(receiver_balance_after > receiver_balance_before); -} - -/// Teleport of native asset from System Parachain to Relay Chain -/// shouldn't work when there is not enough balance in Relay Chain's `CheckAccount` -#[test] -fn teleport_native_assets_from_system_para_to_relay_fails() { - // Init values for Relay Chain - let amount_to_send: Balance = ASSET_HUB_ROCOCO_ED * 1000; - let destination = AssetHubRococo::parent_location(); - let beneficiary_id = RococoReceiver::get(); - let assets = (Parent, amount_to_send).into(); - - let test_args = TestContext { - sender: AssetHubRococoSender::get(), - receiver: RococoReceiver::get(), - args: TestArgs::new_para(destination, beneficiary_id, amount_to_send, assets, None, 0), - }; - - let mut test = SystemParaToRelayTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(para_origin_assertions); - test.set_assertion::(relay_dest_assertions_fail); - test.set_dispatchable::(system_para_teleport_assets); - test.assert(); - - let delivery_fees = AssetHubRococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - - let sender_balance_after = test.sender.balance; - let receiver_balance_after = test.receiver.balance; - - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); - // Receiver's balance does not change - assert_eq!(receiver_balance_after, receiver_balance_before); -} - #[test] fn teleport_to_other_system_parachains_works() { let amount = ASSET_HUB_ROCOCO_ED * 100; @@ -593,7 +450,7 @@ fn bidirectional_teleport_foreign_assets_between_para_and_asset_hub() { ::RuntimeOrigin::signed(asset_owner.clone()), system_para_native_asset_location, sender.clone(), - fee_amount_to_send, + fee_amount_to_send * 2, ); // No need to create the asset (only mint) as it exists in genesis. PenpalA::mint_asset( diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/Cargo.toml index 8ac8efb5218fbf4f9871c2861fdf923b273abedf..3121ed028eb9184cd4e2359e78f17ce6a650c22d 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/Cargo.toml @@ -31,12 +31,12 @@ pallet-xcm = { path = "../../../../../../../polkadot/xcm/pallet-xcm", default-fe westend-runtime = { path = "../../../../../../../polkadot/runtime/westend" } # Cumulus -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } testnet-parachains-constants = { path = "../../../../../runtimes/constants", features = ["westend"] } penpal-runtime = { path = "../../../../../runtimes/testing/penpal" } asset-hub-westend-runtime = { path = "../../../../../runtimes/assets/asset-hub-westend" } asset-test-utils = { path = "../../../../../runtimes/assets/test-utils" } -cumulus-pallet-xcmp-queue = { default-features = false, path = "../../../../../../pallets/xcmp-queue" } -cumulus-pallet-parachain-system = { default-features = false, path = "../../../../../../pallets/parachain-system" } +cumulus-pallet-xcmp-queue = { path = "../../../../../../pallets/xcmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../../../pallets/parachain-system", default-features = false } emulated-integration-tests-common = { path = "../../../common", default-features = false } westend-system-emulated-network = { path = "../../../networks/westend-system" } diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs index 3f899d1dbdbcb77174bfec068d0257b63e3c0a48..c9f5fe0647e12ba0121261505e27ff56c3f82f96 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs @@ -67,17 +67,13 @@ mod imports { // Runtimes pub use asset_hub_westend_runtime::xcm_config::{ - UniversalLocation as AssetHubWestendUniversalLocation, WestendLocation as RelayLocation, - XcmConfig as AssetHubWestendXcmConfig, + WestendLocation as RelayLocation, XcmConfig as AssetHubWestendXcmConfig, }; pub use penpal_runtime::xcm_config::{ LocalReservableFromAssetHub as PenpalLocalReservableFromAssetHub, LocalTeleportableToAssetHub as PenpalLocalTeleportableToAssetHub, - UniversalLocation as PenpalUniversalLocation, XcmConfig as PenpalWestendXcmConfig, - }; - pub use westend_runtime::xcm_config::{ - UniversalLocation as WestendUniversalLocation, XcmConfig as WestendXcmConfig, }; + pub use westend_runtime::xcm_config::XcmConfig as WestendXcmConfig; pub const ASSET_ID: u32 = 3; pub const ASSET_MIN_BALANCE: u128 = 1000; diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs index 8c836132b5469de948fb446999cb2e6f20f11135..a26dfef8e8e702ee3f22870116adc03ee8ed1ca2 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/reserve_transfer.rs @@ -215,7 +215,7 @@ fn para_to_system_para_assets_sender_assertions(t: ParaToSystemParaTest) { let system_para_native_asset_location = v3::Location::try_from(RelayLocation::get()).expect("conversion works"); let reservable_asset_location = - v3::Location::try_from(PenpalLocalReservableFromAssetHub::get()).expect("coversion works"); + v3::Location::try_from(PenpalLocalReservableFromAssetHub::get()).expect("conversion works"); PenpalA::assert_xcm_pallet_attempted_complete(Some(Weight::from_parts(864_610_000, 8799))); assert_expected_events!( PenpalA, @@ -246,7 +246,7 @@ fn para_to_system_para_assets_sender_assertions(t: ParaToSystemParaTest) { fn system_para_to_para_assets_receiver_assertions(t: SystemParaToParaTest) { type RuntimeEvent = ::RuntimeEvent; let system_para_asset_location = - v3::Location::try_from(PenpalLocalReservableFromAssetHub::get()).expect("coversion works"); + v3::Location::try_from(PenpalLocalReservableFromAssetHub::get()).expect("conversion works"); PenpalA::assert_xcmp_queue_success(None); assert_expected_events!( PenpalA, @@ -524,7 +524,6 @@ fn reserve_transfer_native_asset_from_relay_to_para() { let destination = Westend::child_location_of(PenpalA::para_id()); let sender = WestendSender::get(); let amount_to_send: Balance = WESTEND_ED * 1000; - let assets: Assets = (Here, amount_to_send).into(); // Init values fot Parachain let relay_native_asset_location = @@ -552,15 +551,6 @@ fn reserve_transfer_native_asset_from_relay_to_para() { test.set_dispatchable::(relay_to_para_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = Westend::execute_with(|| { - let reanchored_assets = - assets.reanchored(&destination, &WestendUniversalLocation::get()).unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_balance_after = test.sender.balance; let receiver_assets_after = PenpalA::execute_with(|| { @@ -568,8 +558,8 @@ fn reserve_transfer_native_asset_from_relay_to_para() { >::balance(relay_native_asset_location.into(), &receiver) }); - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_balance_after < sender_balance_before - amount_to_send); // Receiver's asset balance is increased assert!(receiver_assets_after > receiver_assets_before); // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; @@ -595,7 +585,7 @@ fn reserve_transfer_native_asset_from_para_to_relay() { ::RuntimeOrigin::signed(asset_owner), relay_native_asset_location, sender.clone(), - amount_to_send, + amount_to_send * 2, ); // Init values for Relay @@ -634,15 +624,6 @@ fn reserve_transfer_native_asset_from_para_to_relay() { test.set_dispatchable::(para_to_relay_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = PenpalA::execute_with(|| { - let reanchored_assets = - assets.reanchored(&destination, &PenpalUniversalLocation::get()).unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_assets_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; @@ -650,8 +631,8 @@ fn reserve_transfer_native_asset_from_para_to_relay() { }); let receiver_balance_after = test.receiver.balance; - // Sender's balance is reduced - assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); // Receiver's asset balance is increased assert!(receiver_balance_after > receiver_balance_before); // Receiver's asset balance increased by `amount_to_send - delivery_fees - bought_execution`; @@ -705,16 +686,6 @@ fn reserve_transfer_native_asset_from_system_para_to_para() { test.set_dispatchable::(system_para_to_para_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = AssetHubWestend::execute_with(|| { - let reanchored_assets = assets - .reanchored(&destination, &AssetHubWestendUniversalLocation::get()) - .unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_balance_after = test.sender.balance; let receiver_assets_after = PenpalA::execute_with(|| { @@ -722,8 +693,8 @@ fn reserve_transfer_native_asset_from_system_para_to_para() { >::balance(system_para_native_asset_location, &receiver) }); - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_balance_after < sender_balance_before - amount_to_send); // Receiver's assets is increased assert!(receiver_assets_after > receiver_assets_before); // Receiver's assets increased by `amount_to_send - delivery_fees - bought_execution`; @@ -749,7 +720,7 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { ::RuntimeOrigin::signed(asset_owner), system_para_native_asset_location, sender.clone(), - amount_to_send, + amount_to_send * 2, ); // Init values for System Parachain @@ -789,15 +760,6 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { test.set_dispatchable::(para_to_system_para_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = PenpalA::execute_with(|| { - let reanchored_assets = - assets.reanchored(&destination, &PenpalUniversalLocation::get()).unwrap(); - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(reanchored_assets, 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_assets_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; @@ -805,8 +767,8 @@ fn reserve_transfer_native_asset_from_para_to_system_para() { }); let receiver_balance_after = test.receiver.balance; - // Sender's balance is reduced - assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); // Receiver's balance is increased assert!(receiver_balance_after > receiver_balance_before); // Receiver's balance increased by `amount_to_send - delivery_fees - bought_execution`; @@ -1086,13 +1048,13 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() { ::RuntimeOrigin::signed(asset_owner), relay_native_asset_location, sender.clone(), - amount_to_send, + amount_to_send * 2, ); // fund the Parachain Origin's SA on Relay Chain with the native tokens held in reserve Westend::fund_accounts(vec![(sov_of_sender_on_relay.into(), amount_to_send * 2)]); - // Init values for Parachain Desitnation + // Init values for Parachain Destination let receiver = PenpalBReceiver::get(); // Init Test @@ -1120,13 +1082,6 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() { test.set_dispatchable::(para_to_para_through_relay_limited_reserve_transfer_assets); test.assert(); - // Calculate delivery fees - let delivery_fees = PenpalA::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - // Query final balances let sender_assets_after = PenpalA::execute_with(|| { type ForeignAssets = ::ForeignAssets; @@ -1137,8 +1092,8 @@ fn reserve_transfer_native_asset_from_para_to_para_trough_relay() { >::balance(relay_native_asset_location, &receiver) }); - // Sender's balance is reduced - assert_eq!(sender_assets_before - amount_to_send - delivery_fees, sender_assets_after); + // Sender's balance is reduced by amount sent plus delivery fees + assert!(sender_assets_after < sender_assets_before - amount_to_send); // Receiver's balance is increased assert!(receiver_assets_after > receiver_assets_before); } diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/send.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/send.rs index eb0e985cc0ce6f84318f763cb37e707beaeca718..f218b539c387988f70314eff41c2e1ce4e97092b 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/send.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/send.rs @@ -75,10 +75,10 @@ fn send_xcm_from_para_to_system_para_paying_fee_with_system_assets_works() { )]); PenpalA::execute_with(|| { - assert_ok!(::PolkadotXcm::send( + assert_ok!(::PolkadotXcm::send_blob( root_origin, bx!(system_para_destination), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); PenpalA::assert_xcm_pallet_sent(); @@ -159,10 +159,10 @@ fn send_xcm_from_para_to_system_para_paying_fee_with_assets_works() { )]); PenpalA::execute_with(|| { - assert_ok!(::PolkadotXcm::send( + assert_ok!(::PolkadotXcm::send_blob( root_origin, bx!(system_para_destination), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); PenpalA::assert_xcm_pallet_sent(); diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/swap.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/swap.rs index 04740d3115834831356fd6dabf6a85ac5784270f..aa673c03483af13cae2ac146049399644b265b6b 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/swap.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/swap.rs @@ -369,10 +369,10 @@ fn pay_xcm_fee_with_some_asset_swapped_for_native() { penpal.clone(), ); - assert_ok!(::PolkadotXcm::send( + assert_ok!(::PolkadotXcm::send_blob( penpal_root, bx!(asset_hub_location), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); PenpalA::assert_xcm_pallet_sent(); diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/teleport.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/teleport.rs index 61f547fe7c5ec9b4368b9af5b17dbdf009177cda..ac518d2ed4a445836364a23df313b319b8193e78 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/teleport.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/teleport.rs @@ -245,16 +245,6 @@ fn relay_limited_teleport_assets(t: RelayToSystemParaTest) -> DispatchResult { ) } -fn relay_teleport_assets(t: RelayToSystemParaTest) -> DispatchResult { - ::XcmPallet::teleport_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - ) -} - fn system_para_limited_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult { ::PolkadotXcm::limited_teleport_assets( t.signed_origin, @@ -266,16 +256,6 @@ fn system_para_limited_teleport_assets(t: SystemParaToRelayTest) -> DispatchResu ) } -fn system_para_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult { - ::PolkadotXcm::teleport_assets( - t.signed_origin, - bx!(t.args.dest.into()), - bx!(t.args.beneficiary.into()), - bx!(t.args.assets.into()), - t.args.fee_asset_item, - ) -} - fn para_to_system_para_transfer_assets(t: ParaToSystemParaTest) -> DispatchResult { ::PolkadotXcm::transfer_assets( t.signed_origin, @@ -322,7 +302,7 @@ fn limited_teleport_native_assets_from_relay_to_system_para_works() { test.assert(); let delivery_fees = Westend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -369,7 +349,7 @@ fn limited_teleport_native_assets_back_from_system_para_to_relay_works() { let receiver_balance_after = test.receiver.balance; let delivery_fees = AssetHubWestend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -410,7 +390,7 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() { let receiver_balance_after = test.receiver.balance; let delivery_fees = AssetHubWestend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -421,129 +401,6 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() { assert_eq!(receiver_balance_after, receiver_balance_before); } -/// Teleport of native asset from Relay Chain to the System Parachain should work -#[test] -fn teleport_native_assets_from_relay_to_system_para_works() { - // Init values for Relay Chain - let amount_to_send: Balance = WESTEND_ED * 1000; - let dest = Westend::child_location_of(AssetHubWestend::para_id()); - let beneficiary_id = AssetHubWestendReceiver::get(); - let test_args = TestContext { - sender: WestendSender::get(), - receiver: AssetHubWestendReceiver::get(), - args: TestArgs::new_relay(dest, beneficiary_id, amount_to_send), - }; - - let mut test = RelayToSystemParaTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(relay_origin_assertions); - test.set_assertion::(para_dest_assertions); - test.set_dispatchable::(relay_teleport_assets); - test.assert(); - - let delivery_fees = Westend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - - let sender_balance_after = test.sender.balance; - let receiver_balance_after = test.receiver.balance; - - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); - // Receiver's balance is increased - assert!(receiver_balance_after > receiver_balance_before); -} - -/// Teleport of native asset from System Parachains to the Relay Chain -/// should work when there is enough balance in Relay Chain's `CheckAccount` -#[test] -fn teleport_native_assets_back_from_system_para_to_relay_works() { - // Dependency - Relay Chain's `CheckAccount` should have enough balance - teleport_native_assets_from_relay_to_system_para_works(); - - // Init values for Relay Chain - let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; - let destination = AssetHubWestend::parent_location(); - let beneficiary_id = WestendReceiver::get(); - let assets = (Parent, amount_to_send).into(); - - let test_args = TestContext { - sender: AssetHubWestendSender::get(), - receiver: WestendReceiver::get(), - args: TestArgs::new_para(destination, beneficiary_id, amount_to_send, assets, None, 0), - }; - - let mut test = SystemParaToRelayTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(para_origin_assertions); - test.set_assertion::(relay_dest_assertions); - test.set_dispatchable::(system_para_teleport_assets); - test.assert(); - - let sender_balance_after = test.sender.balance; - let receiver_balance_after = test.receiver.balance; - - let delivery_fees = AssetHubWestend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); - // Receiver's balance is increased - assert!(receiver_balance_after > receiver_balance_before); -} - -/// Teleport of native asset from System Parachain to Relay Chain -/// shouldn't work when there is not enough balance in Relay Chain's `CheckAccount` -#[test] -fn teleport_native_assets_from_system_para_to_relay_fails() { - // Init values for Relay Chain - let amount_to_send: Balance = ASSET_HUB_WESTEND_ED * 1000; - let destination = AssetHubWestend::parent_location(); - let beneficiary_id = WestendReceiver::get(); - let assets = (Parent, amount_to_send).into(); - - let test_args = TestContext { - sender: AssetHubWestendSender::get(), - receiver: WestendReceiver::get(), - args: TestArgs::new_para(destination, beneficiary_id, amount_to_send, assets, None, 0), - }; - - let mut test = SystemParaToRelayTest::new(test_args); - - let sender_balance_before = test.sender.balance; - let receiver_balance_before = test.receiver.balance; - - test.set_assertion::(para_origin_assertions); - test.set_assertion::(relay_dest_assertions_fail); - test.set_dispatchable::(system_para_teleport_assets); - test.assert(); - - let delivery_fees = AssetHubWestend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< - ::XcmSender, - >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) - }); - - let sender_balance_after = test.sender.balance; - let receiver_balance_after = test.receiver.balance; - - // Sender's balance is reduced - assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after); - // Receiver's balance does not change - assert_eq!(receiver_balance_after, receiver_balance_before); -} - #[test] fn teleport_to_other_system_parachains_works() { let amount = ASSET_HUB_WESTEND_ED * 100; @@ -593,7 +450,7 @@ fn bidirectional_teleport_foreign_assets_between_para_and_asset_hub() { ::RuntimeOrigin::signed(asset_owner.clone()), system_para_native_asset_location, sender.clone(), - fee_amount_to_send, + fee_amount_to_send * 2, ); // No need to create the asset (only mint) as it exists in genesis. PenpalA::mint_asset( diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/Cargo.toml index 89f0d2a9ca6dacae72e73d5b6e8c310347389070..010c252658c06b8c8da706e42a3c40eae1b854e9 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/Cargo.toml @@ -12,7 +12,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.4.0", default-features = false } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } hex-literal = "0.4.1" # Substrate @@ -34,10 +34,10 @@ pallet-bridge-messages = { path = "../../../../../../../bridges/modules/messages bp-messages = { path = "../../../../../../../bridges/primitives/messages", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } testnet-parachains-constants = { path = "../../../../../runtimes/constants", features = ["rococo"] } cumulus-pallet-xcmp-queue = { path = "../../../../../../pallets/xcmp-queue", default-features = false } -bridge-hub-rococo-runtime = { path = "../../../../../../parachains/runtimes/bridge-hubs/bridge-hub-rococo", default-features = false } +bridge-hub-rococo-runtime = { path = "../../../../../runtimes/bridge-hubs/bridge-hub-rococo", default-features = false } emulated-integration-tests-common = { path = "../../../common", default-features = false } rococo-westend-system-emulated-network = { path = "../../../networks/rococo-westend-system" } rococo-system-emulated-network = { path = "../../../networks/rococo-system" } diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/send_xcm.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/send_xcm.rs index a1d871cdb618fdddfbbbc3e7812d0ec7f7ae7866..4bd041dc03f4216c9eddf811d325e8262873e473 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/send_xcm.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/send_xcm.rs @@ -14,6 +14,7 @@ // limitations under the License. use crate::tests::*; +use codec::Encode; #[test] fn send_xcm_from_rococo_relay_to_westend_asset_hub_should_fail_on_not_applicable() { @@ -26,7 +27,7 @@ fn send_xcm_from_rococo_relay_to_westend_asset_hub_should_fail_on_not_applicable let remote_xcm = Xcm(vec![ClearOrigin]); - let xcm = VersionedXcm::from(Xcm(vec![ + let xcm = VersionedXcm::from(Xcm::<()>(vec![ UnpaidExecution { weight_limit, check_origin }, ExportMessage { network: WestendId.into(), @@ -38,10 +39,10 @@ fn send_xcm_from_rococo_relay_to_westend_asset_hub_should_fail_on_not_applicable // Rococo Global Consensus // Send XCM message from Relay Chain to Bridge Hub source Parachain Rococo::execute_with(|| { - assert_ok!(::XcmPallet::send( + assert_ok!(::XcmPallet::send_blob( sudo_origin, bx!(destination), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); type RuntimeEvent = ::RuntimeEvent; diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/snowbridge.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/snowbridge.rs index 1e74d63e1d5235cc0e7bfd0d07f75655fdb3e5a5..780ba57f78a18c87c327db2acc5cd27442a0221b 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/snowbridge.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/snowbridge.rs @@ -20,17 +20,17 @@ use frame_support::pallet_prelude::TypeInfo; use hex_literal::hex; use rococo_system_emulated_network::penpal_emulated_chain::CustomizableAssetFromSystemAssetHub; use rococo_westend_system_emulated_network::BridgeHubRococoParaSender as BridgeHubRococoSender; -use snowbridge_core::outbound::OperatingMode; +use snowbridge_core::{inbound::InboundQueueFixture, outbound::OperatingMode}; use snowbridge_pallet_inbound_queue_fixtures::{ - register_token::make_register_token_message, - register_token_with_insufficient_fee::make_register_token_with_infufficient_fee_message, - send_token::make_send_token_message, send_token_to_penpal::make_send_token_to_penpal_message, - InboundQueueFixture, + register_token::make_register_token_message, send_token::make_send_token_message, + send_token_to_penpal::make_send_token_to_penpal_message, }; use snowbridge_pallet_system; -use snowbridge_router_primitives::inbound::GlobalConsensusEthereumConvertsFor; +use snowbridge_router_primitives::inbound::{ + Command, GlobalConsensusEthereumConvertsFor, MessageV1, VersionedMessage, +}; use sp_core::H256; -use sp_runtime::{ArithmeticError::Underflow, DispatchError::Arithmetic}; +use sp_runtime::{DispatchError::Token, TokenError::FundsUnavailable}; use testnet_parachains_constants::rococo::snowbridge::EthereumNetwork; const INITIAL_FUND: u128 = 5_000_000_000 * ROCOCO_ED; @@ -39,6 +39,7 @@ const TREASURY_ACCOUNT: [u8; 32] = hex!("6d6f646c70792f74727372790000000000000000000000000000000000000000"); const WETH: [u8; 20] = hex!("87d1f7fdfEe7f651FaBc8bFCB6E086C278b77A7d"); const ETHEREUM_DESTINATION_ADDRESS: [u8; 20] = hex!("44a57ee2f2FCcb85FDa2B0B18EBD0D8D2333700e"); +const INSUFFICIENT_XCM_FEE: u128 = 1000; #[derive(Encode, Decode, Debug, PartialEq, Eq, Clone, TypeInfo)] pub enum ControlCall { @@ -56,13 +57,11 @@ pub enum SnowbridgeControl { } pub fn send_inbound_message(fixture: InboundQueueFixture) -> DispatchResult { - EthereumBeaconClient::store_execution_header( - fixture.message.proof.block_hash, - fixture.execution_header, - 0, - H256::default(), - ); - + EthereumBeaconClient::store_finalized_header( + fixture.finalized_header, + fixture.block_roots_root, + ) + .unwrap(); EthereumInboundQueue::submit( RuntimeOrigin::signed(BridgeHubRococoSender::get()), fixture.message, @@ -83,7 +82,7 @@ fn create_agent() { let create_agent_call = SnowbridgeControl::Control(ControlCall::CreateAgent {}); // Construct XCM to create an agent for para 1001 - let remote_xcm = VersionedXcm::from(Xcm(vec![ + let remote_xcm = VersionedXcm::from(Xcm::<()>(vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, DescendOrigin(Parachain(origin_para).into()), Transact { @@ -96,10 +95,10 @@ fn create_agent() { // Rococo Global Consensus // Send XCM message from Relay Chain to Bridge Hub source Parachain Rococo::execute_with(|| { - assert_ok!(::XcmPallet::send( + assert_ok!(::XcmPallet::send_blob( sudo_origin, bx!(destination), - bx!(remote_xcm), + remote_xcm.encode().try_into().unwrap(), )); type RuntimeEvent = ::RuntimeEvent; @@ -141,7 +140,7 @@ fn create_channel() { let create_agent_call = SnowbridgeControl::Control(ControlCall::CreateAgent {}); // Construct XCM to create an agent for para 1001 - let create_agent_xcm = VersionedXcm::from(Xcm(vec![ + let create_agent_xcm = VersionedXcm::from(Xcm::<()>(vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, DescendOrigin(Parachain(origin_para).into()), Transact { @@ -154,7 +153,7 @@ fn create_channel() { let create_channel_call = SnowbridgeControl::Control(ControlCall::CreateChannel { mode: OperatingMode::Normal }); // Construct XCM to create a channel for para 1001 - let create_channel_xcm = VersionedXcm::from(Xcm(vec![ + let create_channel_xcm = VersionedXcm::from(Xcm::<()>(vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, DescendOrigin(Parachain(origin_para).into()), Transact { @@ -167,16 +166,16 @@ fn create_channel() { // Rococo Global Consensus // Send XCM message from Relay Chain to Bridge Hub source Parachain Rococo::execute_with(|| { - assert_ok!(::XcmPallet::send( + assert_ok!(::XcmPallet::send_blob( sudo_origin.clone(), bx!(destination.clone()), - bx!(create_agent_xcm), + create_agent_xcm.encode().try_into().unwrap(), )); - assert_ok!(::XcmPallet::send( + assert_ok!(::XcmPallet::send_blob( sudo_origin, bx!(destination), - bx!(create_channel_xcm), + create_channel_xcm.encode().try_into().unwrap(), )); type RuntimeEvent = ::RuntimeEvent; @@ -237,6 +236,46 @@ fn register_weth_token_from_ethereum_to_asset_hub() { }); } +/// Tests the registering of a token as an asset on AssetHub, and then subsequently sending +/// a token from Ethereum to AssetHub. +#[test] +fn send_token_from_ethereum_to_asset_hub() { + BridgeHubRococo::fund_para_sovereign(AssetHubRococo::para_id().into(), INITIAL_FUND); + + // Fund ethereum sovereign on AssetHub + AssetHubRococo::fund_accounts(vec![(AssetHubRococoReceiver::get(), INITIAL_FUND)]); + + BridgeHubRococo::execute_with(|| { + type RuntimeEvent = ::RuntimeEvent; + + // Construct RegisterToken message and sent to inbound queue + send_inbound_message(make_register_token_message()).unwrap(); + + // Construct SendToken message and sent to inbound queue + send_inbound_message(make_send_token_message()).unwrap(); + + // Check that the message was sent + assert_expected_events!( + BridgeHubRococo, + vec![ + RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. }) => {}, + ] + ); + }); + + AssetHubRococo::execute_with(|| { + type RuntimeEvent = ::RuntimeEvent; + + // Check that the token was received and issued as a foreign asset on AssetHub + assert_expected_events!( + AssetHubRococo, + vec![ + RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, + ] + ); + }); +} + /// Tests sending a token to a 3rd party parachain, called PenPal. The token reserve is /// still located on AssetHub. #[test] @@ -296,6 +335,10 @@ fn send_token_from_ethereum_to_penpal() { // Construct RegisterToken message and sent to inbound queue send_inbound_message(make_register_token_message()).unwrap(); + // Construct SendToken message to AssetHub(only for increase the nonce as the same order in + // smoke test) + send_inbound_message(make_send_token_message()).unwrap(); + // Construct SendToken message and sent to inbound queue send_inbound_message(make_send_token_to_penpal_message()).unwrap(); @@ -331,46 +374,6 @@ fn send_token_from_ethereum_to_penpal() { }); } -/// Tests the registering of a token as an asset on AssetHub, and then subsequently sending -/// a token from Ethereum to AssetHub. -#[test] -fn send_token_from_ethereum_to_asset_hub() { - BridgeHubRococo::fund_para_sovereign(AssetHubRococo::para_id().into(), INITIAL_FUND); - - // Fund ethereum sovereign on AssetHub - AssetHubRococo::fund_accounts(vec![(AssetHubRococoReceiver::get(), INITIAL_FUND)]); - - BridgeHubRococo::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - - // Construct RegisterToken message and sent to inbound queue - send_inbound_message(make_register_token_message()).unwrap(); - - // Construct SendToken message and sent to inbound queue - send_inbound_message(make_send_token_message()).unwrap(); - - // Check that the message was sent - assert_expected_events!( - BridgeHubRococo, - vec![ - RuntimeEvent::XcmpQueue(cumulus_pallet_xcmp_queue::Event::XcmpMessageSent { .. }) => {}, - ] - ); - }); - - AssetHubRococo::execute_with(|| { - type RuntimeEvent = ::RuntimeEvent; - - // Check that the token was received and issued as a foreign asset on AssetHub - assert_expected_events!( - AssetHubRococo, - vec![ - RuntimeEvent::ForeignAssets(pallet_assets::Event::Issued { .. }) => {}, - ] - ); - }); -} - /// Tests the full cycle of token transfers: /// - registering a token on AssetHub /// - sending a token to AssetHub @@ -458,12 +461,13 @@ fn send_weth_asset_from_asset_hub_to_ethereum() { AssetHubRococoReceiver::get(), ); // Send the Weth back to Ethereum - ::PolkadotXcm::reserve_transfer_assets( + ::PolkadotXcm::limited_reserve_transfer_assets( RuntimeOrigin::signed(AssetHubRococoReceiver::get()), Box::new(destination), Box::new(beneficiary), Box::new(multi_assets), 0, + Unlimited, ) .unwrap(); let free_balance_after = ::Balances::free_balance( @@ -506,16 +510,35 @@ fn send_weth_asset_from_asset_hub_to_ethereum() { }); } +#[test] +fn send_token_from_ethereum_to_asset_hub_fail_for_insufficient_fund() { + // Insufficient fund + BridgeHubRococo::fund_para_sovereign(AssetHubRococo::para_id().into(), 1_000); + + BridgeHubRococo::execute_with(|| { + assert_err!(send_inbound_message(make_register_token_message()), Token(FundsUnavailable)); + }); +} + #[test] fn register_weth_token_in_asset_hub_fail_for_insufficient_fee() { BridgeHubRococo::fund_para_sovereign(AssetHubRococo::para_id().into(), INITIAL_FUND); BridgeHubRococo::execute_with(|| { type RuntimeEvent = ::RuntimeEvent; - - // Construct RegisterToken message and sent to inbound queue - let message = make_register_token_with_infufficient_fee_message(); - send_inbound_message(message).unwrap(); + type EthereumInboundQueue = + ::EthereumInboundQueue; + let message_id: H256 = [0; 32].into(); + let message = VersionedMessage::V1(MessageV1 { + chain_id: CHAIN_ID, + command: Command::RegisterToken { + token: WETH.into(), + // Insufficient fee which should trigger the trap + fee: INSUFFICIENT_XCM_FEE, + }, + }); + let (xcm, _) = EthereumInboundQueue::do_convert(message_id, message).unwrap(); + let _ = EthereumInboundQueue::send_xcm(xcm, AssetHubRococo::para_id().into()).unwrap(); assert_expected_events!( BridgeHubRococo, @@ -536,13 +559,3 @@ fn register_weth_token_in_asset_hub_fail_for_insufficient_fee() { ); }); } - -#[test] -fn send_token_from_ethereum_to_asset_hub_fail_for_insufficient_fund() { - // Insufficient fund - BridgeHubRococo::fund_para_sovereign(AssetHubRococo::para_id().into(), 1_000); - - BridgeHubRococo::execute_with(|| { - assert_err!(send_inbound_message(make_register_token_message()), Arithmetic(Underflow)); - }); -} diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/Cargo.toml index 9d55903c858308b9382fda0fc03132d95b9f1028..9c45a7adeb4e5a3c112f0bb650e29e9a76a7e404 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/Cargo.toml @@ -11,6 +11,7 @@ publish = false workspace = true [dependencies] +codec = { package = "parity-scale-codec", version = "3.6.0" } # Substrate frame-support = { path = "../../../../../../../substrate/frame/support", default-features = false } @@ -30,8 +31,8 @@ pallet-bridge-messages = { path = "../../../../../../../bridges/modules/messages bp-messages = { path = "../../../../../../../bridges/primitives/messages", default-features = false } # Cumulus -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } cumulus-pallet-xcmp-queue = { path = "../../../../../../pallets/xcmp-queue", default-features = false } -bridge-hub-westend-runtime = { path = "../../../../../../parachains/runtimes/bridge-hubs/bridge-hub-westend", default-features = false } +bridge-hub-westend-runtime = { path = "../../../../../runtimes/bridge-hubs/bridge-hub-westend", default-features = false } emulated-integration-tests-common = { path = "../../../common", default-features = false } rococo-westend-system-emulated-network = { path = "../../../networks/rococo-westend-system" } diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/send_xcm.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/send_xcm.rs index b01be5e8dc84b4edf35651d0388baa1462b54c9b..f69747c17704cb47e11ec00e2d8a08a413fab0a4 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/send_xcm.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/send_xcm.rs @@ -14,6 +14,7 @@ // limitations under the License. use crate::tests::*; +use codec::Encode; #[test] fn send_xcm_from_westend_relay_to_rococo_asset_hub_should_fail_on_not_applicable() { @@ -26,7 +27,7 @@ fn send_xcm_from_westend_relay_to_rococo_asset_hub_should_fail_on_not_applicable let remote_xcm = Xcm(vec![ClearOrigin]); - let xcm = VersionedXcm::from(Xcm(vec![ + let xcm = VersionedXcm::from(Xcm::<()>(vec![ UnpaidExecution { weight_limit, check_origin }, ExportMessage { network: RococoId, @@ -38,10 +39,10 @@ fn send_xcm_from_westend_relay_to_rococo_asset_hub_should_fail_on_not_applicable // Westend Global Consensus // Send XCM message from Relay Chain to Bridge Hub source Parachain Westend::execute_with(|| { - assert_ok!(::XcmPallet::send( + assert_ok!(::XcmPallet::send_blob( sudo_origin, bx!(destination), - bx!(xcm), + xcm.encode().try_into().unwrap(), )); type RuntimeEvent = ::RuntimeEvent; diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/Cargo.toml index 609376c1fee606c6d3d284c0be8f5c30997acfb6..1570aa7662fcbbfe1b018251d2700ce2d653d165 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/Cargo.toml @@ -26,7 +26,7 @@ polkadot-runtime-common = { path = "../../../../../../../polkadot/runtime/common # Cumulus asset-test-utils = { path = "../../../../../runtimes/assets/test-utils" } -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } people-rococo-runtime = { path = "../../../../../runtimes/people/people-rococo" } emulated-integration-tests-common = { path = "../../../common", default-features = false } rococo-system-emulated-network = { path = "../../../networks/rococo-system" } diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/teleport.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/teleport.rs index 3abe5c6cf66a357a5dfcaa67649355846761bfd2..350d87d638ab25bd66a411a67fa3f109bdaffff9 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/teleport.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/teleport.rs @@ -155,7 +155,7 @@ fn limited_teleport_native_assets_from_relay_to_system_para_works() { test.assert(); let delivery_fees = Rococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -204,7 +204,7 @@ fn limited_teleport_native_assets_back_from_system_para_to_relay_works() { let receiver_balance_after = test.receiver.balance; let delivery_fees = PeopleRococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -248,7 +248,7 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() { let receiver_balance_after = test.receiver.balance; let delivery_fees = PeopleRococo::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/Cargo.toml index f2f3366798a0aacc77fe279efd1b47032c62c7dc..bc093dc0de6356d7cd98d20d12d63748ed248ff5 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/Cargo.toml @@ -26,7 +26,7 @@ polkadot-runtime-common = { path = "../../../../../../../polkadot/runtime/common # Cumulus asset-test-utils = { path = "../../../../../runtimes/assets/test-utils" } -parachains-common = { path = "../../../../../../parachains/common" } +parachains-common = { path = "../../../../../common" } people-westend-runtime = { path = "../../../../../runtimes/people/people-westend" } emulated-integration-tests-common = { path = "../../../common", default-features = false } westend-system-emulated-network = { path = "../../../networks/westend-system" } diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/teleport.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/teleport.rs index eef35a99a8331d0b84dcd8d3f8e848855fc56d41..8697477ba769329755b40a87132c62b213861cc4 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/teleport.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/teleport.rs @@ -155,7 +155,7 @@ fn limited_teleport_native_assets_from_relay_to_system_para_works() { test.assert(); let delivery_fees = Westend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -204,7 +204,7 @@ fn limited_teleport_native_assets_back_from_system_para_to_relay_works() { let receiver_balance_after = test.receiver.balance; let delivery_fees = PeopleWestend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); @@ -248,7 +248,7 @@ fn limited_teleport_native_assets_from_system_para_to_relay_fails() { let receiver_balance_after = test.receiver.balance; let delivery_fees = PeopleWestend::execute_with(|| { - xcm_helpers::transfer_assets_delivery_fees::< + xcm_helpers::teleport_assets_delivery_fees::< ::XcmSender, >(test.args.assets.clone(), 0, test.args.weight_limit, test.args.beneficiary, test.args.dest) }); diff --git a/cumulus/parachains/pallets/collective-content/Cargo.toml b/cumulus/parachains/pallets/collective-content/Cargo.toml index 691be02f5b8e390bf150713bcf127af1e2ce44b0..b3fac47cb4ae2d78bdf7431d877a4a6edeb34ebb 100644 --- a/cumulus/parachains/pallets/collective-content/Cargo.toml +++ b/cumulus/parachains/pallets/collective-content/Cargo.toml @@ -11,9 +11,9 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } -frame-benchmarking = { path = "../../../../substrate/frame/benchmarking", optional = true, default-features = false } +frame-benchmarking = { path = "../../../../substrate/frame/benchmarking", default-features = false, optional = true } frame-support = { path = "../../../../substrate/frame/support", default-features = false } frame-system = { path = "../../../../substrate/frame/system", default-features = false } diff --git a/cumulus/parachains/pallets/parachain-info/Cargo.toml b/cumulus/parachains/pallets/parachain-info/Cargo.toml index 0e2f965e1cffb114729b16612b12b146ce61e0da..17981d238fd1880e81ce04ebbe5b2a045ba27e41 100644 --- a/cumulus/parachains/pallets/parachain-info/Cargo.toml +++ b/cumulus/parachains/pallets/parachain-info/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } frame-support = { path = "../../../../substrate/frame/support", default-features = false } frame-system = { path = "../../../../substrate/frame/system", default-features = false } diff --git a/cumulus/parachains/pallets/ping/Cargo.toml b/cumulus/parachains/pallets/ping/Cargo.toml index 1afd55eb0b9273d37d025eb3520c9dd8be122048..15169b08b9108998d850f6333e458d73580d1b2a 100644 --- a/cumulus/parachains/pallets/ping/Cargo.toml +++ b/cumulus/parachains/pallets/ping/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } sp-std = { path = "../../../../substrate/primitives/std", default-features = false } sp-runtime = { path = "../../../../substrate/primitives/runtime", default-features = false } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml index 95691a045b72284c5d42218f4346b0dbb9e62e8f..0733156716c11a6e1e50c9d921f059a2e2c1b193 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml @@ -13,7 +13,7 @@ workspace = true codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } hex-literal = { version = "0.4.1" } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true } @@ -78,6 +78,7 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -86,10 +87,10 @@ assets-common = { path = "../common", default-features = false } # Bridges pallet-xcm-bridge-hub-router = { path = "../../../../../bridges/modules/xcm-bridge-hub-router", default-features = false } -bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false } -bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false } -bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false } -bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false } +bp-asset-hub-rococo = { path = "../../../../../bridges/chains/chain-asset-hub-rococo", default-features = false } +bp-asset-hub-westend = { path = "../../../../../bridges/chains/chain-asset-hub-westend", default-features = false } +bp-bridge-hub-rococo = { path = "../../../../../bridges/chains/chain-bridge-hub-rococo", default-features = false } +bp-bridge-hub-westend = { path = "../../../../../bridges/chains/chain-bridge-hub-westend", default-features = false } snowbridge-router-primitives = { path = "../../../../../bridges/snowbridge/primitives/router", default-features = false } [dev-dependencies] @@ -190,6 +191,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs index 689d8d56c48ba9fd4bbb129a7c1d0f8eec5ec426..9e21d11332379fee0b8ce86e4d5849b5761116bc 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs @@ -55,7 +55,7 @@ use cumulus_primitives_core::ParaId; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, ord_parameter_types, parameter_types, traits::{ fungible, fungibles, tokens::imbalance::ResolveAssetTo, AsEnsureOriginWithArg, ConstBool, @@ -226,7 +226,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; @@ -660,6 +660,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl parachain_info::Config for Runtime {} @@ -954,6 +955,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_asset_conversion_tx_payment::ChargeAssetTxPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1647,12 +1649,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm.rs index 51b6543bae82ba496998706ab6c2aaf6e0ff604b..e0e231d7da279022293d42aa5e3b3fc1b8ad12d5 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024 // Executed Command: @@ -64,8 +64,30 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 22_136_000 picoseconds. - Weight::from_parts(22_518_000, 0) + // Minimum execution time: 21_224_000 picoseconds. + Weight::from_parts(21_821_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 21_474_000 picoseconds. + Weight::from_parts(22_072_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 92_277_000 picoseconds. - Weight::from_parts(94_843_000, 0) + // Minimum execution time: 90_677_000 picoseconds. + Weight::from_parts(93_658_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -118,8 +140,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `400` // Estimated: `6196` - // Minimum execution time: 120_110_000 picoseconds. - Weight::from_parts(122_968_000, 0) + // Minimum execution time: 116_767_000 picoseconds. + Weight::from_parts(118_843_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -148,8 +170,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `496` // Estimated: `6208` - // Minimum execution time: 143_116_000 picoseconds. - Weight::from_parts(147_355_000, 0) + // Minimum execution time: 137_983_000 picoseconds. + Weight::from_parts(141_396_000, 0) .saturating_add(Weight::from_parts(0, 6208)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(7)) @@ -164,14 +186,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_517_000 picoseconds. - Weight::from_parts(6_756_000, 0) + // Minimum execution time: 6_232_000 picoseconds. + Weight::from_parts(6_507_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -181,8 +213,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_894_000 picoseconds. - Weight::from_parts(2_024_000, 0) + // Minimum execution time: 1_884_000 picoseconds. + Weight::from_parts(2_016_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -208,8 +240,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 27_314_000 picoseconds. - Weight::from_parts(28_787_000, 0) + // Minimum execution time: 26_637_000 picoseconds. + Weight::from_parts(27_616_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -234,8 +266,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3828` - // Minimum execution time: 29_840_000 picoseconds. - Weight::from_parts(30_589_000, 0) + // Minimum execution time: 28_668_000 picoseconds. + Weight::from_parts(29_413_000, 0) .saturating_add(Weight::from_parts(0, 3828)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -246,8 +278,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_893_000 picoseconds. - Weight::from_parts(2_017_000, 0) + // Minimum execution time: 1_990_000 picoseconds. + Weight::from_parts(2_114_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -257,8 +289,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `159` // Estimated: `13524` - // Minimum execution time: 19_211_000 picoseconds. - Weight::from_parts(19_552_000, 0) + // Minimum execution time: 18_856_000 picoseconds. + Weight::from_parts(19_430_000, 0) .saturating_add(Weight::from_parts(0, 13524)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -269,8 +301,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `163` // Estimated: `13528` - // Minimum execution time: 19_177_000 picoseconds. - Weight::from_parts(19_704_000, 0) + // Minimum execution time: 19_068_000 picoseconds. + Weight::from_parts(19_434_000, 0) .saturating_add(Weight::from_parts(0, 13528)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -281,8 +313,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `16013` - // Minimum execution time: 20_449_000 picoseconds. - Weight::from_parts(21_075_000, 0) + // Minimum execution time: 21_055_000 picoseconds. + Weight::from_parts(21_379_000, 0) .saturating_add(Weight::from_parts(0, 16013)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -304,8 +336,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `6152` - // Minimum execution time: 26_578_000 picoseconds. - Weight::from_parts(27_545_000, 0) + // Minimum execution time: 25_736_000 picoseconds. + Weight::from_parts(26_423_000, 0) .saturating_add(Weight::from_parts(0, 6152)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -316,8 +348,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `206` // Estimated: `11096` - // Minimum execution time: 11_646_000 picoseconds. - Weight::from_parts(11_944_000, 0) + // Minimum execution time: 11_853_000 picoseconds. + Weight::from_parts(12_215_000, 0) .saturating_add(Weight::from_parts(0, 11096)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -327,8 +359,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `170` // Estimated: `13535` - // Minimum execution time: 19_301_000 picoseconds. - Weight::from_parts(19_664_000, 0) + // Minimum execution time: 19_418_000 picoseconds. + Weight::from_parts(19_794_000, 0) .saturating_add(Weight::from_parts(0, 13535)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -351,8 +383,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `13577` - // Minimum execution time: 35_715_000 picoseconds. - Weight::from_parts(36_915_000, 0) + // Minimum execution time: 34_719_000 picoseconds. + Weight::from_parts(35_260_000, 0) .saturating_add(Weight::from_parts(0, 13577)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(4)) @@ -365,8 +397,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `1588` - // Minimum execution time: 4_871_000 picoseconds. - Weight::from_parts(5_066_000, 0) + // Minimum execution time: 4_937_000 picoseconds. + Weight::from_parts(5_203_000, 0) .saturating_add(Weight::from_parts(0, 1588)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -377,8 +409,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7740` // Estimated: `11205` - // Minimum execution time: 25_150_000 picoseconds. - Weight::from_parts(26_119_000, 0) + // Minimum execution time: 26_064_000 picoseconds. + Weight::from_parts(26_497_000, 0) .saturating_add(Weight::from_parts(0, 11205)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -389,8 +421,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `160` // Estimated: `3625` - // Minimum execution time: 38_248_000 picoseconds. - Weight::from_parts(39_122_000, 0) + // Minimum execution time: 37_132_000 picoseconds. + Weight::from_parts(37_868_000, 0) .saturating_add(Weight::from_parts(0, 3625)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs index c438361cc177eabe2bfc9056621d21e25db42db1..f71b5e9c5e88bdd560f7fab2ecbd31ff96f4cd0c 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs @@ -27,14 +27,13 @@ use assets_common::{ use frame_support::{ parameter_types, traits::{ - tokens::imbalance::ResolveAssetTo, ConstU32, Contains, Equals, Everything, Nothing, - PalletInfoAccess, + tokens::imbalance::{ResolveAssetTo, ResolveTo}, + ConstU32, Contains, Equals, Everything, Nothing, PalletInfoAccess, }, }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -192,7 +191,7 @@ pub type ForeignFungiblesTransactor = FungiblesAdapter< LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We dont need to check teleports here. + // We don't need to check teleports here. NoChecking, // The account to use for tracking teleports. CheckingAccount, @@ -286,8 +285,8 @@ impl Contains for SafeCallFilter { match call { RuntimeCall::System(frame_system::Call::set_storage { items }) if items.iter().all(|(k, _)| { - k.eq(&bridging::XcmBridgeHubRouterByteFee::key()) | - k.eq(&bridging::XcmBridgeHubRouterBaseFee::key()) | + k.eq(&bridging::XcmBridgeHubRouterByteFee::key()) || + k.eq(&bridging::XcmBridgeHubRouterBaseFee::key()) || k.eq(&bridging::to_ethereum::BridgeHubEthereumBaseFee::key()) }) => return true, @@ -569,7 +568,13 @@ impl xcm_executor::Config for XcmConfig { MaxInstructions, >; type Trader = ( - UsingComponents>, + UsingComponents< + WeightToFee, + TokenLocation, + AccountId, + Balances, + ResolveTo, + >, cumulus_primitives_utility::SwapFirstAssetTrader< TokenLocationV3, crate::AssetConversion, diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml index 950c6e62d72fa0c23544456fce76b49b1d5d3766..e25554ec0a5f1af99b86bce2c3c1f60f256aa53c 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml @@ -13,7 +13,7 @@ workspace = true codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } hex-literal = { version = "0.4.1", optional = true } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true } @@ -76,6 +76,7 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -84,10 +85,10 @@ assets-common = { path = "../common", default-features = false } # Bridges pallet-xcm-bridge-hub-router = { path = "../../../../../bridges/modules/xcm-bridge-hub-router", default-features = false } -bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false } -bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false } -bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false } -bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false } +bp-asset-hub-rococo = { path = "../../../../../bridges/chains/chain-asset-hub-rococo", default-features = false } +bp-asset-hub-westend = { path = "../../../../../bridges/chains/chain-asset-hub-westend", default-features = false } +bp-bridge-hub-rococo = { path = "../../../../../bridges/chains/chain-bridge-hub-rococo", default-features = false } +bp-bridge-hub-westend = { path = "../../../../../bridges/chains/chain-bridge-hub-westend", default-features = false } [dev-dependencies] hex-literal = "0.4.1" @@ -178,6 +179,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs index 48106b5f302d45bc7d4af104f9bb47e51854ab76..f3499a8d29211de521364937f02f6e402319acd1 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -37,7 +37,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, ord_parameter_types, parameter_types, traits::{ fungible, fungibles, @@ -210,7 +210,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; @@ -641,6 +641,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -926,6 +927,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_asset_conversion_tx_payment::ChargeAssetTxPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1724,12 +1726,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm.rs index 71facff87d35f350114850653acfbebeb5c29529..a36c25f96043dd9d2b183ff45c3030315bd5bd19 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-04-01, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-f3xfxtob-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -64,8 +64,30 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 21_630_000 picoseconds. - Weight::from_parts(22_306_000, 0) + // Minimum execution time: 21_050_000 picoseconds. + Weight::from_parts(21_834_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 21_164_000 picoseconds. + Weight::from_parts(21_656_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 91_802_000 picoseconds. - Weight::from_parts(93_672_000, 0) + // Minimum execution time: 92_497_000 picoseconds. + Weight::from_parts(95_473_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -118,8 +140,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `367` // Estimated: `6196` - // Minimum execution time: 118_930_000 picoseconds. - Weight::from_parts(122_306_000, 0) + // Minimum execution time: 120_059_000 picoseconds. + Weight::from_parts(122_894_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(5)) @@ -148,8 +170,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `496` // Estimated: `6208` - // Minimum execution time: 140_527_000 picoseconds. - Weight::from_parts(144_501_000, 0) + // Minimum execution time: 141_977_000 picoseconds. + Weight::from_parts(145_981_000, 0) .saturating_add(Weight::from_parts(0, 6208)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(7)) @@ -158,8 +180,16 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_556_000 picoseconds. - Weight::from_parts(7_798_000, 0) + // Minimum execution time: 7_426_000 picoseconds. + Weight::from_parts(7_791_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + fn execute_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_585_000 picoseconds. + Weight::from_parts(7_897_000, 0) .saturating_add(Weight::from_parts(0, 0)) } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) @@ -168,8 +198,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_373_000 picoseconds. - Weight::from_parts(6_603_000, 0) + // Minimum execution time: 6_224_000 picoseconds. + Weight::from_parts(6_793_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -179,8 +209,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_941_000 picoseconds. - Weight::from_parts(2_088_000, 0) + // Minimum execution time: 1_812_000 picoseconds. + Weight::from_parts(2_008_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -206,8 +236,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 27_080_000 picoseconds. - Weight::from_parts(27_820_000, 0) + // Minimum execution time: 26_586_000 picoseconds. + Weight::from_parts(27_181_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -232,8 +262,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3828` - // Minimum execution time: 28_850_000 picoseconds. - Weight::from_parts(29_506_000, 0) + // Minimum execution time: 28_295_000 picoseconds. + Weight::from_parts(29_280_000, 0) .saturating_add(Weight::from_parts(0, 3828)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -244,8 +274,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_033_000 picoseconds. - Weight::from_parts(2_201_000, 0) + // Minimum execution time: 1_803_000 picoseconds. + Weight::from_parts(1_876_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -255,8 +285,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `159` // Estimated: `13524` - // Minimum execution time: 18_844_000 picoseconds. - Weight::from_parts(19_197_000, 0) + // Minimum execution time: 18_946_000 picoseconds. + Weight::from_parts(19_456_000, 0) .saturating_add(Weight::from_parts(0, 13524)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -267,8 +297,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `163` // Estimated: `13528` - // Minimum execution time: 18_940_000 picoseconds. - Weight::from_parts(19_450_000, 0) + // Minimum execution time: 19_080_000 picoseconds. + Weight::from_parts(19_498_000, 0) .saturating_add(Weight::from_parts(0, 13528)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -279,8 +309,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `16013` - // Minimum execution time: 20_521_000 picoseconds. - Weight::from_parts(21_076_000, 0) + // Minimum execution time: 20_637_000 picoseconds. + Weight::from_parts(21_388_000, 0) .saturating_add(Weight::from_parts(0, 16013)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -302,8 +332,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `6152` - // Minimum execution time: 26_007_000 picoseconds. - Weight::from_parts(26_448_000, 0) + // Minimum execution time: 25_701_000 picoseconds. + Weight::from_parts(26_269_000, 0) .saturating_add(Weight::from_parts(0, 6152)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -314,8 +344,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `206` // Estimated: `11096` - // Minimum execution time: 11_584_000 picoseconds. - Weight::from_parts(12_080_000, 0) + // Minimum execution time: 11_949_000 picoseconds. + Weight::from_parts(12_249_000, 0) .saturating_add(Weight::from_parts(0, 11096)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -325,8 +355,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `170` // Estimated: `13535` - // Minimum execution time: 19_157_000 picoseconds. - Weight::from_parts(19_513_000, 0) + // Minimum execution time: 19_278_000 picoseconds. + Weight::from_parts(19_538_000, 0) .saturating_add(Weight::from_parts(0, 13535)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -349,8 +379,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `13577` - // Minimum execution time: 34_878_000 picoseconds. - Weight::from_parts(35_623_000, 0) + // Minimum execution time: 35_098_000 picoseconds. + Weight::from_parts(35_871_000, 0) .saturating_add(Weight::from_parts(0, 13577)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(4)) @@ -363,8 +393,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `103` // Estimated: `1588` - // Minimum execution time: 3_900_000 picoseconds. - Weight::from_parts(4_161_000, 0) + // Minimum execution time: 3_862_000 picoseconds. + Weight::from_parts(4_082_000, 0) .saturating_add(Weight::from_parts(0, 1588)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -375,8 +405,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7740` // Estimated: `11205` - // Minimum execution time: 25_731_000 picoseconds. - Weight::from_parts(26_160_000, 0) + // Minimum execution time: 25_423_000 picoseconds. + Weight::from_parts(25_872_000, 0) .saturating_add(Weight::from_parts(0, 11205)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -387,8 +417,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `160` // Estimated: `3625` - // Minimum execution time: 37_251_000 picoseconds. - Weight::from_parts(38_075_000, 0) + // Minimum execution time: 37_148_000 picoseconds. + Weight::from_parts(37_709_000, 0) .saturating_add(Weight::from_parts(0, 3625)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs index c993d61545a66c24826c0ab66e20546e3fa752b0..360b1a7055b70ab7448c6ca180207fc499fff9f8 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs @@ -27,14 +27,13 @@ use assets_common::{ use frame_support::{ parameter_types, traits::{ - tokens::imbalance::ResolveAssetTo, ConstU32, Contains, Equals, Everything, Nothing, - PalletInfoAccess, + tokens::imbalance::{ResolveAssetTo, ResolveTo}, + ConstU32, Contains, Equals, Everything, Nothing, PalletInfoAccess, }, }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, AssetFeeAsExistentialDepositMultiplier, ConcreteAssetFromSystem, RelayOrOtherSystemParachains, @@ -185,7 +184,7 @@ pub type ForeignFungiblesTransactor = FungiblesAdapter< LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We dont need to check teleports here. + // We don't need to check teleports here. NoChecking, // The account to use for tracking teleports. CheckingAccount, @@ -591,7 +590,13 @@ impl xcm_executor::Config for XcmConfig { MaxInstructions, >; type Trader = ( - UsingComponents>, + UsingComponents< + WeightToFee, + WestendLocation, + AccountId, + Balances, + ResolveTo, + >, cumulus_primitives_utility::SwapFirstAssetTrader< WestendLocationV3, crate::AssetConversion, diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs index 3ba9b9587d888bd1821751053ecaa19caacf814d..6696cb2322391c2dbad5f6c9a0afc4d5537de68c 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs @@ -618,7 +618,7 @@ fn test_asset_xcm_take_first_trader_with_refund() { // We actually use half of the weight let weight_used = bought / 2; - // Make sure refurnd works. + // Make sure refund works. let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); assert_eq!( @@ -745,7 +745,7 @@ fn test_that_buying_ed_refund_does_not_refund_for_take_first_trader() { // Buy weight should work assert_ok!(trader.buy_weight(bought, asset.into(), &ctx)); - // Should return None. We have a specific check making sure we dont go below ED for + // Should return None. We have a specific check making sure we don't go below ED for // drop payment assert_eq!(trader.refund_weight(bought, &ctx), None); diff --git a/cumulus/parachains/runtimes/assets/common/Cargo.toml b/cumulus/parachains/runtimes/assets/common/Cargo.toml index c9252375cfbf019c27a1ce0d5dc38f11db30cac5..12dfd9da1fffbc6d1be0edc40ab6de3ebcc78e20 100644 --- a/cumulus/parachains/runtimes/assets/common/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/common/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } log = { workspace = true } impl-trait-for-tuples = "0.2.2" diff --git a/cumulus/parachains/runtimes/assets/test-utils/src/test_cases.rs b/cumulus/parachains/runtimes/assets/test-utils/src/test_cases.rs index 53e10956bd0d1d233555a8e4df1ae23fe351c678..884b71369e79ad9713ea3cc8e243820862c9c20d 100644 --- a/cumulus/parachains/runtimes/assets/test-utils/src/test_cases.rs +++ b/cumulus/parachains/runtimes/assets/test-utils/src/test_cases.rs @@ -186,7 +186,7 @@ pub fn teleports_for_native_asset_works< // Mint funds into account to ensure it has enough balance to pay delivery fees let delivery_fees = - xcm_helpers::transfer_assets_delivery_fees::( + xcm_helpers::teleport_assets_delivery_fees::( (native_asset_id.clone(), native_asset_to_teleport_away.into()).into(), 0, Unlimited, @@ -579,7 +579,7 @@ pub fn teleports_for_foreign_assets_works< // Make sure the target account has enough native asset to pay for delivery fees let delivery_fees = - xcm_helpers::transfer_assets_delivery_fees::( + xcm_helpers::teleport_assets_delivery_fees::( (foreign_asset_id_location_latest.clone(), asset_to_teleport_away).into(), 0, Unlimited, @@ -1120,7 +1120,7 @@ pub fn create_and_manage_foreign_assets_for_local_consensus_parachain_assets_wor AssetId: Clone, AssetIdConverter: MaybeEquivalence, { - // foreign parachain with the same consenus currency as asset + // foreign parachain with the same consensus currency as asset let foreign_asset_id_location = Location::new(1, [Parachain(2222), GeneralIndex(1234567)]); let asset_id = AssetIdConverter::convert(&foreign_asset_id_location).unwrap(); diff --git a/cumulus/parachains/runtimes/assets/test-utils/src/test_cases_over_bridge.rs b/cumulus/parachains/runtimes/assets/test-utils/src/test_cases_over_bridge.rs index 1cce3b647cf0446a2246417b5383594fb501e600..0b2364dbb8bd858a95f6a109c800032cb286412b 100644 --- a/cumulus/parachains/runtimes/assets/test-utils/src/test_cases_over_bridge.rs +++ b/cumulus/parachains/runtimes/assets/test-utils/src/test_cases_over_bridge.rs @@ -386,7 +386,7 @@ pub fn receive_reserve_asset_deposited_from_different_consensus_works< existential_deposit, ); - // create foreign asset for wrapped/derivated representation + // create foreign asset for wrapped/derived representation assert_ok!( >::force_create( RuntimeHelper::::root_origin(), diff --git a/cumulus/parachains/runtimes/assets/test-utils/src/xcm_helpers.rs b/cumulus/parachains/runtimes/assets/test-utils/src/xcm_helpers.rs index f509a3a8acaad9ea2f499c2fa48ca72e0b0882d9..ca0e81fae42eda216f93ed6265dd6dd87f6de538 100644 --- a/cumulus/parachains/runtimes/assets/test-utils/src/xcm_helpers.rs +++ b/cumulus/parachains/runtimes/assets/test-utils/src/xcm_helpers.rs @@ -18,11 +18,10 @@ use xcm::latest::prelude::*; -/// Returns the delivery fees amount for pallet xcm's `teleport_assets` and -/// `reserve_transfer_assets` extrinsics. +/// Returns the delivery fees amount for pallet xcm's `teleport_assets` extrinsics. /// Because it returns only a `u128`, it assumes delivery fees are only paid /// in one asset and that asset is known. -pub fn transfer_assets_delivery_fees( +pub fn teleport_assets_delivery_fees( assets: Assets, fee_asset_item: u32, weight_limit: WeightLimit, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml index 8a6823ea3ee834e8588d7262500aabd733bcbec2..f5a75aa03acd01381666a30439789387ae699ac9 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml @@ -18,7 +18,7 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = ] } hex-literal = { version = "0.4.1" } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = [ +scale-info = { version = "2.11.1", default-features = false, features = [ "derive", ] } serde = { optional = true, features = ["derive"], workspace = true, default-features = true } @@ -78,6 +78,7 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f ] } cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } @@ -85,20 +86,20 @@ parachains-common = { path = "../../../common", default-features = false } testnet-parachains-constants = { path = "../../constants", default-features = false, features = ["rococo"] } # Bridges -bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false } -bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false } -bp-bridge-hub-polkadot = { path = "../../../../../bridges/primitives/chain-bridge-hub-polkadot", default-features = false } -bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false } -bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false } +bp-asset-hub-rococo = { path = "../../../../../bridges/chains/chain-asset-hub-rococo", default-features = false } +bp-asset-hub-westend = { path = "../../../../../bridges/chains/chain-asset-hub-westend", default-features = false } +bp-bridge-hub-polkadot = { path = "../../../../../bridges/chains/chain-bridge-hub-polkadot", default-features = false } +bp-bridge-hub-rococo = { path = "../../../../../bridges/chains/chain-bridge-hub-rococo", default-features = false } +bp-bridge-hub-westend = { path = "../../../../../bridges/chains/chain-bridge-hub-westend", default-features = false } bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false } bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false } bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false } -bp-polkadot-bulletin = { path = "../../../../../bridges/primitives/chain-polkadot-bulletin", default-features = false } +bp-polkadot-bulletin = { path = "../../../../../bridges/chains/chain-polkadot-bulletin", default-features = false } bp-polkadot-core = { path = "../../../../../bridges/primitives/polkadot-core", default-features = false } bp-relayers = { path = "../../../../../bridges/primitives/relayers", default-features = false } bp-runtime = { path = "../../../../../bridges/primitives/runtime", default-features = false } -bp-rococo = { path = "../../../../../bridges/primitives/chain-rococo", default-features = false } -bp-westend = { path = "../../../../../bridges/primitives/chain-westend", default-features = false } +bp-rococo = { path = "../../../../../bridges/chains/chain-rococo", default-features = false } +bp-westend = { path = "../../../../../bridges/chains/chain-westend", default-features = false } pallet-bridge-grandpa = { path = "../../../../../bridges/modules/grandpa", default-features = false } pallet-bridge-messages = { path = "../../../../../bridges/modules/messages", default-features = false } pallet-bridge-parachains = { path = "../../../../../bridges/modules/parachains", default-features = false } @@ -156,6 +157,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs index bf7483179f29bfdce2d258646a352bfb260b6f21..8db640d496013999b1b4e644d4eb7877412ae76b 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs @@ -38,7 +38,9 @@ pub mod xcm_config; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use snowbridge_beacon_primitives::{Fork, ForkVersions}; use snowbridge_core::{ - gwei, meth, outbound::Message, AgentId, AllowSiblingsOnly, PricingParameters, Rewards, + gwei, meth, + outbound::{Command, Fee}, + AgentId, AllowSiblingsOnly, PricingParameters, Rewards, }; use snowbridge_router_primitives::inbound::MessageToXcm; use sp_api::impl_runtime_apis; @@ -59,7 +61,7 @@ use cumulus_primitives_core::ParaId; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU32, ConstU64, ConstU8, TransformOrigin}, weights::{ConstantMultiplier, Weight}, @@ -98,8 +100,6 @@ use parachains_common::{ AVERAGE_ON_INITIALIZE_RATIO, NORMAL_DISPATCH_RATIO, }; -use polkadot_runtime_common::prod_or_fast; - #[cfg(feature = "runtime-benchmarks")] use benchmark_helpers::DoNothingRouter; @@ -130,6 +130,7 @@ pub type SignedExtra = ( bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages, bridge_to_bulletin_config::OnBridgeHubRococoRefundRococoBulletinMessages, ), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. @@ -316,7 +317,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -385,6 +386,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -503,7 +505,8 @@ parameter_types! { pub Parameters: PricingParameters = PricingParameters { exchange_rate: FixedU128::from_rational(1, 400), fee_per_gas: gwei(20), - rewards: Rewards { local: 1 * UNITS, remote: meth(1) } + rewards: Rewards { local: 1 * UNITS, remote: meth(1) }, + multiplier: FixedU128::from_rational(1, 1), }; } @@ -511,14 +514,14 @@ parameter_types! { pub mod benchmark_helpers { use crate::{EthereumBeaconClient, Runtime, RuntimeOrigin}; use codec::Encode; - use snowbridge_beacon_primitives::CompactExecutionHeader; + use snowbridge_beacon_primitives::BeaconHeader; use snowbridge_pallet_inbound_queue::BenchmarkHelper; use sp_core::H256; use xcm::latest::{Assets, Location, SendError, SendResult, SendXcm, Xcm, XcmHash}; impl BenchmarkHelper for Runtime { - fn initialize_storage(block_hash: H256, header: CompactExecutionHeader) { - EthereumBeaconClient::store_execution_header(block_hash, header, 0, H256::default()) + fn initialize_storage(beacon_header: BeaconHeader, block_roots_root: H256) { + EthereumBeaconClient::store_finalized_header(beacon_header, block_roots_root).unwrap(); } } @@ -639,14 +642,9 @@ parameter_types! { }; } -parameter_types! { - pub const MaxExecutionHeadersToKeep: u32 = prod_or_fast!(8192 * 2, 1000); -} - impl snowbridge_pallet_ethereum_client::Config for Runtime { type RuntimeEvent = RuntimeEvent; type ForkVersions = ChainForkVersions; - type MaxExecutionHeadersToKeep = MaxExecutionHeadersToKeep; type WeightInfo = weights::snowbridge_pallet_ethereum_client::WeightInfo; } @@ -1022,8 +1020,8 @@ impl_runtime_apis! { snowbridge_pallet_outbound_queue::api::prove_message::(leaf_index) } - fn calculate_fee(message: Message) -> Option { - snowbridge_pallet_outbound_queue::api::calculate_fee::(message) + fn calculate_fee(command: Command, parameters: Option>) -> Fee { + snowbridge_pallet_outbound_queue::api::calculate_fee::(command, parameters) } } @@ -1453,12 +1451,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } @@ -1496,7 +1498,8 @@ mod tests { ( bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(), bridge_to_bulletin_config::OnBridgeHubRococoRefundRococoBulletinMessages::default(), - ) + ), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::new(), ); // for BridgeHubRococo diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs index a732e1a573439c4b658191697024ac3c396c9de5..adfaa9ea2028e4b8880e17a1ccc471beb64c9a3c 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024 // Executed Command: @@ -64,8 +64,30 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 18_513_000 picoseconds. - Weight::from_parts(19_156_000, 0) + // Minimum execution time: 18_732_000 picoseconds. + Weight::from_parts(19_386_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 18_943_000 picoseconds. + Weight::from_parts(19_455_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `70` // Estimated: `3593` - // Minimum execution time: 88_096_000 picoseconds. - Weight::from_parts(89_732_000, 0) + // Minimum execution time: 88_917_000 picoseconds. + Weight::from_parts(91_611_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -126,8 +148,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `70` // Estimated: `3593` - // Minimum execution time: 88_239_000 picoseconds. - Weight::from_parts(89_729_000, 0) + // Minimum execution time: 88_587_000 picoseconds. + Weight::from_parts(90_303_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -142,14 +164,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_955_000 picoseconds. - Weight::from_parts(6_266_000, 0) + // Minimum execution time: 5_856_000 picoseconds. + Weight::from_parts(6_202_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,8 +191,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_868_000 picoseconds. - Weight::from_parts(1_961_000, 0) + // Minimum execution time: 1_797_000 picoseconds. + Weight::from_parts(1_970_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +218,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 24_388_000 picoseconds. - Weight::from_parts(25_072_000, 0) + // Minimum execution time: 24_479_000 picoseconds. + Weight::from_parts(25_058_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -212,8 +244,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 26_762_000 picoseconds. - Weight::from_parts(27_631_000, 0) + // Minimum execution time: 27_282_000 picoseconds. + Weight::from_parts(27_924_000, 0) .saturating_add(Weight::from_parts(0, 3720)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -224,8 +256,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_856_000 picoseconds. - Weight::from_parts(2_033_000, 0) + // Minimum execution time: 1_801_000 picoseconds. + Weight::from_parts(1_988_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -235,8 +267,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89` // Estimated: `13454` - // Minimum execution time: 17_718_000 picoseconds. - Weight::from_parts(18_208_000, 0) + // Minimum execution time: 16_509_000 picoseconds. + Weight::from_parts(16_939_000, 0) .saturating_add(Weight::from_parts(0, 13454)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -247,8 +279,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `93` // Estimated: `13458` - // Minimum execution time: 17_597_000 picoseconds. - Weight::from_parts(18_090_000, 0) + // Minimum execution time: 16_140_000 picoseconds. + Weight::from_parts(16_843_000, 0) .saturating_add(Weight::from_parts(0, 13458)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -259,8 +291,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `15946` - // Minimum execution time: 19_533_000 picoseconds. - Weight::from_parts(20_164_000, 0) + // Minimum execution time: 18_160_000 picoseconds. + Weight::from_parts(18_948_000, 0) .saturating_add(Weight::from_parts(0, 15946)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -282,8 +314,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `6046` - // Minimum execution time: 24_958_000 picoseconds. - Weight::from_parts(25_628_000, 0) + // Minimum execution time: 24_409_000 picoseconds. + Weight::from_parts(25_261_000, 0) .saturating_add(Weight::from_parts(0, 6046)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -294,8 +326,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `11026` - // Minimum execution time: 12_209_000 picoseconds. - Weight::from_parts(12_612_000, 0) + // Minimum execution time: 10_848_000 picoseconds. + Weight::from_parts(11_241_000, 0) .saturating_add(Weight::from_parts(0, 11026)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -305,8 +337,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `100` // Estimated: `13465` - // Minimum execution time: 17_844_000 picoseconds. - Weight::from_parts(18_266_000, 0) + // Minimum execution time: 16_609_000 picoseconds. + Weight::from_parts(17_044_000, 0) .saturating_add(Weight::from_parts(0, 13465)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -329,8 +361,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `13471` - // Minimum execution time: 34_131_000 picoseconds. - Weight::from_parts(34_766_000, 0) + // Minimum execution time: 32_500_000 picoseconds. + Weight::from_parts(33_475_000, 0) .saturating_add(Weight::from_parts(0, 13471)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(4)) @@ -343,8 +375,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `1517` - // Minimum execution time: 3_525_000 picoseconds. - Weight::from_parts(3_724_000, 0) + // Minimum execution time: 3_484_000 picoseconds. + Weight::from_parts(3_673_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -355,8 +387,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7669` // Estimated: `11134` - // Minimum execution time: 24_975_000 picoseconds. - Weight::from_parts(25_517_000, 0) + // Minimum execution time: 25_225_000 picoseconds. + Weight::from_parts(25_731_000, 0) .saturating_add(Weight::from_parts(0, 11134)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -367,8 +399,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 33_761_000 picoseconds. - Weight::from_parts(34_674_000, 0) + // Minimum execution time: 33_961_000 picoseconds. + Weight::from_parts(34_818_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_ethereum_client.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_ethereum_client.rs index 0d5f29c6ff2f21165e45649848bd24664acd7e19..c8017939b627c7500694b6a88d052731b6cf715c 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_ethereum_client.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_ethereum_client.rs @@ -126,26 +126,4 @@ impl snowbridge_pallet_ethereum_client::WeightInfo for .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: EthereumBeaconClient LatestFinalizedBlockRoot (r:1 w:0) - /// Proof: EthereumBeaconClient LatestFinalizedBlockRoot (max_values: Some(1), max_size: Some(32), added: 527, mode: MaxEncodedLen) - /// Storage: EthereumBeaconClient FinalizedBeaconState (r:1 w:0) - /// Proof: EthereumBeaconClient FinalizedBeaconState (max_values: None, max_size: Some(72), added: 2547, mode: MaxEncodedLen) - /// Storage: EthereumBeaconClient LatestExecutionState (r:1 w:1) - /// Proof: EthereumBeaconClient LatestExecutionState (max_values: Some(1), max_size: Some(80), added: 575, mode: MaxEncodedLen) - /// Storage: EthereumBeaconClient ExecutionHeaderIndex (r:1 w:1) - /// Proof: EthereumBeaconClient ExecutionHeaderIndex (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) - /// Storage: EthereumBeaconClient ExecutionHeaderMapping (r:1 w:1) - /// Proof: EthereumBeaconClient ExecutionHeaderMapping (max_values: None, max_size: Some(36), added: 2511, mode: MaxEncodedLen) - /// Storage: EthereumBeaconClient ExecutionHeaders (r:0 w:1) - /// Proof: EthereumBeaconClient ExecutionHeaders (max_values: None, max_size: Some(136), added: 2611, mode: MaxEncodedLen) - fn submit_execution_header() -> Weight { - // Proof Size summary in bytes: - // Measured: `386` - // Estimated: `3537` - // Minimum execution time: 108_761_000 picoseconds. - Weight::from_parts(113_158_000, 0) - .saturating_add(Weight::from_parts(0, 3537)) - .saturating_add(T::DbWeight::get().reads(5)) - .saturating_add(T::DbWeight::get().writes(4)) - } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_inbound_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_inbound_queue.rs index faf404f90cb34dd3825df585bb3221031147bb47..153c1d363be10888601dfa66bdcdf5e88af57001 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_inbound_queue.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/snowbridge_pallet_inbound_queue.rs @@ -58,12 +58,12 @@ impl snowbridge_pallet_inbound_queue::WeightInfo for We /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn submit() -> Weight { // Proof Size summary in bytes: - // Measured: `457` - // Estimated: `3601` - // Minimum execution time: 69_000_000 picoseconds. - Weight::from_parts(70_000_000, 0) - .saturating_add(Weight::from_parts(0, 3601)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(2)) + // Measured: `800` + // Estimated: `7200` + // Minimum execution time: 200_000_000 picoseconds. + Weight::from_parts(200_000_000, 0) + .saturating_add(Weight::from_parts(0, 7200)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(6)) } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs index 8934ff9b22729da0ea322792837d2a08d5829763..8de7aa742fc6887b37b19d9844455c3c3632dd7d 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs @@ -33,13 +33,13 @@ use bp_relayers::{PayRewardFromAccount, RewardsAccountOwner, RewardsAccountParam use bp_runtime::ChainId; use frame_support::{ parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, StoragePrefixedMap, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -295,8 +295,13 @@ impl xcm_executor::Config for XcmConfig { RuntimeCall, MaxInstructions, >; - type Trader = - UsingComponents>; + type Trader = UsingComponents< + WeightToFee, + TokenLocation, + AccountId, + Balances, + ResolveTo, Balances>, + >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetLocker = (); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs index 101b8d86d55790241d364fa50900a22ed0e418ef..5960ab7b55054f228d1e946e5d6e5ff7dd9706ac 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/snowbridge.rs @@ -187,6 +187,7 @@ fn construct_extrinsic( OnBridgeHubRococoRefundBridgeHubWestendMessages::default(), OnBridgeHubRococoRefundRococoBulletinMessages::default(), ), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::new(), ); let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap(); let signature = payload.using_encoded(|e| sender.sign(e)); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs index fad357b095148fd07db14762b764d29b4a4366fa..776c505fa640fa956ae07e9928ccf2f9293e80dd 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs @@ -64,6 +64,7 @@ fn construct_extrinsic( bridge_to_westend_config::OnBridgeHubRococoRefundBridgeHubWestendMessages::default(), bridge_to_bulletin_config::OnBridgeHubRococoRefundRococoBulletinMessages::default(), ), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::new(), ); let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap(); let signature = payload.using_encoded(|e| sender.sign(e)); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml index 4eb201eedc115edcdb337534c18a04ac5379ae80..86560caca99ca344065373330638c3232a417f21 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml @@ -16,7 +16,7 @@ substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.4.1" } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } serde = { optional = true, features = ["derive"], workspace = true, default-features = true } # Substrate @@ -71,31 +71,33 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } + pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } testnet-parachains-constants = { path = "../../constants", default-features = false, features = ["westend"] } # Bridges -bp-asset-hub-rococo = { path = "../../../../../bridges/primitives/chain-asset-hub-rococo", default-features = false } -bp-asset-hub-westend = { path = "../../../../../bridges/primitives/chain-asset-hub-westend", default-features = false } -bp-bridge-hub-rococo = { path = "../../../../../bridges/primitives/chain-bridge-hub-rococo", default-features = false } -bp-bridge-hub-westend = { path = "../../../../../bridges/primitives/chain-bridge-hub-westend", default-features = false } +bp-asset-hub-rococo = { path = "../../../../../bridges/chains/chain-asset-hub-rococo", default-features = false } +bp-asset-hub-westend = { path = "../../../../../bridges/chains/chain-asset-hub-westend", default-features = false } +bp-bridge-hub-rococo = { path = "../../../../../bridges/chains/chain-bridge-hub-rococo", default-features = false } +bp-bridge-hub-westend = { path = "../../../../../bridges/chains/chain-bridge-hub-westend", default-features = false } bp-header-chain = { path = "../../../../../bridges/primitives/header-chain", default-features = false } bp-messages = { path = "../../../../../bridges/primitives/messages", default-features = false } bp-parachains = { path = "../../../../../bridges/primitives/parachains", default-features = false } bp-polkadot-core = { path = "../../../../../bridges/primitives/polkadot-core", default-features = false } bp-relayers = { path = "../../../../../bridges/primitives/relayers", default-features = false } bp-runtime = { path = "../../../../../bridges/primitives/runtime", default-features = false } -bp-rococo = { path = "../../../../../bridges/primitives/chain-rococo", default-features = false } -bp-westend = { path = "../../../../../bridges/primitives/chain-westend", default-features = false } +bp-rococo = { path = "../../../../../bridges/chains/chain-rococo", default-features = false } +bp-westend = { path = "../../../../../bridges/chains/chain-westend", default-features = false } pallet-bridge-grandpa = { path = "../../../../../bridges/modules/grandpa", default-features = false } pallet-bridge-messages = { path = "../../../../../bridges/modules/messages", default-features = false } pallet-bridge-parachains = { path = "../../../../../bridges/modules/parachains", default-features = false } pallet-bridge-relayers = { path = "../../../../../bridges/modules/relayers", default-features = false } pallet-xcm-bridge-hub = { path = "../../../../../bridges/modules/xcm-bridge-hub", default-features = false } bridge-runtime-common = { path = "../../../../../bridges/bin/runtime-common", default-features = false } -bridge-hub-common = { path = "../../bridge-hubs/common", default-features = false } +bridge-hub-common = { path = "../common", default-features = false } [dev-dependencies] static_assertions = "1.1" @@ -128,6 +130,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs index 9bdea6b9a7dd72f7f280b456f6624f12153dbbba..909ee62482477e1517fd0611b386cf2279b2eb45 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs @@ -55,7 +55,7 @@ use bridge_hub_common::{ use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU32, ConstU64, ConstU8, TransformOrigin}, weights::{ConstantMultiplier, Weight}, @@ -109,6 +109,7 @@ pub type SignedExtra = ( pallet_transaction_payment::ChargeTransactionPayment, BridgeRejectObsoleteHeadersAndMessages, (bridge_to_rococo_config::OnBridgeHubWestendRefundBridgeHubRococoMessages,), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. @@ -290,7 +291,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -348,6 +349,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -1110,12 +1112,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } @@ -1153,6 +1159,7 @@ mod tests { ( bridge_to_rococo_config::OnBridgeHubWestendRefundBridgeHubRococoMessages::default(), ), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::new() ); { diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs index a78ff2355efaf06562e44828a8df0730481d4098..9cf4c61466a1bd37ffea56681648b2c2e2ce4555 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -64,8 +64,30 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 19_527_000 picoseconds. - Weight::from_parts(19_839_000, 0) + // Minimum execution time: 19_702_000 picoseconds. + Weight::from_parts(20_410_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 19_525_000 picoseconds. + Weight::from_parts(20_071_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `3593` - // Minimum execution time: 90_938_000 picoseconds. - Weight::from_parts(92_822_000, 0) + // Minimum execution time: 91_793_000 picoseconds. + Weight::from_parts(93_761_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -126,8 +148,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `107` // Estimated: `3593` - // Minimum execution time: 90_133_000 picoseconds. - Weight::from_parts(92_308_000, 0) + // Minimum execution time: 91_819_000 picoseconds. + Weight::from_parts(93_198_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -142,14 +164,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_205_000 picoseconds. - Weight::from_parts(6_595_000, 0) + // Minimum execution time: 6_183_000 picoseconds. + Weight::from_parts(6_598_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,8 +191,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_927_000 picoseconds. - Weight::from_parts(2_062_000, 0) + // Minimum execution time: 1_987_000 picoseconds. + Weight::from_parts(2_076_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +218,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 25_078_000 picoseconds. - Weight::from_parts(25_782_000, 0) + // Minimum execution time: 25_375_000 picoseconds. + Weight::from_parts(26_165_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -212,8 +244,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 28_188_000 picoseconds. - Weight::from_parts(28_826_000, 0) + // Minimum execution time: 28_167_000 picoseconds. + Weight::from_parts(28_792_000, 0) .saturating_add(Weight::from_parts(0, 3720)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -224,8 +256,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_886_000 picoseconds. - Weight::from_parts(1_991_000, 0) + // Minimum execution time: 2_039_000 picoseconds. + Weight::from_parts(2_211_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -235,8 +267,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89` // Estimated: `13454` - // Minimum execution time: 17_443_000 picoseconds. - Weight::from_parts(17_964_000, 0) + // Minimum execution time: 17_127_000 picoseconds. + Weight::from_parts(17_519_000, 0) .saturating_add(Weight::from_parts(0, 13454)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -247,8 +279,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `93` // Estimated: `13458` - // Minimum execution time: 17_357_000 picoseconds. - Weight::from_parts(18_006_000, 0) + // Minimum execution time: 16_701_000 picoseconds. + Weight::from_parts(17_250_000, 0) .saturating_add(Weight::from_parts(0, 13458)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -259,8 +291,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `15946` - // Minimum execution time: 18_838_000 picoseconds. - Weight::from_parts(19_688_000, 0) + // Minimum execution time: 18_795_000 picoseconds. + Weight::from_parts(19_302_000, 0) .saturating_add(Weight::from_parts(0, 15946)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -282,8 +314,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `6046` - // Minimum execution time: 25_517_000 picoseconds. - Weight::from_parts(26_131_000, 0) + // Minimum execution time: 25_007_000 picoseconds. + Weight::from_parts(25_786_000, 0) .saturating_add(Weight::from_parts(0, 6046)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -294,8 +326,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `11026` - // Minimum execution time: 11_587_000 picoseconds. - Weight::from_parts(11_963_000, 0) + // Minimum execution time: 11_534_000 picoseconds. + Weight::from_parts(11_798_000, 0) .saturating_add(Weight::from_parts(0, 11026)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -305,8 +337,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `100` // Estimated: `13465` - // Minimum execution time: 17_490_000 picoseconds. - Weight::from_parts(18_160_000, 0) + // Minimum execution time: 17_357_000 picoseconds. + Weight::from_parts(17_629_000, 0) .saturating_add(Weight::from_parts(0, 13465)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -329,8 +361,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `13471` - // Minimum execution time: 34_088_000 picoseconds. - Weight::from_parts(34_598_000, 0) + // Minimum execution time: 33_487_000 picoseconds. + Weight::from_parts(34_033_000, 0) .saturating_add(Weight::from_parts(0, 13471)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(4)) @@ -343,8 +375,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `1517` - // Minimum execution time: 3_566_000 picoseconds. - Weight::from_parts(3_754_000, 0) + // Minimum execution time: 3_688_000 picoseconds. + Weight::from_parts(3_854_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -355,8 +387,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7669` // Estimated: `11134` - // Minimum execution time: 25_078_000 picoseconds. - Weight::from_parts(25_477_000, 0) + // Minimum execution time: 26_336_000 picoseconds. + Weight::from_parts(26_873_000, 0) .saturating_add(Weight::from_parts(0, 11134)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -367,8 +399,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 34_661_000 picoseconds. - Weight::from_parts(35_411_000, 0) + // Minimum execution time: 34_633_000 picoseconds. + Weight::from_parts(35_171_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs index 840d0c9af0e5886eef81ea9bbc542279ff7a106f..dcefeeaef7095bd92f7595ac0c3b374874b1f0a1 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs @@ -22,12 +22,12 @@ use super::{ use crate::bridge_common_config::{DeliveryRewardInBalance, RequiredStakeForStakeAndSlash}; use frame_support::{ parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -244,8 +244,13 @@ impl xcm_executor::Config for XcmConfig { RuntimeCall, MaxInstructions, >; - type Trader = - UsingComponents>; + type Trader = UsingComponents< + WeightToFee, + WestendLocation, + AccountId, + Balances, + ResolveTo, Balances>, + >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetLocker = (); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs index 235b7f146c8e0f141999ef5a27fe1a21cde7b76b..988b10e1e2d8fac610c2feaec41d018012ec9fc3 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs @@ -78,6 +78,7 @@ fn construct_extrinsic( pallet_transaction_payment::ChargeTransactionPayment::::from(0), BridgeRejectObsoleteHeadersAndMessages::default(), (bridge_to_rococo_config::OnBridgeHubWestendRefundBridgeHubRococoMessages::default(),), + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::new(), ); let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap(); let signature = payload.using_encoded(|e| sender.sign(e)); diff --git a/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml index a4dcd19dc9e8675599eaad9c2d340eca5874e63b..2f5f783ce48fb19e1087e24e712fc4dc52b607da 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bridge-hub-common" -version = "0.0.0" +version = "0.1.0" authors.workspace = true edition.workspace = true description = "Bridge hub common utilities" @@ -8,7 +8,7 @@ license = "Apache-2.0" [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } frame-support = { path = "../../../../../substrate/frame/support", default-features = false } sp-std = { path = "../../../../../substrate/primitives/std", default-features = false } sp-core = { path = "../../../../../substrate/primitives/core", default-features = false } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 4224b3971398ed87c56aa90fe8f82d9f07e0e4bd..22821170a54c9ef0faf6fb3756b6d62234bf654a 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -13,7 +13,7 @@ workspace = true codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "max-encoded-len"] } hex-literal = { version = "0.4.1" } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true } @@ -77,6 +77,8 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } + pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } pallet-collective-content = { path = "../../../pallets/collective-content", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } @@ -172,6 +174,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index d3f588bf25ff21768f700a8b1c97007678bee17d..bf702ed6a4be309baee2706f686ab3c2f76c256c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -66,7 +66,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ fungible::HoldConsideration, ConstBool, ConstU16, ConstU32, ConstU64, ConstU8, @@ -223,7 +223,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; @@ -423,6 +423,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -712,6 +713,7 @@ pub type SignedExtra = ( frame_system::CheckEra, frame_system::CheckNonce, frame_system::CheckWeight, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -1060,12 +1062,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs index 5d427d850046ff030c6c5b6247426849227e7ea1..0edd5dfff2b8b714c6de0a34dcd095787673d39b 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -64,8 +64,30 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 21_813_000 picoseconds. - Weight::from_parts(22_332_000, 0) + // Minimum execution time: 21_911_000 picoseconds. + Weight::from_parts(22_431_000, 0) + .saturating_add(Weight::from_parts(0, 3610)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) + /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3610` + // Minimum execution time: 22_143_000 picoseconds. + Weight::from_parts(22_843_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -90,8 +112,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `214` // Estimated: `3679` - // Minimum execution time: 93_243_000 picoseconds. - Weight::from_parts(95_650_000, 0) + // Minimum execution time: 96_273_000 picoseconds. + Weight::from_parts(98_351_000, 0) .saturating_add(Weight::from_parts(0, 3679)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -126,8 +148,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `214` // Estimated: `3679` - // Minimum execution time: 96_199_000 picoseconds. - Weight::from_parts(98_620_000, 0) + // Minimum execution time: 95_571_000 picoseconds. + Weight::from_parts(96_251_000, 0) .saturating_add(Weight::from_parts(0, 3679)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -142,14 +164,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_442_000 picoseconds. - Weight::from_parts(6_682_000, 0) + // Minimum execution time: 6_227_000 picoseconds. + Weight::from_parts(6_419_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -159,8 +191,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_833_000 picoseconds. - Weight::from_parts(1_973_000, 0) + // Minimum execution time: 1_851_000 picoseconds. + Weight::from_parts(1_940_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -186,8 +218,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 27_318_000 picoseconds. - Weight::from_parts(28_224_000, 0) + // Minimum execution time: 27_449_000 picoseconds. + Weight::from_parts(28_513_000, 0) .saturating_add(Weight::from_parts(0, 3610)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(5)) @@ -212,8 +244,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `363` // Estimated: `3828` - // Minimum execution time: 29_070_000 picoseconds. - Weight::from_parts(30_205_000, 0) + // Minimum execution time: 29_477_000 picoseconds. + Weight::from_parts(30_251_000, 0) .saturating_add(Weight::from_parts(0, 3828)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -224,8 +256,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_904_000 picoseconds. - Weight::from_parts(2_033_000, 0) + // Minimum execution time: 1_894_000 picoseconds. + Weight::from_parts(2_009_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -235,8 +267,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `159` // Estimated: `13524` - // Minimum execution time: 18_348_000 picoseconds. - Weight::from_parts(18_853_000, 0) + // Minimum execution time: 17_991_000 picoseconds. + Weight::from_parts(18_651_000, 0) .saturating_add(Weight::from_parts(0, 13524)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -247,8 +279,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `163` // Estimated: `13528` - // Minimum execution time: 17_964_000 picoseconds. - Weight::from_parts(18_548_000, 0) + // Minimum execution time: 18_321_000 picoseconds. + Weight::from_parts(18_701_000, 0) .saturating_add(Weight::from_parts(0, 13528)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -259,8 +291,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `173` // Estimated: `16013` - // Minimum execution time: 19_708_000 picoseconds. - Weight::from_parts(20_157_000, 0) + // Minimum execution time: 19_762_000 picoseconds. + Weight::from_parts(20_529_000, 0) .saturating_add(Weight::from_parts(0, 16013)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -282,8 +314,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `6152` - // Minimum execution time: 26_632_000 picoseconds. - Weight::from_parts(27_314_000, 0) + // Minimum execution time: 26_927_000 picoseconds. + Weight::from_parts(27_629_000, 0) .saturating_add(Weight::from_parts(0, 6152)) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(3)) @@ -294,8 +326,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `206` // Estimated: `11096` - // Minimum execution time: 11_929_000 picoseconds. - Weight::from_parts(12_304_000, 0) + // Minimum execution time: 11_957_000 picoseconds. + Weight::from_parts(12_119_000, 0) .saturating_add(Weight::from_parts(0, 11096)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -305,8 +337,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `170` // Estimated: `13535` - // Minimum execution time: 18_599_000 picoseconds. - Weight::from_parts(19_195_000, 0) + // Minimum execution time: 17_942_000 picoseconds. + Weight::from_parts(18_878_000, 0) .saturating_add(Weight::from_parts(0, 13535)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -329,8 +361,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `212` // Estimated: `13577` - // Minimum execution time: 35_524_000 picoseconds. - Weight::from_parts(36_272_000, 0) + // Minimum execution time: 35_640_000 picoseconds. + Weight::from_parts(36_340_000, 0) .saturating_add(Weight::from_parts(0, 13577)) .saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().writes(4)) @@ -344,7 +376,7 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Measured: `103` // Estimated: `1588` // Minimum execution time: 4_044_000 picoseconds. - Weight::from_parts(4_238_000, 0) + Weight::from_parts(4_229_000, 0) .saturating_add(Weight::from_parts(0, 1588)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -355,8 +387,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7740` // Estimated: `11205` - // Minimum execution time: 25_741_000 picoseconds. - Weight::from_parts(26_301_000, 0) + // Minimum execution time: 26_262_000 picoseconds. + Weight::from_parts(26_842_000, 0) .saturating_add(Weight::from_parts(0, 11205)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -367,8 +399,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `160` // Estimated: `3625` - // Minimum execution time: 35_925_000 picoseconds. - Weight::from_parts(36_978_000, 0) + // Minimum execution time: 36_775_000 picoseconds. + Weight::from_parts(37_265_000, 0) .saturating_add(Weight::from_parts(0, 3625)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index b83106a5828402390d1bd237ceb510d78b020b6d..34c0deef534e10c67d7cfaa16f6c93c501e834f9 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -20,17 +20,15 @@ use super::{ }; use frame_support::{ parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, weights::Weight, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; -use parachains_common::{ - impls::ToStakingPot, - xcm_config::{ - AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, - RelayOrOtherSystemParachains, - }, +use parachains_common::xcm_config::{ + AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, + RelayOrOtherSystemParachains, }; use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::xcm_sender::ExponentialPrice; @@ -268,8 +266,13 @@ impl xcm_executor::Config for XcmConfig { type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; - type Trader = - UsingComponents>; + type Trader = UsingComponents< + WeightToFee, + WndLocation, + AccountId, + Balances, + ResolveTo, Balances>, + >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml b/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml index e4ac2016a726c4ba9ad63af2ddd332cc6dab415f..74c5b5f8115958d0894af621e6c7307e3f67b9b7 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml @@ -19,7 +19,7 @@ substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.4.1", optional = true } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate sp-api = { path = "../../../../../substrate/primitives/api", default-features = false } @@ -74,6 +74,8 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } + pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -90,6 +92,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs index e1586c7d9b29e1b72eab189f68db034d8414e264..56060aa123fc98a7443db68f515e09b68ccb6af7 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs @@ -48,7 +48,7 @@ use sp_version::RuntimeVersion; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU16, ConstU32, ConstU64, ConstU8}, weights::{ConstantMultiplier, Weight}, @@ -90,6 +90,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = @@ -231,7 +232,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type WeightToFee = WeightToFee; /// Relay Chain `TransactionByteFee` / 10 type LengthToFee = ConstantMultiplier; @@ -318,6 +319,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -792,12 +794,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml b/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml index eb92afc431147ef4fa7b64164c0bc5309a465bb7..ee9f5e87ec876d73d80eb088806f5b36f12079db 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml @@ -72,6 +72,7 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -88,6 +89,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs index 86eb5cdfcaf5ebf0a2cbbed87c2642eed6452405..1c67740ee54008cc78d5c18f553e53847852c835 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs @@ -38,7 +38,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, TransformOrigin}, weights::{ConstantMultiplier, Weight}, @@ -99,6 +99,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. @@ -243,7 +244,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -301,6 +302,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl parachain_info::Config for Runtime {} @@ -876,12 +878,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_broker.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_broker.rs index 2d30ddc612cb9544291b90ea9456e392ab3451d4..89b1c4c86632ff0d19ee4fe1428978303ef92082 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_broker.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_broker.rs @@ -16,26 +16,24 @@ //! Autogenerated weights for `pallet_broker` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2024-01-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-03-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-rococo-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain=coretime-rococo-dev -// --wasm-execution=compiled -// --pallet=pallet_broker -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* // --steps=50 // --repeat=20 -// --json +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_broker +// --chain=coretime-rococo-dev // --header=./cumulus/file_header.txt // --output=./cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/ @@ -56,8 +54,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_462_000 picoseconds. - Weight::from_parts(2_552_000, 0) + // Minimum execution time: 1_918_000 picoseconds. + Weight::from_parts(2_092_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -67,8 +65,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10888` // Estimated: `13506` - // Minimum execution time: 25_494_000 picoseconds. - Weight::from_parts(26_063_000, 0) + // Minimum execution time: 21_943_000 picoseconds. + Weight::from_parts(22_570_000, 0) .saturating_add(Weight::from_parts(0, 13506)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -79,8 +77,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `12090` // Estimated: `13506` - // Minimum execution time: 22_299_000 picoseconds. - Weight::from_parts(22_911_000, 0) + // Minimum execution time: 20_923_000 picoseconds. + Weight::from_parts(21_354_000, 0) .saturating_add(Weight::from_parts(0, 13506)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -95,8 +93,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `466` // Estimated: `1951` - // Minimum execution time: 11_590_000 picoseconds. - Weight::from_parts(12_007_000, 0) + // Minimum execution time: 10_687_000 picoseconds. + Weight::from_parts(11_409_000, 0) .saturating_add(Weight::from_parts(0, 1951)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -124,11 +122,11 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `12567` // Estimated: `14052` - // Minimum execution time: 120_928_000 picoseconds. - Weight::from_parts(124_947_252, 0) + // Minimum execution time: 111_288_000 picoseconds. + Weight::from_parts(117_804_282, 0) .saturating_add(Weight::from_parts(0, 14052)) - // Standard Error: 435 - .saturating_add(Weight::from_parts(1_246, 0).saturating_mul(n.into())) + // Standard Error: 391 + .saturating_add(Weight::from_parts(1_243, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(66)) } @@ -144,8 +142,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `316` // Estimated: `3593` - // Minimum execution time: 32_826_000 picoseconds. - Weight::from_parts(33_889_000, 0) + // Minimum execution time: 33_006_000 picoseconds. + Weight::from_parts(34_256_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -166,8 +164,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `434` // Estimated: `4698` - // Minimum execution time: 57_362_000 picoseconds. - Weight::from_parts(58_994_000, 0) + // Minimum execution time: 61_473_000 picoseconds. + Weight::from_parts(66_476_000, 0) .saturating_add(Weight::from_parts(0, 4698)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -178,8 +176,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `357` // Estimated: `3550` - // Minimum execution time: 13_982_000 picoseconds. - Weight::from_parts(14_447_000, 0) + // Minimum execution time: 13_771_000 picoseconds. + Weight::from_parts(14_374_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -190,8 +188,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `357` // Estimated: `3550` - // Minimum execution time: 15_070_000 picoseconds. - Weight::from_parts(15_735_000, 0) + // Minimum execution time: 15_162_000 picoseconds. + Weight::from_parts(15_742_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -202,8 +200,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `357` // Estimated: `3550` - // Minimum execution time: 16_527_000 picoseconds. - Weight::from_parts(16_894_000, 0) + // Minimum execution time: 16_196_000 picoseconds. + Weight::from_parts(16_796_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) @@ -220,8 +218,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `936` // Estimated: `4681` - // Minimum execution time: 25_493_000 picoseconds. - Weight::from_parts(26_091_000, 0) + // Minimum execution time: 25_653_000 picoseconds. + Weight::from_parts(27_006_000, 0) .saturating_add(Weight::from_parts(0, 4681)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -240,8 +238,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1002` // Estimated: `5996` - // Minimum execution time: 31_498_000 picoseconds. - Weight::from_parts(32_560_000, 0) + // Minimum execution time: 31_114_000 picoseconds. + Weight::from_parts(32_235_000, 0) .saturating_add(Weight::from_parts(0, 5996)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -257,11 +255,11 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `652` // Estimated: `6196 + m * (2520 ±0)` - // Minimum execution time: 57_183_000 picoseconds. - Weight::from_parts(58_024_898, 0) + // Minimum execution time: 57_280_000 picoseconds. + Weight::from_parts(58_127_480, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 35_831 - .saturating_add(Weight::from_parts(1_384_446, 0).saturating_mul(m.into())) + // Standard Error: 41_670 + .saturating_add(Weight::from_parts(1_203_066, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -283,8 +281,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `215` // Estimated: `3680` - // Minimum execution time: 59_762_000 picoseconds. - Weight::from_parts(61_114_000, 0) + // Minimum execution time: 59_968_000 picoseconds. + Weight::from_parts(62_315_000, 0) .saturating_add(Weight::from_parts(0, 3680)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -297,8 +295,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `465` // Estimated: `3550` - // Minimum execution time: 41_473_000 picoseconds. - Weight::from_parts(44_155_000, 0) + // Minimum execution time: 50_887_000 picoseconds. + Weight::from_parts(57_366_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -313,8 +311,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `463` // Estimated: `3533` - // Minimum execution time: 56_672_000 picoseconds. - Weight::from_parts(58_086_000, 0) + // Minimum execution time: 84_472_000 picoseconds. + Weight::from_parts(96_536_000, 0) .saturating_add(Weight::from_parts(0, 3533)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -331,8 +329,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `857` // Estimated: `3593` - // Minimum execution time: 64_460_000 picoseconds. - Weight::from_parts(65_894_000, 0) + // Minimum execution time: 96_371_000 picoseconds. + Weight::from_parts(104_659_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -345,8 +343,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `957` // Estimated: `4698` - // Minimum execution time: 37_447_000 picoseconds. - Weight::from_parts(42_318_000, 0) + // Minimum execution time: 51_741_000 picoseconds. + Weight::from_parts(54_461_000, 0) .saturating_add(Weight::from_parts(0, 4698)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -366,8 +364,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 21_219_000 picoseconds. - Weight::from_parts(22_084_648, 0) + // Minimum execution time: 19_901_000 picoseconds. + Weight::from_parts(21_028_116, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -379,11 +377,11 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `266` // Estimated: `1487` - // Minimum execution time: 5_792_000 picoseconds. - Weight::from_parts(6_358_588, 0) + // Minimum execution time: 5_987_000 picoseconds. + Weight::from_parts(6_412_478, 0) .saturating_add(Weight::from_parts(0, 1487)) - // Standard Error: 20 - .saturating_add(Weight::from_parts(26, 0).saturating_mul(n.into())) + // Standard Error: 16 + .saturating_add(Weight::from_parts(47, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -397,8 +395,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `447` // Estimated: `6196` - // Minimum execution time: 38_690_000 picoseconds. - Weight::from_parts(39_706_000, 0) + // Minimum execution time: 38_623_000 picoseconds. + Weight::from_parts(39_773_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -414,15 +412,13 @@ impl pallet_broker::WeightInfo for WeightInfo { /// Storage: `Broker::Workplan` (r:0 w:60) /// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. - fn rotate_sale(n: u32, ) -> Weight { + fn rotate_sale(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `12514` // Estimated: `13506` - // Minimum execution time: 93_531_000 picoseconds. - Weight::from_parts(95_836_318, 0) + // Minimum execution time: 97_074_000 picoseconds. + Weight::from_parts(101_247_740, 0) .saturating_add(Weight::from_parts(0, 13506)) - // Standard Error: 113 - .saturating_add(Weight::from_parts(329, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(65)) } @@ -434,8 +430,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3493` - // Minimum execution time: 6_506_000 picoseconds. - Weight::from_parts(6_783_000, 0) + // Minimum execution time: 6_317_000 picoseconds. + Weight::from_parts(6_521_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -458,8 +454,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1321` // Estimated: `4786` - // Minimum execution time: 31_927_000 picoseconds. - Weight::from_parts(32_748_000, 0) + // Minimum execution time: 32_575_000 picoseconds. + Weight::from_parts(33_299_000, 0) .saturating_add(Weight::from_parts(0, 4786)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -478,8 +474,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 15_682_000 picoseconds. - Weight::from_parts(16_012_000, 0) + // Minimum execution time: 15_256_000 picoseconds. + Weight::from_parts(15_927_000, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -490,8 +486,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_147_000 picoseconds. - Weight::from_parts(2_281_000, 0) + // Minimum execution time: 1_783_000 picoseconds. + Weight::from_parts(1_904_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -509,10 +505,22 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398` // Estimated: `3863` - // Minimum execution time: 12_015_000 picoseconds. - Weight::from_parts(12_619_000, 0) + // Minimum execution time: 12_307_000 picoseconds. + Weight::from_parts(12_967_000, 0) .saturating_add(Weight::from_parts(0, 3863)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `Broker::Leases` (r:1 w:1) + /// Proof: `Broker::Leases` (`max_values`: Some(1), `max_size`: Some(401), added: 896, mode: `MaxEncodedLen`) + fn swap_leases() -> Weight { + // Proof Size summary in bytes: + // Measured: `470` + // Estimated: `1886` + // Minimum execution time: 6_597_000 picoseconds. + Weight::from_parts(6_969_000, 0) + .saturating_add(Weight::from_parts(0, 1886)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_xcm.rs index c5d315467c1ed8b2aabf7ac18abe10931a02951b..df0044089c8f6fb558d368e2f006a6a4fbd9fb97 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-rococo-dev")`, DB CACHE: 1024 // Executed Command: @@ -62,8 +62,28 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 35_051_000 picoseconds. - Weight::from_parts(35_200_000, 0) + // Minimum execution time: 18_767_000 picoseconds. + Weight::from_parts(19_420_000, 0) + .saturating_add(Weight::from_parts(0, 3539)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `74` + // Estimated: `3539` + // Minimum execution time: 19_184_000 picoseconds. + Weight::from_parts(19_695_000, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -84,8 +104,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3571` - // Minimum execution time: 56_235_000 picoseconds. - Weight::from_parts(58_178_000, 0) + // Minimum execution time: 58_120_000 picoseconds. + Weight::from_parts(59_533_000, 0) .saturating_add(Weight::from_parts(0, 3571)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,14 +140,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_226_000 picoseconds. - Weight::from_parts(6_403_000, 0) + // Minimum execution time: 6_074_000 picoseconds. + Weight::from_parts(6_398_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,8 +167,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_020_000 picoseconds. - Weight::from_parts(2_100_000, 0) + // Minimum execution time: 2_036_000 picoseconds. + Weight::from_parts(2_180_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,8 +192,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 24_387_000 picoseconds. - Weight::from_parts(24_814_000, 0) + // Minimum execution time: 25_014_000 picoseconds. + Weight::from_parts(25_374_000, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -186,8 +216,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `292` // Estimated: `3757` - // Minimum execution time: 27_039_000 picoseconds. - Weight::from_parts(27_693_000, 0) + // Minimum execution time: 27_616_000 picoseconds. + Weight::from_parts(28_499_000, 0) .saturating_add(Weight::from_parts(0, 3757)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -198,8 +228,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_920_000 picoseconds. - Weight::from_parts(2_082_000, 0) + // Minimum execution time: 2_061_000 picoseconds. + Weight::from_parts(2_153_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -209,8 +239,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89` // Estimated: `13454` - // Minimum execution time: 17_141_000 picoseconds. - Weight::from_parts(17_500_000, 0) + // Minimum execution time: 16_592_000 picoseconds. + Weight::from_parts(16_900_000, 0) .saturating_add(Weight::from_parts(0, 13454)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -221,8 +251,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `93` // Estimated: `13458` - // Minimum execution time: 17_074_000 picoseconds. - Weight::from_parts(17_431_000, 0) + // Minimum execution time: 16_694_000 picoseconds. + Weight::from_parts(16_905_000, 0) .saturating_add(Weight::from_parts(0, 13458)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -233,8 +263,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `15946` - // Minimum execution time: 19_139_000 picoseconds. - Weight::from_parts(19_474_000, 0) + // Minimum execution time: 17_779_000 picoseconds. + Weight::from_parts(18_490_000, 0) .saturating_add(Weight::from_parts(0, 15946)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -254,8 +284,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `6082` - // Minimum execution time: 24_346_000 picoseconds. - Weight::from_parts(25_318_000, 0) + // Minimum execution time: 24_526_000 picoseconds. + Weight::from_parts(25_182_000, 0) .saturating_add(Weight::from_parts(0, 6082)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) @@ -266,8 +296,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `11026` - // Minimum execution time: 11_777_000 picoseconds. - Weight::from_parts(12_051_000, 0) + // Minimum execution time: 10_467_000 picoseconds. + Weight::from_parts(10_934_000, 0) .saturating_add(Weight::from_parts(0, 11026)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -277,8 +307,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `100` // Estimated: `13465` - // Minimum execution time: 17_538_000 picoseconds. - Weight::from_parts(17_832_000, 0) + // Minimum execution time: 16_377_000 picoseconds. + Weight::from_parts(17_114_000, 0) .saturating_add(Weight::from_parts(0, 13465)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -299,8 +329,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `13507` - // Minimum execution time: 33_623_000 picoseconds. - Weight::from_parts(34_186_000, 0) + // Minimum execution time: 32_575_000 picoseconds. + Weight::from_parts(33_483_000, 0) .saturating_add(Weight::from_parts(0, 13507)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) @@ -313,8 +343,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `1517` - // Minimum execution time: 3_363_000 picoseconds. - Weight::from_parts(3_511_000, 0) + // Minimum execution time: 3_604_000 picoseconds. + Weight::from_parts(3_744_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -325,8 +355,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7669` // Estimated: `11134` - // Minimum execution time: 23_969_000 picoseconds. - Weight::from_parts(24_347_000, 0) + // Minimum execution time: 23_983_000 picoseconds. + Weight::from_parts(24_404_000, 0) .saturating_add(Weight::from_parts(0, 11134)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -337,8 +367,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 34_071_000 picoseconds. - Weight::from_parts(35_031_000, 0) + // Minimum execution time: 34_446_000 picoseconds. + Weight::from_parts(35_465_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs index 955f2eeba339c0e99a8364377dfc27ccc7557e80..afb68749f3b9b5872b53459ae00a79902b437aae 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs @@ -22,12 +22,12 @@ use super::{ use frame_support::{ pallet_prelude::PalletInfoAccess, parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -237,8 +237,13 @@ impl xcm_executor::Config for XcmConfig { RuntimeCall, MaxInstructions, >; - type Trader = - UsingComponents>; + type Trader = UsingComponents< + WeightToFee, + RocRelayLocation, + AccountId, + Balances, + ResolveTo, Balances>, + >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml b/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml index b8efecffc5075be04fb3a52410ae86410a01e48d..60cc7e2f765477052332b4c422facb8b19e1f5a4 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml @@ -71,6 +71,8 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } + pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -87,6 +89,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "frame-benchmarking?/std", "frame-executive/std", diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs index c31e474cc2f1718b5de4a8ebb88a19072deba1ba..696618c37a28bd5ec110c67e79d851c4fa8e58df 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs @@ -38,7 +38,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, TransformOrigin}, weights::{ConstantMultiplier, Weight}, @@ -99,6 +99,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. @@ -243,7 +244,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -301,6 +302,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl parachain_info::Config for Runtime {} @@ -867,12 +869,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_broker.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_broker.rs index 8727b9633b1f0eaca2bcaa5f7a43d832f6abbe9b..13d5fcf3898bcc07fce13c7ee2deeb8c2b9fa76f 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_broker.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_broker.rs @@ -17,25 +17,23 @@ //! Autogenerated weights for `pallet_broker` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-westend-dev")`, DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// target/production/polkadot-parachain // benchmark // pallet -// --chain=coretime-westend-dev -// --wasm-execution=compiled -// --pallet=pallet_broker -// --no-storage-info -// --no-median-slopes -// --no-min-squares -// --extrinsic=* // --steps=50 // --repeat=20 -// --json +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_broker +// --chain=coretime-westend-dev // --header=./cumulus/file_header.txt // --output=./cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/ @@ -56,8 +54,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_944_000 picoseconds. - Weight::from_parts(2_045_000, 0) + // Minimum execution time: 1_897_000 picoseconds. + Weight::from_parts(2_053_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -67,8 +65,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `10888` // Estimated: `13506` - // Minimum execution time: 21_158_000 picoseconds. - Weight::from_parts(21_572_000, 0) + // Minimum execution time: 22_550_000 picoseconds. + Weight::from_parts(22_871_000, 0) .saturating_add(Weight::from_parts(0, 13506)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -79,8 +77,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `12090` // Estimated: `13506` - // Minimum execution time: 20_497_000 picoseconds. - Weight::from_parts(20_995_000, 0) + // Minimum execution time: 21_170_000 picoseconds. + Weight::from_parts(21_645_000, 0) .saturating_add(Weight::from_parts(0, 13506)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -95,8 +93,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `146` // Estimated: `1631` - // Minimum execution time: 10_280_000 picoseconds. - Weight::from_parts(10_686_000, 0) + // Minimum execution time: 10_494_000 picoseconds. + Weight::from_parts(10_942_000, 0) .saturating_add(Weight::from_parts(0, 1631)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -120,15 +118,13 @@ impl pallet_broker::WeightInfo for WeightInfo { /// Storage: `Broker::Workplan` (r:0 w:20) /// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. - fn start_sales(n: u32, ) -> Weight { + fn start_sales(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `12247` // Estimated: `13732` - // Minimum execution time: 61_020_000 picoseconds. - Weight::from_parts(63_240_622, 0) + // Minimum execution time: 61_014_000 picoseconds. + Weight::from_parts(63_267_651, 0) .saturating_add(Weight::from_parts(0, 13732)) - // Standard Error: 102 - .saturating_add(Weight::from_parts(255, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().writes(26)) } @@ -144,8 +140,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `316` // Estimated: `3593` - // Minimum execution time: 30_627_000 picoseconds. - Weight::from_parts(31_648_000, 0) + // Minimum execution time: 30_931_000 picoseconds. + Weight::from_parts(31_941_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -166,8 +162,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `434` // Estimated: `4698` - // Minimum execution time: 57_701_000 picoseconds. - Weight::from_parts(59_825_000, 0) + // Minimum execution time: 57_466_000 picoseconds. + Weight::from_parts(65_042_000, 0) .saturating_add(Weight::from_parts(0, 4698)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -178,8 +174,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `357` // Estimated: `3550` - // Minimum execution time: 12_898_000 picoseconds. - Weight::from_parts(13_506_000, 0) + // Minimum execution time: 12_799_000 picoseconds. + Weight::from_parts(13_401_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -190,8 +186,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `357` // Estimated: `3550` - // Minimum execution time: 14_284_000 picoseconds. - Weight::from_parts(14_791_000, 0) + // Minimum execution time: 14_107_000 picoseconds. + Weight::from_parts(14_630_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -202,8 +198,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `357` // Estimated: `3550` - // Minimum execution time: 15_570_000 picoseconds. - Weight::from_parts(16_158_000, 0) + // Minimum execution time: 15_254_000 picoseconds. + Weight::from_parts(16_062_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) @@ -220,8 +216,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `735` // Estimated: `4681` - // Minimum execution time: 23_329_000 picoseconds. - Weight::from_parts(24_196_000, 0) + // Minimum execution time: 23_557_000 picoseconds. + Weight::from_parts(24_382_000, 0) .saturating_add(Weight::from_parts(0, 4681)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(2)) @@ -240,8 +236,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `801` // Estimated: `5996` - // Minimum execution time: 29_288_000 picoseconds. - Weight::from_parts(30_066_000, 0) + // Minimum execution time: 29_371_000 picoseconds. + Weight::from_parts(30_200_000, 0) .saturating_add(Weight::from_parts(0, 5996)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) @@ -257,11 +253,11 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `652` // Estimated: `6196 + m * (2520 ±0)` - // Minimum execution time: 54_833_000 picoseconds. - Weight::from_parts(55_577_423, 0) + // Minimum execution time: 54_331_000 picoseconds. + Weight::from_parts(55_322_165, 0) .saturating_add(Weight::from_parts(0, 6196)) - // Standard Error: 35_105 - .saturating_add(Weight::from_parts(1_267_911, 0).saturating_mul(m.into())) + // Standard Error: 35_225 + .saturating_add(Weight::from_parts(1_099_614, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes(5)) @@ -283,8 +279,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `215` // Estimated: `3680` - // Minimum execution time: 55_289_000 picoseconds. - Weight::from_parts(56_552_000, 0) + // Minimum execution time: 53_789_000 picoseconds. + Weight::from_parts(55_439_000, 0) .saturating_add(Weight::from_parts(0, 3680)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -297,8 +293,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `465` // Estimated: `3550` - // Minimum execution time: 39_736_000 picoseconds. - Weight::from_parts(41_346_000, 0) + // Minimum execution time: 43_941_000 picoseconds. + Weight::from_parts(49_776_000, 0) .saturating_add(Weight::from_parts(0, 3550)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -313,8 +309,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `463` // Estimated: `3533` - // Minimum execution time: 57_319_000 picoseconds. - Weight::from_parts(60_204_000, 0) + // Minimum execution time: 64_917_000 picoseconds. + Weight::from_parts(70_403_000, 0) .saturating_add(Weight::from_parts(0, 3533)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -331,8 +327,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `857` // Estimated: `3593` - // Minimum execution time: 85_216_000 picoseconds. - Weight::from_parts(91_144_000, 0) + // Minimum execution time: 72_633_000 picoseconds. + Weight::from_parts(79_305_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -345,8 +341,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `556` // Estimated: `4698` - // Minimum execution time: 32_331_000 picoseconds. - Weight::from_parts(39_877_000, 0) + // Minimum execution time: 36_643_000 picoseconds. + Weight::from_parts(48_218_000, 0) .saturating_add(Weight::from_parts(0, 4698)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) @@ -362,28 +358,28 @@ impl pallet_broker::WeightInfo for WeightInfo { /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 1000]`. - fn request_core_count(n: u32, ) -> Weight { + fn request_core_count(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 18_128_000 picoseconds. - Weight::from_parts(19_061_234, 0) + // Minimum execution time: 17_617_000 picoseconds. + Weight::from_parts(18_904_788, 0) .saturating_add(Weight::from_parts(0, 3539)) - // Standard Error: 48 - .saturating_add(Weight::from_parts(141, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } /// Storage: `Broker::CoreCountInbox` (r:1 w:1) /// Proof: `Broker::CoreCountInbox` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. - fn process_core_count(_n: u32, ) -> Weight { + fn process_core_count(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `266` // Estimated: `1487` - // Minimum execution time: 5_368_000 picoseconds. - Weight::from_parts(5_837_005, 0) + // Minimum execution time: 5_575_000 picoseconds. + Weight::from_parts(5_887_598, 0) .saturating_add(Weight::from_parts(0, 1487)) + // Standard Error: 16 + .saturating_add(Weight::from_parts(41, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -397,8 +393,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `447` // Estimated: `6196` - // Minimum execution time: 36_047_000 picoseconds. - Weight::from_parts(37_101_000, 0) + // Minimum execution time: 36_415_000 picoseconds. + Weight::from_parts(37_588_000, 0) .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) @@ -414,13 +410,15 @@ impl pallet_broker::WeightInfo for WeightInfo { /// Storage: `Broker::Workplan` (r:0 w:20) /// Proof: `Broker::Workplan` (`max_values`: None, `max_size`: Some(1216), added: 3691, mode: `MaxEncodedLen`) /// The range of component `n` is `[0, 1000]`. - fn rotate_sale(_n: u32, ) -> Weight { + fn rotate_sale(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `12194` // Estimated: `13506` - // Minimum execution time: 48_158_000 picoseconds. - Weight::from_parts(49_891_920, 0) + // Minimum execution time: 48_362_000 picoseconds. + Weight::from_parts(49_616_106, 0) .saturating_add(Weight::from_parts(0, 13506)) + // Standard Error: 61 + .saturating_add(Weight::from_parts(59, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(25)) } @@ -432,8 +430,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `42` // Estimated: `3493` - // Minimum execution time: 5_911_000 picoseconds. - Weight::from_parts(6_173_000, 0) + // Minimum execution time: 6_148_000 picoseconds. + Weight::from_parts(6_374_000, 0) .saturating_add(Weight::from_parts(0, 3493)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -456,8 +454,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `1321` // Estimated: `4786` - // Minimum execution time: 30_140_000 picoseconds. - Weight::from_parts(30_912_000, 0) + // Minimum execution time: 30_267_000 picoseconds. + Weight::from_parts(30_825_000, 0) .saturating_add(Weight::from_parts(0, 4786)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(4)) @@ -476,8 +474,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 13_684_000 picoseconds. - Weight::from_parts(14_252_000, 0) + // Minimum execution time: 13_491_000 picoseconds. + Weight::from_parts(13_949_000, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -488,8 +486,8 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_718_000 picoseconds. - Weight::from_parts(1_843_000, 0) + // Minimum execution time: 1_711_000 picoseconds. + Weight::from_parts(1_913_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -507,10 +505,22 @@ impl pallet_broker::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `398` // Estimated: `3863` - // Minimum execution time: 11_771_000 picoseconds. - Weight::from_parts(12_120_000, 0) + // Minimum execution time: 12_035_000 picoseconds. + Weight::from_parts(12_383_000, 0) .saturating_add(Weight::from_parts(0, 3863)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: `Broker::Leases` (r:1 w:1) + /// Proof: `Broker::Leases` (`max_values`: Some(1), `max_size`: Some(81), added: 576, mode: `MaxEncodedLen`) + fn swap_leases() -> Weight { + // Proof Size summary in bytes: + // Measured: `150` + // Estimated: `1566` + // Minimum execution time: 6_142_000 picoseconds. + Weight::from_parts(6_538_000, 0) + .saturating_add(Weight::from_parts(0, 1566)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_xcm.rs index 0082db3099d029c976779af8600bcaf4410e8a2f..a1701c5f1c2ced1bbdcac49863cc05ceb28a019f 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -62,8 +62,28 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 18_410_000 picoseconds. - Weight::from_parts(18_657_000, 0) + // Minimum execution time: 17_681_000 picoseconds. + Weight::from_parts(18_350_000, 0) + .saturating_add(Weight::from_parts(0, 3539)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `74` + // Estimated: `3539` + // Minimum execution time: 18_091_000 picoseconds. + Weight::from_parts(18_327_000, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -84,8 +104,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `3571` - // Minimum execution time: 56_616_000 picoseconds. - Weight::from_parts(57_751_000, 0) + // Minimum execution time: 54_943_000 picoseconds. + Weight::from_parts(56_519_000, 0) .saturating_add(Weight::from_parts(0, 3571)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,14 +140,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_014_000 picoseconds. - Weight::from_parts(6_412_000, 0) + // Minimum execution time: 5_887_000 picoseconds. + Weight::from_parts(6_101_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,8 +167,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_844_000 picoseconds. - Weight::from_parts(1_957_000, 0) + // Minimum execution time: 1_940_000 picoseconds. + Weight::from_parts(2_022_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,8 +192,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `74` // Estimated: `3539` - // Minimum execution time: 24_067_000 picoseconds. - Weight::from_parts(24_553_000, 0) + // Minimum execution time: 23_165_000 picoseconds. + Weight::from_parts(23_800_000, 0) .saturating_add(Weight::from_parts(0, 3539)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -186,8 +216,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `292` // Estimated: `3757` - // Minimum execution time: 27_023_000 picoseconds. - Weight::from_parts(27_620_000, 0) + // Minimum execution time: 26_506_000 picoseconds. + Weight::from_parts(27_180_000, 0) .saturating_add(Weight::from_parts(0, 3757)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -198,8 +228,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_866_000 picoseconds. - Weight::from_parts(1_984_000, 0) + // Minimum execution time: 1_868_000 picoseconds. + Weight::from_parts(2_002_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -209,8 +239,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89` // Estimated: `13454` - // Minimum execution time: 16_425_000 picoseconds. - Weight::from_parts(16_680_000, 0) + // Minimum execution time: 16_138_000 picoseconds. + Weight::from_parts(16_447_000, 0) .saturating_add(Weight::from_parts(0, 13454)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -221,8 +251,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `93` // Estimated: `13458` - // Minimum execution time: 16_171_000 picoseconds. - Weight::from_parts(16_564_000, 0) + // Minimum execution time: 16_099_000 picoseconds. + Weight::from_parts(16_592_000, 0) .saturating_add(Weight::from_parts(0, 13458)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -233,8 +263,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `15946` - // Minimum execution time: 17_785_000 picoseconds. - Weight::from_parts(18_123_000, 0) + // Minimum execution time: 17_972_000 picoseconds. + Weight::from_parts(18_379_000, 0) .saturating_add(Weight::from_parts(0, 15946)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -254,8 +284,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `6082` - // Minimum execution time: 23_903_000 picoseconds. - Weight::from_parts(24_769_000, 0) + // Minimum execution time: 23_554_000 picoseconds. + Weight::from_parts(24_446_000, 0) .saturating_add(Weight::from_parts(0, 6082)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) @@ -266,8 +296,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `11026` - // Minimum execution time: 10_617_000 picoseconds. - Weight::from_parts(10_843_000, 0) + // Minimum execution time: 10_541_000 picoseconds. + Weight::from_parts(10_894_000, 0) .saturating_add(Weight::from_parts(0, 11026)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -277,8 +307,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `100` // Estimated: `13465` - // Minimum execution time: 16_656_000 picoseconds. - Weight::from_parts(17_106_000, 0) + // Minimum execution time: 16_404_000 picoseconds. + Weight::from_parts(16_818_000, 0) .saturating_add(Weight::from_parts(0, 13465)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -299,8 +329,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `142` // Estimated: `13507` - // Minimum execution time: 31_721_000 picoseconds. - Weight::from_parts(32_547_000, 0) + // Minimum execution time: 31_617_000 picoseconds. + Weight::from_parts(32_336_000, 0) .saturating_add(Weight::from_parts(0, 13507)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) @@ -313,8 +343,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `1517` - // Minimum execution time: 3_439_000 picoseconds. - Weight::from_parts(3_619_000, 0) + // Minimum execution time: 3_328_000 picoseconds. + Weight::from_parts(3_501_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -325,8 +355,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7669` // Estimated: `11134` - // Minimum execution time: 24_657_000 picoseconds. - Weight::from_parts(24_971_000, 0) + // Minimum execution time: 23_571_000 picoseconds. + Weight::from_parts(24_312_000, 0) .saturating_add(Weight::from_parts(0, 11134)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -337,8 +367,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 34_028_000 picoseconds. - Weight::from_parts(34_697_000, 0) + // Minimum execution time: 32_879_000 picoseconds. + Weight::from_parts(33_385_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs index fc7d36a8ba1854f1a52b7630d98b545a28868c74..eac07c97c01797896b43fa588825011fafeb4b29 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs @@ -22,12 +22,12 @@ use super::{ use frame_support::{ pallet_prelude::PalletInfoAccess, parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -249,7 +249,7 @@ impl xcm_executor::Config for XcmConfig { TokenRelayLocation, AccountId, Balances, - ToStakingPot, + ResolveTo, Balances>, >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index a357bf519e40fcb7b14ae0b2c4e92b0eb6fbb94f..fe9cd25841bfc8c0b14278ed6ea167a46c3dd652 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true } diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index cee17cdc7b05de2b9f0736248583cb984547f5f9..3391ab0e79c25f11ebeeef4e5aafc2f7c1339036 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -66,7 +66,7 @@ use cumulus_primitives_core::AggregateMessageOrigin; pub use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, IsInVec, Randomness, @@ -212,6 +212,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl parachain_info::Config for Runtime {} @@ -473,12 +474,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml index eebd662c3fd5728f18b4dfc620d2b8f4c707f130..7183be5fc82cc594c6ad2f3738dbfd5b67738a2c 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml @@ -69,6 +69,7 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -85,6 +86,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "enumflags2/std", "frame-benchmarking?/std", diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs index ad369583f07fe96660713ce9d90953895d2394eb..1434c1b263ccb553f6b090c61e5c648125fdb384 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs @@ -27,7 +27,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, TransformOrigin, @@ -93,6 +93,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. @@ -224,7 +225,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -282,6 +283,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; type WeightInfo = weights::pallet_message_queue::WeightInfo; } @@ -456,7 +458,7 @@ mod benches { [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_collator_selection, CollatorSelection] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] ); @@ -644,7 +646,7 @@ impl_runtime_apis! { use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; // This is defined once again in dispatch_benchmark, because list_benchmarks! // and add_benchmarks! are macros exported by define_benchmarks! macros and those types @@ -680,7 +682,7 @@ impl_runtime_apis! { use cumulus_pallet_session_benchmarking::Pallet as SessionBench; impl cumulus_pallet_session_benchmarking::Config for Runtime {} - use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; impl pallet_xcm::benchmarking::Config for Runtime { type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< xcm_config::XcmConfig, @@ -849,12 +851,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_xcm.rs index fabce29b5fd9451f27364c38481d2dac98c430d8..ac494fdc719f4139a79b9f92525bde8322267af2 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-rococo-dev")`, DB CACHE: 1024 // Executed Command: @@ -62,8 +62,28 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 17_830_000 picoseconds. - Weight::from_parts(18_411_000, 0) + // Minimum execution time: 17_935_000 picoseconds. + Weight::from_parts(18_482_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 18_311_000 picoseconds. + Weight::from_parts(18_850_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -84,8 +104,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `70` // Estimated: `3535` - // Minimum execution time: 55_456_000 picoseconds. - Weight::from_parts(56_808_000, 0) + // Minimum execution time: 56_182_000 picoseconds. + Weight::from_parts(58_136_000, 0) .saturating_add(Weight::from_parts(0, 3535)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,14 +140,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 5_996_000 picoseconds. - Weight::from_parts(6_154_000, 0) + // Minimum execution time: 5_979_000 picoseconds. + Weight::from_parts(6_289_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,8 +167,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_768_000 picoseconds. - Weight::from_parts(1_914_000, 0) + // Minimum execution time: 1_853_000 picoseconds. + Weight::from_parts(2_045_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,8 +192,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 24_120_000 picoseconds. - Weight::from_parts(24_745_000, 0) + // Minimum execution time: 23_827_000 picoseconds. + Weight::from_parts(24_493_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -186,8 +216,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 26_630_000 picoseconds. - Weight::from_parts(27_289_000, 0) + // Minimum execution time: 26_755_000 picoseconds. + Weight::from_parts(27_125_000, 0) .saturating_add(Weight::from_parts(0, 3720)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -198,8 +228,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_821_000 picoseconds. - Weight::from_parts(1_946_000, 0) + // Minimum execution time: 1_898_000 picoseconds. + Weight::from_parts(2_028_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -209,8 +239,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89` // Estimated: `13454` - // Minimum execution time: 16_586_000 picoseconds. - Weight::from_parts(16_977_000, 0) + // Minimum execution time: 16_300_000 picoseconds. + Weight::from_parts(16_995_000, 0) .saturating_add(Weight::from_parts(0, 13454)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -221,8 +251,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `93` // Estimated: `13458` - // Minimum execution time: 16_923_000 picoseconds. - Weight::from_parts(17_415_000, 0) + // Minimum execution time: 16_495_000 picoseconds. + Weight::from_parts(16_950_000, 0) .saturating_add(Weight::from_parts(0, 13458)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -233,8 +263,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `15946` - // Minimum execution time: 18_596_000 picoseconds. - Weight::from_parts(18_823_000, 0) + // Minimum execution time: 18_153_000 picoseconds. + Weight::from_parts(18_595_000, 0) .saturating_add(Weight::from_parts(0, 15946)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -254,8 +284,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `6046` - // Minimum execution time: 23_817_000 picoseconds. - Weight::from_parts(24_520_000, 0) + // Minimum execution time: 23_387_000 picoseconds. + Weight::from_parts(24_677_000, 0) .saturating_add(Weight::from_parts(0, 6046)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) @@ -266,8 +296,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `11026` - // Minimum execution time: 11_042_000 picoseconds. - Weight::from_parts(11_578_000, 0) + // Minimum execution time: 10_939_000 picoseconds. + Weight::from_parts(11_210_000, 0) .saturating_add(Weight::from_parts(0, 11026)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -277,8 +307,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `100` // Estimated: `13465` - // Minimum execution time: 17_306_000 picoseconds. - Weight::from_parts(17_817_000, 0) + // Minimum execution time: 16_850_000 picoseconds. + Weight::from_parts(17_195_000, 0) .saturating_add(Weight::from_parts(0, 13465)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -299,8 +329,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `13471` - // Minimum execution time: 32_141_000 picoseconds. - Weight::from_parts(32_954_000, 0) + // Minimum execution time: 31_931_000 picoseconds. + Weight::from_parts(32_494_000, 0) .saturating_add(Weight::from_parts(0, 13471)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) @@ -313,8 +343,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `1517` - // Minimum execution time: 3_410_000 picoseconds. - Weight::from_parts(3_556_000, 0) + // Minimum execution time: 3_514_000 picoseconds. + Weight::from_parts(3_709_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -325,8 +355,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7669` // Estimated: `11134` - // Minimum execution time: 25_021_000 picoseconds. - Weight::from_parts(25_240_000, 0) + // Minimum execution time: 24_863_000 picoseconds. + Weight::from_parts(25_293_000, 0) .saturating_add(Weight::from_parts(0, 11134)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -337,8 +367,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 33_801_000 picoseconds. - Weight::from_parts(34_655_000, 0) + // Minimum execution time: 33_799_000 picoseconds. + Weight::from_parts(34_665_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs index a10333fdb62651df1d8500f28379710da318d279..048728d271aa0462a1f58d1317923efd397ec585 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs @@ -20,12 +20,12 @@ use super::{ use crate::{TransactionByteFee, CENTS}; use frame_support::{ parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -249,8 +249,13 @@ impl xcm_executor::Config for XcmConfig { RuntimeCall, MaxInstructions, >; - type Trader = - UsingComponents>; + type Trader = UsingComponents< + WeightToFee, + RelayLocation, + AccountId, + Balances, + ResolveTo, Balances>, + >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; diff --git a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml index 39cb69e679cc26f2d074626757864cb078d0ded8..576c3b1aa4e3eaafafafd0af353580fef7a3c20c 100644 --- a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml @@ -69,6 +69,7 @@ cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-f cumulus-primitives-aura = { path = "../../../../primitives/aura", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +cumulus-primitives-storage-weight-reclaim = { path = "../../../../primitives/storage-weight-reclaim", default-features = false } pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { package = "staging-parachain-info", path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } @@ -85,6 +86,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-aura/std", "cumulus-primitives-core/std", + "cumulus-primitives-storage-weight-reclaim/std", "cumulus-primitives-utility/std", "enumflags2/std", "frame-benchmarking?/std", diff --git a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs index c76611ad2a3af67e5a336ab61123f2e32499ebf3..1030527ccd48413e243ac57b82701650a01fde4d 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs @@ -27,7 +27,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, TransformOrigin, @@ -93,6 +93,7 @@ pub type SignedExtra = ( frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, ); /// Unchecked extrinsic type as expected by this runtime. @@ -224,7 +225,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = - pallet_transaction_payment::CurrencyAdapter>; + pallet_transaction_payment::FungibleAdapter>; type OperationalFeeMultiplier = ConstU8<5>; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -282,6 +283,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; type WeightInfo = weights::pallet_message_queue::WeightInfo; } @@ -344,7 +346,7 @@ parameter_types! { pub const StakingAdminBodyId: BodyId = BodyId::Defense; } -/// We allow Root and the `StakingAdmi` to execute privileged collator selection operations. +/// We allow Root and the `StakingAdmin` to execute privileged collator selection operations. pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< EnsureRoot, EnsureXcm>, @@ -456,7 +458,7 @@ mod benches { [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_collator_selection, CollatorSelection] // XCM - [pallet_xcm, PalletXcmExtrinsiscsBenchmark::] + [pallet_xcm, PalletXcmExtrinsicsBenchmark::] [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] ); @@ -644,7 +646,7 @@ impl_runtime_apis! { use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use cumulus_pallet_session_benchmarking::Pallet as SessionBench; - use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; // This is defined once again in dispatch_benchmark, because list_benchmarks! // and add_benchmarks! are macros exported by define_benchmarks! macros and those types @@ -680,7 +682,7 @@ impl_runtime_apis! { use cumulus_pallet_session_benchmarking::Pallet as SessionBench; impl cumulus_pallet_session_benchmarking::Config for Runtime {} - use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsiscsBenchmark; + use pallet_xcm::benchmarking::Pallet as PalletXcmExtrinsicsBenchmark; impl pallet_xcm::benchmarking::Config for Runtime { type DeliveryHelper = cumulus_primitives_utility::ToParentDeliveryHelper< xcm_config::XcmConfig, @@ -849,12 +851,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_xcm.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_xcm.rs index c337289243b748d721b60421bccf3349044ef194..62a9c802808c0fdc2305f566f7b7f67b4d0a5748 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_xcm.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_xcm.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_xcm` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-03-21, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-h2rr8wx7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -62,8 +62,28 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 17_856_000 picoseconds. - Weight::from_parts(18_473_000, 0) + // Minimum execution time: 17_450_000 picoseconds. + Weight::from_parts(17_913_000, 0) + .saturating_add(Weight::from_parts(0, 3503)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// 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::HostConfiguration` (r:1 w:0) + /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) + /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + fn send_blob() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `3503` + // Minimum execution time: 18_082_000 picoseconds. + Weight::from_parts(18_293_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -84,8 +104,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `70` // Estimated: `3535` - // Minimum execution time: 56_112_000 picoseconds. - Weight::from_parts(57_287_000, 0) + // Minimum execution time: 54_939_000 picoseconds. + Weight::from_parts(55_721_000, 0) .saturating_add(Weight::from_parts(0, 3535)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) @@ -120,14 +140,24 @@ 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: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn execute_blob() -> 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)) + } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn force_xcm_version() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_186_000 picoseconds. - Weight::from_parts(6_420_000, 0) + // Minimum execution time: 5_789_000 picoseconds. + Weight::from_parts(5_995_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -137,8 +167,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_824_000 picoseconds. - Weight::from_parts(1_999_000, 0) + // Minimum execution time: 1_795_000 picoseconds. + Weight::from_parts(1_924_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -162,8 +192,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 23_833_000 picoseconds. - Weight::from_parts(24_636_000, 0) + // Minimum execution time: 23_445_000 picoseconds. + Weight::from_parts(23_906_000, 0) .saturating_add(Weight::from_parts(0, 3503)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(5)) @@ -186,8 +216,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `255` // Estimated: `3720` - // Minimum execution time: 26_557_000 picoseconds. - Weight::from_parts(27_275_000, 0) + // Minimum execution time: 26_590_000 picoseconds. + Weight::from_parts(27_056_000, 0) .saturating_add(Weight::from_parts(0, 3720)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) @@ -198,8 +228,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_921_000 picoseconds. - Weight::from_parts(2_040_000, 0) + // Minimum execution time: 1_889_000 picoseconds. + Weight::from_parts(1_962_000, 0) .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -209,8 +239,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `89` // Estimated: `13454` - // Minimum execution time: 16_832_000 picoseconds. - Weight::from_parts(17_312_000, 0) + // Minimum execution time: 16_408_000 picoseconds. + Weight::from_parts(16_877_000, 0) .saturating_add(Weight::from_parts(0, 13454)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -221,8 +251,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `93` // Estimated: `13458` - // Minimum execution time: 16_687_000 picoseconds. - Weight::from_parts(17_123_000, 0) + // Minimum execution time: 16_791_000 picoseconds. + Weight::from_parts(17_111_000, 0) .saturating_add(Weight::from_parts(0, 13458)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -233,8 +263,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `15946` - // Minimum execution time: 18_164_000 picoseconds. - Weight::from_parts(18_580_000, 0) + // Minimum execution time: 18_355_000 picoseconds. + Weight::from_parts(19_110_000, 0) .saturating_add(Weight::from_parts(0, 15946)) .saturating_add(T::DbWeight::get().reads(6)) } @@ -254,8 +284,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `6046` - // Minimum execution time: 23_577_000 picoseconds. - Weight::from_parts(24_324_000, 0) + // Minimum execution time: 23_354_000 picoseconds. + Weight::from_parts(23_999_000, 0) .saturating_add(Weight::from_parts(0, 6046)) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) @@ -266,8 +296,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `136` // Estimated: `11026` - // Minimum execution time: 11_014_000 picoseconds. - Weight::from_parts(11_223_000, 0) + // Minimum execution time: 11_065_000 picoseconds. + Weight::from_parts(11_302_000, 0) .saturating_add(Weight::from_parts(0, 11026)) .saturating_add(T::DbWeight::get().reads(4)) } @@ -277,8 +307,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `100` // Estimated: `13465` - // Minimum execution time: 16_887_000 picoseconds. - Weight::from_parts(17_361_000, 0) + // Minimum execution time: 16_998_000 picoseconds. + Weight::from_parts(17_509_000, 0) .saturating_add(Weight::from_parts(0, 13465)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -299,8 +329,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `106` // Estimated: `13471` - // Minimum execution time: 31_705_000 picoseconds. - Weight::from_parts(32_166_000, 0) + // Minimum execution time: 31_068_000 picoseconds. + Weight::from_parts(31_978_000, 0) .saturating_add(Weight::from_parts(0, 13471)) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) @@ -313,8 +343,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `1517` - // Minimum execution time: 3_568_000 picoseconds. - Weight::from_parts(3_669_000, 0) + // Minimum execution time: 3_478_000 picoseconds. + Weight::from_parts(3_595_000, 0) .saturating_add(Weight::from_parts(0, 1517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) @@ -325,8 +355,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `7669` // Estimated: `11134` - // Minimum execution time: 24_823_000 picoseconds. - Weight::from_parts(25_344_000, 0) + // Minimum execution time: 24_962_000 picoseconds. + Weight::from_parts(25_404_000, 0) .saturating_add(Weight::from_parts(0, 11134)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) @@ -337,8 +367,8 @@ impl pallet_xcm::WeightInfo for WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 34_516_000 picoseconds. - Weight::from_parts(35_478_000, 0) + // Minimum execution time: 32_685_000 picoseconds. + Weight::from_parts(33_592_000, 0) .saturating_add(Weight::from_parts(0, 3555)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs index fee2f5684ac309c623a3914835e0d755953ca52f..368b20e1c9e05c93b1855467babda23882ffbc12 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs @@ -20,12 +20,12 @@ use super::{ use crate::{TransactionByteFee, CENTS}; use frame_support::{ parameter_types, - traits::{ConstU32, Contains, Equals, Everything, Nothing}, + traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, }; use frame_system::EnsureRoot; +use pallet_collator_selection::StakingPotAccountId; use pallet_xcm::XcmPassthrough; use parachains_common::{ - impls::ToStakingPot, xcm_config::{ AllSiblingSystemParachains, ConcreteAssetFromSystem, ParentRelayOrSiblingParachains, RelayOrOtherSystemParachains, @@ -257,8 +257,13 @@ impl xcm_executor::Config for XcmConfig { RuntimeCall, MaxInstructions, >; - type Trader = - UsingComponents>; + type Trader = UsingComponents< + WeightToFee, + RelayLocation, + AccountId, + Balances, + ResolveTo, Balances>, + >; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; diff --git a/cumulus/parachains/runtimes/starters/seedling/Cargo.toml b/cumulus/parachains/runtimes/starters/seedling/Cargo.toml index 9f08fdf59437cc03336eee449e042eca90ec549a..eb702c9f2cdf30844fbf4ea17534566c038c4880 100644 --- a/cumulus/parachains/runtimes/starters/seedling/Cargo.toml +++ b/cumulus/parachains/runtimes/starters/seedling/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false } diff --git a/cumulus/parachains/runtimes/starters/seedling/src/lib.rs b/cumulus/parachains/runtimes/starters/seedling/src/lib.rs index 2f4f762408febe0e1176cc1d68dd3d314102a082..461133f6cfc06ad8cea140ea19d6df6c8aebb520 100644 --- a/cumulus/parachains/runtimes/starters/seedling/src/lib.rs +++ b/cumulus/parachains/runtimes/starters/seedling/src/lib.rs @@ -46,7 +46,7 @@ use sp_version::RuntimeVersion; pub use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, IsInVec, Randomness}, weights::{ @@ -370,12 +370,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/starters/shell/Cargo.toml b/cumulus/parachains/runtimes/starters/shell/Cargo.toml index 2f82547afe9a02d4f1b01699869e35aecb526433..f66d04fec1fdd72eb30f183bb713e88d4fee00e7 100644 --- a/cumulus/parachains/runtimes/starters/shell/Cargo.toml +++ b/cumulus/parachains/runtimes/starters/shell/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-executive = { path = "../../../../../substrate/frame/executive", default-features = false } diff --git a/cumulus/parachains/runtimes/starters/shell/src/lib.rs b/cumulus/parachains/runtimes/starters/shell/src/lib.rs index 0f4957fd802b441e17fe05f791a7e1dbd047a29e..a3d1629bbe5eb928f3f78998ed721968f140536d 100644 --- a/cumulus/parachains/runtimes/starters/shell/src/lib.rs +++ b/cumulus/parachains/runtimes/starters/shell/src/lib.rs @@ -54,7 +54,7 @@ use sp_version::RuntimeVersion; pub use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstBool, ConstU32, ConstU64, ConstU8, EitherOfDiverse, IsInVec, Randomness}, weights::{ @@ -232,6 +232,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -427,12 +428,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/test-utils/src/lib.rs b/cumulus/parachains/runtimes/test-utils/src/lib.rs index e62daa16a1256fa993a97d82d4f6df96f261018b..3c84243306fbe518dd00ee78411d9ec032e90446 100644 --- a/cumulus/parachains/runtimes/test-utils/src/lib.rs +++ b/cumulus/parachains/runtimes/test-utils/src/lib.rs @@ -425,12 +425,13 @@ impl< } // do teleport - >::teleport_assets( + >::limited_teleport_assets( origin, Box::new(dest.into()), Box::new(beneficiary.into()), Box::new((AssetId(asset), amount).into()), 0, + Unlimited, ) } } diff --git a/cumulus/parachains/runtimes/testing/penpal/Cargo.toml b/cumulus/parachains/runtimes/testing/penpal/Cargo.toml index c18f6571f416beae3b65ffe9b8263696b2ec227c..028aa002a91e508c858c7ba71c981d9c9cf8dc60 100644 --- a/cumulus/parachains/runtimes/testing/penpal/Cargo.toml +++ b/cumulus/parachains/runtimes/testing/penpal/Cargo.toml @@ -21,7 +21,7 @@ substrate-wasm-builder = { path = "../../../../../substrate/utils/wasm-builder", codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.4.1", optional = true } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } smallvec = "1.11.0" # Substrate diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 1e6d485d148d356920c3069fc1017b5f5d703d28..919bfe83e7d7aff8d90be3af0358dd28b93581e1 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -37,7 +37,7 @@ use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, pallet_prelude::Weight, parameter_types, traits::{ @@ -57,7 +57,6 @@ use parachains_common::{ impls::{AssetsToBlockAuthor, NonZeroIssuance}, message_queue::{NarrowOriginToSibling, ParaIdToSibling}, }; -use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use smallvec::smallvec; use sp_api::impl_runtime_apis; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -85,7 +84,7 @@ use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; // XCM Imports use parachains_common::{AccountId, Signature}; -use xcm::latest::prelude::BodyId; +use xcm::latest::prelude::{AssetId as AssetLocationId, BodyId}; /// Balance of an account. pub type Balance = u128; @@ -417,7 +416,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; @@ -541,10 +540,25 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = MessageQueueServiceWeight; } impl cumulus_pallet_aura_ext::Config for Runtime {} +parameter_types! { + /// The asset ID for the asset that we use to pay for message delivery fees. + pub FeeAssetId: AssetLocationId = AssetLocationId(xcm_config::RelayLocation::get()); + /// The base fee for the message delivery fees (3 CENTS). + pub const BaseDeliveryFee: u128 = (1_000_000_000_000u128 / 100).saturating_mul(3); +} + +pub type PriceForSiblingParachainDelivery = polkadot_runtime_common::xcm_sender::ExponentialPrice< + FeeAssetId, + BaseDeliveryFee, + TransactionByteFee, + XcmpQueue, +>; + impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type ChannelInfo = ParachainSystem; @@ -555,7 +569,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); - type PriceForSiblingDelivery = NoPriceForMessageDelivery; + type PriceForSiblingDelivery = PriceForSiblingParachainDelivery; } parameter_types! { @@ -897,12 +911,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) + } + + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs b/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs index d83a877c2f89b27c783bd19f19d75736a6dd0022..7b8e40e04288d213499a35ba085655030abe50d2 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs @@ -28,6 +28,7 @@ use super::{ ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; +use crate::{BaseDeliveryFee, FeeAssetId, TransactionByteFee}; use core::marker::PhantomData; use frame_support::{ parameter_types, @@ -36,10 +37,10 @@ use frame_support::{ }; use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; -use parachains_common::xcm_config::AssetFeeAsExistentialDepositMultiplier; +use parachains_common::{xcm_config::AssetFeeAsExistentialDepositMultiplier, TREASURY_PALLET_ID}; use polkadot_parachain_primitives::primitives::Sibling; -use polkadot_runtime_common::impls::ToAuthor; -use sp_runtime::traits::ConvertInto; +use polkadot_runtime_common::{impls::ToAuthor, xcm_sender::ExponentialPrice}; +use sp_runtime::traits::{AccountIdConversion, ConvertInto}; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, @@ -49,6 +50,7 @@ use xcm_builder::{ SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, StartsWith, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, + XcmFeeManagerFromComponents, XcmFeeToAccount, }; use xcm_executor::{traits::JustTry, XcmExecutor}; @@ -59,6 +61,7 @@ parameter_types! { pub const RelayNetwork: Option = None; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub UniversalLocation: InteriorLocation = [Parachain(ParachainInfo::parachain_id().into())].into(); + pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); } /// Type for specifying how a `Location` can be converted into an `AccountId`. This is used @@ -142,7 +145,7 @@ pub type ForeignFungiblesTransactor = FungiblesAdapter< LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We dont need to check teleports here. + // We don't need to check teleports here. NoChecking, // The account to use for tracking teleports. CheckingAccount, @@ -331,7 +334,10 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type AssetLocker = (); type AssetExchanger = (); - type FeeManager = (); + type FeeManager = XcmFeeManagerFromComponents< + (), + XcmFeeToAccount, + >; type MessageExporter = (); type UniversalAliases = Nothing; type CallDispatcher = RuntimeCall; @@ -355,11 +361,14 @@ pub type ForeignAssetFeeAsExistentialDepositMultiplierFeeCharger = /// No local origins on this chain are allowed to dispatch XCM sends/executions. pub type LocalOriginToLocation = SignedToAccountId32; +pub type PriceForParentDelivery = + ExponentialPrice; + /// The means for routing XCM messages which are not for local execution into the right message /// queues. pub type XcmRouter = WithUniqueTopic<( // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, )>; diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml b/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml index 790f38d94f502aba2b008927df602c25aa51d151..df3aaa92c79e78e5dfb9043db69778db051b3053 100644 --- a/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml +++ b/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-benchmarking = { path = "../../../../../substrate/frame/benchmarking", default-features = false, optional = true } diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs index c6006141981766320713ec4f7b59af3ee049bc74..1c55f1354ac53256b04c0945f6a0adf4659767cb 100644 --- a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs @@ -41,7 +41,7 @@ use sp_version::RuntimeVersion; pub use frame_support::{ construct_runtime, derive_impl, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ AsEnsureOriginWithArg, ConstBool, ConstU32, ConstU64, ConstU8, Contains, EitherOfDiverse, @@ -259,7 +259,7 @@ impl pallet_balances::Config for Runtime { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; type WeightToFee = IdentityFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = (); @@ -320,6 +320,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -823,12 +824,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index 37b7be75ef91de38dc9ed47e27e7ebd25ac21e54..280ece30fb6834c2a5031f33cd316b5a137f65f5 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -15,7 +15,7 @@ name = "polkadot-parachain" path = "src/main.rs" [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" clap = { version = "4.5.3", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.0.0" } futures = "0.3.28" diff --git a/cumulus/polkadot-parachain/chain-specs/coretime-kusama.json b/cumulus/polkadot-parachain/chain-specs/coretime-kusama.json new file mode 120000 index 0000000000000000000000000000000000000000..9bf86d50955a0ccc61767fd2a6c4afe55786a218 --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/coretime-kusama.json @@ -0,0 +1 @@ +../../parachains/chain-specs/coretime-kusama.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/chain-specs/people-kusama.json b/cumulus/polkadot-parachain/chain-specs/people-kusama.json new file mode 120000 index 0000000000000000000000000000000000000000..5bb0b3cecb5c73ebb1ff62248f3628f6c9f56e61 --- /dev/null +++ b/cumulus/polkadot-parachain/chain-specs/people-kusama.json @@ -0,0 +1 @@ +../../parachains/chain-specs/people-kusama.json \ No newline at end of file diff --git a/cumulus/polkadot-parachain/src/chain_spec/coretime.rs b/cumulus/polkadot-parachain/src/chain_spec/coretime.rs index 42d56fc80eb3eee2810da1a414a13e346d6f8d17..fe60b09fd8b21715286f5fd40018be06ba978c06 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/coretime.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/coretime.rs @@ -22,6 +22,12 @@ use std::{borrow::Cow, str::FromStr}; /// Collects all supported Coretime configurations. #[derive(Debug, PartialEq, Clone, Copy)] pub enum CoretimeRuntimeType { + Kusama, + KusamaLocal, + + Polkadot, + PolkadotLocal, + // Live Rococo, // Local @@ -42,6 +48,10 @@ impl FromStr for CoretimeRuntimeType { fn from_str(value: &str) -> Result { match value { + kusama::CORETIME_KUSAMA => Ok(CoretimeRuntimeType::Kusama), + kusama::CORETIME_KUSAMA_LOCAL => Ok(CoretimeRuntimeType::KusamaLocal), + polkadot::CORETIME_POLKADOT => Ok(CoretimeRuntimeType::Polkadot), + polkadot::CORETIME_POLKADOT_LOCAL => Ok(CoretimeRuntimeType::PolkadotLocal), rococo::CORETIME_ROCOCO => Ok(CoretimeRuntimeType::Rococo), rococo::CORETIME_ROCOCO_LOCAL => Ok(CoretimeRuntimeType::RococoLocal), rococo::CORETIME_ROCOCO_DEVELOPMENT => Ok(CoretimeRuntimeType::RococoDevelopment), @@ -56,6 +66,10 @@ impl FromStr for CoretimeRuntimeType { impl From for &str { fn from(runtime_type: CoretimeRuntimeType) -> Self { match runtime_type { + CoretimeRuntimeType::Kusama => kusama::CORETIME_KUSAMA, + CoretimeRuntimeType::KusamaLocal => kusama::CORETIME_KUSAMA_LOCAL, + CoretimeRuntimeType::Polkadot => polkadot::CORETIME_POLKADOT, + CoretimeRuntimeType::PolkadotLocal => polkadot::CORETIME_POLKADOT_LOCAL, CoretimeRuntimeType::Rococo => rococo::CORETIME_ROCOCO, CoretimeRuntimeType::RococoLocal => rococo::CORETIME_ROCOCO_LOCAL, CoretimeRuntimeType::RococoDevelopment => rococo::CORETIME_ROCOCO_DEVELOPMENT, @@ -69,9 +83,14 @@ impl From for &str { impl From for ChainType { fn from(runtime_type: CoretimeRuntimeType) -> Self { match runtime_type { - CoretimeRuntimeType::Rococo | CoretimeRuntimeType::Westend => ChainType::Live, - CoretimeRuntimeType::RococoLocal | CoretimeRuntimeType::WestendLocal => - ChainType::Local, + CoretimeRuntimeType::Kusama | + CoretimeRuntimeType::Polkadot | + CoretimeRuntimeType::Rococo | + CoretimeRuntimeType::Westend => ChainType::Live, + CoretimeRuntimeType::KusamaLocal | + CoretimeRuntimeType::PolkadotLocal | + CoretimeRuntimeType::RococoLocal | + CoretimeRuntimeType::WestendLocal => ChainType::Local, CoretimeRuntimeType::RococoDevelopment | CoretimeRuntimeType::WestendDevelopment => ChainType::Development, } @@ -85,6 +104,11 @@ impl CoretimeRuntimeType { pub fn load_config(&self) -> Result, String> { match self { + CoretimeRuntimeType::Kusama => Ok(Box::new(GenericChainSpec::from_json_bytes( + &include_bytes!("../../chain-specs/coretime-kusama.json")[..], + )?)), + CoretimeRuntimeType::Polkadot => + todo!("Generate chain-spec: ../../chain-specs/coretime-polkadot.json"), CoretimeRuntimeType::Rococo => Ok(Box::new(GenericChainSpec::from_json_bytes( &include_bytes!("../../chain-specs/coretime-rococo.json")[..], )?)), @@ -99,6 +123,10 @@ impl CoretimeRuntimeType { Ok(Box::new(westend::local_config(*self, "westend-local"))), CoretimeRuntimeType::WestendDevelopment => Ok(Box::new(westend::local_config(*self, "westend-dev"))), + other => Err(std::format!( + "No default config present for {:?}, you should provide a chain-spec as json file!", + other + )), } } } @@ -296,3 +324,13 @@ pub mod westend { }) } } + +pub mod kusama { + pub(crate) const CORETIME_KUSAMA: &str = "coretime-kusama"; + pub(crate) const CORETIME_KUSAMA_LOCAL: &str = "coretime-kusama-local"; +} + +pub mod polkadot { + pub(crate) const CORETIME_POLKADOT: &str = "coretime-polkadot"; + pub(crate) const CORETIME_POLKADOT_LOCAL: &str = "coretime-polkadot-local"; +} diff --git a/cumulus/polkadot-parachain/src/chain_spec/people.rs b/cumulus/polkadot-parachain/src/chain_spec/people.rs index 67786e17205d86e5108721c6a6ef7209fe9297f2..1408ef0aff67adf4942b8dcd8d4198c8cd60910b 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/people.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/people.rs @@ -23,6 +23,10 @@ use std::str::FromStr; /// Collects all supported People configurations. #[derive(Debug, PartialEq)] pub enum PeopleRuntimeType { + Kusama, + KusamaLocal, + Polkadot, + PolkadotLocal, Rococo, RococoLocal, RococoDevelopment, @@ -36,6 +40,10 @@ impl FromStr for PeopleRuntimeType { fn from_str(value: &str) -> Result { match value { + kusama::PEOPLE_KUSAMA => Ok(PeopleRuntimeType::Kusama), + kusama::PEOPLE_KUSAMA_LOCAL => Ok(PeopleRuntimeType::KusamaLocal), + polkadot::PEOPLE_POLKADOT => Ok(PeopleRuntimeType::Polkadot), + polkadot::PEOPLE_POLKADOT_LOCAL => Ok(PeopleRuntimeType::PolkadotLocal), rococo::PEOPLE_ROCOCO => Ok(PeopleRuntimeType::Rococo), rococo::PEOPLE_ROCOCO_LOCAL => Ok(PeopleRuntimeType::RococoLocal), rococo::PEOPLE_ROCOCO_DEVELOPMENT => Ok(PeopleRuntimeType::RococoDevelopment), @@ -52,6 +60,10 @@ impl PeopleRuntimeType { pub fn load_config(&self) -> Result, String> { match self { + PeopleRuntimeType::Kusama => + todo!("Update chain-spec: ../../chain-specs/people-kusama.json - https://github.com/paritytech/polkadot-sdk/pull/3961#issuecomment-2037438431"), + PeopleRuntimeType::Polkadot => + todo!("Generate chain-spec: ../../chain-specs/people-polkadot.json"), PeopleRuntimeType::Rococo => Ok(Box::new(GenericChainSpec::from_json_bytes( &include_bytes!("../../chain-specs/people-rococo.json")[..], )?)), @@ -82,6 +94,10 @@ impl PeopleRuntimeType { "westend-development", ParaId::new(1004), ))), + other => Err(std::format!( + "No default config present for {:?}, you should provide a chain-spec as json file!", + other + )), } } } @@ -318,3 +334,13 @@ pub mod westend { }) } } + +pub mod kusama { + pub(crate) const PEOPLE_KUSAMA: &str = "people-kusama"; + pub(crate) const PEOPLE_KUSAMA_LOCAL: &str = "people-kusama-local"; +} + +pub mod polkadot { + pub(crate) const PEOPLE_POLKADOT: &str = "people-polkadot"; + pub(crate) const PEOPLE_POLKADOT_LOCAL: &str = "people-polkadot-local"; +} diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 7abadf82cd874b8f45dbdb33ec86e3e29605033f..c0bd7acfebf82a71d16ce938d4cfb2da346ab32a 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -135,7 +135,7 @@ fn runtime(id: &str) -> Runtime { fn load_spec(id: &str) -> std::result::Result, String> { let (id, _, para_id) = extract_parachain_id(id); Ok(match id { - // - Defaul-like + // - Default-like "staging" => Box::new(chain_spec::rococo_parachain::staging_rococo_parachain_local_config()), "tick" => Box::new(GenericChainSpec::from_json_bytes( @@ -759,6 +759,10 @@ pub fn run() -> Result<()> { .map_err(Into::into), Coretime(coretime_runtime_type) => match coretime_runtime_type { + chain_spec::coretime::CoretimeRuntimeType::Kusama | + chain_spec::coretime::CoretimeRuntimeType::KusamaLocal | + chain_spec::coretime::CoretimeRuntimeType::Polkadot | + chain_spec::coretime::CoretimeRuntimeType::PolkadotLocal | chain_spec::coretime::CoretimeRuntimeType::Rococo | chain_spec::coretime::CoretimeRuntimeType::RococoLocal | chain_spec::coretime::CoretimeRuntimeType::RococoDevelopment | @@ -790,6 +794,10 @@ pub fn run() -> Result<()> { .map_err(Into::into), People(people_runtime_type) => match people_runtime_type { + chain_spec::people::PeopleRuntimeType::Kusama | + chain_spec::people::PeopleRuntimeType::KusamaLocal | + chain_spec::people::PeopleRuntimeType::Polkadot | + chain_spec::people::PeopleRuntimeType::PolkadotLocal | chain_spec::people::PeopleRuntimeType::Rococo | chain_spec::people::PeopleRuntimeType::RococoLocal | chain_spec::people::PeopleRuntimeType::RococoDevelopment | diff --git a/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs b/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs index 7778d1bf7d2dc0187fe6a0684023a9a4648be596..82c02943c5fc9ee8337cca377ddf2271b454cdda 100644 --- a/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs +++ b/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs @@ -189,11 +189,15 @@ sp_api::impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { + fn build_state(_: Vec) -> sp_genesis_builder::Result { unimplemented!() } - fn build_config(_: Vec) -> sp_genesis_builder::Result { + fn get_preset(_id: &Option) -> Option> { + unimplemented!() + } + + fn preset_names() -> Vec { unimplemented!() } } diff --git a/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs b/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs index 880f5d760c74559db87597bce158f8f5e62dbd82..6b718e9121642e37640ad09ee9364974a3d0aa38 100644 --- a/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs +++ b/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs @@ -189,11 +189,15 @@ sp_api::impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { + fn build_state(_: Vec) -> sp_genesis_builder::Result { unimplemented!() } - fn build_config(_: Vec) -> sp_genesis_builder::Result { + fn get_preset(_id: &Option) -> Option> { + unimplemented!() + } + + fn preset_names() -> Vec { unimplemented!() } } diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index ddf595ca70c1d675aa66a94daf21036cc8a3295e..e9bb5947522b2b092e7a7b05729d795bc1d85721 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -69,13 +69,11 @@ use substrate_prometheus_endpoint::Registry; use polkadot_primitives::CollatorPair; #[cfg(not(feature = "runtime-benchmarks"))] -type HostFunctions = - (sp_io::SubstrateHostFunctions, cumulus_client_service::storage_proof_size::HostFunctions); +type HostFunctions = cumulus_client_service::ParachainHostFunctions; #[cfg(feature = "runtime-benchmarks")] type HostFunctions = ( - sp_io::SubstrateHostFunctions, - cumulus_client_service::storage_proof_size::HostFunctions, + cumulus_client_service::ParachainHostFunctions, frame_benchmarking::benchmarking::HostFunctions, ); diff --git a/cumulus/primitives/core/Cargo.toml b/cumulus/primitives/core/Cargo.toml index 32c5054f359c4102a0c0a5ffdcb128bdc1ffd725..62c3f6751917ad4aaaaec6509c852a5cfd75d7f8 100644 --- a/cumulus/primitives/core/Cargo.toml +++ b/cumulus/primitives/core/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate sp-api = { path = "../../../substrate/primitives/api", default-features = false } diff --git a/cumulus/primitives/parachain-inherent/Cargo.toml b/cumulus/primitives/parachain-inherent/Cargo.toml index f434305a0ce013ae048087bf9a75413efacc1fff..fcf4c93bc2f01dc9e60f5ad2d74e302f5247b955 100644 --- a/cumulus/primitives/parachain-inherent/Cargo.toml +++ b/cumulus/primitives/parachain-inherent/Cargo.toml @@ -10,9 +10,9 @@ license = "Apache-2.0" workspace = true [dependencies] -async-trait = { version = "0.1.74", optional = true } +async-trait = { version = "0.1.79", optional = true } codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate sp-core = { path = "../../../substrate/primitives/core", default-features = false } diff --git a/cumulus/primitives/storage-weight-reclaim/Cargo.toml b/cumulus/primitives/storage-weight-reclaim/Cargo.toml index 4835fb5192b88165c1e7912862492086ddd0853e..6dbf7904bf796e81415b967637d9770356142603 100644 --- a/cumulus/primitives/storage-weight-reclaim/Cargo.toml +++ b/cumulus/primitives/storage-weight-reclaim/Cargo.toml @@ -12,7 +12,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } log = { workspace = true } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } frame-support = { path = "../../../substrate/frame/support", default-features = false } frame-system = { path = "../../../substrate/frame/system", default-features = false } @@ -20,9 +20,9 @@ frame-system = { path = "../../../substrate/frame/system", default-features = fa sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false } sp-std = { path = "../../../substrate/primitives/std", default-features = false } -cumulus-primitives-core = { path = "../../primitives/core", default-features = false } -cumulus-primitives-proof-size-hostfunction = { path = "../../primitives/proof-size-hostfunction", default-features = false } -docify = "0.2.7" +cumulus-primitives-core = { path = "../core", default-features = false } +cumulus-primitives-proof-size-hostfunction = { path = "../proof-size-hostfunction", default-features = false } +docify = "0.2.8" [dev-dependencies] sp-trie = { path = "../../../substrate/primitives/trie", default-features = false } diff --git a/cumulus/primitives/storage-weight-reclaim/src/lib.rs b/cumulus/primitives/storage-weight-reclaim/src/lib.rs index 5dddc92e395574dbb36538f3799c0d21b22a3939..c09c12d7a0abf8ac3c64974390d47880af6ec6e9 100644 --- a/cumulus/primitives/storage-weight-reclaim/src/lib.rs +++ b/cumulus/primitives/storage-weight-reclaim/src/lib.rs @@ -421,7 +421,7 @@ mod tests { .unwrap(); assert_eq!(pre, Some(100)); - // The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo` + // The `CheckWeight` extension will refund `actual_weight` from `PostDispatchInfo` // we always need to call `post_dispatch` to verify that they interoperate correctly. assert_ok!(CheckWeight::::post_dispatch(None, &info, &post_info, 0, &Ok(()))); assert_ok!(StorageWeightReclaim::::post_dispatch( @@ -456,7 +456,7 @@ mod tests { .unwrap(); assert_eq!(pre, Some(100)); - // The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo` + // The `CheckWeight` extension will refund `actual_weight` from `PostDispatchInfo` // we always need to call `post_dispatch` to verify that they interoperate correctly. assert_ok!(CheckWeight::::post_dispatch(None, &info, &post_info, 0, &Ok(()))); assert_ok!(StorageWeightReclaim::::post_dispatch( @@ -500,7 +500,7 @@ mod tests { &Ok(()) )); // `CheckWeight` gets called after `StorageWeightReclaim` this time. - // The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo` + // The `CheckWeight` extension will refund `actual_weight` from `PostDispatchInfo` // we always need to call `post_dispatch` to verify that they interoperate correctly. assert_ok!(CheckWeight::::post_dispatch(None, &info, &post_info, 0, &Ok(()))); @@ -536,7 +536,7 @@ mod tests { &Ok(()) )); // `CheckWeight` gets called after `StorageWeightReclaim` this time. - // The `CheckWeight` extension will refunt `actual_weight` from `PostDispatchInfo` + // The `CheckWeight` extension will refund `actual_weight` from `PostDispatchInfo` // we always need to call `post_dispatch` to verify that they interoperate correctly. assert_ok!(CheckWeight::::post_dispatch(None, &info, &post_info, 0, &Ok(()))); diff --git a/cumulus/primitives/timestamp/src/lib.rs b/cumulus/primitives/timestamp/src/lib.rs index 535c4a2a7268b9df053021d824fd0fbb0599845b..e6aba6d0bb74043c134400387d84429cf0a712d1 100644 --- a/cumulus/primitives/timestamp/src/lib.rs +++ b/cumulus/primitives/timestamp/src/lib.rs @@ -22,7 +22,7 @@ //! access to any clock from the runtime the timestamp is always passed as an inherent into the //! runtime. To check this inherent when validating the block, we will use the relay chain slot. As //! the relay chain slot is derived from a timestamp, we can easily convert it back to a timestamp -//! by muliplying it with the slot duration. By comparing the relay chain slot derived timestamp +//! by multiplying it with the slot duration. By comparing the relay chain slot derived timestamp //! with the timestamp we can ensure that the parachain timestamp is reasonable. #![cfg_attr(not(feature = "std"), no_std)] diff --git a/cumulus/primitives/utility/src/lib.rs b/cumulus/primitives/utility/src/lib.rs index abc391bdcb8ed6ac3682c761e6a0a8d2d0e7f14b..d5d411356dc385948f31730ba65dcd26074d0336 100644 --- a/cumulus/primitives/utility/src/lib.rs +++ b/cumulus/primitives/utility/src/lib.rs @@ -141,7 +141,7 @@ impl< ) -> Result { log::trace!(target: "xcm::weight", "TakeFirstAssetTrader::buy_weight weight: {:?}, payment: {:?}, context: {:?}", weight, payment, context); - // Make sure we dont enter twice + // Make sure we don't enter twice if self.0.is_some() { return Err(XcmError::NotWithdrawable) } @@ -176,7 +176,7 @@ impl< // Convert to the same kind of asset, with the required fungible balance let required = first.id.clone().into_asset(asset_balance.into()); - // Substract payment + // Subtract payment let unused = payment.checked_sub(required.clone()).map_err(|_| XcmError::TooExpensive)?; // record weight and asset @@ -203,7 +203,7 @@ impl< // Calculate asset_balance // This read should have already be cached in buy_weight - let (asset_balance, outstanding_minus_substracted) = + let (asset_balance, outstanding_minus_subtracted) = FeeCharger::charge_weight_in_fungibles(local_asset_id, weight).ok().map( |asset_balance| { // Require at least a drop of minimum_balance @@ -221,16 +221,15 @@ impl< )?; // Convert balances into u128 - let outstanding_minus_substracted: u128 = - outstanding_minus_substracted.saturated_into(); + let outstanding_minus_subtracted: u128 = outstanding_minus_subtracted.saturated_into(); let asset_balance: u128 = asset_balance.saturated_into(); - // Construct outstanding_concrete_asset with the same location id and substracted + // Construct outstanding_concrete_asset with the same location id and subtracted // balance let outstanding_concrete_asset: Asset = - (id.clone(), outstanding_minus_substracted).into(); + (id.clone(), outstanding_minus_subtracted).into(); - // Substract from existing weight and balance + // Subtract from existing weight and balance weight_outstanding = weight_outstanding.saturating_sub(weight); // Override AssetTraderRefunder @@ -263,9 +262,10 @@ impl< } } -/// XCM fee depositor to which we implement the TakeRevenue trait -/// It receives a Transact implemented argument, a 32 byte convertible acocuntId, and the fee -/// receiver account FungiblesMutateAdapter should be identical to that implemented by WithdrawAsset +/// XCM fee depositor to which we implement the `TakeRevenue` trait. +/// It receives a `Transact` implemented argument and a 32 byte convertible `AccountId`, and the fee +/// receiver account's `FungiblesMutateAdapter` should be identical to that implemented by +/// `WithdrawAsset`. pub struct XcmFeesTo32ByteAccount( PhantomData<(FungiblesMutateAdapter, AccountId, ReceiverAccount)>, ); @@ -763,7 +763,8 @@ mod test_trader { /// Implementation of `xcm_builder::EnsureDelivery` which helps to ensure delivery to the /// parent relay chain. Deposits existential deposit for origin (if needed). /// Deposits estimated fee to the origin account (if needed). -/// Allows to trigger additional logic for specific `ParaId` (e.g. open HRMP channel) (if neeeded). +/// Allows triggering of additional logic for a specific `ParaId` (e.g. to open an HRMP channel) if +/// needed. #[cfg(feature = "runtime-benchmarks")] pub struct ToParentDeliveryHelper( sp_std::marker::PhantomData<(XcmConfig, ExistentialDeposit, PriceForDelivery)>, diff --git a/cumulus/scripts/scale_encode_genesis/index.js b/cumulus/scripts/scale_encode_genesis/index.js index f612e6da79dd51452f46bcd0e626b5648b77f2e4..c6600e406361178524998b1a212e25fb97619957 100644 --- a/cumulus/scripts/scale_encode_genesis/index.js +++ b/cumulus/scripts/scale_encode_genesis/index.js @@ -19,14 +19,14 @@ async function connect(endpoint, types = {}) { } if (!process.argv[2] || !process.argv[3]) { - console.log("usage: node generate_keys [rpc enpoint]"); + console.log("usage: node generate_keys [rpc endpoint]"); exit(); } const input = process.argv[2]; const output = process.argv[3]; // default to localhost and the default Substrate port -const rpcEnpoint = process.argv[4] || "ws://localhost:9944"; +const rpcEndpoint = process.argv[4] || "ws://localhost:9944"; console.log("Processing", input, output); fs.readFile(input, "utf8", (err, data) => { @@ -38,8 +38,8 @@ fs.readFile(input, "utf8", (err, data) => { const genesis = JSON.parse(data); console.log("loaded genesis, length = ", genesis.length); - console.log(`Connecting to RPC endpoint: ${rpcEnpoint}`); - connect(rpcEnpoint) + console.log(`Connecting to RPC endpoint: ${rpcEndpoint}`); + connect(rpcEndpoint) .then((api) => { console.log('Connected'); const setStorage = api.tx.system.setStorage(genesis); diff --git a/cumulus/scripts/temp_parachain_types.json b/cumulus/scripts/temp_parachain_types.json index f550a6774450deb8abc9651d15a08b1b34b28c48..2509d32be9fd2cab453c5fd440b9879fca317c17 100644 --- a/cumulus/scripts/temp_parachain_types.json +++ b/cumulus/scripts/temp_parachain_types.json @@ -54,7 +54,7 @@ "validity_votes": "Vec", "validator_indices": "BitVec" }, - "CandidatePendingAvailablility": { + "CandidatePendingAvailability": { "core": "u32", "descriptor": "CandidateDescriptor", "availability_votes": "BitVec", diff --git a/cumulus/test/runtime/Cargo.toml b/cumulus/test/runtime/Cargo.toml index 449a8b819bc074e0c891d99d6fa2f42480f56ce6..b430b118fa1f1e514fdd049e1c1bd2b202802886 100644 --- a/cumulus/test/runtime/Cargo.toml +++ b/cumulus/test/runtime/Cargo.toml @@ -10,7 +10,7 @@ workspace = true [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -scale-info = { version = "2.10.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.11.1", default-features = false, features = ["derive"] } # Substrate frame-executive = { path = "../../../substrate/frame/executive", default-features = false } diff --git a/cumulus/test/runtime/src/lib.rs b/cumulus/test/runtime/src/lib.rs index 8e3569b02a1594c7043e7d6aebee50e7feaa6a5b..b9e80d8eab5541e3607d61633500571ddb670a1c 100644 --- a/cumulus/test/runtime/src/lib.rs +++ b/cumulus/test/runtime/src/lib.rs @@ -47,7 +47,7 @@ use sp_version::RuntimeVersion; pub use frame_support::{ construct_runtime, dispatch::DispatchClass, - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ConstU8, Randomness}, weights::{ @@ -139,7 +139,7 @@ pub fn native_version() -> NativeVersion { NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } } -/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. +/// We assume that ~10% of the block weight is consumed by `on_initialize` handlers. /// This is used to limit the maximal weight of a single extrinsic. const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used @@ -241,7 +241,7 @@ impl pallet_balances::Config for Runtime { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; type WeightToFee = IdentityFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = (); @@ -463,12 +463,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } } diff --git a/cumulus/test/service/Cargo.toml b/cumulus/test/service/Cargo.toml index 45e21432f5b82e58d208088842c813986c94dc88..040fb479f6e8df46cdc17eefc1f3d2cdcf282656 100644 --- a/cumulus/test/service/Cargo.toml +++ b/cumulus/test/service/Cargo.toml @@ -13,7 +13,7 @@ name = "test-parachain" path = "src/main.rs" [dependencies] -async-trait = "0.1.74" +async-trait = "0.1.79" clap = { version = "4.5.3", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.0.0" } criterion = { version = "0.5.1", features = ["async_tokio"] } @@ -88,7 +88,6 @@ pallet-timestamp = { path = "../../../substrate/frame/timestamp" } futures = "0.3.28" portpicker = "0.1.1" rococo-parachain-runtime = { path = "../../parachains/runtimes/testing/rococo-parachain" } -pallet-im-online = { path = "../../../substrate/frame/im-online" } sp-consensus-grandpa = { path = "../../../substrate/primitives/consensus/grandpa" } sp-authority-discovery = { path = "../../../substrate/primitives/authority-discovery" } cumulus-test-client = { path = "../client" } @@ -106,7 +105,6 @@ runtime-benchmarks = [ "cumulus-primitives-core/runtime-benchmarks", "cumulus-test-client/runtime-benchmarks", "frame-system/runtime-benchmarks", - "pallet-im-online/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "parachains-common/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", diff --git a/cumulus/test/service/benches/validate_block.rs b/cumulus/test/service/benches/validate_block.rs index a614863803e09e89ff9671dd6916ccbfeb657278..d95f733969bce01b16229994ad4f88f6fea312e1 100644 --- a/cumulus/test/service/benches/validate_block.rs +++ b/cumulus/test/service/benches/validate_block.rs @@ -47,7 +47,7 @@ fn create_extrinsics( src_accounts: &[sr25519::Pair], dst_accounts: &[sr25519::Pair], ) -> (usize, Vec) { - // Add as many tranfer extrinsics as possible into a single block. + // Add as many transfer extrinsics as possible into a single block. let mut block_builder = BlockBuilderBuilder::new(client) .on_parent_block(client.chain_info().best_hash) .with_parent_block_number(client.chain_info().best_number) diff --git a/cumulus/test/service/src/chain_spec.rs b/cumulus/test/service/src/chain_spec.rs index 61bbf755d890aab92c0c714663a7e24c1c286696..e86023576ac5011ff8656567ec978c287bf13601 100644 --- a/cumulus/test/service/src/chain_spec.rs +++ b/cumulus/test/service/src/chain_spec.rs @@ -34,7 +34,7 @@ pub fn get_from_seed(seed: &str) -> ::Pu .public() } -/// The extensions for the [`ChainSpec`](crate::ChainSpec). +/// The extensions for the [`ChainSpec`]. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] #[serde(deny_unknown_fields)] pub struct Extensions { diff --git a/cumulus/test/service/src/lib.rs b/cumulus/test/service/src/lib.rs index 3554a383f219e7465f5df875bdf6463b93119f3b..3af3901d175e5a113f137741a5de2ca11544c238 100644 --- a/cumulus/test/service/src/lib.rs +++ b/cumulus/test/service/src/lib.rs @@ -735,7 +735,7 @@ pub fn node_config( tokio_handle: tokio::runtime::Handle, key: Sr25519Keyring, nodes: Vec, - nodes_exlusive: bool, + nodes_exclusive: bool, para_id: ParaId, is_collator: bool, endowed_accounts: Vec, @@ -759,7 +759,7 @@ pub fn node_config( None, ); - if nodes_exlusive { + if nodes_exclusive { network_config.default_peers_set.reserved_nodes = nodes; network_config.default_peers_set.non_reserved_mode = sc_network::config::NonReservedPeerMode::Deny; diff --git a/docker/dockerfiles/binary_injected.Dockerfile b/docker/dockerfiles/binary_injected.Dockerfile index ac1fd5317c67cb4cbef1044a6e2e3379f8ff4662..c8930bd83f0274990aff281e84d75b7add9d1289 100644 --- a/docker/dockerfiles/binary_injected.Dockerfile +++ b/docker/dockerfiles/binary_injected.Dockerfile @@ -2,7 +2,7 @@ FROM docker.io/parity/base-bin # This file allows building a Generic container image # based on one or multiple pre-built Linux binaries. -# Some defaults are set to polkadot but all can be overriden. +# Some defaults are set to polkadot but all can be overridden. SHELL ["/bin/bash", "-c"] diff --git a/docker/scripts/build-injected.sh b/docker/scripts/build-injected.sh index f415cf43c0eeefecbe0fe2a0649bbe9df0e2f960..749d0fa335cc1248fcde1770046fc7c1e31e9fbe 100755 --- a/docker/scripts/build-injected.sh +++ b/docker/scripts/build-injected.sh @@ -20,7 +20,7 @@ PROJECT_ROOT=${PROJECT_ROOT:-$(git rev-parse --show-toplevel)} DOCKERFILE=${DOCKERFILE:-docker/dockerfiles/binary_injected.Dockerfile} VERSION_TOML=$(grep "^version " $PROJECT_ROOT/Cargo.toml | grep -oE "([0-9\.]+-?[0-9]+)") -#n The following VAR have default that can be overriden +#n The following VAR have default that can be overridden DOCKER_OWNER=${DOCKER_OWNER:-parity} # We may get 1..n binaries, comma separated diff --git a/docs/contributor/container.md b/docs/contributor/container.md index dd44b31bfe96994ed54e3eca8610e7d8778f5261..9c542f411c81f4237e69ffaf63d4686eeac204e4 100644 --- a/docs/contributor/container.md +++ b/docs/contributor/container.md @@ -16,7 +16,7 @@ Parity builds and publishes a container image that can be found as `docker.io/pa ## Parity CI image Parity maintains and uses internally a generic "CI" image that can be used as a base to build binaries: [Parity CI -container image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-linux): +container image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-unified): The command below allows building a Linux binary without having to even install Rust or any dependency locally: @@ -24,14 +24,11 @@ The command below allows building a Linux binary without having to even install docker run --rm -it \ -w /polkadot-sdk \ -v $(pwd):/polkadot-sdk \ - paritytech/ci-linux:production \ + paritytech/ci-unified:bullseye-1.75.0-2024-01-22-v20240222 \ cargo build --release --locked -p polkadot-parachain-bin --bin polkadot-parachain sudo chown -R $(id -u):$(id -g) target/ ``` -If you want to reproduce other steps of CI process you can use the following -[guide](https://github.com/paritytech/scripts#gitlab-ci-for-building-docker-images). - ## Injected image Injecting a binary inside a base image is the quickest option to get a working container image. This only works if you diff --git a/docs/sdk/Cargo.toml b/docs/sdk/Cargo.toml index 3f84d45640f9e4c0e6b8ca4eb8c7cf4e55fd87b4..426c5d9de4a022093c5e3c792722021601817c69 100644 --- a/docs/sdk/Cargo.toml +++ b/docs/sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkadot-sdk-docs" -description = "The one stop shop for developers of the polakdot-sdk" +description = "The one stop shop for developers of the polkadot-sdk" license = "GPL-3.0-or-later WITH Classpath-exception-2.0" homepage = "paritytech.github.io" repository.workspace = true @@ -17,7 +17,7 @@ workspace = true # Needed for all FRAME-based code parity-scale-codec = { version = "3.0.0", default-features = false } scale-info = { version = "2.6.0", default-features = false } -frame = { path = "../../substrate/frame", features = [ +frame = { package = "polkadot-sdk-frame", path = "../../substrate/frame", features = [ "experimental", "runtime", ] } @@ -27,7 +27,7 @@ pallet-example-offchain-worker = { path = "../../substrate/frame/examples/offcha # How we build docs in rust-docs simple-mermaid = "0.1.1" -docify = "0.2.7" +docify = "0.2.8" # Polkadot SDK deps, typically all should only be in scope such that we can link to their doc item. node-cli = { package = "staging-node-cli", path = "../../substrate/bin/node/cli" } @@ -66,6 +66,7 @@ pallet-aura = { path = "../../substrate/frame/aura", default-features = false } pallet-timestamp = { path = "../../substrate/frame/timestamp" } pallet-balances = { path = "../../substrate/frame/balances" } pallet-assets = { path = "../../substrate/frame/assets" } +pallet-preimage = { path = "../../substrate/frame/preimage" } pallet-transaction-payment = { path = "../../substrate/frame/transaction-payment" } pallet-utility = { path = "../../substrate/frame/utility" } pallet-multisig = { path = "../../substrate/frame/multisig" } @@ -73,6 +74,8 @@ pallet-proxy = { path = "../../substrate/frame/proxy" } pallet-authorship = { path = "../../substrate/frame/authorship" } pallet-collective = { path = "../../substrate/frame/collective" } pallet-democracy = { path = "../../substrate/frame/democracy" } +pallet-uniques = { path = "../../substrate/frame/uniques" } +pallet-nfts = { path = "../../substrate/frame/nfts" } pallet-scheduler = { path = "../../substrate/frame/scheduler" } # Primitives diff --git a/docs/sdk/assets/after-content.html b/docs/sdk/assets/after-content.html new file mode 100644 index 0000000000000000000000000000000000000000..30ae5c7ec430b46c5854cbcdd39b5d66d1ad3fd0 --- /dev/null +++ b/docs/sdk/assets/after-content.html @@ -0,0 +1,2 @@ + + diff --git a/docs/sdk/headers/header.html b/docs/sdk/assets/header.html similarity index 97% rename from docs/sdk/headers/header.html rename to docs/sdk/assets/header.html index e28458c4ccc791d9a72613ffb530b685828ea828..f55c31b53216cddc5da94099efc3566c27bdfe63 100644 --- a/docs/sdk/headers/header.html +++ b/docs/sdk/assets/header.html @@ -84,6 +84,8 @@ }); + +